Nlp tf idf权重是否影响余弦相似性?
我正在对文本文档进行聚类。我使用tf-idf和余弦相似性。然而,即使我使用这些方法,也有一些我并不真正理解的东西。tf idf权重是否影响两个文档之间的相似度计算 假设我有这两份文件: 1-高大的树木 2-高大的树木高大的树木高大的树木 尽管两个文档的tf-idf向量不同,但两个文档之间的相似度将为1。第二份文件通常比第一份文件具有更高的条款权重 假设两个向量的权重为(仅假设): v1(1.0,1.0) v2(5.0、8.0) 计算余弦相似性得到1.0 下面是共享相同项但权重不同的两个随机向量的草图 向量之间有一个明显的角度,因此权重应该起作用Nlp tf idf权重是否影响余弦相似性?,nlp,information-retrieval,Nlp,Information Retrieval,我正在对文本文档进行聚类。我使用tf-idf和余弦相似性。然而,即使我使用这些方法,也有一些我并不真正理解的东西。tf idf权重是否影响两个文档之间的相似度计算 假设我有这两份文件: 1-高大的树木 2-高大的树木高大的树木高大的树木 尽管两个文档的tf-idf向量不同,但两个文档之间的相似度将为1。第二份文件通常比第一份文件具有更高的条款权重 假设两个向量的权重为(仅假设): v1(1.0,1.0) v2(5.0、8.0) 计算余弦相似性得到1.0 下面是共享相同项但权重不同的两个随机向量的
这引发了一个问题,tf/idf权重在相似度计算中起到了什么作用?因为到目前为止我所理解的是,这里的相似性只关心术语的存在与否。首先,你的计算是有缺陷的。(1,1)和(5,8)之间的余弦相似性为 其中,
| | x |
是x
的欧几里德范数
因为到目前为止我所理解的是,这里的相似性只关心术语的存在与否
那不是真的。考虑
d1 = "hello world"
d2 = "hello world hello"
有tf矢量(此处无idf)
余弦相似性为0.95,而不是1
Idf可以产生进一步的影响。假设我们加上
d3 = "hello"
然后df(“hello”)=3
和df(“world”)=2
,并且d1
,d2
的tf-idf向量变为
v1' = [ 1. , 1.28768207]
v2' = [ 2. , 1.28768207]
余弦相似性略小,为0.94
(使用scikit learn计算Tf idf和余弦相似性;由于使用的Tf idf种类不同,其他软件包可能给出不同的数字。)我认为您在这里混合了两个不同的概念
我希望这能有所帮助。请参阅我对这个问题和问题的回答 基本上,如果您想同时使用tf-idf和余弦相似性,那么您可以获得tf-idf向量,并对其应用余弦相似性以获得最终结果。所以这里你要把余弦相似性(在这个例子中是tf-idf向量的点积)应用到tf-idf分数上
答案还有3个教程,你可以参考。他们解释了这是如何工作的。谢谢。余弦相似性并不能真正衡量距离。它测量角度。“这两者是相关的,但不是相同的。”拉尔斯曼,余弦的有趣观点。因为在欧几里德空间中,两个向量之间的差异只通过角度来测量,这不就是两个向量之间的距离吗?除了测量两个向量之间的角度之外,还有其他方法来测量两个向量之间的差异吗?@alvas:在欧几里德空间中,两个向量之间的距离通常是通过欧几里德距离来测量的。余弦相似性s可以转换为相异性1-s,但也就是说,所以称之为“距离”有点牵强。
d3 = "hello"
v1' = [ 1. , 1.28768207]
v2' = [ 2. , 1.28768207]