Python 对于标记列表中的每个单词,只获取一个引理。
我只需要在wordnet的同义词集中为令牌列表中的每个单词指定一个单词,而不是所有单词。如何传递每个标记的第一个引理的索引。这是我的密码:Python 对于标记列表中的每个单词,只获取一个引理。,python,python-3.x,wordnet,Python,Python 3.x,Wordnet,我只需要在wordnet的同义词集中为令牌列表中的每个单词指定一个单词,而不是所有单词。如何传递每个标记的第一个引理的索引。这是我的密码: from nltk.corpus import wordnet as wn lemmas = [] text = ['one', 'oasis', 'halliday', 'avatar', 'time', 'school', 'year', 'thing', 'old', 'stack', 'every', 'world', 'egg',
from nltk.corpus import wordnet as wn
lemmas = []
text = ['one', 'oasis', 'halliday', 'avatar', 'time', 'school', 'year', 'thing', 'old', 'stack', 'every', 'world',
'egg', 'game', 'around', 'real', 'name', 'room', 'still', 'even', 'began', 'trailer', 'much',
'anorak', 'player']
for token in text:
lemmas += [synset.lemmas()[0].name() for synset in wn.synsets(token)]
print(list(set(lemmas)))
print(len(lemmas))
print(len(text))
文本长度为25,但引理长度为203。您可以执行以下操作:
from nltk.corpus import wordnet as wn
lemmas = []
text = ['one', 'oasis', 'halliday', 'avatar', 'time', 'school', 'year', 'thing', 'old', 'stack', 'every', 'world',
'egg', 'game', 'around', 'real', 'name', 'room', 'still', 'even', 'began', 'trailer', 'much',
'anorak', 'player']
for token in text:
synsets = wn.synsets(token)
if synsets:
lemmas.append(synsets[0].lemmas()[0].name())
print(list(set(lemmas)))
print(len(lemmas))
print(len(text))
输出
['old', 'stack', 'about', 'school', 'universe', 'evening', 'room', 'egg', 'game', 'one', 'player', 'thing', 'name', 'every', 'get_down', 'much', 'year', 'still', 'time', 'real_number', 'oasis', 'dawdler', 'embodiment', 'parka']
24
25
[]
引理的长度是24,因为单词halliday
似乎没有语法集。这一点得到以下方面的证实:
from nltk.corpus import wordnet as wn
synsets = wn.synsets('halliday')
print(synsets)
输出
['old', 'stack', 'about', 'school', 'universe', 'evening', 'room', 'egg', 'game', 'one', 'player', 'thing', 'name', 'every', 'get_down', 'much', 'year', 'still', 'time', 'real_number', 'oasis', 'dawdler', 'embodiment', 'parka']
24
25
[]
我不知道你在问什么。您能提供输入/输出示例吗?