微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从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不是属性,而是一个函数

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐