2017-03-19 18 views
1

私は何百万もの文を持っており、フレーズベクトルを取得したいので、フレーズの類似性を計算できます。しかし問題は、フレーズベクタを取得するためにword2vecを使用する方法がわからないことです。他のツールを知っている人はいますか?word2vecに基づいてフレーズの類似度を計算する方法

答えて

0

これを行う単純な方法は、対応する単語ベクトル要素をそれぞれまとめて結果を再正規化し、文ベクトルを与えます。 C#ので

は、このような何かを:

var vec = new double[dims]; 
foreach (var key in sentence) 
{ 
    var tmp = model[key]; 
    for (var i = 0; i < dims; i++) 
     vec[i] += tmp[i]; 
} 

double len = 0; 
for (var i = 0; i < dims; i++) 
    len += vec[i] * vec[i]; 

len = Math.Sqrt(len); 
var normal = new double[dims]; 
for (var i = 0; i < dims; i++) 
    normal[i] = vec[i]/len; 

return normal; 
0

フレーズの類似性を見つけるために、あなたはフレーズベクトルを組み合わせること(word2vecアルゴリズムを使用して訓練された)単語ベクトルを使用する必要があります。

word2vecを使用してフレーズベクタを取得する方法は次のとおりです。How to calculate phrase similarity between phrases

関連する問題