NLTK库

您所在的位置:网站首页 self变复数 NLTK库

NLTK库

2023-07-25 08:28| 来源: 网络整理| 查看: 265

词形还原(Lemmatization)

词性还原,又称为Lemmatizetion

主要是把单词的词缀部分除去,从而得到单词的词干部分

词形还原(Lemmatization)与词干提取(stemming)的区别

词形还原是把单词还原成本身的形式:比如将‘cars’还原成car,把‘ate’还原成‘eat’,把‘handling’还原成‘handle’

词干提取则是提取单词的词干,比如将‘cars’提取出‘car’,将‘handling’提取出来‘handl’(单纯的去掉ing),对于‘ate’使用词干提取则不会有任何的效果。

使用NLTK库实现词形还原

实现词形还原的最简单的方法是利用NLTK库中提供的类,使用的方法如下:

#从nltk库中导入需要的类,并且进行实例化 from nltk.stem import WordNetLemmatizer wnl = WordNetLemmatizer()

 通过调用实例化对象wnl的lemmatize方法,传入需要进行词性还原的单词以及对应的词性,返回词性还原后的结果

#分别定义需要进行还原的单词与相对应的词性 words = ['cars','men','running','ate','saddest','fancier'] pos_tags = ['n','n','v','v','a','a'] for i in range(len(words)): print(words[i]+'--'+pos_tags[i]+'-->'+wnl.lemmatize(words[i],pos_tags[i])) cars--n-->car men--n-->men running--v-->run ate--v-->eat saddest--a-->sad fancier--a-->fancy

 注意,在使用词性进行还原的时候,一定要指明单词的词性!不然还原效果不好

使用NLTK库获取单词的词性,结合词形还原 来直接还原单词 """ __author__:shuangrui Guo __description__: """ from nltk import pos_tag from nltk.stem import WordNetLemmatizer from nltk.corpus import wordnet wnl = WordNetLemmatizer() # 获取单词的词性 def get_wordnet_pos(tag): if tag.startswith('J'): return wordnet.ADJ elif tag.startswith('V'): return wordnet.VERB elif tag.startswith('N'): return wordnet.NOUN elif tag.startswith('R'): return wordnet.ADV else: return None #分别定义需要进行还原的单词与相对应的词性 words = ['cars','men','running','ate','saddest','fancier'] for i in range(len(words)): print(words[i]+'--'+get_wordnet_pos(pos_tag([words[i]])[0][1])+'-->'+wnl.lemmatize(words[i],get_wordnet_pos(pos_tag([words[i]])[0][1])))

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3