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

Аналіз тональності в Python

Violeta Misheva

Data Scientist

Що таке стемінг?

Стемінг — це перетворення слів до їхніх кореневих форм, навіть якщо сам корінь не є словом у мові.

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

Аналіз тональності в Python

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

Лематизація подібна до стемінгу, але на відміну від нього зводить слова до коренів, що є дійсними словами мови.

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

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

Стемінг

  • Повертає корені слів
  • Швидкий і обчислювально ефективний

Лематизація

  • Повертає справжні слова
  • Повільніша за стемінг і може залежати від частини мови
Аналіз тональності в Python

Стемінг рядків

from nltk.stem import PorterStemmer

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

Немовні англійські стемери

Snowball Stemmer: Danish, Dutch, English, Finnish, French, German, Hungarian,Italian, Norwegian, Portuguese, Romanian, Russian, Spanish, Swedish

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...