prep_freq_list.py
1.31 KB
#-*- coding:utf-8 -*-
"""Script for getting prepositions usage frequency list."""
from django.core.management.base import BaseCommand
from dictionary.models import *
class Command(BaseCommand):
'SloVal command for getting preposition frequency list.'
help = 'Get prepositions frequency use list.'
def handle(self, **options):
prep_freq_ls()
def prep_freq_ls():
'Get prepositions frequency list.'
print 'Be patient, it can take a while.'
prep_ls = []
for prep in Atribute_Model.objects.get(atr_model_name='PRZYIMEK').atribute_values.all():
prep_ls.append({'prep' : prep.value,
'count': 0})
lemmas = Lemma.objects.filter(old=False, status__status=u'sprawdzone')
for lemma in lemmas.all():
for frame in lemma.frames.all():
for position in frame.positions.all():
for arg in position.arguments.all():
for attr in arg.atributes.filter(Q(type='PRZYIMEK') | Q(type='PRZYIMEK1')):
prep = (item for item in prep_ls if item['prep'] == attr.atribute_value.value).next()
prep['count'] += 1
prep_ls.sort(key=lambda x:x['count'])
prep_ls.reverse()
for prep in prep_ls:
print smart_str(prep['prep']) + ': ' + str(prep['count'])