gpt4 book ai didi

nlp - tf-idf 权重会影响余弦相似度吗?

转载 作者:行者123 更新时间:2023-12-04 19:42:02 27 4
gpt4 key购买 nike

我正在对文本文档进行聚类。我正在使用 tf-idf 和余弦相似度。然而,即使我正在使用这些措施,有些事情我还是不太明白。 tf-idf 权重会影响两个文档之间的相似度计算吗?

假设我有这两个文件:

1- 高树。

2- 高树 高树 高树 高树。

那么两篇文档的相似度会是1,虽然两篇文档的tf-idf向量不同。与第一个文档相比,第二个通常应该具有更高的术语权重。

假设两个向量的权重是(假设):

v1(1.0, 1.0)

v2(5.0, 8.0)

计算余弦相似度得到 1.0。

这是两个随机向量的草图,它们共享相同的项但具有不同的权重。

向量之间有一个明显的角度,所以权重应该起作用!

enter image description here

这引发了一个问题,tf/idf 权重在相似度计算中的作用在哪里?因为目前我的理解是这里的相似度只关心词项的存在与否。

最佳答案

首先,您的计算存在缺陷。 (1, 1) 和(5, 8) 的余弦相似度为

1*5 + 1*8 / ||(1, 1)|| * ||(5, 8)||
= 13 / (1.4142 * 9.434)
= .97

其中 ||x||x 的欧几里德范数。

Because what I understood so far is that the similarity here only cares about the presence and absence of the terms.

那不是真的。考虑

d1 = "hello world"
d2 = "hello world hello"

使用 tf 向量(这里没有 idf)

v1 = [1, 1]
v2 = [2, 1]

余弦相似度是0.95,不是1。

Idf 可以产生进一步的效果。假设我们添加

d3 = "hello"

然后 df("hello") = 3df("world") = 2,以及 d1 的 tf-idf 向量>, d2 变成

v1' = [ 1.        ,  1.28768207]
v2' = [ 2. , 1.28768207]

余弦相似度略小,为 0.94。

(使用 scikit-learn 计算的 Tf-idf 和余弦相似度;由于使用的 tf-idf 种类不同,其他软件包可能给出不同的数字。)

关于nlp - tf-idf 权重会影响余弦相似度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19270759/

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