4
votes

I want to find word stems with Wordnet. Does wordnet have a function for stemming? I use this import for my stemming, but it doesn't work as expected.

from nltk.stem.wordnet import WordNetLemmatizer
WordNetLemmatizer().lemmatize('Having','v')
3
@jacob - well done chap, I was just about to edit this into shape as well :) - Kev
If your input is in English, why would you want to stem when lemmas contain much more useful information about the token? - alvas

3 Answers

10
votes

Seems like you have to input a lowercase string to the lemmatize method:

>>> WordNetLemmatizer().lemmatize('having','v')
'have'
>>> WordNetLemmatizer().lemmatize('has','v')
'have'
2
votes

Try using one of the stemmers in nltk.stem module, such as the PorterStemmer. Here's an online demo of NLTK's stemmers: http://text-processing.com/demo/stem/

0
votes

No, Wordnet cannot stem the words. It can only give lemmatized words i.e. words which are actual words in the language. A stemmer may not always give real meaningful words.