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

编辑距离就是指将一个字符串通过的包括插入(insertion),删除(deletion),替换(substitution)的编辑操作转变为另一个字符串所需的最少编辑次数。比如:

如果将编辑操作从字符放大到词,那就可以用于评估集齐翻译和语音识别的效果。比如:

还可以用于实体名称识别(named entity recognition)和实体共指(entity corefernce)

如何寻找最短的编辑路径(所有寻找所有编辑结果的可能星代价太大也没必要):动态编程法
若字符串X长度为n,字符串Y长度为m,定义X和Y之间的编辑距离为D(n,m)。计算原理很简单:利用从底向顶的方式,计算D(n,m)可以建立在D(n-1,m-1)的基础上,并一次类推向上直至D(0,0)。初始和迭代条件入下:D(i, 0)就是将X中所有i个字符删除即可,因此其值就是i。同理D(0, j)为插入j个字符。

计算Intention和execution之间距离的距离矩阵如下:

PS:关于编辑距离的实现代码可以看码农场大神的这篇博客
II. 回溯比对(backtrace)
很多情况下只是记录编辑距离是不够的,需要将两列字符串的进行一一对应的具体位置信息(比如拼写纠错)。因此会用一个指针来记录位置信息用于回溯。由于需要求的是最短编辑距离,在每一次编辑操作的格子将其指向前一次操作时的最小的编辑距离的格子即可,最终变可以获得比对的具体对应信息。


该算法的复杂度:很明显时间和空间复杂度为O(nm);而做多需要(m+n)个backtrace指针来记录。
III. 加权编辑距离(weighted edit distance)
加入加权的原因是是由于不同情况的插入,替换,删除的可能性是不同的。比如在拼写纠错的时候有些位置的字母打错成某个字母的可能性比其他字母要高;在DNA序列中,有些碱基的缺失和替换可能性也要比其他的高。如下就是各字母间打错的次数:

具体计算而言,在上述原理的基础上加入每一步编辑操作具体的权值即可。

IV. 计算生物学中的最短编辑距离
由于当代计算生物学主要数据就是各种DNA和RNA序列的碱基信息,且比对是大部分分析的基础,因此最短编辑距离对计算生物学而言意义十分重要。
计算生物学在比对的时候通常用相似度(similarity)来代替距离来作为评估标准,因此对之前的算法稍做调整使之最大化相似度:Needleman-wunsch algorithm

变体. 由于测序特性,对序列头和尾的gap序列的比对不做惩罚是相当合理的,即在初始状态,for all i,j; F(i, 0)=0; F(0, j)=0。 终止状态,Fopt = MAX(MAXi F(i,N), MAXj F(M,j))。

局部比对
寻找X,Y的相似度最高的子序列,因此可以不光是开头结尾的gap,序列前后部的差异很大的序列也可以不用管。这个算法叫做Smith-Waterman algorithm,目标就是舍弃那些比对相似度很差的区域,关注于高度相似的区域。

如果当前位置之前的序列比对得分低于0了,说明前面的序列比对情况很糟糕,那么就从这个位置开始重新开始比对,前面的序列就放弃不管了。
终止情况:

局部比对实例
X=ATCAT, Y=ATTATC, m=1(匹配得分),d=-1(发生替换/删除/插入的得分)


传送门:https://www.youtube.com/watch?v=Q0TGn4wkuoE
stanford NLP学习笔记3:最小编辑距离(Minimum Edit Distance)的更多相关文章
- Stanford NLP学习笔记:7. 情感分析(Sentiment)
1. 什么是情感分析(别名:观点提取,主题分析,情感挖掘...) 应用: 1)正面VS负面的影评(影片分类问题) 2)产品/品牌评价: Google产品搜索 3)twitter情感预测股票市场行情/消 ...
- Stanford NLP学习笔记1:课程介绍
Stanford NLP课程简介 1. NLP应用例子 问答系统: IBM Watson 信息提取(information extraction) 情感分析 机器翻译 2. NLP应用当前进展 很成熟 ...
- Stanford NLP 学习笔记2:文本处理基础(text processing)
I. 正则表达式(regular expression) 正则表达式是专门处理文本字符串的正式语言(这个是基础中的基础,就不再详细叙述,不了解的可以看这里). ^(在字符前): 负选择,匹配除括号以外 ...
- Minimum edit distance(levenshtein distance)(最小编辑距离)初探
最小编辑距离的定义:编辑距离(Edit Distance),又称Levenshtein距离.是指两个字串之间,由一个转成还有一个所需的最少编辑操作次数.许可的编辑操作包含将一个字符替换成还有一个字符. ...
- 编辑距离(Minimum Edit Distance)
编辑距离(Minimum Edit Distance,MED),也叫 Levenshtein Distance.他的含义是计算字符串a转换为字符串b的最少单字符编辑次数.编辑操作有:插入.删除.替换( ...
- 字符串编辑距离(Edit Distance)
一.问题描述定义字符串编辑距离(Edit Distance),是俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出的概念,又称 Levenshtein 距离,是指两个字符串之 ...
- Leetcode之动态规划(DP)专题-72. 编辑距离(Edit Distance)
Leetcode之动态规划(DP)专题-72. 编辑距离(Edit Distance) 给定两个单词 word1 和 word2,计算出将 word1 转换成 word2 所使用的最少操作数 . 你可 ...
- Stanford NLP 课程笔记之计算字符串距离
在自然语言处理任务中,有时候需要计算两个字符串之间的相似度,也可以称作是两者之间的距离,用最小编辑距离表示. 最小编辑距离用{Insertion,Deletion,Substitution}这三种操作 ...
- Stanford Corenlp学习笔记——词性标注
使用Stanford Corenlp对中文进行词性标注 语言为Scala,使用的jar的版本是3.6.0,而且是手动添加jar包,使用sbt添加其他版本的时候出现了各种各样的问题 添加的jar包有5个 ...
随机推荐
- jsp编程
jsp编程 jsp的实质和工作原理 注释 九大内置对象 jsp文件的结构解析 脚本语法 jsp指令 jsp动作元素 EL表达式 jsp的实质和工作原理: jsp (全称:Java Server Pa ...
- TextRank 自动文摘
前不久做了有关自动文摘的学习,采用方法是TextRank算法,整理和大家分享. 一. 关于自动文摘 利用计算机将大量的文本进行处理,产生简洁.精炼内容的过程就是文本摘要,人们可通过阅读摘要来把握文本主 ...
- php curl
这几天在帮一些同学处理问题的时候,突然发现这些同学是使用file_get_contents()函数来采集页面内容的,貌似都没有curl的概念亦或是对这种工具特别不敏感, 本文我来给大家详细介绍下cUR ...
- thinkphp3.2.3在框架截取文字
Common/Common/function.php加入以下代码 /** * * 字符截取 * @param string $string * @param int $start * @param i ...
- 在Android Studio中使用lambda表达式
build.gradle中添加以下配置 Android{ ..... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targ ...
- IplImage结构体
一.IplImage的一些重要成员: 1.origin:图像原点的定义.=0,则图片的左上角是原点:=1,则左下角是原点. IplIm ...
- POJ 3009 DFS+剪枝
POJ3009 DFS+剪枝 原题: Curling 2.0 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16280 Acce ...
- jstl 标签库的使用
JSTL 核心标签库 使用 JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.ot ...
- java常用IO流数据流小结
类名 常用方法 说明 输入流 InputStream int read(); 只能读字节流,虽然返回值是int,但只有低8位起作用. DataInputStream Type readType() ...
- 【转】mysql忘记密码(未初始化)
Mac OS X - 重置 MySQL Root 密码您是否忘记了Mac OS 的MySQL的root密码? 通过以下4步就可重新设置新密码:1. 停止 mysql server. 通常是在 '系 ...