2017-06-06 6 views

答えて

0

"ワードムーバーの距離"(ワード - ベクトルのグループに適用されるアースムーバーの距離)は、各ドキュメントのすべての単語に依存する、かなり複雑な最適化計算です。

私は、一度に多くのものを計算するときには速くなるのを覚悟していません。

ペアワイズ距離を計算するために必要なのは、ネストされたループだけで、各(順序を無視する一意の)ペアリングを考慮する必要があります。文書のリストを想定し例えば

、(各リスト・オブ・言葉は)docsmodelでgensimワードベクトルモデル、およびnpとしてインポートnumpy、あなたはペアごとの距離Dとの配列を計算することができます:

D = np.zeros((len(docs), len(docs))) 
for i in range(len(docs)): 
    for j in range(len(docs)): 
     if i == j: 
      continue # self-distance is 0.0 
     if i > j: 
      D[i, j] = D[j, i] # re-use earlier calc 
     D[i, j] = model.wmdistance(docs[i], docs[j]) 

それはしばらく時間がかかることがありますが、その後D.

+0

ネストされたループのpythonで遅いアレイ内のすべてのペアごとの距離があるでしょう - Javaへ切り換えることができます。しかし、ehadsをありがとう。 – pythOnometrist

関連する問題