word2vec相似度计算_文档相似度助力搜索引擎
幾種簡單相似度算法:
1、簡單共有詞判斷
假設現有文本A和B,將A、B經過分詞、去停用詞之后形成集合A={a1,a2,...,an}和集合B={b1,b2,...,bn}。用NUM(A∩B)表示集合A與集合B的交集的元素個數,用NUM(A∪B)表示集合A與集合B的并集元素個數,則相似度為:
2、VSM向量空間模型
VSM空間向量模型,該模型將文檔映射到向量空間當中。假設文檔用ai表示文檔集A中的第i個文本,則ai表示為:ai={w1,w2,...,wi}其中wi的取值有兩種方式,如下:
1)布爾類型,用0或1表示該詞條是否在ai中出現,出現為1,否則為0.
例: 詞袋: #長度為7
a1 = ( 1, 1, 1, 0, 0, 0, 0 ) #長度為7
a2 = ( 0, 1, 1, 0, 1, 1, 0 ) #長度為7
2)wi表示該詞在ai中的權重,即
其中,N代表文檔ai中詞的總數,Nj表示詞語i在文檔ai中出現的次數。
經過以上兩種方法得到空間向量之后,采用余弦算法計算相似度即可。
3、Simhash
simhash的主要思想是降維,將文本分詞結果從一個高維向量映射成一個0和1組成的bit指紋(fingerprint),然后通過比較這個二進制數字串的差異進而來表示原始文本內容的差異。
4、TF-IDF算法
使用TF-IDF算法得到文本對應的詞向量,然后利用余弦算法求相似度。其中TF表示詞頻,即一個詞在這篇文本中出現的頻率;IDF表示逆文檔頻率,即一個詞在所有文本中出現的頻率倒數,具體如下:
通過該公式獲得每一個詞的權重,然后組成每個文本向量。使用余弦算法計算相似度。
優缺點:TF-IDF的優點是簡單快速,而且容易理解。缺點是有時候用詞頻來衡量文章中的一個詞的重要性不夠全面,有時候重要的詞出現的可能不夠多,而且這種計算無法體現位置信息,無法體現詞在上下文的重要性。如果要體現詞的上下文結構,那么你可能需要使用word2vec算法來支持
5、WORD2VEC算法
由第4個算法可以看出缺陷,word2vec算法增加了自然語言的理解,關注到詞與詞之間的關系,比如近義詞,能夠體現詞的上下文結構。借助公布的大語料庫訓練的標準模型來計算自己的文檔相似度。
總結
以上是生活随笔為你收集整理的word2vec相似度计算_文档相似度助力搜索引擎的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xpath contains_Pytho
- 下一篇: 用python处理excel 数据分析_