java - 百分比相似度分析 (Java)

标签 java similarity

我有以下情况:

String a = "网络爬虫是一种自动浏览万维网的计算机程序"; String b = "网络爬虫计算机程序浏览万维网";

是否有任何想法或标准算法来计算相似度百分比?

比如上面的例子,人工查找估计的相似度应该是90%++。

我的想法是将两个字符串标记化并比较匹配的标记数。就像是 (7 tokens/1 0 tokens) * 100。但是,当然,对于这种方法,它根本没有效果。比较匹配的字符数似乎也无效....

谁能给出一些指导方针???

以上是我的项目的一部分,Plagiarism Analyzer。

因此,匹配的单词将完全相同,没有任何同义词。

在这种情况下唯一重要的是如何计算出相当准确的相似度百分比。

非常感谢您的帮助。

最佳答案

正如 Konrad 所指出的,您的问题在很大程度上取决于您所说的“相似”是什么意思。 一般来说,我认为应该使用以下准则:

  • 通过将单词简化为基本形式并将其小写来规范化输入
  • 使用词频列表(可在网络上轻松获得)并使词的“相似度相关性”与其在词频列表中的位置成反比
  • 将句子总相似度计算为出现在两个句子中的单词的总相似度除以句子的总相似度相关度

您可以改进该技术以包括单词形式、句子单词顺​​序、同义词列表等之间的差异。虽然您永远不会获得完美的结果,但您有很多调整的可能性,我相信总的来说您可能会非常有值(value)相似性度量。

关于java - 百分比相似度分析 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2393082/

相关文章:

algorithm - 基于属性计算相似度

Mysql:数字数组与数百万其他数组之间的相似性

algorithm - 字符串相似度 : how exactly does Bitap work?

java - 如何保证删除或更新成功而不需要额外请求?

Java - 使用河豚加密时缺少最终字符

java - 按 yyyymmdd 整数计算日差时结果不一致

search - 当您输入新问题时,Stack Overflow 如何显示类似问题?

java - 如何解决eclipse中的java.lang.ClassNotFoundException

javascript - 如何使用 Java 代码从 HTML 中获取变量值?

c# - 比较 2 个 16x16 像素图像的相似度