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