计算R中两个词的余弦相似度?

calculate cosine similarity of two words in R?

我有一个文本文件,想为文件中的每个单词创建语义向量。然后我想提取大约 500 对单词的余弦相似度。 R 中最好的包是什么?

您可以使用 lsa 库。 cosine 库的函数给出了一个余弦相似度矩阵。它以矩阵作为输入。

如果我对你的问题理解正确,你想要两个词向量的余弦相似度。让我们从两个词的余弦相似度开始:

library(stringdist)
d <- stringdist("ca","abc",method="cosine")

结果d= 0.1835034符合预期。

该包中还包含一个函数 stringdistmatrix(),用于计算所有字符串对之间的距离:

> d <- stringdistmatrix(c('foo','bar','boo','baz'))
> d
  1 2 3
2 3    
3 1 2  
4 3 1 2

为了您的目的,您可以简单地使用类似这样的东西

stringdist(c("ca","abc"),c("aa","abc"),method="cosine")

结果一方面是 caaa 之间的距离度量,另一方面是 abcabc 之间的距离度量:

0.2928932 0.0000000

免责声明:stringdist 是全新的(2019 年 6 月),但似乎运行良好。我与图书馆的作者没有关联。