自然语言处理(NLP)- 一个英文拼写纠错系统

版权声明: https://blog.csdn.net/bensonrachel/article/details/85128735

功能:给出拼写错误的单词,返回一个正确的单词,或者返回一个与输入单词最接近的单词;
IDE:pycharm;python3.5;PYQT做界面;

数据:

使用big.txt作为语料库。

主要算法原理:

 

编辑距离(这里使用的是替换操作算一次开销的版本,跟插入和删除等价):

这里的东西请看我的博客算法里的编辑距离问题,这里不在详细说明。

编辑距离

具体处理方法:

把big.txt的全部单词变成小写,并且计算他们出现的次数,再除以单词总数(字典长度)作为该词的频率,对输入的单词在词典里进行匹配,至少0次编辑,最多2次编辑。找出编辑距离最小的,当编辑距离为最小的不只一个时,找出所有单词里的概率最大的作为输出。

总结:

  1. 一般来说,对于错误单词,大多错误字母数在1-2范围内,所以只需找到编辑距离为1-2的,就会有相应的正确单词出现。
  2. 编辑距离算法时间复杂度比较高且需要对字典进行搜索匹配,所以总体开销比较大。
  3. 概率方面使用的朴素贝叶斯的方法,本系统是小型的英文单词纠错系统,若是百度谷歌微软的纠错系统则更为复杂。

**********************************************

mark 吭:

(也是我在做这个的时候,不过是java,遇到的坑,与上面的无关,只是记录)

猜你喜欢

转载自blog.csdn.net/bensonrachel/article/details/85128735
今日推荐