回答:
はい、事前に訓練されたモデルを活用できます。最も有名なものは、GoogleNewsDataトレーニングモデルです。こちらで見つけることができます。
事前に訓練された単語とフレーズのベクトルhttps://drive.google.com/file/d/0B7XkCwpI5KDYNlNUTTlSS21pQmM/edit?usp=sharing
次に、以下に示すように、gensimを使用してモデルにバイナリ形式でベクトルを読み込むことができます。
>>> model = Word2Vec.load_word2vec_format('/tmp/vectors.txt', binary=False) # C text format
>>> model = Word2Vec.load_word2vec_format('/tmp/vectors.bin', binary=True) # C binary format
以下は、英語版ウィキペディアの別の事前構築モデルです。
ソース:https : //github.com/idio/wiki2vec/
事前作成モデルを使用する
Get python 2.7
Install gensim: pip install gensim
uncompress downloaded model: tar -xvf model.tar.gz
Load model in gensim:
from gensim.models import Word2Vec
model = Word2Vec.load("path/to/word2vec/en.model")
model.similarity('woman', 'man')
スタンフォードNLPグローブも使用できます
これは、事前に訓練されたword2vecモデルの素晴らしいコンパイルです。
事前トレーニング済みの追加モデル:
gensimとコードの詳細はこちら:https ://radimrehurek.com/gensim/models/word2vec.html
同様の質問があるQuoraフォーラム
model = Word2Vec.load(fname) # you can continue training with the loaded model!
大きなコーパスでのトレーニングに基づいた分散表現(グローブ)は、スタンフォードNLPグループから直接入手できます。これらの単語の埋め込みをアプリケーションで直接使用できます(1つのホットエンコードされたベクトルを使用してから、埋め込みを取得するためにネットワークをトレーニングする代わりに)。あなたのタスクがあまりにも専門化されていない場合、この埋め込みのセットから始めて実際にうまくいくでしょう。
この論文[PDF]をご覧ください。主な焦点はNERタスクについてですが、考え方は同じです-事前に訓練されたword2vecベクトルを取得し、特定のアプリケーションに適合させます。
NLPの多くの一般的なニューラルネットワークベースのアプリケーションは、事前に訓練されたベクトルから開始することがよくあります。たとえば、ごく最近の論文[PDF](NERおよびPOSタグ付けタスク)がこれを実行します。
from gensim.models import Word2Vec
# Word2Vec is full model which is trainable but takes larger memory
from gensim.models import KeyedVectors
# KeyedVectors is reduced vector model which is NOT trainable but takes less memory
model = KeyedVectors.load_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True) #load pretrained google w2v
sen1 = 'w1 w2 w3'
sen2 = 'word1 word2 word3'
sentences = [[word for word in sen1.split()],[word for word in sen2.split()]]
total_examples = model_2.corpus_count
model_2 = Word2Vec(size=300, min_count=1) #initiate a full model
model_2.build_vocab(sentences) #add words in training dataset
#load words from pretrained google dataset
model_2.build_vocab([list(model.vocab.keys())], update=True)
model_2.intersect_word2vec_format('GoogleNews-vectors-negative300.bin', binary=True, lockf=1.0)
#retrain pretrained w2v from new dataset
model_2.train(sentences, total_examples=total_examples, epochs=model_2.iter)