其他分享
首页 > 其他分享> > 自然语言处理2-2: 拼写纠错

自然语言处理2-2: 拼写纠错

作者:互联网

一.编辑距离

关于编辑距离,在我的博客https://www.cnblogs.com/loubin/p/13672786.html中已经详细的介绍了。简短的说就是把一个单词修改成另一个单词需要的修改次数。当然,每一次只能增加一个字符,删除一个字符,或者更换一个字符。例如,apple和apply的编辑距离是1,只需要将e改成y即可。dog和pig的编辑距离是2,因为要把‘do’改成‘pi’。

 

二.拼写纠错初级版

其实就是去词典中找与输入的单词编辑距离最小的单词,例如,如果我输入apple,就去词典中对每个单词计算与apple的编辑距离,然后选择编辑距离最小的那个单词。但是,这样的话时间复杂度是O(v),这里v是词典中的单词个数,一般都是非常大的,例如几百万,所以时间复杂度可以说是非常大了。

 

三.拼写纠错高级版

对于输入的单词,  首先列出与其编辑距离为1的所有单词,然后基于这些单词再修改一次,生成与输入单词编辑距离为2的单词(当然,也可能修改回原样,这样编辑距离是0,也有可能修改后编辑距离还是1,但是两次修改之后,编辑距离一定是0,1,2)。然后再从这些单词中选择出最有可能的那个单词。那么具体怎么选择的呢?

假设输入的单词是s,我们要找到正确的单词$\hat{c} $

 

标签:纠错,apple,修改,距离,拼写,单词,编辑,自然语言,输入
来源: https://www.cnblogs.com/loubin/p/13692813.html