Googleのword2vec事前トレーニング済みモデルを試して、単語の埋め込みを取得しています。コードにモデルをロードすることができ、単語の300次元表現を取得していることがわかります。これがコードです-
import gensim
from gensim import models
from gensim.models import Word2Vec
model = gensim.models.KeyedVectors.load_word2vec_format('/Downloads/GoogleNews-vectors-negative300.bin', binary=True)
dog = model['dog']
print(dog.shape)
これは私に以下の出力を与えます-
>>> print(dog.shape)
(300,)
これは機能しますが、1つの単語だけでなく、ドキュメント全体のベクトル表現を取得することに関心があります。word2vecモデルを使用してそれを行うにはどうすればよいですか?
dog_sentence = model['it is a cute little dog']
KeyError: "word 'it is a cute little dog' not in vocabulary"
これらを多くのドキュメントに適用してから、そのトピックに関するクラスタリングモデルをトレーニングして、教師なし学習とトピックモデリングを行う予定です。
これは単語ベクトルのセットです。単語ベクトルを、文やドキュメントなどのテキストのより長い実行のためのベクトルに変換する単一の標準的な方法はありません。
テキスト内の各単語の単語ベクトルを単純に平均化してみることができます。(これを行うには、文字列テキスト全体を渡すのではなく、単語に分割し、各単語ベクトルを調べてから、それらすべてのベクトルを平均します。)
これはすばやく簡単に計算でき、一部のタスク、特に非常に短いテキストのトピック分析のベースラインとして問題なく機能します。ただし、文法や語順を考慮せず、すべての単語を他のすべての単語で希釈するため、より高度な分析よりもパフォーマンスが優れていることがよくあります。
また、単語ベクトルのセットは、ニュース記事から2013年頃にGoogleによって計算されました。それ以来生じてきた言葉や言葉の意味を見逃し、そのベクトルはニュース記事の書き方によって味付けされます-他の言語領域とは大きく異なります。十分なデータがある場合は、独自のドメインのテキストで独自の単語ベクトルをトレーニングすると、単語の範囲とベクトルの関連性の両方でパフォーマンスが向上する可能性があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加