wordnet.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # Natural Language Toolkit: WordNet stemmer interface
  2. #
  3. # Copyright (C) 2001-2020 NLTK Project
  4. # Author: Steven Bird <stevenbird1@gmail.com>
  5. # Edward Loper <edloper@gmail.com>
  6. # URL: <http://nltk.org/>
  7. # For license information, see LICENSE.TXT
  8. from nltk.corpus.reader.wordnet import NOUN
  9. from nltk.corpus import wordnet
  10. class WordNetLemmatizer(object):
  11. """
  12. WordNet Lemmatizer
  13. Lemmatize using WordNet's built-in morphy function.
  14. Returns the input word unchanged if it cannot be found in WordNet.
  15. >>> from nltk.stem import WordNetLemmatizer
  16. >>> wnl = WordNetLemmatizer()
  17. >>> print(wnl.lemmatize('dogs'))
  18. dog
  19. >>> print(wnl.lemmatize('churches'))
  20. church
  21. >>> print(wnl.lemmatize('aardwolves'))
  22. aardwolf
  23. >>> print(wnl.lemmatize('abaci'))
  24. abacus
  25. >>> print(wnl.lemmatize('hardrock'))
  26. hardrock
  27. """
  28. def __init__(self):
  29. pass
  30. def lemmatize(self, word, pos=NOUN):
  31. lemmas = wordnet._morphy(word, pos)
  32. return min(lemmas, key=len) if lemmas else word
  33. def __repr__(self):
  34. return "<WordNetLemmatizer>"
  35. # unload wordnet
  36. def teardown_module(module=None):
  37. from nltk.corpus import wordnet
  38. wordnet._unload()