π ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ² Π² python Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
Π Python Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ pymorphy2
Π΄Π»Ρ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ².
from pymorphy2 import MorphAnalyzer
morph = MorphAnalyzer()
word = "ΡΡΠΎΠ»"
parsed_word = morph.parse(word)[0]
inflected_word = parsed_word.inflect({"gent"}) # ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΏΠ°Π΄Π΅ΠΆΡ
print(inflected_word.word)
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ² Π² Python
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΊΠ»ΠΎΠ½ΡΡΡ ΡΠ»ΠΎΠ²Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΈΡ ΠΏΠ°Π΄Π΅ΠΆΠ°ΠΌΠΈ ΠΈ ΡΠΎΠ΄Π°ΠΌΠΈ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΠΏΠΎΠΊΠ°ΠΆΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python.
Python ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ², ΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ .
1. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pymorphy2
pymorphy2 - ΡΡΠΎ ΠΌΠΎΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ ΠΌΠΎΡΡΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ»ΠΎΠ² Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅. ΠΠ½Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΠ°Π΄Π΅ΠΆΠ°Ρ , ΡΠΎΠ΄Π°Ρ ΠΈ ΡΠΈΡΠ»Π°Ρ ΡΠ»ΠΎΠ²Π°. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π°, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install pymorphy2
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ pymorphy2:
import pymorphy2
morph = pymorphy2.MorphAnalyzer()
word = 'ΡΡΠΎΠ»'
parsed_word = morph.parse(word)[0]
print(parsed_word.inflect({'accs'}).word) # 'ΡΡΠΎΠ»'
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ pymorphy2 ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΎΠ±ΡΠ΅ΠΊΡ MorphAnalyzer. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΠ»ΠΎΠ²ΠΎ 'ΡΡΠΎΠ»' Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° parse ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠΊΠ»ΠΎΠ½Π΅Π½Π½ΡΡ ΡΠΎΡΠΌΡ Π² Π²ΠΈΠ½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠ°Π΄Π΅ΠΆΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π° inflect. Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ»ΠΎΠ²ΠΎ 'ΡΡΠΎΠ»'.
2. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytils
ΠΡΠ΅ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ΄ΠΎΠ±Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ² Π² Python ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytils. ΠΠ½Π° ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ² ΡΠ°Π·Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅ΡΠΈ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Ρ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ. ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
pip install pytils
ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Π² ΠΊΠΎΠ΄Π΅. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ pytils Π΄Π»Ρ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ²Π° 'ΡΡΠΎΠ»' Π² ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌ ΠΏΠ°Π΄Π΅ΠΆΠ΅:
from pytils import declined
word = 'ΡΡΠΎΠ»'
declined_word = declined.dative(word)
print(declined_word) # 'ΡΡΠΎΠ»Ρ'
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ declined ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pytils. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΊΠ»ΠΎΠ½ΡΠ΅ΠΌ ΡΠ»ΠΎΠ²ΠΎ 'ΡΡΠΎΠ»' Π² Π΄Π°ΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°Π΄Π΅ΠΆ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ declined ΠΈ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
3. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ²ΠΎΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ². ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ:
def decline_word(word, case):
if case == 'ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ':
if word[-1] == 'Π°':
return word[:-1] + 'Ρ'
elif word[-1] == 'Ρ':
return word[:-1] + 'ΠΈ'
else:
return word + 'Π°'
elif case == 'Π΄Π°ΡΠ΅Π»ΡΠ½ΡΠΉ':
if word[-1] == 'Π°':
return word[:-1] + 'Π΅'
elif word[-1] == 'Ρ':
return word[:-1] + 'Π΅'
else:
return word + 'Ρ'
# ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠ°Π΄Π΅ΠΆΠΈ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ
word = 'ΡΡΠΎΠ»'
case = 'ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ'
print(decline_word(word, case)) # 'ΡΡΠΎΠ»Π°'
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ decline_word, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ»ΠΎΠ²ΠΎ ΠΈ ΠΏΠ°Π΄Π΅ΠΆ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠΊΠ»ΠΎΠ½Π΅Π½Π½ΡΡ ΡΠΎΡΠΌΡ ΡΠ»ΠΎΠ²Π°. Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΠ°Π΄Π΅ΠΆΠ° ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ².
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΠΏΠ°Π΄Π΅ΠΆΠ΅ΠΉ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ°Π·Π½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅ΡΠΈ ΠΈ ΡΠΎΠ΄ΠΎΠ² ΡΠ»ΠΎΠ².
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ ΡΠ»ΠΎΠ² Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ, Π½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»Π΅Π³ΠΊΠΎ ΡΠ΅ΡΠΈΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ² Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ pymorphy2, pytils ΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΠ΅ΠΉ ΠΈ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Python!