在office中输错了单词,office会在单词下方用红色波浪线标出来,你右击它,在菜单中会提示正确的单词拼法;在翻译词典中输入单词时拼错了某个字母,词典会智能的提示你可能想输入的单词。

其实这里用到的是"编辑距离"的概念,根据维基百科的解释,编辑距离,又称Levenshtein距离,是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。以begin为例,将它编辑为been,其中一种方案的步骤如下:1.删除g; 2.将i变为e。由于该方案经过了两次编辑操作,因此编辑距离就为2。编辑距离问题就是研究将一个字符串转成另一个字符串需要的最少操作次数。

算法实现

实现计算编辑距离的算法,主要是采用动态规划的思想。

public static int GetDistance(string a, string b)
{char[] arr1 = a.ToCharArray();char[] arr2 = b.ToCharArray();int[,] D = new int[arr1.Length + 1, arr2.Length + 1];for (int i = 0; i <= arr1.Length; i++){D[i, 0] = i;}for (int j = 0; j <= arr2.Length; j++){D[0, j] = j;}for (int i = 1; i <= arr1.Length; i++){for (int j = 1; j <= arr2.Length; j++){D[i, j] = new int[]{D[i-1,j-1]+(arr1[i-1]==arr2[j-1]?0:1),D[i-1,j]+1,D[i,j-1]+1}.Min();}}return D[arr1.Length, arr2.Length];
}

算法应用

到网上找一个英语词典的数据库,就可以实现错误检测的功能。用户输入一个单词后,当数据库中没有查找到该单词,则将编辑距离为1的单词显示给用户,供用户选择。

当用户输入了正确的单词,则显示该单词的解释。

编辑距离 在输入检测中的应用相关推荐

  1. 人脸检测中,如何构建输入图像金字塔

    目录 写在前面 人脸检测中的图像金字塔 代码实现 MTCNN Seetaface 总结 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 在文章<特征,特征不变性 ...

  2. 目标检测中特征融合技术(YOLO v4)(下)

    目标检测中特征融合技术(YOLO v4)(下) ASFF:自适应特征融合方式 ASFF来自论文:<Learning Spatial Fusion for Single-Shot Object D ...

  3. 目标检测中特征融合技术(YOLO v4)(上)

    目标检测中特征融合技术(YOLO v4)(上) 论文链接:https://arxiv.org/abs/1612.03144 Feature Pyramid Networks for Object De ...

  4. 攻和防谁更厉害?AI技术在恶意软件检测中的应用和对抗

    AI技术的发展为网络安全带来新机遇的同时,黑客也在逐渐利用AI漏洞建立对抗样本以躲避攻击,双方在各自领域的更多尝试也将是AI技术发展的一场新博弈.那么,在应用中,如何利用AI检测技术与恶意软件展开对抗 ...

  5. 论文推荐 | 目标检测中不平衡问题算法综述

    (图片付费下载于视觉中国) 作者 | CV君 来源 | 我爱计算机视觉(ID:aicvml) 今天跟大家推荐一篇前几天新出的投向TPAMI的论文:Imbalance Problems in Objec ...

  6. 全面理解目标检测中的anchor

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨CV技术指南 编辑丨极市平台 导读 anchor是一个晦涩难懂 ...

  7. 目标检测中的Tricks

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来自 | 知乎    作者 | roger 链接 | https: ...

  8. 目标检测 | 盘点目标检测中的特征融合技巧(根据YOLO v4总结)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 特征融合分类 在深度学习的很多工作中(例如目标检测.图像分割),融 ...

  9. 综述:解决目标检测中的样本不均衡问题

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨SFXiang 来源丨AI算法修炼营 编辑丨极市平台 极市导 ...

最新文章

  1. win10+Linux双系统安装及一些配置问题
  2. eclipse字体大小设置_Java 设置Excel单元格格式—基于Spire.Cloud.SDK for Java
  3. 顾险峰: 庞加莱猜测的证明和应用
  4. python写http文件下载器_http分片请求-python分片下载文件
  5. C++ leetcode 17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
  6. c语言如何定义比较大的数组_C语言:数据结构-数组的定义、逻辑结构和特点
  7. vmware下ubuntu 鼠标不起作用解决方法
  8. mybatis中的$与#的区别
  9. 字符串ababaaab的nextval数组值序列为_子序列解题模板:最长回文子序列
  10. Linux 删除除某个文件之外的所有文件
  11. redis数据类型-字符串
  12. sourceMap到底是个啥玩意?
  13. Storm原理及单机安装指南
  14. android mvp快速创建,学习MVPArms历程之Android Studio快速创建ArmsComponent组件化项目
  15. Excel一元线性回归分析
  16. 多图预警~ 华为 ECS 与 阿里云 ECS 对比实战
  17. 【考研政治】马克思主义基本原理概论——导论篇
  18. Linux 下的 MISC 设备驱动
  19. Powershell-快速编辑模式和标准模式
  20. apple API常用英语名词

热门文章

  1. c语言数据结构的主函数怎么写,您好,关于数据结构C语言的问题,上次百度知道里面主函数没有发上去? 爱问知识人...
  2. 第一次java怎么创建一class_Java:如何创建Class参数?
  3. java远程关机_通过jsch实现对linux服务器的shell客户端远程控制关机完整示例代码分享...
  4. 国科大计算机算法设计与分析陈玉福,中科院陈玉福计算机算法设计与分析期末简答题答案.pdf...
  5. 外国谷歌服务器练中国无线,易观:中国无线搜索市场百度谷歌份额超50%
  6. java逆序对距离之和,七天刷完剑指offer-【第27道-第37道】
  7. 时间预定java,在预定的时间运行任务java,apache
  8. python如何搭建环境_Python基础环境如何搭建
  9. mybatis 多表查询-多对多
  10. Node.js webpack