Text 文本数据的欧几里德与余弦

Text 文本数据的欧几里德与余弦,text,data-mining,information-retrieval,euclidean-distance,cosine-similarity,Text,Data Mining,Information Retrieval,Euclidean Distance,Cosine Similarity,如果我使用tf idf特征表示(或者只是文档长度规范化),那么欧几里德距离和(1-余弦相似性)基本相同吗?我读过的所有教科书和其他论坛、讨论都说余弦相似性更适合文本 我写了一些基本的代码来测试这一点,发现它们确实是可比较的,不是完全相同的浮点值,但它看起来像一个缩放版本。下面给出了简单演示文本数据的相似性结果。文本2是一条大约50字的大行,其余是10字的小行 余弦相似性: 0.0,0.2967,0.203,0.2058 欧几里德距离: 0.0,0.285,0.2407,0.2421 注:如果这个

如果我使用tf idf特征表示(或者只是文档长度规范化),那么欧几里德距离和(1-余弦相似性)基本相同吗?我读过的所有教科书和其他论坛、讨论都说余弦相似性更适合文本

我写了一些基本的代码来测试这一点,发现它们确实是可比较的,不是完全相同的浮点值,但它看起来像一个缩放版本。下面给出了简单演示文本数据的相似性结果。文本2是一条大约50字的大行,其余是10字的小行

余弦相似性: 0.0,0.2967,0.203,0.2058

欧几里德距离: 0.0,0.285,0.2407,0.2421


注:如果这个问题更适合交叉验证或数据科学,请让我知道。

如果您的数据标准化为单位长度,那么很容易证明这一点

Euclidean(A,B) = 2 - Cos(A,B)
如果| | | | |=| | | B | |=1,则该值保持。它在一般情况下不成立,它取决于执行规范化步骤的确切顺序。也就是说,如果您首先将文档标准化为单位长度,然后执行IDF加权,那么它将不会保持


不幸的是,人们使用各种变体,包括完全不同版本的IDF规范化。

那么文本的余弦距离度量有什么特殊优势吗?如果您有一个良好的稀疏向量实现,它可以更有效地计算。这是像Lucene这样的文本搜索引擎所利用的——你可以跳过所有的0值;对于欧几里德距离,只能跳过相同的属性(因此差异为0)。