2011-03-14 51 views
0

我有一組文件和我有兩個計算如何計算查詢和文檔之間的相似度?

  • 期限 - 頻率得分
  • 的反向頻率分數
  • TF/IDF得分

現在我需要計算相似度在特定的查詢和文檔之間產生一個分數,該分數將把文檔從最高相似度排到最低相似度。

我搜索了很多信息,但我不明白公式。

來源:http://en.wikipedia.org/wiki/Vector_space_model

任何人都可以指導我?我只需要知道如何從我目前的進展開始。

回答

3

Lucene是一個開源的庫,爲你做這一切。

1

Pangea已經給出了正確的答案:不要重新發明輪子,尤其是像文檔相似性這樣的複雜輪子。這就是說,理解文件相似性如何計算是一件有趣而值得一提的事情,如果你要在現場工作的話。我會看看我能否幫上忙。

您已鏈接的向量空間模型的基本假設是每個文檔都可以表示爲N維空間中的一個向量,其中每個維度都是文檔宇宙中的不同單詞。給定單詞的文檔值是該文檔對該單詞的排名。在這個模型中,查詢可以被認爲是一個非常短的文檔,因此也被表示爲N空間中的一個向量。餘弦測量僅僅是查詢向量與給定文檔向量之間角度的餘弦。

導出N維三角學本身可能是一門數學課程,但如果你理解了基本思想,對於實際的計算,你可以根據信仰採取維基百科公式(或者如果你更喜歡看標準文本)。計算步驟(矢量點產品和規範)也單獨記錄,不難實現。我相信也有標準的庫實現可用。

餘弦的邏輯是,隨着文檔之間的相似度增加,兩個向量之間的夾角接近零(因此餘弦接近1)。你可以用笛卡爾平面上的兩個單詞的宇宙來手動驗證。所有的矢量數學都有相同的概念外推到N維。

我希望這會清除這個有趣的話題的一些混淆。對於實際的實現,我再次向你推薦Pangea的建議,使用Lucene。

相關問題