0

我是 NLP 新手,我想找出两个文档之间的相似性

我用谷歌搜索,发现有一些方法可以做到这一点,例如

最好的方法是什么(我也对其他方法开放),我们可以获得高精度,如果java中有一些API可以做到这一点,请告诉我

4

1 回答 1

3

您的问题的答案是双重的:(a)句法和(b)语义相似性。

句法相似性 你已经发现了Singling,所以我将重点关注其他方面。最近的方法使用潜在变量模型来描述句法模式。基本思想是使用条件概率:P ( f | f_c ),其中f是某个特征,f_c 是它的上下文。此类模型的最简单示例是马尔可夫模型,其中单词作为特征,之前的单词作为上下文。这些模型回答了这个问题:*假设单词w1 , ... w_n - 1在文档中出现在它之前,单词w_n的概率是多少?这条途径将引导您构建语言模型,从而基于困惑度测量文档相似度。对于纯粹的句法相似性度量,人们可能会查看解析树特征而不是单词。

语义相似性 当然,这是一个更难的问题。这个方向的最新技术涉及理解分布式语义。分布语义本质上说,“在大量数据的相似上下文中出现的术语必然具有相似的含义”。这种方法是数据密集型的。基本思想是构建“上下文”的向量,然后测量这些向量的相似度。

基于自然语言测量文档相似度并不容易,这里的答案并不公平,所以我向您指出这篇 ACL 论文,在我看来,它提供了一个很好的图景。

于 2013-12-06T11:11:37.857 回答