gpt4 book ai didi

Python - tf-idf 预测新文档的相似度

转载 作者:太空狗 更新时间:2023-10-30 00:01:49 28 4
gpt4 key购买 nike

灵感来自 this 回答,我正在尝试找到训练有素的 tf-idf 矢量器和新文档之间的余弦相似度,并返回相似的文档。

下面的代码找到第一个向量的余弦相似度,而不是新查询

>>> from sklearn.metrics.pairwise import linear_kernel
>>> cosine_similarities = linear_kernel(tfidf[0:1], tfidf).flatten()
>>> cosine_similarities
array([ 1. , 0.04405952, 0.11016969, ..., 0.04433602,
0.04457106, 0.03293218])

由于我的训练数据量很大,循环遍历整个经过训练的向量化器听起来不是个好主意。如何推断新文档的向量,并找到相关文档,与下面的代码相同?

>>> related_docs_indices = cosine_similarities.argsort()[:-5:-1]
>>> related_docs_indices
array([ 0, 958, 10576, 3277])
>>> cosine_similarities[related_docs_indices]
array([ 1. , 0.54967926, 0.32902194, 0.2825788 ])

最佳答案

通过将向量空间模型(即 tf-idf 和余弦相似度)与 bool 模型 相结合,可以部分解决此问题。这些是信息论的概念,它们在 ElasticSearch 中使用(并得到很好的解释) - 一个非常好的搜索引擎。

想法很简单:将文档存储为倒排索引。这相当于一本书末尾出现的单词,其中包含对提到它们的页面(文档)的引用。

它不会为所有文档计算 tf-idf 向量,它只会为至少具有一个(或指定阈值)共同单词的文档计算它。这可以简单地通过循环查询文档中的词来完成,使用倒排索引找到也有这个词的文档并计算它们的相似度。

关于Python - tf-idf 预测新文档的相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39688927/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com