C#如何计算2个字符串相似度的示例代码分享


本文摘自PHP中文网,作者黄舟,侵删。

这篇文章主要为大家详细介绍了C#计算2个字符串相似度的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

计算字符串相似度,直接来C#代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

public static float 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] = Math.Min(Math.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);

  return similarity;

 }

返回结果就是相似度了,验证码识别上用的到

以上就是C#如何计算2个字符串相似度的示例代码分享的详细内容!

相关阅读 >>

C# 2.0 specification (四)

C# winform制作不规则窗体(代码)

文件路径和文件夹路径在C#中使用浏览按钮获得的方法

C#中如何实现两个richtextbox控件滚动条同步滚动的方法详解

C#注册控件处理程序(setconsolectrlhandler)函数示例的详细介绍

属性值反序列化失败怎么解决?

C#基础入门之算法-交换的代码示例

详细概述C#中的常用字符串方法

具体介绍C#使用selenium+phantomjs抓取数据的案例(图文)

C#中winform制作异形窗体与控件的实现方法

更多相关阅读请进入《C#》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...

    暂无评论...