Stemizare și lematizare

Analiza sentimentelor în Python

Violeta Misheva

Data Scientist

Ce este stemizarea?

Stemizarea transformă cuvintele în formele lor radacale, chiar dacă radăcina obținută nu este un cuvânt valid în limbă.

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

Analiza sentimentelor în Python

Ce este lematizarea?

Lematizarea este similară stemizării, dar spre deosebire de aceasta, reduce cuvintele la rădăcini care sunt cuvinte valide în limbă.

stay, stays, staying, stayed ----> stay
house, houses, housing ----> house
Analiza sentimentelor în Python

Stemizare vs. lematizare

Stemizare

  • Produce rădăcini ale cuvintelor
  • Rapidă și eficientă computațional

Lematizare

  • Produce cuvinte reale
  • Mai lentă decât stemizarea; poate depinde de partea de vorbire
Analiza sentimentelor în Python

Stemizarea șirurilor de caractere

from nltk.stem import PorterStemmer

porter = PorterStemmer()
porter.stem('wonderful')
'wonder'
Analiza sentimentelor în Python

Stemizatoare non-engleze

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'
Analiza sentimentelor în Python

Cum se stemizează o propoziție?

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', '!']
Analiza sentimentelor în Python

Lematizarea unui șir de caractere

from nltk.stem import WordNetLemmatizer

WNlemmatizer = WordNetLemmatizer()
WNlemmatizer.lemmatize('wonderful', pos='a')
'wonderful'
Analiza sentimentelor în Python

Să exersăm!

Analiza sentimentelor în Python

Preparing Video For Download...