C# 字符串相似性算法

C# 字符串相似性算法,c#,.net,string,algorithm,sql-like,C#,.net,String,Algorithm,Sql Like,我有两个字符串(它们最终将成为一个简单数据库中的描述),假设它们是 字符串A:“苹果橙椰子酸橙吉米自助餐” 字符串B:“汽车 自行车滑板“ 我要找的是这个。我想要一个输入为“cocnut”,输出为“stringa”的函数 我们可能在大写字母方面存在差异,拼写也不总是正确的。如果你愿意的话,目标是“快速而肮脏”的搜索 是否有任何.net(或第三方)或推荐字符串的“相似性算法”,以便我可以检查输入是否有“非常接近的片段”并返回它?我的数据库最多将有50个条目。您正在搜索的内容称为两个字符串之间的字符

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

  • 字符串A:“苹果橙椰子酸橙吉米自助餐”
  • 字符串B:“汽车 自行车滑板“
  • 我要找的是这个。我想要一个输入为“cocnut”,输出为“stringa”的函数

    我们可能在大写字母方面存在差异,拼写也不总是正确的。如果你愿意的话,目标是“快速而肮脏”的搜索


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

    您正在搜索的内容称为两个字符串之间的字符串。存在大量的实现

    因为您只搜索字符串的一部分,所以您需要的是局部最优匹配,而不是此方法计算的全局匹配


    这被称为,并且同样可以通过几乎相同的算法轻松解决–唯一改变的是初始化(我们不惩罚搜索字符串之前的任何内容)和最佳值的选择(我们不惩罚搜索字符串之后的任何内容)。

    汉明距离?soundex?Levenshtein距离?我正在尝试Levenshtein算法。我想我在寻找一个建议,因为我的目标是只使用整个字符串的片段。我应该尝试所有的方法,挑选最好的。@Marc显然也不是。。。答案中的链接已失效,请在此处获取产品:我想我找到了解决方案,我将使用levenshtien算法。由于我的大多数数据都很简单,并且是空格分隔的,所以我将把我的字符串与数据库条目的空格分隔版本进行比较,并取最高的单词作为结果。