我有一个文本文件,并希望为文件中的每个单词创建语义向量。然后我想提取大约500对单词的余弦相似度。 R中最好的包装是什么?
答案 0 :(得分:1)
您可以使用static class GlobalProperties
{
private static ObservableCollection<string> _mylist = new ObservableCollection<string>();
public static ObservableCollection<string> MyList
{
get
{
return _mylist;
}
set
{
if (_mylist == value) return; // suggested on comment. Relocate if you still need to run GotUpdated()
_mylist = value;
GotUpdated();
_mylist.CollectionChanged += (sender, e) => GotUpdated();
}
}
public static Action GotUpdated { private get; set; }
}
库。库的lsa
函数给出了余弦相似度矩阵。它需要一个矩阵作为输入。
答案 1 :(得分:1)
如果我正确理解了您的问题,则需要两个单词向量的余弦相似度。让我们从两个词的余弦相似性开始:
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月),但运行良好。我与图书馆的作者无关。