计算文本相似度的算法

7
我正在尝试评估社交网络帖子之间的相似性,但并没有找到任何好的算法,您有什么想法吗?
我刚刚尝试过Levenshtein、JaroWinkler和其他算法,但这些算法更多地用于比较没有情感色彩的文本。在帖子中,我们可以得到一段文字说“我真的很喜欢狗”,而另一段则说“我真的很讨厌狗”,我们需要将其分类为完全不同的情况。
谢谢。
3个回答

4
啊...但是"I really love dogs"和"I really hate dogs"完全相似;),两者都涉及对狗的感受。看起来你缺了一步:
  1. 运行算法并获取一般主题组(即“对狗的感受”)。
  2. 再次运行算法,但这次在每个先前“发现”的组上运行算法,并让您的算法进一步将它们分类为子组(即“我恨狗”/“我爱狗”)。

如果您的算法根据其经验进行调整(即存在某些学习),则请确保您为第一分类运行单独的算法实例,并为每个子分类运行算法的新实例...如果不这样做,您可能会遇到这样的情况:您找到了一些组,每次在同一组上运行算法时,结果几乎相同和/或根本没有改变。

更新

Apache Mahout 提供了很多有用的算法和聚类,分类,遗传编程,决策森林,推荐挖掘等方面的示例。以下是一些来自Mahout的文本分类示例:

我不确定哪一个最适合您的问题,但是也许如果您仔细阅读它们,就会找到最适合您特定应用的方法。


它们甚至可以更相似。例如,如果我说我爱狗,但是用讽刺的口吻说呢?在网上发布的文本中,由于语气和措辞透露出如此重要的信息,因此不可能理解确切的含义和情感。 - Dan Joseph
你是对的。我见过一些人使用自组织映射来进行垃圾邮件检测,也许它是一个不错的选择,你有什么想法? - user430830
1
@Daniel,针对一篇文章,我认为即使是人类也无法确定它是讽刺还是真实的。讽刺只有在上下文中才有效,所以如果是讽刺的话,那么它将被错误分类。 - Kiril
是的,我是一名Java开发者。你知道有关Mahout和文本相似性的任何文章吗?我的任务是通过比较他们的帖子或文章来找到相似的人。 - user430830
1
这是关于讽刺检测的一些研究成果:http://staff.science.uva.nl/~otsur/papers/sarcasmAmazonICWSM10.pdf - Thien
显示剩余3条评论

2
我的研究涉及情感分析,我同意Pierre的观点,这是一个很难的问题,由于其主观性质,没有通用的算法存在。我最初尝试的方法之一是将句子映射到情感空间,并根据句子与情感中心的距离决定其情感。您可以查看以下链接:http://dtminredis.housing.salle.url.edu:8080/EmoLib/。上述句子效果良好;)

1

你可能想看一下观点挖掘和情感分析,以便了解任务的复杂性。

简短回答:这方面没有“好算法”,只有中等水平的算法。而且这是一个非常困难的问题。祝你好运。


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