微信公众号:数据运营人
本系列为博主的读书学习笔记,如需转载请注明出处。
第三章 加工原料文本
3.6 规范化文本
词干提取器
所谓的词干提取器就是去除词缀得到词根的过程——得到单词最一般的写法。对于一个词的形态词根,词干并不需要完全相同;相关的词映射到同一个词干一般能导到满意的结果,即使该词干不是词的有效根。例如 “stemmer”、“stemming”和“stemmed”是基于词根“stem”。
import nltk
raw = """DENNIS: Listen, strange women lying in ponds distributing swords
... is no basis for a system of government. Supreme executive power derives from
... a mandate from the masses, not from some farcical aquatic ceremony."""
tokens = nltk.word_tokenize(raw)
# porter和Lancaster词干提取器按照它们自己的规则剥离词缀
porter = nltk.PorterStemmer()
lancaster = nltk.LancasterStemmer()
print([porter.stem(t) for t in tokens])
print([lancaster.stem(t) for t in tokens])
词形归并
WordNet词形归并器删除词缀产生的词都是在它的字典中的词。这个额外的检查过程使词形归并器比刚才提到的词干提取器要慢。 请注意, 它并没有处理“ lying”, 但它将“ women” 转换为“ woman”。
```python
wnl = nltk.WordNetLemmatizer()
print([wnl.lemmatize(t) for t in tokens])