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计算字符串的相似度相关推荐

  1. 计算字符串的相似度/华为机试(C/C++)

    题目描述 对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下: 1 修改一个字符,如把"a"替换为" ...

  2. es6与java的相似度_计算字符串的相似度-两种解法

    一直不理解,为什么要计算两个字符串的相似度呢.什么叫做两个字符串的相似度.经常看别人的博客,碰到比较牛的人,然后就翻了翻,终于找到了比较全面的答案和为什么要计算字符串相似度的解释.因为搜索引擎要把通过 ...

  3. 计算字符串的相似度(编辑距离)

    问题 许多程序会大量使用字符串.对于不同的字符串,我们希望能够有办法判断其相似程度.我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法为: 1.修改一个字符(如把"a&qu ...

  4. 编程之美-计算字符串的相似度方法整理

    [试题描述] 递归程序:

  5. [搜索]字符串的相似度问题-从编程之美说起

    在<编程之美>之3.3讲到了计算字符串的相似度,请看下图 原文作者做了很详细的解释,有兴趣的朋友可以参考原文. 其实,总结为一点,是求两个字符的编辑距离,关于编辑距离,可以参考这儿 htt ...

  6. python用Levenshtein计算文本相似度

    安装 Levenshtein 报错问题点击:解决安装python-Levenshtein时出现"Unable to find vcvarsall.bat"错误 #! /usr/bi ...

  7. python用Levenshtein计算文本相似度(附带所有个人对函数的理解)

    安装 Levenshtein 报错问题点击:解决安装python-Levenshtein时出现"Unable to find vcvarsall.bat"错误 #! /usr/bi ...

  8. 编程之美3.3 计算两个字符串的相似度

          假如有两个字符串分别是:abcd,bbcd,那么,这两个字符串不相同的字符个数是1,即第一个字符时不相同的,定义字符串的相似度为 1 / (x + 1),其中,x 就是不相同的字符个数. ...

  9. java算法(1)---余弦相似度计算字符串相似率

    功能需求:最近在做通过爬虫技术去爬取各大相关网站的新闻,储存到公司数据中.这里面就有一个技术点,就是如何保证你已爬取的新闻,再有相似的新闻 或者一样的新闻,那就不存储到数据库中.(因为有网站会去引用其 ...

最新文章

  1. 网站基于文本搜索的实现
  2. Visual Leak Detector 帮助检查内存泄露
  3. (xy)+((x^y)1)
  4. 网络编程应用:基于UDP协议【实现文件下载】--练习
  5. webBrowser1_DocumentCompleted不停被调用
  6. 连续三年蝉联第一,Flink 荣膺全球最活跃的 Apache 开源项目
  7. Android—打包aar以及module依赖操作
  8. reboot mysql fail_mysql 5.7.18,在系统重启后,为什么无法启动?
  9. 学c语言方法,学习C语言方法“新手必看”
  10. java循环标号_java 标号 break 自循环
  11. Maven查看插件信息
  12. 使用QuickPart时应用自定义属性和Web Part Connection功能的演示视频
  13. 少样本学习系列(三)【Optimization-Based Methods】
  14. Linux常用命令总结之(七)mkdir
  15. 查看mysql服务器位置,查看mysql服务器ip地址
  16. 联想笔记本使用Driver Booster更新驱动触控板失效解决方案
  17. 在全志平台调试博通的wifi驱动(类似ap6212)
  18. 计算机专业博士后 解决北京户口,在职博士后落北京户口可以么?该如何操作
  19. linux服务器巡检工作的意义,Linux服务器巡检报告
  20. android 视频通话窗口切换,仿微信视频通话大小视图切换(SurfaceView实现)

热门文章

  1. mysql char 和varchar哪种效率高_MySQL数据库中的字段类型varchar和char的主要区别是什么?那种字段的查找效率要高,为什么?...
  2. java代码中何处以main开始,Gradle-user guide-第7章 Java 快速开始
  3. python是高级动态语言_Python动态语言之魅力揭秘
  4. 形状变化html,图形变换的三种方式是什么?
  5. anki怎么设置学习计划_打篮球怎么训练弹跳力?NBA经典训练计划值得学习
  6. termux安装python3失败_boot空间不足导致安装python3失败
  7. 在Python中读取MATLAB的数据文件
  8. WS2812串行可控彩色LED灯珠
  9. 龙邱 MPU9250 模块接口 | 基于ESP32模块
  10. BP网络Python实现代码