2017-07-13 7 views
0

Googleニュースデータセットを使用してword2vecモデルを読み込みました。今私はクラスタ化したい文のリストのWord2Vecの表現を得たいと思う。 documentationを通過した後、私はこれを見つけたgensim.models.word2vec.LineSentenceしかし、私はこれが私が探しているものであるか分からない。事前に訓練されたWord2Vecモデルを読み込んだ後、新しい文章のword2vec表現を取得するにはどうすればよいですか?

pretrainedモデルの文章のリストのword2vec表現を取得する方法があるはずですか?私が検索したリンクのどれもそれについて何も持っていませんでした。どんなリードも感謝します。

+0

word2vecは、文章ではなくベクトルに* words *をマップします。 –

答えて

1

Word2Vecは、文章ではなく単語のベクトル表現のみを提供します。

単語ベクトルから文章のような長いテキスト(文章など)のベクトルに行く方法は、いくつかの目的で多少有効ですが、すべての単語ベクトルを平均化することです。これはgensim Word2Vecクラスの機能ではありません。これを自分でコーディングする必要があります。例えば

、単語ベクトルは、すでにword_modelとしてロードして、あなたがおおよそ行いたい:トークンがモデルに知られているすべての、またはその他のいないとき

import numpy as np 

sentence_tokens = "I do not like green eggs and ham".split() 
sum_vector = np.zeros(word_model.vector_size) 
for token in sentence_tokens: 
    sum_vector += word_model[token] 
sentence_vector = sum_vector/len(sentence_tokens) 

実際のコードは、のために取り扱い加えるかもしれませんテキストをトークン化/フィルタリングする方法などが含まれる。

gensimのDoc2Vecクラスで実装されている「段落ベクトル」アルゴリズムなど、テキストの長さのベクトルを取得するためのさらに洗練された方法があります。これらは必ずしも事前に訓練された単語ベクトルから始まるわけではありませんが、あなた自身のテキストコーパスで訓練することができます。

+0

答えをありがとう。私はDoc2Vecを試しましたが、私のコーパスはモデルを効果的にトレーニングするには小さすぎます。これが私が訓練されたWord2Vecモデルを実装しようとしていた理由です。 – Kira

関連する問題