C# Levenshtein计算字符串的相似度
static void Main(string[] args){ Levenshtein(@"今天天气不错", @"今天的天气不错啊");Console.Read();}/// <summary>/// 字符串相似度计算/// </summary>/// <param name="str1"></param>/// <param name="str2"></param>public static void 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] = 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 + " 越接近1越相似");}/// <summary>/// 得到最小值/// </summary>/// <param name="num"></param>/// <returns></returns>private static int min(params int[] num){int min = Int32.MaxValue;foreach (var n in num){if (min > n){min = n;}}return min;}
转载于:https://www.cnblogs.com/mahatmasmile/p/7765945.html
C# Levenshtein计算字符串的相似度相关推荐
- 计算字符串的相似度/华为机试(C/C++)
题目描述 对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把"a"替换为" ...
- es6与java的相似度_计算字符串的相似度-两种解法
一直不理解,为什么要计算两个字符串的相似度呢.什么叫做两个字符串的相似度.经常看别人的博客,碰到比较牛的人,然后就翻了翻,终于找到了比较全面的答案和为什么要计算字符串相似度的解释.因为搜索引擎要把通过 ...
- 计算字符串的相似度(编辑距离)
问题 许多程序会大量使用字符串.对于不同的字符串,我们希望能够有办法判断其相似程度.我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为: 1.修改一个字符(如把"a&qu ...
- 编程之美-计算字符串的相似度方法整理
[试题描述] 递归程序:
- [搜索]字符串的相似度问题-从编程之美说起
在<编程之美>之3.3讲到了计算字符串的相似度,请看下图 原文作者做了很详细的解释,有兴趣的朋友可以参考原文. 其实,总结为一点,是求两个字符的编辑距离,关于编辑距离,可以参考这儿 htt ...
- python用Levenshtein计算文本相似度
安装 Levenshtein 报错问题点击:解决安装python-Levenshtein时出现"Unable to find vcvarsall.bat"错误 #! /usr/bi ...
- python用Levenshtein计算文本相似度(附带所有个人对函数的理解)
安装 Levenshtein 报错问题点击:解决安装python-Levenshtein时出现"Unable to find vcvarsall.bat"错误 #! /usr/bi ...
- 编程之美3.3 计算两个字符串的相似度
假如有两个字符串分别是:abcd,bbcd,那么,这两个字符串不相同的字符个数是1,即第一个字符时不相同的,定义字符串的相似度为 1 / (x + 1),其中,x 就是不相同的字符个数. ...
- java算法(1)---余弦相似度计算字符串相似率
功能需求:最近在做通过爬虫技术去爬取各大相关网站的新闻,储存到公司数据中.这里面就有一个技术点,就是如何保证你已爬取的新闻,再有相似的新闻 或者一样的新闻,那就不存储到数据库中.(因为有网站会去引用其 ...
最新文章
- 网站基于文本搜索的实现
- Visual Leak Detector 帮助检查内存泄露
- (xy)+((x^y)1)
- 网络编程应用:基于UDP协议【实现文件下载】--练习
- webBrowser1_DocumentCompleted不停被调用
- 连续三年蝉联第一,Flink 荣膺全球最活跃的 Apache 开源项目
- Android—打包aar以及module依赖操作
- reboot mysql fail_mysql 5.7.18,在系统重启后,为什么无法启动?
- 学c语言方法,学习C语言方法“新手必看”
- java循环标号_java 标号 break 自循环
- Maven查看插件信息
- 使用QuickPart时应用自定义属性和Web Part Connection功能的演示视频
- 少样本学习系列(三)【Optimization-Based Methods】
- Linux常用命令总结之(七)mkdir
- 查看mysql服务器位置,查看mysql服务器ip地址
- 联想笔记本使用Driver Booster更新驱动触控板失效解决方案
- 在全志平台调试博通的wifi驱动(类似ap6212)
- 计算机专业博士后 解决北京户口,在职博士后落北京户口可以么?该如何操作
- linux服务器巡检工作的意义,Linux服务器巡检报告
- android 视频通话窗口切换,仿微信视频通话大小视图切换(SurfaceView实现)
热门文章
- mysql char 和varchar哪种效率高_MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?...
- java代码中何处以main开始,Gradle-user guide-第7章 Java 快速开始
- python是高级动态语言_Python动态语言之魅力揭秘
- 形状变化html,图形变换的三种方式是什么?
- anki怎么设置学习计划_打篮球怎么训练弹跳力?NBA经典训练计划值得学习
- termux安装python3失败_boot空间不足导致安装python3失败
- 在Python中读取MATLAB的数据文件
- WS2812串行可控彩色LED灯珠
- 龙邱 MPU9250 模块接口 | 基于ESP32模块
- BP网络Python实现代码