[更新中]NLP – 词向量近义词Word2Vec、GloVe和BERT

近义词——词向量相似度

  在求词向量相似度的时候经常会用到以下几种方法:

  • 余弦相似度
  • 曼哈顿距离(L1范数)
  • 欧几里得距离(L2范数)
  • 明式距离(是前两种距离测度的推广),在极限情况下的距离是切比雪夫距离

  其中最常用的是余弦相似度,它表示的是两个向量之间夹角的余弦值



  两个向量间的余弦值可以通过使用欧几里得点积公式求出:


\mathbf{a} \cdot \mathbf{b}=||\mathbf{a}||||\mathbf{b}|| \cos \theta

  余弦相似性cos(θ)的计算公式为:


similarity =\cos (\theta)=\displaystyle\frac{A \cdot B}{||A|||| B ||}=\displaystyle\frac{\displaystyle\sum_{i=1}^{n} A_{i} \times B_{i}}{\sqrt{\displaystyle\sum_{i=1}^{n}\left(A_{i}\right)^{2}} \times \sqrt{\displaystyle\sum_{i=1}^{n}\left(B_{i}\right)^{2}}}

  因此,在python中求词向量的同义词的方法为:计算每个其他词语向量与这个词语向量的余弦相似度,然后找出最大的那个(使用np.argmax()函数)。

Word2Vec

参考

python中gensim库详解(word2vec) https://blog.csdn.net/gdh756462786/article/details/79108665/
https://segmentfault.com/a/1190000008173404
Word2Vec文档 https://radimrehurek.com/gensim/models/word2vec.html
300d中文词向量下载  https://github.com/Embedding/Chinese-Word-Vectors
预训练词向量中文维基百科,英文斯坦福glove预训练的词向量下载  https://blog.csdn.net/sinat_41144773/article/details/89875130
使用中文维基百科进行GloVe实验 https://blog.csdn.net/kisslotus/article/details/78298436
维基百科训练的中文词向量 https://www.cnblogs.com/Darwin2000/p/5786984.html   https://pan.baidu.com/s/1UpZeuqlNMl6XtTB5la53Xw