【发布时间】:2018-10-27 12:57:26
【问题描述】:
我想要一些关于理解 TF-IDF 向量结果的方法以及可能的替代方法的反馈。
现在,我有两个文本语料库。目标是找出每个语料库中的哪些文档最相似。
当我找到一个有趣的匹配时,我想知道为什么,所以我实现了一个名为why_match() 的简单函数,但我想帮助了解它是否是一种有效的方法。
它是这样工作的:
def why_match(doc_vector_a, doc_vector_b, sklearn_tfidfvectorizer):
distance = abs(doc_vector_a - doc_vector_b)
nearest_words = np.array((distance != 0) & (distance < 0.0015))
vocab = np.array(vectorizer.get_feature_names())
keywords = vocab[nearest_words]
return keywords
这个想法应该是返回所有比某个阈值 (0.0015) 更接近的关键字,而不是 0(很可能是因为该词不在任一文档中)。
这是在 TF-IDF 中“解释”亲密度的有效方式吗?我的结果是不错的,但它似乎对非常通用的词赋予了很大的价值,这很不幸,但对我的任务很有说服力。
【问题讨论】:
标签: text scikit-learn nlp