【问题标题】:Find Python NLTK Wordnet Synsets for a each item of a list查找列表中每个项目的 Python NLTK Wordnet Synsets
【发布时间】:2023-04-07 03:26:02
【问题描述】:

我一直在学习基本的 python,但我是 NLTK 的新手。我想使用 nltk 为给定的单词列表提取下义词。当我手动输入每个术语时它工作正常,但当我尝试遍历列表项时它似乎不起作用。

这行得通:

from nltk.corpus import wordnet as wn

syn_sets = wn.synsets("car")

for syn_set in syn_sets:
    print(syn_set, syn_set.lemma_names())
    print(syn_set.hyponyms())

但是我如何让 Wordnet 方法处理类似的项目列表

token = ["cat", "dog", "car"]
syn_sets = wn.synsets((*get each item from the list*))

在一个循环中?

谢谢!

【问题讨论】:

  • 对不起,我正要回答这个问题,但我不明白你在问什么:D
  • 同义词集接受synsets(lemma, pos=None, lang='en') 的参数,因此它只接受1 个引理,您需要在for 循环中迭代引理,但您究竟想在这里实现什么?
  • 一般来说,我尝试为给定列表的每个词义提取完整的下义词列表(如上)
  • 经过一番研究,我尝试 import nltk.corpus as corpus wordnet = corpus.wordnet list = ["cat", "dog", "car"] for word in list: wordFromList = wordnet. synsets(word)[0] print(wordFromList, wordFromList.lemma_names(), wordFromList.hyponyms())
  • 它确实给出了我想要的输出,但只是每个名词的第一感觉......我可以以“car.n.01”,“car.n.”的样式列出一个列表。 02" 等,但 WN 似乎不接受此输入?

标签:
python
python-3.x
machine-learning
nltk
wordnet