将余弦相似度分数过滤为熊猫数据帧

时间:2017-08-29 20:26:09

标签: python pandas dataframe tf-idf cosine-similarity

我试图计算语料库中所有可能的文本文档组合之间的余弦相似度得分。我使用scikit-learn的cosine_similarity函数来执行此操作。由于我的语料库很庞大(3000万个文档),因此语料库中文档之间可能的组合数量太多而无法存储为数据帧。因此,我希望在将它们存储在数据帧中以供将来使用之前,使用阈值来过滤相似性得分,因为它们正在被创建。当我这样做时,我还想将每个文档的相应ID分配给数据帧的索引和列名。因此,对于数据框中的数据值,每个值都应具有索引(行)和列名称,这些文档ID是值为余弦相似度得分的文档ID。

similarity_values = pd.DataFrame(cosine_similarity(tfidf_matrix), index = IDs, columns= IDs)

这段代码在没有过滤部分的情况下运行良好。 IDs是一个列表变量,其所有文档ID都与tfidf矩阵相对应。

similarity_values = pd.DataFrame(cosine_similarity(tfidf_matrix)>0.65, index = IDs, columns= IDs)

此修改有助于过滤,但相似性得分转换为布尔值(True / False)。如何在此处保留实际的余弦相似度分数,而不是布尔值True / False值。

0 个答案:

没有答案