代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
CSharp
】
计算字符串相似性
作者:
kevin0216
/ 发布于
2013/5/28
/
829
计算字符串相似性的办法很多,甚至最笨的办法可以挨个匹配,这里要讲的是使用莱文史特距离来计算字符串相似性。
public class LDMaker//搞成一个类看起来专业,实际上就是 //脱裤子放屁,这里使用来文史特距离算法 //用于计算字符串之间的相似性 { char[] str1; char[] str2; public LDMaker(string s1, string s2) { //替换掉 所有 数字 为固定数字 数字干扰 太严重 //这里因人而异,在中文文章的匹配中,数字是干扰很严重 的,所以我在某些应用中把数字替换掉了。 //原因是有的文章之间实际上相似性很高,但是故意在里面加一些数字 干扰该函数的执行,让机器看出来两篇文章很不同。一般不需要做如下 步骤 s1=System.Text.RegularExpressions.Regex.Replace(s1,@"(\d+)","1"); s2 = System.Text.RegularExpressions.Regex.Replace(s2, @"(\d+)", "1"); str1 = s1.ToCharArray(); str2 = s2.ToCharArray(); } public int GetLD()这是莱文史特距离的算法实现 { try { int m=str1.Length; int n=str2.Length; int[,] d = new int[m+1, n+1]; for (int i = 0; i <= m ; i++) d[i, 0] = i; for (int i = 0; i <= n ; i++) d[0, i] = i; for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) { d[i,j] = d[i - 1,j - 1] + (str1[i - 1] == str2[j - 1] ? 0 : 1); //修改一个字符 d[i,j] = Math.Min(d[i,j], d[i - 1,j] + 1); // 插入一个字符串 d[i,j] = Math.Min(d[i,j], d[i,j - 1] + 1); //删除一个字符 } } return d[m, n]; } catch(//出错返回一个很大值 { return 10000; } } }
试试其它关键字
字符串相似性
同语言下
.
文件IO 操作类库
.
Check图片类型[JPEG(.jpg 、.jpeg),TIF,GIF,BMP,PNG,P
.
机器名和IP取得(IPV4 IPV6)
.
Tiff转换Bitmap
.
linqHelper
.
MadieHelper.cs
.
RegHelper.cs
.
如果关闭一个窗体后激活另一个窗体的事件或方法
.
创建日志通用类
.
串口辅助开发类
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
kevin0216
贡献的其它代码
(
2
)
.
MySQL里改read_only变量
.
计算字符串相似性
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3