6

我有两个字符串(它们最终将成为一个简单数据库中的描述),假设它们是

  1. 字符串 A:“苹果橙椰子酸橙吉米自助餐”
  2. 弦B:“汽车自行车滑板”

我要找的是这个。我想要一个输入“cocnut”,输出为“String A”的函数

我们可能在大小写上有所不同,并且拼写并不总是正确的。如果您愿意,目标是“快速而肮脏”的搜索。

是否有任何.net(或第三方),或者推荐字符串的“相似算法”,所以我可以检查输入是否有一个“非常接近的片段”并返回它?我的数据库将有 50 个条目,顶部。

4

1 回答 1

12

您正在搜索的内容称为两个字符串之间的编辑距离。有很多实现——<a href="https://stackoverflow.com/a/9454016/1968">这里有一个来自 Stack Overflow 本身。

由于您只搜索字符串的一部分,因此您想要的是局部最优匹配,而不是通过此方法计算的全局匹配。

这被称为局部对齐问题,并且再次通过几乎相同的算法很容易解决 - 唯一改变的是初始化(我们不会惩罚搜索字符串之前的任何内容)和最佳值的选择(我们不要惩罚搜索字符串之后的任何内容)。

于 2013-03-08T20:57:43.477 回答