当前位置: 首页 > 面试题库 >

Java中的相似字符串比较

薛欣荣
2023-03-14
问题内容

我想将多个字符串相互比较,并找到最相似的字符串。我想知道是否有任何库,方法或最佳实践会返回我哪些字符串与其他字符串更相似的字符串。例如:

  • “The quick fox jumped” -> “The fox jumped”
  • “The quick fox jumped” -> “The fox”

该比较将返回第一个比第二个更相似。

我想我需要一些方法,例如:

double similarityIndex(String s1, String s2)

某处有这样的东西吗?

编辑:为什么我要这样做?我正在编写一个脚本,用于将MS Project文件的输出与处理任务的某些旧系统的输出进行比较。由于传统系统的字段宽度非常有限,因此在添加值时将省略描述。我想要一些半自动的方法来查找MS Project中的哪些条目与系统上的条目相似,以便获得生成的密钥。它有缺点,因为它仍然必须手动检查,但是这样可以节省很多工作


问题答案:

是的,有许多文献证明的算法,例如:

  • Cosine similarity
  • Jaccard similarity
  • Dice’s coefficient
  • Matching similarity
  • Overlap similarity
  • etc etc


 类似资料:
  • 我的问题是这样问的:编写一个比较两个输入字符串的程序。输出每个字符串位置匹配的字符数。输出应根据字符数使用正确的动词(匹配与匹配)。 例如:如果输入是:粉碎崩溃 输出为:4个字符匹配 这就是我到目前为止所拥有的: 导入java.util.Scanner; 我知道这看起来并不多,但我已经尝试了很多其他方法,但我显然缺少一些可以让这更容易做到的东西。我想数一下柜台里类似的字母……但我不知道该怎么办。

  • 本文向大家介绍php比较相似字符串的方法,包括了php比较相似字符串的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php比较相似字符串的方法。分享给大家供大家参考。具体分析如下: 这里通过php的similar_text函数比较两个字符串的相似性。 希望本文所述对大家的php程序设计有所帮助。

  • 问题内容: 我有以下问题 给定一个字符串,返回一个“ cleaned”字符串,其中相同的相邻字符已减少为一个字符。如此产量。 我正在尝试输入我的代码 我的代码如下。在进行相邻字符比较之后,我得到了部分追加的字符串,因此截至目前,我得到的不是正确输出的追加的stringBuilder 我应该得到的输出为, 观察: *在我获得了附加的字符串“ abc”之后,然后当我移动比较那一部分面临问题的最终字符“

  • 问题内容: 我想比较两个字符串并得到一些分数,它们看起来有多相似。例如 “句子几乎相似” 和 “句子相似” 。 我不熟悉Java中的现有方法,但是对于PHP我知道levenshtein函数。 Java中有更好的方法吗? 问题答案: Levensthein距离 是 衡量相似弦 长 的量度。或者,更确切地说,必须进行几次更改才能使它们相同。 该算法在Wikipedia上可用伪代码提供。将其转换为Jav

  • 本文向大家介绍C ++中的相似字符串组,包括了C ++中的相似字符串组的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个字符串X和Y,如果可以交换X的两个字母,它们是相似的,因此等于Y。另外,如果两个字符串X和Y相等,则它们相似。例如,考虑两个字符串,例如“ tars”和“ rats”相似,如果我们交换t和r,则可以找到另一个,现在“ rats”和“ arts”相似,但是“ star”不同类

  • 本文向大家介绍C ++中的K相似字符串,包括了C ++中的K相似字符串的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个字符串A和B。如果我们可以将A中的两个字母的位置恰好交换K次,使得结果字符串为B,那么这两个字符串是K相似的(其中K是一个非负整数)。在两个字谜A和B之间,我们必须找到与A和B类似的最小K。 因此,如果输入类似于A =“ abc”,B =“ bac”,则输出将为2。 为了解