计算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")
结果一方面是 ca
和 aa
之间的距离度量,另一方面是 abc
与 abc
之间的距离度量:
0.2928932 0.0000000
免责声明:库 stringdist 是全新的(2019 年 6 月),但似乎运行良好。我与图书馆的作者没有关联。
我有一个文本文件,想为文件中的每个单词创建语义向量。然后我想提取大约 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")
结果一方面是 ca
和 aa
之间的距离度量,另一方面是 abc
与 abc
之间的距离度量:
0.2928932 0.0000000
免责声明:库 stringdist 是全新的(2019 年 6 月),但似乎运行良好。我与图书馆的作者没有关联。