c#计算2个字符串的相似度
直接来代码
public static float levenshtein(string str1, string str2)
{
//计算两个字符串的长度。
int len1 = str1.Length;
int len2 = str2.Length;
//建立上面说的数组,比字符长度大一个空间
int[,] dif = new int[len1 + , len2 + ];
//赋初值,步骤B。
for (int a = ; a <= len1; a++)
{
dif[a, ] = a;
}
for (int a = ; a <= len2; a++)
{
dif[, a] = a;
}
//计算两个字符是否一样,计算左上的值
int temp;
for (int i = ; i <= len1; i++)
{
for (int j = ; j <= len2; j++)
{
if (str1[i - ] == str2[j - ])
{
temp = ;
}
else
{
temp = ;
}
//取三个值中最小的
dif[i, j] = Math.Min(Math.Min(dif[i - , j - ] + temp, dif[i, j - ] + ), dif[i - , j] + );
}
}
Console.WriteLine("字符串\"" + str1 + "\"与\"" + str2 + "\"的比较"); //取数组右下角的值,同样不同位置代表不同字符串的比较
Console.WriteLine("差异步骤:" + dif[len1, len2]);
//计算相似度
float similarity = - (float)dif[len1, len2] / Math.Max(str1.Length, str2.Length);
Console.WriteLine("相似度:" + similarity);
return similarity;
}
返回结果就是相似度了,验证码识别上用的到
爱给模板网 http://2gei.cn 提供
c#计算2个字符串的相似度的更多相关文章
- 利用编辑距离(Edit Distance)计算两个字符串的相似度
利用编辑距离(Edit Distance)计算两个字符串的相似度 编辑距离(Edit Distance),又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数.许可 ...
- C# 计算两个字符串的相似度
我们在做数据系统的时候,经常会用到模糊搜索,但是,数据库提供的模糊搜索并不具备按照相关度进行排序的功能. 现在提供一个比较两个字符串相似度的方法. 通过计算出两个字符串的相似度,就可以通过Linq在内 ...
- Levenshtein Distance + LCS 算法计算两个字符串的相似度
//LD最短编辑路径算法 public static int LevenshteinDistance(string source, string target) { int cell = source ...
- iOS:使用莱文斯坦距离算法计算两串字符串的相似度
Levenshtein:莱文斯坦距离 Levenshtein的经典算法,参考http://en.wikipedia.org/wiki/Levenshtein_distance的伪代码实现的,同时参考了 ...
- C# Levenshtein计算字符串的相似度
static void Main(string[] args) { Levenshtein(@"今天天气不错", @"今天的天气不错啊"); Console.R ...
- C#比较两个字符串的相似度【转】
原文地址:http://www.2cto.com/kf/201202/121170.html 我们在做数据系统的时候,经常会用到模糊搜索,但是,数据库提供的模糊搜索并不具备按照相关度进行排序的功能. ...
- 51Nod - 1304 :字符串的相似度 (裸的扩展KMP)
我们定义2个字符串的相似度等于两个串的相同前缀的长度.例如 "abc" 同 "abd" 的相似度为2,"aaa" 同 "aaab& ...
- 【51NOD1304】字符串的相似度
题目描述 我们定义2个字符串的相似度等于两个串的相同前缀的长度.例如 "abc" 同 "abd" 的相似度为2,"aaa" 同 " ...
- python利用difflib判断两个字符串的相似度
我们再工作中可能会遇到需要判断两个字符串有多少相似度的情况(比如抓取页面内容存入数据库,如果相似度大于70%则判定为同一片文章,则不录入数据库) 那这个时候,我们应该怎么判断呢? 不要着急,pytho ...
随机推荐
- android activity 后的形式 藏
activity 希望的形式 于AndroidManifest.xml 建立 theme 属性 <activity android:name="zicox.u ...
- bash shell:重定向标准错误输出
如何重定向标准错误输出到标准输出?如何把标准错误输出输出到一个文件? Bash提供了I/O重定向工具,有3个缺省的文件(标准输出流): stdin - 用来获取输入,比如键盘.文件重定向 stdout ...
- LeetCode_算法及数据结构覆盖统计
[输入]共计151道题的算法&数据结构基础数据 (见附录A) [输出-算法]其中有算法记录的共计 97道 ,统计后 结果如下 top3(递归,动态规划,回溯) 递归 动态规划 回溯 BFS ...
- Appium在手机浏览器使用滑屏Not yet implemented解决办法。
在手机浏览器使用swipe.scroll等手机特有行为时,因为默认context是WEBVIEW,所有一定要切换回NATIVE_APP才可以使用. python: driver.switch_to.c ...
- C和指针 (pointers on C)——第一章:高速启动
大多数人并不认为有几类人猿学校计划非常赞同C学习好,然后看多本书. 仅仅作为读书笔记写.有时还包括一些题目和答案. 这样的公开栏,这两种玉引砖敲,对于自勉,鼓励王! 第一章:手 我每次都是复习的来写. ...
- C_数据结构
线性结构 线性结构的特点是:在数据元素的飞空有限集中,(1)存在唯一的一个被称作“第一个”的数据元素:(2) 存在唯一一个被称做“最后一个”的数据元素:(3)除第一个外,集合中的每一个元素都只有一个前 ...
- 类的构造函数 this 关键字
今天研究了一下mvc 的绑定脚本,绑定样式类. 看了下源码,里面有一个 构造函数里面 有一个 this 关键字.我想,怎么我的项目没有用到呢. 于是做了一个例子示范了一下. using System; ...
- 将firebug安装在chrome浏览器上
一直很喜欢火狐浏览器,原因是火狐的插件很喜欢,几天突然发现firebug这个插件能够安装在chrome浏览器上,震惊,更震惊的是这个好似已经很长时间了,而我猜发现. 具体的具体页面地址是 http:/ ...
- 【Leetcode】Remove Duplicates from Sorted List in JAVA
Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...
- Windows WDDM显卡驱动框架及GPUView工具的使用(1)
也许这个夏天会写一些东西,这里先说说我做过些什么,知道些什么. 过去的五年里,先后在Vista,Win7和Win8上写过显卡驱动,包括umd和kmd的驱动,积累了大量关于WDDM的经验. 我知道WMM ...