2011-07-07 166 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