Stemming a lemmatizace

Sentiment Analysis v Pythonu

Violeta Misheva

Data Scientist

Co je stemming?

Stemming je proces převodu slov na jejich kořenové tvary, i když výsledný kmen nemusí být platné slovo v daném jazyce.

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

Sentiment Analysis v Pythonu

Co je lemmatizace?

Lemmatizace je podobná stemmingu, ale na rozdíl od něj redukuje slova na kořeny, které jsou platnými slovy v daném jazyce.

stay, stays, staying, stayed ----> stay
house, houses, housing ----> house
Sentiment Analysis v Pythonu

Stemming vs. lemmatizace

Stemming

  • Produkuje kořeny slov
  • Rychlý a efektivní výpočet

Lemmatizace

  • Produkuje skutečná slova
  • Pomalejší než stemming, může záviset na slovním druhu
Sentiment Analysis v Pythonu

Stemming řetězců

from nltk.stem import PorterStemmer

porter = PorterStemmer()
porter.stem('wonderful')
'wonder'
Sentiment Analysis v Pythonu

Stemmery pro jiné jazyky

Snowball Stemmer: dánština, nizozemština, angličtina, finština, francouzština, němčina, maďarština, italština, norština, portugalština, rumunština, ruština, španělština, švédština

from nltk.stem.snowball import SnowballStemmer

DutchStemmer = SnowballStemmer("dutch")
DutchStemmer.stem("beginnen")
'begin'
Sentiment Analysis v Pythonu

Jak provést stemming věty?

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', '!']
Sentiment Analysis v Pythonu

Lemmatizace řetězce

from nltk.stem import WordNetLemmatizer

WNlemmatizer = WordNetLemmatizer()
WNlemmatizer.lemmatize('wonderful', pos='a')
'wonderful'
Sentiment Analysis v Pythonu

Pojďme procvičovat!

Sentiment Analysis v Pythonu

Preparing Video For Download...