pymorphy2: неверно распознается часть речи
С помощью библиотеки pymorphy2 пытаюсь привести слово к родительному падежу.
Пример:
osnov = "Устав"
morph = pymorphy2.MorphAnalyzer()
osnov_rp = morph.parse(osnov)[0]
gent = osnov_rp.inflect({'gent'})
print(gent.word)
Результат: уставших.
Ожидаемый результат: Устава.
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Pymorphy2 после парсинга слова выдает все возможные части речи, которые он распознал, указывая их score, по убыванию. В вашем случае, слово "устав" распознается как деепричастие с большей вероятностью, чем как существительное. Вы можете это проверить сами, выведя на печать
print(morph.parse(osnov))
Для вашего случая можно сделать такое решение:
import pymorphy2
osnov = "Устав"
morph = pymorphy2.MorphAnalyzer(lang="ru")
osnov_rp = [x for x in morph.parse(osnov) if "NOUN" in x.tag][0]
gent = osnov_rp.inflect({'gent'})
print(gent.word)
устава