πŸ” Как Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ простой способ!

ЛСмматизация тСкста Π² Python выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NLTK (Natural Language Toolkit) ΠΈ модуля WordNet. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:

    from nltk.stem import WordNetLemmatizer

    def lemmatize_text(text):
        lemmatizer = WordNetLemmatizer()
        lemmatized_words = [lemmatizer.lemmatize(word) for word in text.split()]
        return ' '.join(lemmatized_words)

    text = "Π― ΠΈΠ΄Ρƒ Π³ΡƒΠ»ΡΡ‚ΡŒ Π² ΠΏΠ°Ρ€ΠΊ"
    lemmatized_text = lemmatize_text(text)
    print(lemmatized_text)
    
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ класс WordNetLemmatizer ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ NLTK ΠΈ опрСдСляСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ lemmatize_text, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ тСкст Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ создаСм экзСмпляр Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΅Π³ΠΎ для Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слова Π² тСкстС. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ объСдиняСм с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° join ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π½Π° экран. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π²Ρ‹ΡˆΠ΅, Π²Ρ‹Π²ΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ: Π― ΠΈΠ΄Ρ‚ΠΈ Π³ΡƒΠ»ΡΡ‚ΡŒ Π² ΠΏΠ°Ρ€ΠΊ Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ Π²Ρ‹ΡˆΠ΅ для Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСкста Π½Π° языкС Python.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст Π² Python

ЛСмматизация тСкста - это процСсс привСдСния слов Π² тСкстС ΠΊ ΠΈΡ… Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ Π»Π΅ΠΌΠΌΠΎΠΉ. Π’ Python сущСствуСт нСсколько Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст, ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ для этой Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу ΠΎ Π΄Π²ΡƒΡ… популярных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ…: NLTK ΠΈ spaCy.

1. NLTK

NLTK (Natural Language Toolkit) - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ СстСствСнного языка, которая прСдоставляСт мноТСство инструмСнтов для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом. Для Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСкста Π² NLTK ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ класс WordNetLemmatizer.


import nltk
from nltk.stem import WordNetLemmatizer

nltk.download('wordnet')

lemmatizer = WordNetLemmatizer()

text = "Running dogs are running and eating food"
tokens = nltk.word_tokenize(text)

lemmatized_text = [lemmatizer.lemmatize(word) for word in tokens]
print(lemmatized_text)

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ WordNetLemmatizer для Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слова Π² тСкстС. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ список Π»Π΅ΠΌΠΌ слов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ['Running', 'dog', 'are', 'running', 'and', 'eating', 'food'] Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² ['Running', 'dog', 'be', 'run', 'and', 'eat', 'food'].

2. spaCy

spaCy - это Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° популярная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкста, которая прСдоставляСт ΠΌΠΎΡ‰Π½Ρ‹Π΅ инструмСнты для Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ СстСствСнного языка.


import spacy

nlp = spacy.load('en_core_web_sm')

text = "Running dogs are running and eating food"

doc = nlp(text)

lemmatized_text = [token.lemma_ for token in doc]
print(lemmatized_text)

Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ spaCy для Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΎΠΊΠ΅Π½Π° (слова) Π² тСкстС. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ список Π»Π΅ΠΌΠΌ слов, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ['Running', 'dog', 'be', 'run', 'and', 'eat', 'food'].

Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅ΠΆΠ΄Ρƒ NLTK ΠΈ spaCy

Когда Π΄Π΅Π»ΠΎ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° ΠΌΠ΅ΠΆΠ΄Ρƒ NLTK ΠΈ spaCy для Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСкста Π² Python, это зависит ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… потрСбностСй ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ. NLTK прСдоставляСт Π±ΠΎΠ»Π΅Π΅ простой ΠΈ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ интСрфСйс, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСсколько ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с spaCy. spaCy, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ быстрый ΠΈ эффСктивный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, основанный Π½Π° соврСмСнных модСлях Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ обучСния.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ЛСмматизация тСкста - это Π²Π°ΠΆΠ½Ρ‹ΠΉ этап ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ СстСствСнного языка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² Π°Π½Π°Π»ΠΈΠ·Π΅ тСкста, Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… слов ΠΈΠ»ΠΈ Π² создании ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ машинного обучСния. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΠΏΠΎΠΊΠ°Π·Π°Π» ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ NLTK ΠΈ spaCy для Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ тСкста Π² Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² зависимости ΠΎΡ‚ вашСй ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ потрСбностСй. Π£Π΄Π°Ρ‡ΠΈ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ тСкста Π² Python!

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

Π£Ρ€ΠΎΠΊ ΠΏΠΎ Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ (Π¨ΠΊΠΎΠ»Π° наставников ЯндСкса)

13. ЛСмматизация

ЛСкция 7 Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² NLP, Ρ‡Π°ΡΡ‚ΡŒ 2: Π‘Ρ‚Π΅ΠΌΠΌΠΈΠ½Π³, лСмматизация, стоп-слова

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

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ ΠΈΠ· строки Π² Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ πŸ”„

πŸš€ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Python: ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство!

πŸ” Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Python: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² 🐍

πŸ” Как Π»Π΅ΠΌΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? Π£Π·Π½Π°ΠΉΡ‚Π΅ простой способ!

🎨 Как Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠΈΡ€Π°Π»ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python? Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… 🐍

Как ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ардуино Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅: Π˜Π·ΡƒΡ‡Π°Π΅ΠΌ Arduino с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python

πŸ” Как вывСсти Ρ‚Ρ€Π°Π½ΡΠΏΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Ρƒ Π² Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство