2013-08-06 83 views
2

我試圖計算大型動態文本文檔集之間的相似度。對於靜態集合,像餘弦相似度+ tf-idf這樣的東西會很好用。不過,我正在尋找一種方案,允許我添加一個新文檔而無需重新計算整個相似集。有沒有這樣的算法存在?增量文檔相似度算法

回答

1

您似乎接近解決方案。簡單地存儲f(document)結果的每個實例,併合並結果。

地圖詞頻爲每個文檔,並將其存儲:

d0: 
    "the" : 70, 
    "quick" : 22, 
    "fox" : 1 

d1: 
    "the" : 42, 
    "lazy" : 2, 
    "dog" : 13 

合併文件和評估總:

d0_d1: 
    "the" : 112. 
    "lazy" : 2, 
    "dog" : 13, 
    "quick" : 22, 
    "fox" : 1 

tf_idf(d0_d1) 
+0

但每次我添加的文檔時, tf-idf值會發生變化,從而使以前添加的文檔的相似性不再真實。 –

+0

@ user1000229我的答案的外觀方面是**存儲每個文檔的映射以備將來使用**。一旦你擁有了一個不可變的映射,key = word,value = occurrence,你已經完成了大部分計算。接下來是在要包含的文檔的鍵上進行交集並聚合它們的值。通過這種新的映射,您現在可以瞭解組合文檔的詞頻。 – pygeek