如果您添加文檔的文檔的集合,除非該文件是完全一樣的文檔集合,在您的發行詞或詞的分佈將改變以適應新添加話。問題就出現了:「這真的是你想要做的第三份文件嗎?」
Kullback-Leibler divergence是兩個分佈的發散度量。你們兩個分佈是什麼?
如果您的分佈是在文檔中隨機選擇某個詞的概率,那麼您有概率值的空間就是組成文檔的詞的集合。對於您的前兩個文檔(我認爲這是您的整個集合),您可以構建7個詞的詞空間。用於字概率在從文件隨機被選擇爲單詞的袋是:
doc 1 doc 2 doc 3 (lem)
answers 0.2 0.2 0.0 0.2
are 0.2 0.2 0.0 0.2
cross 0.2 0.0 .33 0.2
good 0.2 0.0 .33 0.2
nice 0.0 0.2 0.0 0.0
simply 0.0 0.2 .33 0.2
validated 0.2 0.2 0.0 0.0
[這被計算爲術語頻率由原稿長度分割。請注意,新文檔的單詞形式與文檔1和文檔2中的單詞不同。(lem)列將是概率,如果您阻止或詞彙化爲相同的詞對(是/是)和(答案/答案)。]
將第三份文件引入場景中,您可能想要對Kullback-Liebler Divergence進行的一項典型活動是比較新文件或文件集合與已知文件或文件集合。
計算所述的Kullback-Liebler發散D(P||Q)
產生值標誌着如何真實分佈P
通過使用替代分佈Q
捕獲。因此,Q1
可能是文檔1中詞的分佈,Q2
可能是文檔2中詞的分佈。計算KL分歧P
是新文檔(文檔3)中文字的分佈,您可以得到新文檔與文檔1不同,新文檔與文檔2有多不同。使用這些信息,您可以說新文檔與已知文檔/集合有多相似。
這是一個家庭作業嗎? – emaillenin
它不是。另外,我沒有要求提供源代碼;)。我問了一個簡單的外行人的例子。如果這是我的教授作業。會解釋我,lol – user751637
Kullback-Leibler散度不對稱。有可能是KL(D1,D2)!= KL(D2,D1)。另外,如果其中一個文件包含一個不存在於另一個文件中的單詞,則可以獲得無限的散度值(取決於測量KL散度的方向)。 如果你想計算兩個文檔的相似度與基於信息論的度量的相似度,我會建議Jennsen-Shannon分歧(http://en.wikipedia.org/wiki/Jensen-Shannon_divergence),它是基於KL散度,對稱和有限。 –