π ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π² Python: ΠΏΡΠΎΡΡΠΎΠΉ Π³ΠΈΠ΄ Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠΌΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ π
Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π² Python, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ locale.
import locale
locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠ΄ΡΠ»Ρ locale ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ Π»ΠΎΠΊΠ°Π»Ρ Π½Π° ΡΡΡΡΠΊΡΡ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠΎΠΉ UTF-8.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΡΠΊΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠΎΠ΄Π΅:
print("ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!")
ΠΡΠΎΡ ΠΊΠΎΠ΄ Π²ΡΠ²Π΅Π΄Π΅Ρ Π½Π° ΡΠΊΡΠ°Π½ "ΠΡΠΈΠ²Π΅Ρ, ΠΌΠΈΡ!" Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
Π£ΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ!
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π² Python
Python - ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠΈΡΠ΅. ΠΠ½ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ ΠΌΠΎΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ², Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΡΡΠΊΠΈΠΉ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π² Python ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅ΠΊΡΡΠΎΠΌ Π½Π° ΡΡΡΡΠΊΠΎΠΌ.
1. Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ²
ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π² ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΡΡΡΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π² Python ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ². ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΡΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ Π½Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ:
pip install nltk
pip install pymorphy2
pip install russian-tagsets
ΠΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΡΡΠΊΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠ»ΠΎΠ²Π°, Π»Π΅ΠΌΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅ΡΠΈ.
2. ΠΠΌΠΏΠΎΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
ΠΠ°Π»Π΅Π΅, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΡΡΠΊΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π² Python:
import nltk
from pymorphy2 import MorphAnalyzer
from russian_tagsets import converters
ΠΠΎΠ΄ΡΠ»Ρ nltk
ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ΠΊΡΡΠ°, Π° ΠΌΠΎΠ΄ΡΠ»ΠΈ MorphAnalyzer
ΠΈ converters
ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² pymorphy2
ΠΈ russian-tagsets
ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π»Π΅ΠΌΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅ΡΠΈ.
3. Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΠ»ΠΎΠ²Π°
Π§ΡΠΎΠ±Ρ ΡΠ°Π·Π±ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠ»ΠΎΠ²Π° Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ nltk.word_tokenize()
:
text = "ΠΡΠΈΠ²Π΅Ρ, ΠΊΠ°ΠΊ Π΄Π΅Π»Π°?"
words = nltk.word_tokenize(text)
print(words)
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ ΡΠ»ΠΎΠ²:
['ΠΡΠΈΠ²Π΅Ρ', ',', 'ΠΊΠ°ΠΊ', 'Π΄Π΅Π»Π°', '?']
4. ΠΠ΅ΠΌΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ»ΠΎΠ²
ΠΠ΅ΠΌΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ - ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ»ΠΎΠ² ΠΊ ΠΈΡ
Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΡΠΎΡΠΌΠ΅. ΠΠ°ΠΌ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ MorphAnalyzer
ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° pymorphy2
. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ Π»Π΅ΠΌΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ:
morph = MorphAnalyzer()
word = "ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ"
lemma = morph.parse(word)[0].normal_form
print(lemma)
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ:
ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
5. ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅ΡΠΈ
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ°ΡΡΡ ΡΠ΅ΡΠΈ ΡΠ»ΠΎΠ²Π° Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ converters
ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° russian-tagsets
. Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ:
word = "ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅"
pos = converters.opencorpora_int_to_grammemes(morph.parse(word)[0].tag.POS)
print(pos)
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ:
['NOUN', 'inan', 'neut', 'sing', 'nomn']
ΠΠ΄Π΅ΡΡ NOUN
ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΡΠ΅ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅, inan
- Π½Π΅ΠΎΠ΄ΡΡΠ΅Π²Π»Π΅Π½Π½ΠΎΠ΅, neut
- ΡΡΠ΅Π΄Π½ΠΈΠΉ ΡΠΎΠ΄, sing
- Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΈ nomn
- ΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ°Π΄Π΅ΠΆ.
6. ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΡΡΡΡΠΊΠΈΠΉ ΡΠ·ΡΠΊ Π² Python ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΡΡΠΊΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠΌ. ΠΡ Π½Π°ΡΡΠΈΠ»ΠΈΡΡ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ ΡΠ΅ΠΊΡΡ Π½Π° ΡΠ»ΠΎΠ²Π°, Π»Π΅ΠΌΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»ΠΎΠ²Π° ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΈΡ ΡΠ°ΡΡΠΈ ΡΠ΅ΡΠΈ. ΠΡΠΈ Π½Π°Π²ΡΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΡΠ΅ΠΊΡΡΠ° Π½Π° ΡΡΡΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π² Π²Π°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ .
Π£ΡΠΏΠ΅Ρ ΠΎΠ² Π² ΠΈΠ·ΡΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Python!