文档相似度

5
我使用tf/idf计算两个文档之间的余弦相似度。它有一些限制,并且表现不太好。
我寻找LDA(潜在狄利克雷分配)来计算文档相似性,但我对此并不了解。我也没有找到关于我的问题的太多资料。
您能否提供与我的问题相关的任何教程?或者您能否给出一些建议,如何使用LDA完成此任务?
谢谢。
附注:是否有任何源代码可用于使用LDA执行此类任务?

请问您能否详细说明为什么余弦相似度对您无效? - Shashikant Kore
4个回答

1

谢谢,你能否回答一下使用LDA是否可以计算两个文档之间的相似度?因为大多数人说它只能用于无监督聚类 :( - user238384
抱歉,我对LDA的了解不够,无法提供专家级的答案,因为它不是我所使用的Mahout的一部分。不过,我的理解是,聚类是根据某种相似性度量来对对象进行分组,而在这种情况下,这种度量就是LDA。 - Binary Nerd

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

0
你可能在想LSA(潜在语义分析),这是解决这类问题的非常常见的解决方案。

嗨pace, 感谢您的回复。是的,我知道LSA并且也实现了它。我使用JAMA包进行SVD,但是我有一个问题,如果我的行数小于列数,它就无法工作 :(. 您能告诉我其他任何SMALL svd包吗? - user238384

0

有点老,但对于任何仍然感兴趣的人来说,可以看看这个博客帖子(声明:这是我的个人博客)。如果你对任何特定的方法没有执着的话,那里描述的算法和链接的代码可能会满足你的需求。

关于Shashikant的评论,余弦相似度可能不是一个好的选择,因为签名的长度与文档成比例。最好使用恒定长度的签名。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接