文件相似性

时间:2010-02-17 01:43:35

标签: java math dirichlet

我使用tf / idf来计算两个文档之间的相似性。它有一些限制,表现不佳。

我寻找LDA(潜在的dirichlet分配)来计算文档相似度。我不知道 关于这一点。我找不到太多关于我的问题的东西。

您能否提供与我的问题相关的任何教程?或者你能提出一些建议,我怎么能用LDA来完成这项任务?

由于

P.S:还有任何源代码可用于使用LDA执行此类任务吗?

4 个答案:

答案 0 :(得分:1)

你看过Lucene和Mahout吗?

这可能很有用 - Latent Dirichlet Allocation与Lucene和Mahout。

答案 1 :(得分:0)

您可能会想到LSA(潜在语义分析),这是解决此类问题的常见方法。

答案 2 :(得分:0)

有点旧,但对于仍然感兴趣的人,请看一下blog post(免责声明:这是我自己的博客)。如果您没有根据任何特定方法设置心脏,那么在那里描述的算法和链接代码可能会做您所需要的。

关于Shashikant的评论,余弦相似性可能不是一个好的选择,因为签名的长度与文档成正比。常数长度签名是优选的。

答案 3 :(得分:0)

尝试此服务来计算两个文档之间的余弦相似性

http://www.scurtu.it/documentSimilarity.html

import urllib,urllib2
import json
API_URL="http://www.scurtu.it/apis/documentSimilarity"
inputDict={}
inputDict['doc1']='Document with some text'
inputDict['doc2']='Other document with some text'
params = urllib.urlencode(inputDict)    
f = urllib2.urlopen(API_URL, params)
response= f.read()
responseObject=json.loads(response)  
print responseObject