一、课程介绍

斯坦福大学于2012年3月在Coursera启动了在线自然语言处理课程,由NLP领域大牛Dan Jurafsky 和 Chirs Manning教授授课:
https://class.coursera.org/nlp/

以下是本课程的学习笔记,以课程PPT/PDF为主,其他参考资料为辅,融入个人拓展、注解,抛砖引玉,欢迎大家在“我爱公开课”上一起探讨学习。

课件汇总下载地址:斯坦福大学自然语言处理公开课课件汇总

二、最小编辑距离

1)定义

编辑距离(Minimum Edit Distance,MED),又称Levenshtein距离,是指两个字符串之间,由一个转成另一个所需要的最少编辑操作次数。允许的编辑操作包括:将一个字符替换成另一个字符(substitution,s),插入一个字符(insert,i)或者删除一个字符(delete,d),如下图所示:

在大学算法设计相关课程上,想必大家都已经学习过使用动态规划算法解最小编辑距离,形式化定义如下:

最终求得D(n,m)即为字符串X[0...n]与Y[0...m]之间的最小编辑距离。

2)应用

最小编辑距离通常作为一种相似度计算函数被用于多种实际应用中,详细如下: (特别的,对于中文自然语言处理,一般以词为基本处理单元)

  • 拼写纠错(Spell Correction):又拼写检查(Spell Checker),将每个词与词典中的词条比较,英文单词往往需要做词干提取等规范化处理,如果一个词在词典中不存在,就被认为是一个错误,然后试图提示N个最可能要输入的词——拼写建议。常用的提示单词的算法就是列出词典中与原词具有最小编辑距离的词条。

这里肯定有人有疑问:对每个不在词典中的词(假如长度为len)都与词典中的词条计算最小编辑距离,时间复杂度是不是太高了?的确,所以一般需要加一些剪枝策略,如:

  1. 因为一般拼写检查应用只需要给出Top-N的纠正建议即可(N一般取10),那么我们可以从词典中按照长度依次为len、len-1、len+1、len-2、len-3、...的词条比较;
  2. 限定拼写建议词条与当前词条的最小编辑距离不能大于某个阈值;
  3. 如果最小编辑距离为1的候选词条超过N后,终止处理;
  4. 缓存常见的拼写错误和建议,提高性能。
  • DNA分析:基因学的一个主要主题就是比较 DNA 序列并尝试找出两个序列的公共部分。如果两个 DNA 序列有类似的公共子序列,那么这些两个序列很可能是同源的。在比对两个序列时,不仅要考虑完全匹配的字符,还要考虑一个序列中的空格或间隙(或者,相反地,要考虑另一个序列中的插入部分)和不匹配,这两个方面都可能意味着突变(mutation)。在序列比对中,需要找到最优的比对(最优比对大致是指要将匹配的数量最大化,将空格和不匹配的数量最小化)。如果要更正式些,可以确定一个分数,为匹配的字符添加分数、为空格和不匹配的字符减去分数。

全局序列比对尝试找到两个完整的序列 S1和 S2之间的最佳比对。以下面两个 DNA 序列为例:

S1GCCCTAGCG

S2GCGCAATG

如果为每个匹配字符一分,一个空格扣两分,一个不匹配字符扣一分,那么下面的比对就是全局最优比对:

S1'GCCCTAGCG

S2'GCGC-AATG

连字符(-)代表空格。在 S2'中有五个匹配字符,一个空格(或者反过来说,在 S1'中有一个插入项),有三个不匹配字符。这样得到的分数是 (5 * 1) + (1 * -2) + (3 * -1) = 0,这是能够实现的最佳结果。

使用局部序列比对,不必对两个完整的序列进行比对,可以在每个序列中使用某些部分来获得最大得分。使用同样的序列 S1和 S2,以及同样的得分方案,可以得到以下局部最优比对 S1''和 S2''

S1      = GCCCTAGCG

S1''=                 GCG

S2''=                 GCG

S2      =             GCGCAATG

这个局部比对的得分是 (3 * 1) + (0 * -2) + (0 * -1) = 3。

  • 命名实体抽取(Named Entity Extraction):由于实体的命名往往没有规律,如品牌名,且可能存在多种变形、拼写形式,如“IBM”和“IBM Inc.”,这样导致基于词典完全匹配的命名实体识别方法召回率较低,为此,我们可以使用编辑距离由完全匹配泛化到模糊匹配,先抽取实体名候选词。

具体的,可以将候选文本串与词典中的每个实体名进行编辑距离计算,当发现文本中的某一字符串的编辑距离值小于给定阈值时,将其作为实体名候选词;获取实体名候选词后,根据所处上下文使用启发式规则或者分类的方法判定候选词是否的确为实体名。

  • 实体共指(Entity Coreference):通过计算任意两个实体名之间的最小编辑距离判定是否存在共指关系?如“IBM”和“IBM Inc.”, "Stanford President John Hennessy "和"Stanford University President John Hennessy"。
  • 机器翻译(Machine Translation):
  1. 识别平行网页对:由于平行网页通常有相同或类似的界面结构,因此平行网页在HTML结构上应该有很大近似度。首先将网页的HTML标签抽取出来,连接成一个字符串,然后用最小编辑距离考察两个字符串的近似度。实际中,此策略一般与文档长度比例、句对齐翻译模型等方法结合使用,以识别最终的平行网页对。
  2. 自动评测:首先存储机器翻译原文和不同质量级别的多个参考译文,评测时把自动翻译的译文对应到与其编辑距离最小的参考译文上,间接估算自动译文的质量,如下图所示:
  • 字符串核函数(String Kernel):最小编辑距离作为字符串之间的相似度计算函数,用作核函数,集成在SVM中使用。

3)变形

在基本的编辑距离基础上,结合实际应用,往往需要做一些变形或改进,如某些拼写错误相对其他更容易发生,同义词替换、虚词或修饰成分被删除(或插入)应该得到较小的惩罚,等等。

改进后的最小编辑距离公式如下所示:

三、参考资料

  1. Lecture Slides: Minimum Edit Distance
  2. http://en.wikipedia.org
  3. 双语平行网页挖掘系统的设计与实现
  4. 机器翻译系统评测规范
  5. Improved-Edit-Distance Kernel for Chinese Relation Extraction

斯坦福大学自然语言处理第三课“最小编辑距离(Minimum Edit Distance)”相关推荐

  1. 最小编辑距离(Minimum Edit Distance)

    概念 编辑距离的概念: 给定两个字符串oppa和apple,如何把前者变成后者?你可以使用的操作有:1.增加字符2.删除字符3.更新字符. 一种可能的做法是: oppa->appa->ap ...

  2. 最小编辑距离算法 Edit Distance(经典DP)

    最小编辑距离算法 Edit Distance(经典DP) 转载baodream 最后发布于2018-05-23 11:36:32 阅读数 22226  收藏 展开 编辑距离(Edit Distance ...

  3. mysql 编辑距离 搜索_最小编辑距离(Minimum Edit Distance)

    最小编辑距离 1)定义 编辑距离(Minimum Edit Distance,MED),又称Levenshtein距离,是指两个字符串之间,由一个转成另一个所需要的最少编辑操作次数.允许的编辑操作包括 ...

  4. 6-斯坦福大学自然语言处理第四课“语言模型(Language Modeling)

    一.课程介绍 斯坦福大学于2012年3月在Coursera启动了在线自然语言处理课程,由NLP领域大牛Dan Jurafsky 和 Chirs Manning教授授课: https://class.c ...

  5. 斯坦福大学自然语言处理研究的《信息检索》课程

    斯坦福大学自然语言处理研究的信息检索网上公开课程 课程根据IR界著名的克里斯托弗D.曼宁教授的<Introduction to Information Retrieval>一书讲述,对IR ...

  6. Minimum edit distance(levenshtein distance)(最小编辑距离)初探

    最小编辑距离的定义:编辑距离(Edit Distance),又称Levenshtein距离.是指两个字串之间,由一个转成还有一个所需的最少编辑操作次数.许可的编辑操作包含将一个字符替换成还有一个字符. ...

  7. 斯坦福大学自然语言处理的QA数据集SQuAD

    真英雄,成名于少林寺武侠大会:好算法,验证在斯坦福公开数据. 武侠小说中一个公平且有影响力的平台,可以让侠之大者脱颖而出,科研也是,一个优秀的公开数据集可以让好算法脱颖而出,并同时让那些靠吹的算法身败 ...

  8. 斯坦福大学计算机视觉课程cs231n——第一课:课程介绍 计算机视觉概述

      什么是计算机视觉?计算机视觉,顾名思义,就是针对视觉数据的研究.在我们的世界,过去短短几年里视觉数据爆炸式增长到夸张的地步.基于一项2015年的研究,预计到2017年,互联网上80%的数据都是视频 ...

  9. stanford NLP学习笔记3:最小编辑距离(Minimum Edit Distance)

    I. 最小编辑距离的定义 最小编辑距离旨在定义两个字符串之间的相似度(word similarity).定义相似度可以用于拼写纠错,计算生物学上的序列比对,机器翻译,信息提取,语音识别等. 编辑距离就 ...

  10. 斯坦福大学-自然语言处理入门 笔记 第十九课 单词含义与相似性

    一.单词含义与单词关系 回顾:词目(lemma)与单词形式(wordform) 词目:表示相同的词根.词性以及大致的语义 单词形式:表示在文档中出现的具体单词形式 一个词目可能会含有很多含义(sens ...

最新文章

  1. Python-从视频到gif(imageio,moviepy,ffmpeg)
  2. linux c dup dup2 重定向函数简介
  3. 导师实验室对学生影响有多大?
  4. mysql填写账户远程_mysql账户添加远程访问
  5. BCM_I2C函数更改
  6. Monte Carlo方法
  7. web中ajax实现二级联动,Ajax实现城市二级联动(一)
  8. 写给嵌入式方向的某些同学 - 基于WINCE系统的程序开发[不完整版]
  9. 【译】Serverless Jenkins with Jenkins X
  10. js实现php中图片轮播,两种js实现轮播图的方式
  11. 升级Win10后Markdown Pad2启动报错‘Awesomium.Windows.Controls.WebControl’解决方法
  12. 计算机图形学 实验二 OpenGL简单动画
  13. 动易软件向网站服务器上传软件,动易CMS粘贴图片自动上传到服务器(Java版)
  14. [MacOS][Google Chrome 浏览器] 鼠标右键需要双击才能弹出菜单
  15. SpringBoot整合IoTDB
  16. python实现税后工资_Python扣除个人税后的工资计算器
  17. 关于 CSS,你该了解这些
  18. 5个典型实例告诉你:什么是数据可视化
  19. R语言 关联规则(二)
  20. java交换机状态_博科SAN交换机的状态等信息查询(华为SNS系列交换机为例OEM博科)...

热门文章

  1. 按钮打开Activity
  2. mysql 查询一年中每个月份的数据量
  3. MYSQL 查看表定义的 4 种方法
  4. Hibernate上路_18-Hibernate查询方式
  5. 如何让普通用户执行一些root用户才能执行的命令
  6. MS CRM 2011汇总更新5发布
  7. mysql truncate 日期_(LINQ to Entities)使用日期判断条件Truncate日期函数
  8. js实现删除文章弹窗提示是否确认
  9. 【html和css入门】实现简单的页首导航
  10. c语言空字符和 0 的区别,C语言'\0'、'0'、' '、“0”、0的区别详解