私は Word2Vec(Deeplearning4j) について学んでいますが、中国語をサポートするものは何も見つかりませんでした。さまざまな情報源から、プラグインを使用することで中国語でも機能することがわかりました。
中国語用のプラグインと、word2vec での実装方法を教えてください。
そして、Deeplearning4j Word2Vec が英語と中国語 (両方) のサポートに適しているかどうか。そうでない場合は、リンクを使用してより良い選択肢を提案してください。
言語 : Java
私は 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 つのツールをお勧めします。
Xinxiong Chen、Lei Xu、Zhiyuan Liu、Maosong Sun、Huanbo Luan。文字と単語の埋め込みの共同学習。第 25 回人工知能に関する国際合同会議 (IJCAI 2015)。
CWE の出力はタブ (\t) で区切られていることに注意してください。
Fasttext は中国語でトレーニングできます。これは文字 n-gram で構築されています。私の論文では:
Aicyber の IALP 2016 共有タスクのシステム: 文字強化された単語ベクトルと強化されたニューラル ネットワーク
中国語の最小文字 n-gram を 1 に設定しました。
3) Gensim (パイソン)
@Howardyan は、トークナイザーを含む gensim を使用するためのコードを示していました。gensim のデフォルトのトレーニング方法は CBOW であることに注意してください。データによっては、スキップグラムの方が良い結果が得られる場合があります。gensim と Fasttextの比較を次に示します。
PS: 両方とも 1) 2) 元の word2vec のトレーニングをサポートします。