我在python中有以下函数
def find_new_similar(tfidf_matrix2, index, tfidf_matrix, top_n = 1):
cosine_similarities = linear_kernel(tfidf_matrix2[index:index+1], tfidf_matrix).flatten()
related_docs_indices = [i for i in cosine_similarities.argsort()[::-1] if i != index]
return [(index, cosine_similarities[index]) for index in related_docs_indices][0:top_n]
当我打电话给他时,我得到了这样的信息:
>>> find_new_similar(tfidf_matrix2, 40, tfidf_matrix)
([(260816, 0.55759049663331683)])
它是related_docs_indices
的索引和cosine_similarities
的结果,索引作为函数的输入。我还想返回传递给函数的初始索引i
。我试过:
def find_new_similar(tfidf_matrix2, index, tfidf_matrix, top_n = 1):
cosine_similarities = linear_kernel(tfidf_matrix2[index:index+1], tfidf_matrix).flatten()
related_docs_indices = [i for i in cosine_similarities.argsort()[::-1] if i != index]
return [(index, cosine_similarities[index]) for index in related_docs_indices][0:top_n], index
例如,只需在return命令的末尾添加,index
。但这会产生:
>>> find_new_similar(tfidf_matrix2, 40, tfidf_matrix)
([(260816, 0.55759049663331683)], 0)
但我真的在期待
([(260816, 0.55759049663331683)], 40)
提前谢谢
索引的值正在列表中被替换(**在下面的代码中)
因此,重命名迭代变量将得到所需的结果
相关问题 更多 >
编程相关推荐