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

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.

主站蜘蛛池模板: 大竹县| 阳泉市| 华阴市| 扶余县| 大同县| 山阳县| 保康县| 河东区| 德阳市| 凉山| 安塞县| 安岳县| 博白县| 巴林左旗| 昭通市| 玉田县| 抚松县| 蓬莱市| 正安县| 霍城县| 杭锦旗| 溆浦县| 定西市| 青海省| 湖口县| 延边| 手游| 德惠市| 抚顺市| 德惠市| 谢通门县| 鄢陵县| 乐亭县| 惠州市| 客服| 高州市| 玛纳斯县| 鹤壁市| 攀枝花市| 胶州市| 修文县|