Stemming en lemmatization

Sentimentanalyse in Python

Violeta Misheva

Data Scientist

Wat is stemming?

Stemming zet woorden om naar hun stam, ook als die stam geen echt woord is.

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

Sentimentanalyse in Python

Wat is lemmatization?

Lemmatization lijkt op stemming, maar reduceert woorden tot geldige woorden in de taal.

stay, stays, staying, stayed ----> stay
house, houses, housing ----> house
Sentimentanalyse in Python

Stemming vs. lemmatization

Stemming

  • Levert stammen van woorden
  • Snel en efficiënt

Lemmatization

  • Levert echte woorden
  • Langzamer; kan afhangen van de woordsoort
Sentimentanalyse in Python

Stemming van strings

from nltk.stem import PorterStemmer

porter = PorterStemmer()
porter.stem('wonderful')
'wonder'
Sentimentanalyse in Python

Niet-Engelse stemmers

Snowball Stemmer: Deens, Nederlands, Engels, Fins, Frans, Duits, Hongaars, Italiaans, Noors, Portugees, Roemeens, Russisch, Spaans, Zweeds

from nltk.stem.snowball import SnowballStemmer

DutchStemmer = SnowballStemmer("dutch")
DutchStemmer.stem("beginnen")
'begin'
Sentimentanalyse in Python

Hoe stem je een zin?

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', '!']
Sentimentanalyse in Python

Lemmatization van een string

from nltk.stem import WordNetLemmatizer

WNlemmatizer = WordNetLemmatizer()
WNlemmatizer.lemmatize('wonderful', pos='a')
'wonderful'
Sentimentanalyse in Python

Laten we oefenen!

Sentimentanalyse in Python

Preparing Video For Download...