gpt4 book ai didi

python - TF-IDF 查找新文档和数据集之间的余弦相似度

转载 作者:太空狗 更新时间:2023-10-29 21:21:46 24 4
gpt4 key购买 nike

我有一个产品数据集的 TF-IDF 矩阵:

tfidf = TfidfVectorizer().fit_transform(words)

其中 words 是描述列表。这会产生一个 69258x22024 矩阵。

现在我想找出新产品与矩阵中的产品之间的余弦相似度,因为我需要找到与其最相似的 10 个产品。我使用与上面相同的方法对其进行矢量化。

但是,我无法将矩阵相乘,因为它们的大小不同(新矩阵可能有 6 个字,所以是 1x6 矩阵),所以我需要制作一个列数与原始列数相同的 TFIDFVectorizer。

我该怎么做?

最佳答案

我已经找到了它的工作方式。您需要先将新文档拟合到语料库 TFIDF 矩阵,而不是使用 fit_transform,如下所示:

queryTFIDF = TfidfVectorizer().fit(words)

现在我们可以使用 transform 函数将这个向量“转换”为矩阵形状:

queryTFIDF = queryTFIDF.transform([query])

其中query是查询字符串。
然后我们可以找到余弦相似度并找到 10 个最相似/相关的文档:

cosine_similarities = cosine_similarity(queryTFIDF, datasetTFIDF).flatten()
related_product_indices = cosine_similarities.argsort()[:-11:-1]

关于python - TF-IDF 查找新文档和数据集之间的余弦相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44862712/

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