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

标签 python nlp nltk list-comprehension wordnet

使用这个 [x for x in wn.all_synsets('n')]我能够得到一份 list allnouns在 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' object has no attributeTypeError: 'Synset' object is not subscriptable<bound method Synset.name of Synset('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 - 从 NLTK for Python 中的同义词集列表中提取单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30812859/

相关文章:

python - gae-sessions 和 nose 的错误

python - 多边形周长

python - 如何实现这种运动风格的边界或碰撞?

python - 使用 colab 时没有这样的文件或目录 'nltk_data/corpora/stopwords/English'

python - 不同长度向量的余弦相似度?

python 导入突然不起作用

java - 斯坦福核心 NLP : Splitting sentences from text

machine-learning - 我应该使用哪种聚类算法对职位进行聚类?

显示句子中单词上下文的 api

Python:用短语标记