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'])