簡體   English   中英

Word2Vec 中文

[英]Word2Vec with chinese

我一直在學習 Word2Vec(Deeplearning4j) 但我找不到任何關於它支持中文的內容。 從各種來源我了解到它也可以通過使用一些插件來為中文工作。

所以請告訴我任何中文插件,以及它應該如何用word2vec實現。

如果 Deeplearning4j Word2Vec 是否適合英語和中文(兩者)支持。 如果沒有,請通過它的鏈接建議一些更好的選擇。

語言:Java

我不懂 java,但我可以告訴你如何使用 python 來做到這一點:

import jieba
import gensim
q = [u'我到河北省來', u'好棒好棒噠']
z = [list(jieba.cut(i)) for i in q]
model = gensim.models.Word2Vec(z, min_count=1)
model.similar_by_word(u'我')

結果不好,因為訓練數據很少。 如果添加更多數據,結果會更好。 而對於你的情況,你可以使用Java編寫的Tokenizer,和jieba庫做同樣的工作,然后將正確格式的數據放入模型並訓練它。

word2vec 只是一個詞向量的數據集,在大多數情況下,它是一個文本文件,每行包含一個“詞”,它的詞向量用空格(或制表符)分隔。

你可以用任何編程語言訓練這個 word2vec。 加載文本文件對您來說應該不是問題。

就中文而言,我建議使用 3 個工具:

1) Character-enhanced Word Embedding (c++)

陳新雄、徐磊、劉志遠、孫茂松、欒煥波。 字符和詞嵌入的聯合學習。 第 25 屆國際人工智能聯合會議 (IJCAI 2015)。

請注意,CWE 的輸出以制表符 (\\t) 分隔

2) Facebook的快速文本(c ++)

Fasttext 可以訓練中文,它是建立在字符 n-gram 上的。 在我的論文中:

Aicyber 的 IALP 2016 共享任務系統:字符增強詞向量和增強神經網絡

我將中文的最小字符 n-gram 設置為 1。

3)Gensim(蟒蛇)

@Howardyan 向您展示了使用 gensim 的代碼,包括標記器。 請注意,gensim 的默認訓練方法是 CBOW。 Skip-gram 可能會給你更好的結果,這取決於你的數據。 這是對gensim 和 Fasttext的比較

PS:兩者1)2)都支持訓練原始word2vec。

正如其他評論中提到的,word2vec 是一組帶有預訓練英文詞向量的詞。 同樣,您可以找到其他包含中文詞向量的數據集。 我正在使用 python,但我認為編程語言並不重要,因為您要查找的是數據集而不是模型或程序。

以下是騰訊人工智能實驗室訓練的中文詞嵌入數據集,包含超過 800 萬個中文詞組: https : //ai.tencent.com/ailab/nlp/en/embedding.html

Deeplearning4j 可以支持任何語言。 您只需要實現一個自定義標記器。 請參閱: https : //github.com/deeplearning4j/deeplearning4j-nlp-addons以獲取日語示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM