计算字符串相似度,直接来C#代码
public static float levenshtein(string str1, string str2) { //计算两个字符串的长度。 int len1 = str1.Length; int len2 = str2.Length; //建立上面说的数组,比字符长度大一个空间 int[,] dif = new int[len1 + 1, len2 + 1]; //赋初值,步骤B。 for (int a = 0; a <= len1; a++) { dif[a, 0] = a; } for (int a = 0; a <= len2; a++) { dif[0, a] = a; } //计算两个字符是否一样,计算左上的值 int temp; for (int i = 1; i <= len1; i++) { for (int j = 1; j <= len2; j++) { if (str1[i - 1] == str2[j - 1]) { temp = 0; } else { temp = 1; } //取三个值中最小的 dif[i, j] = Math.Min(Math.Min(dif[i - 1, j - 1] + temp, dif[i, j - 1] + 1), dif[i - 1, j] + 1); } } Console.WriteLine("字符串\"" + str1 + "\"与\"" + str2 + "\"的比较"); //取数组右下角的值,同样不同位置代表不同字符串的比较 Console.WriteLine("差异步骤:" + dif[len1, len2]); //计算相似度 float similarity = 1 - (float)dif[len1, len2] / Math.Max(str1.Length, str2.Length); Console.WriteLine("相似度:" + similarity); return similarity; }
返回结果就是相似度了,验证码识别上用的到
爱给模板网提供
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
问题内容: 从:查找文档相似度,可以使用余弦计算文档相似度。如果不导入外部库,是否有任何方法可以计算2个字符串之间的余弦相似度? 问题答案: 一个简单的纯Python实现是: 印刷品: 这里所用的余弦公式描述这里。 这不包括通过对单词进行加权,但是为了使用,你需要具有一个相当大的语料库才能从中估计的权重。 你还可以通过使用更复杂的方法从一段文本中提取单词,对其进行词干或词义化等来进一步开发它。
本文向大家介绍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。 为了解
本文向大家介绍C#和SQL实现的字符串相似度计算代码分享,包括了C#和SQL实现的字符串相似度计算代码分享的使用技巧和注意事项,需要的朋友参考一下 C#实现: SQL实现:
我的问题是这样问的:编写一个比较两个输入字符串的程序。输出每个字符串位置匹配的字符数。输出应根据字符数使用正确的动词(匹配与匹配)。 例如:如果输入是:粉碎崩溃 输出为:4个字符匹配 这就是我到目前为止所拥有的: 导入java.util.Scanner; 我知道这看起来并不多,但我已经尝试了很多其他方法,但我显然缺少一些可以让这更容易做到的东西。我想数一下柜台里类似的字母……但我不知道该怎么办。
问题内容: 如果我在mysql中有两个字符串: 有没有办法使用MYSQL获得这两个字符串之间的相似性百分比?例如,这里有3个单词是相似的,因此相似度应为: count(@a和@b之间的相似单词)/(count(@a)+ count(@b)-count(intersection)) 和结果是3 /(4 + 4-3)= 0.6 高度赞赏任何想法! 问题答案: 您可以使用此功能(从http://www.