我有gensim预训练模型,我试图使用for i,q in model.most_similar('politics'):
print (i)
查找最相似的单词,所以可以说,我有一个名为“ political”的单词,所以我要做的就是
def taxonomy(word):
for i,q in model.most_similar(word):
print (i)
这使我输出为单词列表。但是,当我将其放入函数中时,同样的事情是:
taxonomy('politics')
当我使用ValueError: cannot compute similarity with no input
时,出现错误:i
。我做错了吗?
如何将politics
附加到与我的单词同名的空白数组中。也就是说,目前的阵列名称应为def taxonomy(word):
word=[]
for i,q in model.most_similar(word):
word.append(i)
return word
,我已经这样做了,但是没有用
{{1}}
答案 0 :(得分:0)
查看您的最新编辑,需要修复一些问题。
由于您要使用与输入word
相同的名称来命名列表,因此一种解决方案是使用全局变量并使用politics
来创建列表。我已经调整了一些间距。例如,您是在for
循环内而不是之后返回列表。有关全局变量的信息,您可以找到文档here
def taxonomy(word):
g = globals()
g[word] = []
for i, q in model.most_similar(word):
g[word].append(i)
return g[word]
相关示例:出于显示目的,我使用enumerate
代替了model.most_similar
。您的函数会返回您在函数中创建的列表以及全局创建的列表,因此您可以在其他地方使用而无需再次调用该函数。
def taxonomy(word):
g = globals()
g[word] = []
for i, q in enumerate(word):
g[word].append(i)
return g[word]
taxonomy('politics')
[0, 1, 2, 3, 4, 5, 6, 7]
politics
[0, 1, 2, 3, 4, 5, 6, 7]
答案 1 :(得分:0)
你可以这样做 -
k = [i for i, j in model.most_similar(word)] 打印(k)