πŸ”Ž Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ склонСниС слов Π² 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!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Python Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΎΠ»ΠΎΠ³ 1LEADGEN. Π‘ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅ минус слов Π½Π° Python (pymorphy2).

32 Π‘Π»ΠΎΠ²Π°Ρ€ΠΈ (dict) Python. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ словаря.

Python с нуля | Π‘Π»ΠΎΠ²Π°Ρ€ΠΈ Π² Python | ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ словарСй, ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ словарСй Π² Python

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Python: простой практичСский Π³Π°ΠΉΠ΄

❓ ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ устанавливаСтся Python Π½Π° Windows 8? 🐍🚫

🎨 Как Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ лСсСнку Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: пошаговая инструкция для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… πŸ–ŒοΈ

πŸ”Ž Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ склонСниС слов Π² python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простого ΠΊΠΎΠ΄Π°

Π§Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ f Π² Python? 🐍✨

⭐️⭐️⭐️ Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, являСтся Π»ΠΈ число ΠΏΠΎΠ»Π½Ρ‹ΠΌ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ΠΎΠΌ Π² Python? ⭐️⭐️⭐️

✨ Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ вирусы Π½Π° Python: лСгкая ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΠΊΠ° для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… ✨