Как при помощи pymorphy3 перевести в родительный падеж всё предложение целиком?
Могли бы вы помочь с модулем pymorphy3? Хочу перевести в родительный падеж фразу целиком и получить "первого числа месяца", но это не работает с фразой:
spasibo = ("первое число месяца")
morph = pymorphy3.MorphAnalyzer()
one = morph.parse(spasibo)[0]
spasibo = (one.inflect({'gent'}).word)
только с отдельными словами, а как склонять предложения целиком?
Ответы (2 шт):
Автор решения: CrazyElf
→ Ссылка
В данном случае можете просто разбить предложение на отдельные слова и просклонять их по отдельности, а потом обратно собрать предложение:
import pymorphy3
phrase = "первое число месяца"
morph = pymorphy3.MorphAnalyzer()
result = ' '.join(morph.parse(word)[0].inflect({'gent'}).word for word in phrase.split())
print(result)
Вывод:
первого числа месяца
Автор решения: Procopii Smetanin
→ Ссылка
вот способ как исключать из морфологического анализа знаки препинания и союзы:
import pymorphy3
import string
text = "первое число месяца, дня и года".translate(str.maketrans('', '', string.punctuation))
morph = pymorphy3.MorphAnalyzer()
words = text.split()
conjunctions = [word for word in words if morph.parse(word)[0].tag.POS == 'CONJ']
sentence = [word for word in words if word not in conjunctions]
st = (' '.join(sentence))
status = ' '.join(morph.parse(word)[0].inflect({'gent'}).word for word in st.split())
print(status)
вывод
первого числа месяца дня года