2017-08-28 5 views
1

私はドキュメント比較エンジン/検索エンジンで作業しています。私は現在、以下のように使用しています...Gensimを使用した多次元文書

search_doc = ["test search"] 
documents = ["doc 1 text", "doc 2 text", "doc 3 text", "..."] 

そして結果を比較します。私は(できるだけ簡単な用語で)やりたい何

は、多次元の文書(複数のディメンションを持つ文書だけではなく、「文書」)...例えばを持っている..です

documents = { 
       { "doc 1 title", "doc 1 body", "doc 1 tags" }, 
       { "doc 2 title", "doc 2 body", "doc 2 tags" }, 
       { "doc 3 title", "doc 3 body", "doc 3 tags" } 
       { ... } 
      } 

また、結果に重みを付けることもできます(たとえば、タイトルは0.6、本文は0.4など)。

私の質問はGensim内でこれを行う方法ですか、ドキュメントの各メタアイテムごとに個別のドキュメントを作成する必要があります(たとえば、各メタアイテム(タイトル、本文、タグ)を別のドキュメントとして使用してから、ドキュメントキー/ IDを使用して事後にウェイトを結合することはできますか?

私はこれを説明する良い仕事をしていますが、私の質問。

ありがとう。(LDAまたはDoc2Vecなど)

答えて

1

Gensimの主要なアルゴリズムはありませんIで、明確な個々の文書から訓練されていますサブフィールドまたは構成可能なサブパーツに関する情報を含む。だから、自分でそれをモデル化しなければならないでしょう。

最終目標でフィールドごとにスコアリングが必要な場合は、フィールドごとに別々のドキュメントを作成する必要があります。

また、すべてのフィールドで構成される完全なドキュメントを作成することもできます。

これで、すべてのフルドキュメントとフィールドを組み合わせたモデルを作成したり、ドキュメントタイプごとに別々のモデルを作成したりできます。

フィールドのスコアを比較、重複排除、または結合する方法は、データとプロジェクトの目標、独自の実験とカスタム評価に大きく依存します。 (たとえば、おそらくあなたのユーザーはボディマッチに最も満足しているので、そのフィールドの類似点はディスプレイに余分な重みを持たなければなりません)。

+1

ありがとう!それは一般的に私が期待したものです、私は非常にトピックの明確さに感謝! –