2011-07-07 207 views
2

我有一個簡單的(可能是愚蠢的)問題。我想計算兩個文件中的Kullback-Leibler散度。它要求每個文件的概率分佈。計算概率分佈

我不知道如何計算每個文檔的概率。任何簡單的答案與外行的例子將不勝感激。

比方說,我們必須遵循兩個文件:

1 - cross validated answers are good 
2 - simply validated answers are nice 

(文件的措辭只是喇嘛喇嘛給你一個例子)

如何計算這些文件的概率?

比方說,我們再增加一個文件:

3 - simply cross is not good answer 

如果再加上另外一個文件然後它將如何影響概率分佈?

感謝

+0

這是一個家庭作業嗎? – emaillenin

+0

它不是。另外,我沒有要求提供源代碼;)。我問了一個簡單的外行人的例子。如果這是我的教授作業。會解釋我,lol – user751637

+1

Kullback-Leibler散度不對稱。有可能是KL(D1,D2)!= KL(D2,D1)。另外,如果其中一個文件包含一個不存在於另一個文件中的單詞,則可以獲得無限的散度值(取決於測量KL散度的方向)。 如果你想計算兩個文檔的相似度與基於信息論的度量的相似度,我會建議Jennsen-Shannon分歧(http://en.wikipedia.org/wiki/Jensen-Shannon_divergence),它是基於KL散度,對稱和有限。 –

回答

1

如果您添加文檔的文檔的集合,除非該文件是完全一樣的文檔集合,在您的發行詞或詞的分佈將改變以適應新添加話。問題就出現了:「這真的是你想要做的第三份文件嗎?」

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有多不同。使用這些信息,您可以說新文檔與已知文檔/集合有多相似。

+0

非常感謝Atreys爲您提供的細節/清晰的答案。我在這裏有一個問題:TF和概率有什麼區別?它總是讓我困惑。我們可以使用簡單的TF來計算文檔的概率分佈嗎?我聽說有一些方法可以規範文檔的概率分佈,你有什麼想法是什麼(規範化)? – user751637

+0

術語頻率是文檔中術語的頻率。如果術語「狗」在文檔中出現三次,則術語頻率爲3.如果文檔中有8000個術語,則該術語從文檔中隨機選擇的概率爲3/8000。對於IR,更有用的計算是TF-IDF,它是文檔頻率上的Term-frequency。如果術語「狗」在您的語料庫中只出現8次,那麼TF-IDF將會是3/8 - 如果您擁有一百個左右的文檔,這可能非常重要。我顯示的概率分佈是...的概率... – Atreys

+0

...如果您選擇單詞,只需轉到文檔中的隨機索引單詞並查看它,就可以從文檔中選擇術語。按照文檔長度劃分TF是我所做的。這是在概率向量中使用的規範化:將向量除以分量的總和,因此所有事物總計爲1.如果您沒有關於信息檢索的書籍,我發現[信息檢索簡介](http:// nlp .stanford.edu/IR-book/information-retrieval-book.html)作爲一個易於理解的領域介紹。 – Atreys