Commits

Mikhail Korobov committed 24f9a06

Корректная обработка слов с несколькими префиксами. Теперь pymorphy проходит все тесты.

Comments (0)

Files changed (3)

pymorphy/morph.py

             base_form = variants[paradigm_id]
             lemma = base_form['lemma']
 
-            pre_prefix = ''.join([base_form.get('prefix',''),
-                                  base_form.get('predict-prefix', '')])
+            pre_prefix = ''.join(base_form.get('prefixes', []))
 
             paradigm = self.data.rules[paradigm_id]
 
 
                 # приписываем префикс обратно к полученным нормальным формам
                 for form in base_forms:
-                    form['prefix'] = prefix
+                    form['prefixes'] = [prefix] + form.get('prefixes', [])
                     form['method'] = 'prefix(%s).%s' % (prefix, form['method'])
                 gram.extend(base_forms)
 
 
             # приписываем префикс обратно
             for form in base_forms:
-                form['predict-prefix'] = prefix
+                form['prefixes'] = [prefix] + form.get('prefixes', [])
                 form['method'] = 'predict-prefix(%s).%s' % (prefix, form['method'])
             gram.extend(base_forms)
         return gram

pymorphy/morph_tests.py

         self.check_norm(u'НАИСТАРЕЙШИЙ', [u'СТАРЫЙ'])
         self.check_norm(u'СВЕРХНАИСТАРЕЙШИЙ', [u'СВЕРХСТАРЫЙ'])
         self.check_norm(u'СВЕРХНАИСТАРЕЙШИЙ', [u'СВЕРХСТАРЫЙ'])
-        self.check_norm(u'КВАЗИПСЕВДОНАИСТАРЕЙШЕГО', [u'КВАЗИПСЕВДОСТАРЫЙ'])
+        self.check_norm(u'КВАЗИПСЕВДОНАИСТАРЕЙШЕГО', [u'КВАЗИПСЕВДОСТАРЫЙ', u'КВАЗИПСЕВДОСТАРОЕ'])
         self.check_norm(u'НЕБЕСКОНЕЧЕН', [u'НЕБЕСКОНЕЧНЫЙ'])
 
     def testPrefixPredict(self):
         self.check_norm(u'МЕГАКОТУ', [u'МЕГАКОТ'])
-        self.check_norm(u'МЕГАСВЕРХНАИСТАРЕЙШЕМУ', [u'МЕГАСВЕРХСТАРЫЙ'])
+        self.check_norm(u'МЕГАСВЕРХНАИСТАРЕЙШЕМУ', [u'МЕГАСВЕРХСТАРЫЙ', u'МЕГАСВЕРХСТАРОЕ'])
 
     def testEEbug(self):
         self.check_norm(u'КОТЕНОК', [u'КОТЕНОК'])
 
 setup(
     name     = 'pymorphy',
-    version  = '0.4.1',
+    version  = '0.4.2',
     author='Mikhail Korobov',
     author_email='kmike84@gmail.com',
     url='http://bitbucket.org/kmike/pymorphy/',