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

如何在Java中比较几乎相似的字符串?(字符串距离量度)[关闭]

云季同
2023-03-14
问题内容

我想比较两个字符串并得到一些分数,它们看起来有多相似。例如 “句子几乎相似”“句子相似”

我不熟悉Java中的现有方法,但是对于PHP我知道levenshtein函数。

Java中有更好的方法吗?


问题答案:

Levensthein距离 衡量相似弦 的量度。或者,更确切地说,必须进行几次更改才能使它们相同。

该算法在Wikipedia上可用伪代码提供。将其转换为Java应该不是什么大问题,但是它不是内置在基类库中的。

维基百科还有更多的算法可以测量字符串的相似性。



 类似资料:
  • 我使用Levenshtein算法来查找两个字符串之间的相似性。这是我正在制作的程序的一个非常重要的部分,所以它需要有效。问题是算法没有发现以下示例相似: CONAIR AIRCON 编辑:我还研究了“Damerau-Levenshtein”算法,它增加了换位。问题是这种转换只针对相邻的字符(而不是多个字符)。

  • 问题内容: 我想将多个字符串相互比较,并找到最相似的字符串。我想知道是否有任何库,方法或最佳实践会返回我哪些字符串与其他字符串更相似的字符串。例如: “The quick fox jumped” -> “The fox jumped” “The quick fox jumped” -> “The fox” 该比较将返回第一个比第二个更相似。 我想我需要一些方法,例如: 某处有这样的东西吗? 编辑:

  • 问题内容: 在Python + Sqlite中是否有可用的字符串相似性度量,例如与模块有关? 用例示例: 此查询应匹配ID为1的行,但不匹配ID为2的行: 如何在Sqlite + Python中做到这一点? 关于我到目前为止发现的注释: 该Levenshtein距离,即单字符编辑(插入,删除或替换)的最小数量需要改变一个字到另一个,可能是有用的,但我不知道是否SQLite中存在的正式实施(我看到一

  • 首先,考虑这个例子: 我期望什么:因为“123”是一个< code>const char*,我期望这些字符串的地址(就像其中一个答案所说的)被比较。 …因为和将只比较这些字符串的基址。不是字符串本身的内容。 但输出仍然是。好吧,我们实际上不知道如何比较两个prvalue对象的地址(或者至少我不明白会怎么做)。所以让我们将这些字符串声明为变量,看看会发生什么: 输出仍然是 。所以字符串不会衰减吗?或

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

  • 问题内容: 我有一个程序正在制作,当用户输入一种心情时,它将在此基础上输出报价。我需要告诉程序 问题是,我不知道如何使程序识别输入并基于该输出文本…这是到目前为止我所拥有的代码。 问题答案: 首先,看起来您正在处理错误的变量。我想你打算比较。 处理字符串时,请始终使用而不是。比较参考值(通常不可靠),同时比较实际值。 将您的字符串转换为全部大写或全部小写也是一个好习惯。在本示例中,我将使用小写字母