202
gooseeker集搜客
初識word2vec
word2vec是google在2013年推出的做詞嵌入(word embedding)的開源工具。簡單的說,它在給定的語料庫上訓練一個模型,然後會輸出所有出現在語料庫上的單詞的向量表示,這個向量稱為"word embedding"。基於這個向量表示,可以計算詞與詞之間的關係,例如相似性(同義詞等),語義關聯性(中國-北京=英國-倫敦)等。NLP(自然語言處理)中傳統的詞表示方法是one-hot representation,即把每個單詞表示成dim維的稀疏向量,dim等於詞匯量的大小。這個稀疏向量隻有一個維度(該單詞的index)上是1,其餘全是0。這個表示方法使得單詞之間是孤立的。Word embedding則是把單詞的表示降維到n維的稠密向量,n<<><>< span=""><><> 除了google自己的word2vec工具,各位對詞向量感興趣的牛人們也相繼編寫了各自不同的版本.包括:
- C 版本 https://word2vec.googlecode.com/svn/trunk/
- python版本 https://radimrehurek.com/gensim/
- JAVA版本 https://github.com/ansjsun/Word2VEC_java
- C++版本 https://github.com/jdeng/word2vec
下麵介紹word2vec的基本功能。
1. 計算相似的詞
word2vec可以計算詞與詞之間的距離,把詞看成向量空間上的一個點,distance看成向量空間上點與點的距離。如下圖所示,通過對已有文本進行訓練,可以計算出與釣魚島相似的詞,原則上文本量越大,訓練處的結果越準確。
根據詞與詞之間的相關性進行聚類:如下圖所示,摩托羅拉,諾基亞,蘋果、三星等手機品牌都聚類到一起。
訓練詞語短語之間的關係,通過東北和地區兩個詞,就能找出與這些詞相關的短語。
參考鏈接:
1. 利用word2vec對關鍵詞進行聚類
2. word2vec使用指導
3. 利用中文數據跑Google開源項目word2vec
最後更新:2017-01-09 14:08:09