我有两个字符串(它们最终会在一个简单的数据库中被描述),让我们说它们是
我正在寻找的是这个。我想要一个输入“cocnut”的函数,输出为“String A”
我们可能在资本化方面存在差异,拼写并不总是存在。如果你愿意的话,目标是“快速而肮脏”的搜索。
是否存在任何.net(或第三方),或者为字符串推荐“相似度算法”,因此我可以检查输入是否具有“非常接近的片段”并将其返回?我的数据库将有50个条目,顶部。
答案 0 :(得分:12)
您要搜索的内容称为两个字符串之间的edit distance。有很多实现 - here’s one from Stack Overflow itself。
由于您只搜索字符串的 part ,因此您需要的是本地最优匹配,而不是此方法计算的全局匹配。
这被称为local alignment problem,再一次它可以通过几乎相同的算法轻松解决 - 唯一改变的是初始化(我们不会惩罚任何来自之前的搜索字符串)和最佳值的选择(我们不会惩罚在搜索字符串后的任何内容)。