Стемминг и лемматизация

Анализ тональности текста на Python

Violeta Misheva

Data Scientist

Что такое стемминг?

Стемминг — это процесс приведения слов к корневой форме, даже если полученный корень не является самостоятельным словом языка.

staying, stays, stayed ----> stay
house, houses, housing ----> hous

Анализ тональности текста на Python

Что такое лемматизация?

Лемматизация схожа со стеммингом, однако в отличие от него она приводит слова к корневым формам, которые являются существующими словами языка.

stay, stays, staying, stayed ----> stay
house, houses, housing ----> house
Анализ тональности текста на Python

Стемминг и лемматизация: сравнение

Стемминг

  • Возвращает корневые формы слов
  • Работает быстро и эффективно

Лемматизация

  • Возвращает существующие слова
  • Медленнее стемминга; может зависеть от части речи
Анализ тональности текста на Python

Стемминг строк

from nltk.stem import PorterStemmer

porter = PorterStemmer()
porter.stem('wonderful')
'wonder'
Анализ тональности текста на Python

Стеммеры для других языков

Snowball Stemmer: датский, нидерландский, английский, финский, французский, немецкий, венгерский, итальянский, норвежский, португальский, румынский, русский, испанский, шведский

from nltk.stem.snowball import SnowballStemmer

DutchStemmer = SnowballStemmer("dutch")
DutchStemmer.stem("beginnen")
'begin'
Анализ тональности текста на Python

Как применить стемминг к предложению?

porter.stem('Today is a wonderful day!')
'today is a wonderful day!'
tokens = word_tokenize('Today is a wonderful day!')
stemmed_tokens = [porter.stem(token) for token in tokens]
stemmed_tokens
['today', 'is', 'a', 'wonder', 'day', '!']
Анализ тональности текста на Python

Лемматизация строки

from nltk.stem import WordNetLemmatizer

WNlemmatizer = WordNetLemmatizer()
WNlemmatizer.lemmatize('wonderful', pos='a')
'wonderful'
Анализ тональности текста на Python

Давайте потренируемся!

Анализ тональности текста на Python

Preparing Video For Download...