文本相似性算法
我正在做一个Java项目,我必须制作一个文本相似性程序。我希望它采用2个文本文档,然后将它们相互比较并获得它的相似性。它们彼此之间的相似程度。
稍后,我将放置一个已经数据库,该数据库可以找到单词的同义词并浏览文本,以查看其中一个文本文档编写者是否只是在文本完全相同的情况下将单词更改为其他同义词。向上或向下移动paragrafs也是如此。是的,就像这是一个抄袭程序...
我想听听你们会推荐什么样的算法。
我通过观察这里和其他地方发现了Levenstein和Cosine的相似性。他们俩似乎都被提到了很多。汉明距离是我的老师告诉我的另一个。
我有一些与这些问题相关的问题,因为我并没有真正得到维基百科。有人可以向我解释这些事情吗?
Levenstein:这个算法通过 sub 进行更改,添加并消除单词,看看它与文本文档中另一个单词的接近程度。但是,如何将其用于整个文本文件?我可以看到它如何用于一个单词,但不能用于一个句子或从一个到另一个的整个文本文档。
余弦:它是通过测量两个向量之间角度的余弦来测量它们之间的相似性。我不明白的是,两个文本如何变成2个向量,以及其中的单词/句子呢?
汉明:这个距离似乎比莱文斯坦更好,但它只是在相等的弦上。当2个文档甚至其中的句子不是两个长度相等的字符串时,为什么这很重要?
维基百科应该有意义,但事实并非如此。我很抱歉,如果这些问题听起来太愚蠢了,但它让我垂下心头,我认为这里有人很容易解释它,所以即使是这个领域的新手也可以得到它。
感谢您抽出宝贵时间接受采访。