From d6100285f8a9227d9687b4f2d865d897ddd287bf Mon Sep 17 00:00:00 2001 From: Tomasz Bartosiak <tomasz.bartosiak@gmail.com> Date: Fri, 13 Apr 2018 15:06:20 +0200 Subject: [PATCH] Poprawki związane z listami atrybutów w wynikach Morfeusza --- semantics/phraseology_generator.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/semantics/phraseology_generator.py b/semantics/phraseology_generator.py index 924641a..3e77cf7 100644 --- a/semantics/phraseology_generator.py +++ b/semantics/phraseology_generator.py @@ -204,7 +204,7 @@ def get_adjps(cases, number, gender, degree, adjectives, atr): filtered = [] for option in options: (orth, tag) = option - if u':' + gender + u':' in tag or u'.' + gender + u':' in tag or u':' + gender + u'.' in tag or u'.' + gender + u'.' in tag: + if u':' + gender + u':' in tag or u'.' + gender + u':' in tag or u':' + gender + u'.' in tag or u'.' + gender + u'.' in tag or u'.' + gender + u':' in tag: filtered.append(option) options = filtered if degree != u'_': @@ -258,7 +258,7 @@ def get_numps(cases, numerals, nouns, atr): filtered = [] for option in options: (orth, tag) = option - if u':' + case + u':' in tag or ':' + case + '.' in tag or '.' + case + '.' in tag: + if u':' + case + u':' in tag or u':' + case + u'.' in tag or u'.' + case + u'.' in tag or u'.' + case + u':' in tag: filtered.append(option) options_temp += filtered else: @@ -278,15 +278,17 @@ def get_numps(cases, numerals, nouns, atr): options = filtered if rec == 'rec': c = ['gen'] - else: + elif rec == 'congr': c = cases + else: + c = list(set(['gen'] + cases)) options_temp = [] for case in c: if case != u'_': filtered = [] for option in options: (orth, tag) = option - if u':' + case + u':' in tag or ':' + case + '.' in tag or '.' + case + '.' in tag: + if u':' + case + u':' in tag or u':' + case + u'.' in tag or u'.' + case + u'.' in tag or u'.' + case + u':' in tag: filtered.append(option) options_temp += filtered else: @@ -294,9 +296,9 @@ def get_numps(cases, numerals, nouns, atr): options = options_temp for (orth, tag) in options: gender = tag.split(':')[3] - if u':' + gender + u':' in num_tag or ':' + gender + '.' in num_tag or '.' + gender + '.' in num_tag: + if u':' + gender + u':' in num_tag or u':' + gender + u'.' in num_tag or u'.' + gender + u'.' in num_tag or u'.' + gender + u':' in num_tag: results.append(num_orth + ' ' + orth) - + return results #ignoring ambiguos atr for numps def get_prepnumps(prep, cases, numerals, nouns, atr): @@ -312,7 +314,7 @@ def get_verb(inf, number, is_subj): filtered = [] for option in options: (orth, tag) = option - if u'fin:' in tag and u':' + number + ':' in tag and u':ter:' in tag: + if u'fin:' in tag and u':' + number + u':' in tag and u':ter:' in tag: filtered.append(option) options = filtered return [orth for orth, _ in options] @@ -338,7 +340,7 @@ def phrase(head, dependents): type = sortatributes(argument)[0].values.all()[0].argument.type value, _ = lexicalisation(argument, False, '', False, head) values += value - if type == 'adjp': + if type == u'adjp': modifiers['pre'].append(values) else: modifiers['post'].append(values) -- libgit2 0.22.2