Commit 50977ac33bf898748a1a77b2d4e26ea83236247e

Authored by Bartłomiej Nitoń
1 parent 8dd74fbf

Minor fixes.

dictionary/management/commands/get_examples.py
... ... @@ -6,7 +6,8 @@ import os
6 6  
7 7 from django.core.management.base import BaseCommand
8 8  
9   -from dictionary.models import Lemma, get_ready_statuses
  9 +from dictionary.models import Lemma, NKJP_Example, get_ready_statuses, get_checked_statuses
  10 +from semantics.models import LexicalUnitExamples
10 11 from settings import PROJECT_PATH
11 12  
12 13 BASE_PATH = os.path.join(PROJECT_PATH, 'data')
... ... @@ -28,8 +29,13 @@ class Command(BaseCommand):
28 29 get_examples()
29 30  
30 31 def get_examples():
31   - ready_statuses = get_ready_statuses()
32   - write_detailed_examples(ready_statuses)
  32 + write_example_sentences('semantyczne-S_sprawdzone-20170811.txt', ['(S) sprawdzone'], True)
  33 + write_example_sentences('wszystkie-S_sprawdzone-20170811.txt', ['(S) sprawdzone'], False)
  34 +
  35 + checked_names = [checked.status for checked in get_checked_statuses()]
  36 + write_example_sentences('wszystkie-sprawdzone-20170811.txt', checked_names, False)
  37 + # ready_statuses = get_ready_statuses()
  38 + # write_detailed_examples(ready_statuses)
33 39 # write_examples(ready_statuses)
34 40  
35 41 def write_detailed_examples(statuses):
... ... @@ -76,4 +82,51 @@ def write_examples(statuses):
76 82 examples_file.write('\t\t--> %s\n' % example.sentence)
77 83 examples_file.write('\n\n')
78 84 finally:
79   - examples_file.close()
  85 + examples_file.close()
  86 +
  87 +
  88 +def write_example_sentences(filename, statuses, semantic):
  89 + try:
  90 + examples_file = codecs.open(os.path.join(BASE_PATH, filename), 'wt', 'utf-8')
  91 + for lemma in Lemma.objects.filter(old=False, entry_obj__pos__tag='verb').filter(status__status__in=statuses).order_by('entry_obj__name'):
  92 + print lemma
  93 + wrong_examples = lemma.nkjp_examples.filter(opinion__opinion=u'zły')
  94 + not_wanted_semantic_examples = get_not_needed_semantic_examples(lemma)
  95 + wanted_semantic_examples = get_wanted_semantic_examples(lemma)
  96 +
  97 + for example in lemma.nkjp_examples.filter(source__sym_name__in=['NKJP300M', 'NKJP1800M']):
  98 + if (lemma.frame_opinions.filter(frame=example.frame, value__value__in=[u'archaiczny',
  99 + u'zły']).exists()):
  100 + continue
  101 +
  102 + if semantic:
  103 + if (wanted_semantic_examples.filter(pk=example.pk).exists() and
  104 + not wrong_examples.filter(pk=example.pk).exists()):
  105 + examples_file.write(u'%s\n' % example.sentence)
  106 + else:
  107 + if (not not_wanted_semantic_examples.filter(pk=example.pk).exists() and
  108 + not wrong_examples.filter(pk=example.pk).exists()):
  109 + examples_file.write(u'%s\n' % example.sentence)
  110 +
  111 + finally:
  112 + examples_file.close()
  113 +
  114 +
  115 +def get_not_needed_semantic_examples(lemma):
  116 + not_needed_ids = []
  117 + not_needed_frames = lemma.entry_obj.actual_frames().filter(opinion__value__in=[u'archaiczna', u'zła'])
  118 + for frame in not_needed_frames:
  119 + for lu in frame.lexical_units.all():
  120 + for luex in LexicalUnitExamples.objects.filter(lexical_unit=lu):
  121 + not_needed_ids.append(luex.example.id)
  122 + return NKJP_Example.objects.filter(id__in=not_needed_ids)
  123 +
  124 +
  125 +def get_wanted_semantic_examples(lemma):
  126 + needed_ids = []
  127 + needed_frames = lemma.entry_obj.actual_frames().exclude(opinion__value__in=[u'archaiczna', u'zła'])
  128 + for frame in needed_frames:
  129 + for lu in frame.lexical_units.all():
  130 + for luex in LexicalUnitExamples.objects.filter(lexical_unit=lu):
  131 + needed_ids.append(luex.example.id)
  132 + return NKJP_Example.objects.filter(id__in=needed_ids)
... ...
dictionary/saving.py
... ... @@ -114,4 +114,3 @@ def disconnect_example_operation(example_dict, example_obj):
114 114  
115 115 def reconnect_examples(lemma, operations):
116 116 update_meanings(lemma.id, operations)
117   -
118 117 \ No newline at end of file
... ...