意思相近的词,比如“西红柿”,“番茄”。
要计算词
的相似度
可以首先把词
转换为向量
,然后用余弦夹角
计算相似度。
如何把词转换为向量呢?
word2vector
可以,他就是把语料库中的词转换为向量。
(具体计算过程我还没有看明白,to-do
)我目前知道的一点是:用skip-gram的算法,首先讲所有的词用one-hot编码,定义一个三层的神经网络,然后进行训练,用隐藏层的权重作为词的向量表示。(to-do
)
我还知道另外一种方法,奇异值分解
,Singular Value Decomposition,词-文章矩阵,经过SVD,所有的词都可以转换为一个r维的向量,所有的文章也可以转换为一个r维的向量。从参考2上我看到这种方法是可以的,不过缺点是计算量大。
参考1:https://www.cnblogs.com/2010Freeze/archive/2012/07/08/2580632.html
参考2:https://www.jianshu.com/p/1405932293ea