Levenshtein Distance,判断字符串的相似性
private int LevenshteinDistance(string s1,string s2,int maxValue)
{
if (s1 == null|| s1.Length == 0) return maxValue;
if (s2 == null|| s2.Length == 0) return maxValue;
if (s1.Trim() == s2.Trim()) return 0;
// create two work vectors of integer distances
int[] v0 = new int[s2.Length + 1];
int[] v1 = new int[s2.Length + 1];
int[] vtemp;
// initialize v0 (the previous row of distances)
// this row is A[0][i]: edit distance for an empty s
// the distance is just the number of characters to delete from t
for (int i = 0; i < v0.Length; i++)
{
v0[i] = i;
}
for (int i = 0; i < s1.Length; i++)
{
// calculate v1 (current row distances) from the previous row v0
// first element of v1 is A[i+1][0]
// edit distance is delete (i+1) chars from s to match empty t
v1[0] = i + 1;
// use formula to fill in the rest of the row
for (int j = 0; j < s2.Length; j++)
{
int cost = 1;
if (s1.Substring(i, 1) == s2.Substring(j, 1))
{
cost = 0;
}
v1[j + 1] = Math.Min(
v1[j] + 1, // Cost of insertion
Math.Min(
v0[j + 1] + 1, // Cost of remove
v0[j] + cost)); // Cost of substitution
}
// copy v1 (current row) to v0 (previous row) for next iteration
//System.arraycopy(v1, 0, v0, 0, v0.length);
// Flip references to current and previous row
vtemp = v0;
v0 = v1;
v1 = vtemp;
}
return Math.Min(v0[s2.Length],maxValue);
}
Levenshtein Distance,判断字符串的相似性的更多相关文章
- Java 比较两个字符串的相似度算法(Levenshtein Distance)
		转载自: https://blog.csdn.net/JavaReact/article/details/82144732 算法简介: Levenshtein Distance,又称编辑距离,指的是两 ... 
- 字符串相似度算法(编辑距离算法 Levenshtein Distance)(转)
		在搞验证码识别的时候需要比较字符代码的相似度用到“编辑距离算法”,关于原理和C#实现做个记录. 据百度百科介绍: 编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个 ... 
- 字符串相似度算法(编辑距离算法 Levenshtein Distance)
		在搞验证码识别的时候需要比较字符代码的相似度用到“编辑距离算法”,关于原理和C#实现做个记录.据百度百科介绍:编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串 ... 
- 用C#实现字符串相似度算法(编辑距离算法 Levenshtein Distance)
		在搞验证码识别的时候需要比较字符代码的相似度用到"编辑距离算法",关于原理和C#实现做个记录. 据百度百科介绍: 编辑距离,又称Levenshtein距离(也叫做Edit Dist ... 
- 字符串相似度算法——Levenshtein Distance算法
		Levenshtein Distance 算法,又叫 Edit Distance 算法,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一 ... 
- 字符串相似度算法-LEVENSHTEIN DISTANCE算法
		Levenshtein Distance 算法,又叫 Edit Distance 算法,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数.许可的编辑操作包括将一个字符替换成另一个字符,插入一 ... 
- Levenshtein Distance莱文斯坦距离算法来计算字符串的相似度
		Levenshtein Distance莱文斯坦距离定义: 数学上,两个字符串a.b之间的莱文斯坦距离表示为levab(|a|, |b|). levab(i, j) = max(i, j) 如果mi ... 
- [转]字符串相似度算法(编辑距离算法 Levenshtein Distance)
		转自:http://www.sigvc.org/bbs/forum.php?mod=viewthread&tid=981 http://www.cnblogs.com/ivanyb/archi ... 
- Lucene的FuzzyQuery中用到的Levenshtein Distance(LD)算法
		2019独角兽企业重金招聘Python工程师标准>>> Lucene的FuzzyQuery中用到的Levenshtein Distance(LD)算法 博客分类: java 搜索引擎 ... 
随机推荐
- plsql 代码自动补全
			1.新建一个文件,命名不限定,文件内容为自动补全内容,比如: i=INSERTu=UPDATEs=SELECTf=FROMw=WHEREo=ORDER BYd=DELETEdf=DELETE FROM ... 
- 1113: No mapping for the Unicode character exists in the target multi-byte code page
			windows版本nginx启动 报错. 启动方式:到nginx所在目录执行:nginx.exe -c conf\nginx.conf 原因:所在路径中含有中文字符. 解决:换个没有中文的路径. 
- 使用准现网的数据,使用本地的样式脚本,本地调试准现网页面(PC适用)
			原理: 本地逻辑,重新渲染 步骤: 1.安装插件:Tampermonkey 度盘:https://pan.baidu.com/s/1bpBVVT9 2.设置: 点击插件-->仪表盘 添加脚本 将 ... 
- selenium使用location定位元素坐标偏差
			python+selenium+Chromedriver使用location定位元素坐标偏差使用xpath定位元素,用.location获取坐标值,截取网页截图的一部分出现偏差. 之所以会出现这个坐标 ... 
- django 分页函数
			实现类似: 上一页 1 ... 4 5 7 8 ... 89 下一页 的效果 def pageGenerate(fullList,pagenum,urltype,type,currpage): pag ... 
- sqlalchemy学习笔记
			https://segmentfault.com/a/1190000006949536 
- logstash 5.1.1 学习
			Logstash 5.1.1 安装配置 安装和配置 java 环境: [root@ ~]# tar xf jdk-8u71-linux-x64.tar.gz [root@ ~]# mv jdk1.8. ... 
- Web安全学习笔记之更新kali国内源
			vi /etc/apt/sources.list #中科大 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib ... 
- Vue小案例 之 商品管理------批量删除与商品数量的调整
			通过索引进行删除,进行测试,是否获取其索引: 测试效果: 测试代码,在vue中定义一个空的数组,以便后面进行数据的绑定: data:{ imgUrl:'../res/images/', imgName ... 
- jQuery中prop和attr区别
			问题 今天给一个button加onclick事件,由于最后button根据需要转成字符串,因此不能使用jQurey.click(),只能给button添加onclick属性的方式. 于是,$butto ... 
