标签:矩阵计算 英文 系统 语言 最好 解码 eve 9.png lin
在多种应用比如word中都有拼写检查和校正功能,具体步骤分为:
基本方法:使用The Noisy Channel Model of Spelling信道噪声模型
假设初始词经过一个噪声信道输出一个噪声词,即为可能的错误词,我们旨在对该噪声信道建模,从而使得在解码阶段能够根据噪声词得到一个猜测词,其跟初始词一致,即找到错误词正确的拼写。
而信道噪声我们视之为一个概率模型,如下:
输入:一个错误词x
旨在:找到一正确的词w
要求:
P(w)称为语言模型表示单词w为一个单词的概率,P(x|w)称为信道概率(或错误概率)表示如果是w,x是w拼错的词的概率。
例子:
设:有一个错误词“acress”
a) 计算语言模型P(w):可以采用之前说过的任一语言模型,比如unigram、bigram、trigram,大规模拼写校正也可以采用stupid backoff。
b) 计算信道概率P(x|w):首先获得多个单词拼错的列表,然后计算混淆矩阵,然后按照混淆矩阵计算信道概率。
设:
有:
x和y为任一字母a-z,计数count表示后面那张情况发生的次数,其中插入和删除的情况都依赖于前一个字符,sub[x,y]的混淆矩阵结果如下:
然后按照上述混淆矩阵计算信道概率:
c) 整体概率计算实例如下:
也可以选用语言模型计算整体概率,比如:使用bigram或trigram语言模型
使用拼写错误测试集:
25-40%的拼写错误都是真词错误。
为了方便起见,我们假定每个句子中只有一个拼写错误,所以有:
要求从中找到一个组合序列使得序列的概率最高。
方法1:语言模型,比如unigram、bigram等
方法2:信道模型:跟“一”中的方法一样,但还需要额外计算没有错误的概率P(w|w),因为候选集中还包括自身词。
计算P(w|w):其完全依赖于应用本身,表示一个词可能被拼错的概率,不同的应用概率不同:
实际应用中,信道概率和语言模型概率的权重并非一致,而是采用如下的计算公式:
然后在开发测试数据集中训练学习lambdas的值。
针对有相似发音的错误拼写的纠正
a) Metaphone, used in GNU aspell
a) 允许更多的操作(Brill and Moore 200)
b) 在信道中结合发音(Toutanova and Moore 2003)
c)在计算信道概率P(x|w)时考虑更多的影响因素
标签:矩阵计算 英文 系统 语言 最好 解码 eve 9.png lin
原文地址:https://www.cnblogs.com/a-present/p/9464054.html