官术网_书友最值得收藏!

Stemming and lemmatization

Word stemming is a process of reverting an inflected or derived word to its root form. For instance, machine is the stem of machines, and learning and learned are generated from learn as their stem.

The word lemmatization is a cautious version of stemming. It considers the PoS of a word when conducting stemming. We will discuss these two text preprocessing techniques, stemming and lemmatization, in further detail shortly. For now, let's take a quick look at how they're implemented respectively in NLTK by performing the following steps:

  1. Import porter as one of the three built-in stemming algorithms (LancasterStemmer and SnowballStemmer are the other two) and initialize the stemmer as follows:
>>> from nltk.stem.porter import PorterStemmer
>>> porter_stemmer = PorterStemmer()
  1. Stem machines and learning, as shown in the following codes:
>>> porter_stemmer.stem('machines')
'machin'
>>> porter_stemmer.stem('learning')
'learn'
Stemming sometimes involves chopping of letters if necessary, as we can see in machin in the preceding command output.
  1. Now import a lemmatization algorithm based on the built-in WordNet corpus and initialize a lemmatizer:
>>> from nltk.stem import WordNetLemmatizer
>>> lemmatizer = WordNetLemmatizer()


Similar to stemming, we lemmatize machines, learning:

>>> lemmatizer.lemmatize('machines')
'machine'
>>> lemmatizer.lemmatize('learning')
'learning'

Why is learning unchanged? It turns out that this algorithm only lemmatizes on nouns by default.

主站蜘蛛池模板: 永泰县| 新建县| 锡林浩特市| 神木县| 临安市| 绥化市| 北京市| 上杭县| 琼中| 无为县| 扶沟县| 华阴市| 昭觉县| 安图县| 芦山县| 土默特右旗| 怀化市| 喜德县| 中超| 台北市| 双鸭山市| 合江县| 濮阳市| 抚松县| 秦皇岛市| 双柏县| 中山市| 宁乡县| 南丰县| 绍兴市| 英吉沙县| 靖江市| 紫金县| 武安市| 余姚市| 新乡县| 贵南县| 云梦县| 楚雄市| 育儿| 柘城县|