2017-08-28 57 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之後合併權重?

我不確定我在解釋這件事方面做得很好,但請讓我知道我是否可以改進我的問題。

謝謝。

回答

1

Gensim的主要算法(如LDA或Doc2Vec)從不同的個人證件的訓練,沒有我關於子場或可組合的子部分。所以你必須自己建模。

如果您的最終目標需要單獨爲每個字段計分,則應該爲每個字段創建一個單獨的文檔。

您可能還想創建一個由所有字段組成的完整文檔。

然後,您可以在所有完整文檔和字段組合的情況下訓練模型,或者針對每種文檔類型單獨創建一個模型。

您可能想要比較,重複數據刪除或合併字段與文檔的分數將非常依賴於您的數據和項目目標以及您自己的實驗和自定義評估。 (例如,也許您的用戶對身體匹配最滿意,所以在該領域中的任何相似性應該在您的顯示器中有額外的重量 - 等等。)

+1

謝謝!這通常是我的期望,我非常感謝這個話題的清晰度! –