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

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.

主站蜘蛛池模板: 尤溪县| 大英县| 额尔古纳市| 郑州市| 随州市| 高平市| 巢湖市| 红河县| 吉安县| 横山县| 双城市| 德昌县| 察哈| 凌海市| 黄梅县| 玉林市| 阜阳市| 达州市| 梁平县| 开远市| 华池县| 昂仁县| 稷山县| 乌苏市| 三亚市| 庐江县| 门源| 安宁市| 镇雄县| 阳朔县| 新建县| 兴仁县| 将乐县| 肥乡县| 郑州市| 堆龙德庆县| 濉溪县| 视频| 淅川县| 商洛市| 岢岚县|