从NLTK for Python中的同义词列表中提取单词

在wn.all_synsets(‘n’)中使用这个[x for x]我可以在NLTK的帮助下从Wordnet获取所有名词的所有名词.

列表allnouns看起来像这个synset(‘pile.n.01’),synset(‘compost_heap.n.01’),synset(‘mass.n.03’)等等.现在我可以使用allnouns [2]获得任何元素,这应该是synset(‘mass.n.03’).

我想只提取单词mass但由于某种原因我不能把它当成字符串而我尝试的所有东西都显示一个AttributeError:’synset’对象没有属性或TypeError:’synset’对象不是可订阅的或< bound方法synsetsynset.name('mass.n.03')>如果我尝试使用.name或.pos

解决方法:

尝试这个解决方案怎么样:

>>>> from nltk.corpus import wordnet as wn
>>>> wn.synset('mass.n.03').name().split(".")[0]
'mass'

对于你的情况:

>>>> allnouns = [x for x in wn.all_synsets('n')]  

第23个索引的项目是“synset(‘substance.n.07’)”.现在,您可以提取名称字段

>>>> allnouns[23].name().split(".")[0]
'substance'   #output

如果您只想要列表中“名词”类别的同义词集的“名称”字段,请使用:

>>>> [x.name().split(".")[0] for x in wn.all_synsets('n')]

应该准确地给出你需要的结果.

注意:在wordnet中,name不是属性,而是一个函数

相关文章

python方向·数据分析   ·自然语言处理nlp   案例:中...
原文地址http://blog.sina.com.cn/s/blog_574a437f01019poo....
ptb数据集是语言模型学习中应用最广泛的数据集,常用该数据集...
 Newtonsoft.JsonNewtonsoft.Json是.Net平台操作Json的工具...
NLP(NaturalLanguageProcessing)自然语言处理是人工智能的一...
做一个中文文本分类任务,首先要做的是文本的预处理,对文本...