日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Google开源word2vec,文本相似度计算工具

發布時間:2025/7/25 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Google开源word2vec,文本相似度计算工具 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Google開源word2vec,文本相似度計算工具

谷歌已經使用Deep Learning技術開發了許多新方法來解析語言,目前,谷歌開源了一款基于Deep Learning的學習工具——word2vec,這是首款面向大眾的Deep Learning學習工具。

word2vec(word to vector)顧名思義,這是一個將單詞轉換成向量形式的工具。通過轉換,可以把對文本內容的處理簡化為向量空間中的向量運算,計算出向量空間上的相似度,來表示文本語義上的相似度。

word2vec為計算向量詞提供了一種有效的連續詞袋(bag-of-words)和skip-gram架構實現,word2vec遵循Apache License 2.0開源協議。

如何轉換?

word2vec主要是將文本語料庫轉換成詞向量。它會先從訓練文本數據中構建一個詞匯,然后獲取向量表示詞,由此產生的詞向量可以作為某項功能用在許多自然語言處理和機器學習應用中。

在舉例子之前,引入余弦距離(Cosine distance)這個概念(摘自維基百科):

通過測量兩個向量內積空間的夾角的余弦值來度量它們之間的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1;并且其最小值是-1。從而兩個向量之間的角度的余弦值確定兩個向量是否大致指向相同的方向。兩個向量有相同的指向時,余弦相似度的值為1;兩個向量夾角為90°時,余弦相似度的值為0;兩個向量指向完全相反的方向時,余弦相似度的值為-1。在比較過程中,向量的規模大小不予考慮,僅僅考慮到向量的指向方向。余弦相似度通常用于兩個向量的夾角小于90°之內,因此余弦相似度的值為0到1之間。

然后可以通過distance工具根據轉換后的向量計算出余弦距離,來表示向量(詞語)的相似度。例如,你輸入“france”,distance工具會計算并顯示與“france”距離最相近的詞,如下:

Word Cosine distance-------------------------------------------spain 0.678515belgium 0.665923netherlands 0.652428italy 0.633130switzerland 0.622323luxembourg 0.610033portugal 0.577154russia 0.571507germany 0.563291catalonia 0.534176

在word2vec中主要有兩種學習算法:連續詞袋和連續skip-gram,switch-cbow允許用戶選擇學習算法。這兩種算法有助于預測其它句子的詞匯。

從詞轉換到句子或更長的文本

在一些特定的應用程序中,它還可以用于多個詞匯,例如,“san francisco”,這樣它就會通過預先處理數據集,讓其形成句子,找到與“san francisco”余弦距離最近的內容:

Word Cosine distance -------------------------------------------los_angeles 0.666175golden_gate 0.571522oakland 0.557521california 0.554623san_diego 0.534939pasadena 0.519115seattle 0.512098taiko 0.507570houston 0.499762chicago_illinois 0.491598

如何衡量詞向量質量

可能影響到詞向量質量的幾個因素:

  • 訓練數據的數量和質量
  • 向量的大小
  • 訓練算法

向量的質量對任何一個應用程序都非常重要,然而,根據復雜的任務來探索不同的超參數設置可能會過于苛刻。因此,我們設計了簡單的測試集,來快速評估矢量詞的質量。

詞聚類(Word clustering)

詞向量也可以從巨大的數據集中導出詞類,通過執行詞向量頂部的K-means聚類即可實現,腳本演示地址:./demo-classes.sh,最后輸出的是一個詞匯表文件和與之對應的類ID標識,例如:

carnivores 234 carnivorous 234 cetaceans 234 cormorant 234 coyotes 234 crocodile 234 crocodiles 234 crustaceans 234 cultivated 234 danios 234 . . . acceptance 412 argue 412 argues 412 arguing 412 argument 412 arguments 412 belief 412 believe 412 challenge 412 claim 412

性能

在多核CPU上(使用開關‘-threads N’),通過使用并行訓練可以顯著提高訓練速度,超參數選擇對性能也至關重要(包括速度和準確率),主要選擇有:

  • 架構:skip-gram(慢、對罕見字有利)vs CBOW(快)
  • 訓練算法:分層softmax(對罕見字有利)vs 負采樣(對常見詞和低緯向量有利)
  • 欠采樣頻繁詞:可以提高結果的準確性和速度(適用范圍1e-3到1e-5)
  • 維度詞向量:通常情況下表現都很好
  • 文本(window)大小:skip-gram通常在10附近,CBOW通常在5附近

去哪里收集訓練數據

隨著訓練數據的增加,詞向量質量也顯著提升,如果以研究為目的的,可以考慮線上數據集:

  • 來自維基百科的上億字符(在Matt Mahoney頁面底部,適用預處理perl腳本)
  • WMT11網站:多語言的大量文本數據。

快速入門

  • 代碼下載:http://word2vec.googlecode.com/svn/trunk/
  • 運行“make”編譯word2vec工具
  • 運行demo腳本:./demo-word.sh and ./demo-phrases.sh
  • 關于word2vec更多介紹,大家可以閱讀:https://code.google.com/p/word2vec/


    總結

    以上是生活随笔為你收集整理的Google开源word2vec,文本相似度计算工具的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。