机器学习之NLP常见函数整理

机器学习之NLP常见函数整理

一、nltk包函数

1.1 词干提取

当遇到两个或两个以上单词具有共同根源的情况。 例如,agreed, agreeing 和 agreeable这三个词具有相同的词根。 涉及任何这些词的搜索应该把它们当作是根词的同一个词。所以需要进行词干提取。在NLTK库中有一些方法来完成这个链接,并给出显示根词的输出。 以下程序使用Porter Stemming算法进行词干提取。

from nltk.stem.porter import PorterStemmer
stemmer=PorterStemmer() #词干提取函数
print(stemmer.stem('flowers'))
print(stemmer.stem('zeros'))
print(stemmer.stem('stemmer'))
print(stemmer.stem('sixties'))
print(stemmer.stem('sixty'))
print(stemmer.stem('goes'))
print(stemmer.stem('go'))
#结果
flower
zero
stemmer
sixti
sixti
goe
go

次干提取函数适用于很多函数,但不是万能的。

1.2 词形还原

简单说来,词形还原就是去掉单词的词缀,提取单词的主干部分,通常提取后的词汇会是字典中的单词,不同于词干提取(stemming),提取后的单词不一定会出现在词汇中。比如,单词“cups”词形还原后的单词为“cup”,单词“ate”词形还原后的单词为“eat”。在下面的程序中,使用WordNet词法数据库进行词形化。

import nltk
nltk.download('wordnet') #第一次进行词性还原时,需要下载wordnet
from nltk.stem import WordNetLemmatizer
wordnet_lemmatizer=WordNetLemmatizer() #词形还原
print(wordnet_lemmatizer.lemmatize('flowers'))
print(wordnet_lemmatizer.lemmatize('zeros'))
print(wordnet_lemmatizer.lemmatize('stemmer'))
print(wordnet_lemmatizer.lemmatize('sixties'))
print(wordnet_lemmatizer.lemmatize('sixty'))
print(wordnet_lemmatizer.lemmatize('goes'))
print(wordnet_lemmatizer.lemmatize('go'))
#结果
flower
zero
stemmer
sixty
sixty
go
go
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值