Stemming och lemmatisering

Sentimentanalys i Python

Violeta Misheva

Data Scientist

Vad är stemming?

Stemming innebär att ord reduceras till sina rotformer, även om stammen inte är ett giltigt ord i språket.

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

Sentimentanalys i Python

Vad är lemmatisering?

Lemmatisering liknar stemming, men till skillnad från stemming reduceras orden till rotformer som är giltiga ord i språket.

stay, stays, staying, stayed ----> stay
house, houses, housing ----> house
Sentimentanalys i Python

Stemming vs. lemmatisering

Stemming

  • Producerar ordstammar
  • Snabb och beräkningseffektiv

Lemmatisering

  • Producerar faktiska ord
  • Långsammare än stemming och kan bero på ordklass
Sentimentanalys i Python

Stemming av strängar

from nltk.stem import PorterStemmer

porter = PorterStemmer()
porter.stem('wonderful')
'wonder'
Sentimentanalys i Python

Stemmers för andra språk

Snowball Stemmer: danska, nederländska, engelska, finska, franska, tyska, ungerska, italienska, norska, portugisiska, rumänska, ryska, spanska, svenska

from nltk.stem.snowball import SnowballStemmer

DutchStemmer = SnowballStemmer("dutch")
DutchStemmer.stem("beginnen")
'begin'
Sentimentanalys i Python

Hur stemmar man en mening?

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', '!']
Sentimentanalys i Python

Lemmatisering av en sträng

from nltk.stem import WordNetLemmatizer

WNlemmatizer = WordNetLemmatizer()
WNlemmatizer.lemmatize('wonderful', pos='a')
'wonderful'
Sentimentanalys i Python

Nu kör vi en övning!

Sentimentanalys i Python

Preparing Video For Download...