一种拼音纠错方法技术

技术编号:35556521 阅读:26 留言:0更新日期:2022-11-12 15:37
本发明专利技术提供一种拼音纠错方法,通过实时频次计数方法简化了当前大多数拼音纠错算法使用的噪声通道模型,有效提高纠错算法效率和使算法轻量化。另外,本发明专利技术方法采用字符字母直接替换方法取代传统的编辑距离计算方法,避免拼音纠错算法频繁地计算编辑距离;对于纠错方法自身的词典词库的建立和管理都是针对使用者个体的本地化而言,词典个性化高、针对性强、规模小,并能提供精准的候选词。本发明专利技术方法相对现有算法在错误率检查率、候选词精度以及执行效率都有较大的提升。行效率都有较大的提升。行效率都有较大的提升。

【技术实现步骤摘要】
一种拼音纠错方法


[0001]本专利技术涉及机器学习模型
,特别是涉及一种拼音纠错方法。

技术介绍

[0002]在各种人机交互过程中语言文字输入不可或缺,人们在输入文字时机器能够自动查错并提供精准的候选输入词带来了极大的便利。由于中文语言特性,在汉字拼音输入时有多种纠错方案可以选择,这些方法有基于BK树(Burkhard

Kellertree)、基于键盘布局、基于二叉查找树、基于噪声信道模型等等。
[0003]显然,这些拼音纠错方法要么从拼音结构入手,要么从英语拼写纠错演变而来。噪声信道模型(Shannon 1948)已成功应用于广泛领域,特别是在通信领域的成功应用,当然也包括应用于拼音纠错在内。
[0004]噪声信道模型拼音纠错方法把人们输入时拼音拼错或按键按错看成是键盘传输到系统的通道时受到噪声干扰而引起的错误。在查错纠错方面,噪声信道模型依据的数学原理是贝叶斯公式中的似然函数。
[0005]由此可以看出,在各具特色的众多可选拼音纠错方法中,出发点都基于一个解决问题的模型,人们从最初的模型当中演变,以提高拼音纠错能力和提升备选词的精准度。而这些改进都极具意义与价值,多种方法以适应不同人群的拼写及输入习惯。

技术实现思路

[0006]鉴于以上所述实际需求,本专利技术的目的在于提供一种拼音纠错方法,对噪声信道拼音纠错模型进行改进,通过实时频次计数方法简化了当前大多数拼音纠错算法使用的噪声通道模型,有效提高纠错算法效率;同时,使算法本身轻量化。另外,本专利技术方法采用字符字母直接替换方法取代传统拼音纠错算法当中的编辑距离计算方法,避免算法频繁地计算编辑距离。对于拼音纠错方法自身使用的词典词库的建立和管理都是针对使用者个体的本地化而言,所以个性化高、针对性强、规模小,并能提供精准的候选词。本专利技术方法相对现有算法在错误率检查率、候选词精度以及执行效率都有较大的提升。
[0007]为实现上述目的及其他相关目的,本专利技术采用的技术方案如下:
[0008]一种拼音纠错方法,包括步骤:
[0009]S1)输入常用汉字拼音字典D,其中字典D包含同音字约1万个常用拼音字,每个拼音字为一字母字符串,不区分大小写,下文直接称为拼音字符串;
[0010]S2)建立拼音热字字典G,字典G建立的方法为:记录使用者输入的每一个拼音字和出现的频次,并按出现的频次降序排序;
[0011]S3)建立贝叶斯词典S,贝叶斯词典S的每一条记录包含两个汉字的拼音字符串和其出现的频次,记当前拼音字符串为A,记A的前一个字符串为B,贝叶斯词典S的建立方法为:若B是空串,忽略A;若B不是空串,将BA当作一个拼音字符串,如果BA在贝叶斯词典S中,则将BA的频次增1,若BA不在贝叶斯词典S中,将BA添加到贝叶斯词典S,并标记其频次为1;
[0012]S4)输入拼音字符串x;
[0013]S5)在拼音字典D里匹配x,若x包含在拼音字典D,则不需要纠错,直接返回S4步骤;
[0014]S6)记l为x的长度,记x
i
为拼音字符串x第i个字母,显然1≤i≤l;
[0015]S7)建立候选拼音字符串集合Y,初始时Y为空集;
[0016]S8)从i=1开始到i=l,重复以下S81到S85步骤;
[0017]S81)记Q为字母x
i
在键盘上相邻按键上字母的集合,记m为集合Q的长度;
[0018]S82)记T为拼音字符串x的第个i元素x用集合Q里的元素逐个替换后的新拼音字符串集合,所以集合T的元素个数有m个;
[0019]S83)删除集合T里不在拼音字典D里的元素;
[0020]S84)把集合T并入集合Y;
[0021]S85)i增加1;
[0022]S9)建立扩展候选拼音字符串集Z,初始化为空集;
[0023]S10)记n为集合Y的长度,记y
j
(y
j
∈Y)是Y的第j个元素,显然0≤j≤n,从j=1开始到j=n重复以下S101到S117步骤;
[0024]S101)若y
j
的首字母为

c

,记t为y
j
将首字母

c

替换为

ch

的字符串,若t为拼音字典D里的字符串,将t添加到Z;
[0025]S102)若y
j
的最前面两个字母为

ch

,记t为y
j
将最前面两个字母

ch

替换为

c

的字符串,若t为拼音字典D里的字符串,将t添加到z;
[0026]S103)若y
j
的首字母为

s

,记t为y
j
将首字母

s

替换为

sh

的字符串,若t为拼音字典D里的字符串,将t添加到z;
[0027]S104)若y
j
的最前面两个字母为

sh

,记t为y
i
将最前面两个字母

sh

替换为

s

的字符串,若t为拼音字典D里的字符串,将t添加到Z;
[0028]S105)若y
j
的首字母为

z

,记t为y
j
将首字母

z

替换为

zh

的字符串,若t为拼音字典D里的字符串,将t添加到Z;
[0029]S106)若y
j
的最前面两个字母为

zh

,记t为y
j
将最前面两个字母

zh

替换为

z

的字符串,若t为拼音字典D里的字符串,将t添加到z;
[0030]S107)若y
j
的首字母为

f

,记t为y
j
将首字母

f

替换为

h

的字符串,若t为拼音字典D里的字符串,将t添加到Z;
[0031]S108)若y
j
的首字母为

h

,记t为y
j
将首字母

h

替换为

f

的字符串,若t为拼本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种拼音纠错方法,其特征在于,包括步骤:S1)输入常用汉字拼音字典D;S2)建立拼音热字字典G;S3)建立贝叶斯词典S;S4)输入拼音字符串x;S5)在拼音字典D里匹配x,若x包含在拼音字典D,则不需要纠错,直接返回S4步骤;S6)记l为x的长度,记x
i
为拼音字符串x第i个字母,显然1≤i≤l;S7)建立候选拼音字符串集合Y,初始时Y为空集;S8)从i=1开始到i=l,重复以下S81到S85步骤;S81)记Q为字母x
i
在键盘上相邻按键上字母的集合,记m为集合Q的长度;S82)记T为拼音字符串x的第个i元素x
i
用集合Q里的元素逐个替换后的新拼音字符串集合,所以集合T的元素个数有m个;S83)删除集合T里不在拼音字典D里的元素;S84)把集合T并入集合Y;S85)i增加1;S9)建立扩展候选拼音字符串集Z,初始化为空集;S10)记n为集合Y的长度,记y
j
(y
j
∈Y)是Y的第j个元素,显然0≤j≤n,从j=1开始到j=n重复以下S101到S117步骤;S101)若y
j
的首字母为

c

,记t为y
j
将首字母

c

替换为

ch

的字符串,若t为拼音字典D里的字符串,将t添加到z;S102)若y
j
的最前面两个字母为

ch

,记t为y
j
将最前面两个字母

ch

替换为

c

的字符串,若t为拼音字典D里的字符串,将t添加到Z;S103)若y
j
的首字母为

s

,记t为y
j
将首字母

s

替换为

sh

的字符串,若t为拼音字典D里的字符串,将t添加到Z;S104)若y
j
的最前面两个字母为

sh

,记t为y
j
将最前面两个字母

sh

替换为

s

的字符串,若t为拼音字典D里的字符串,将t添加到Z;S105)若y
j
的首字母为

z

,记t为y
j
将首字母

z

替换为

zh

的字符串,若t为拼音字典D里的字符串,将t添加到z;S106)若y
j
的最前面两个字母为

zh

,记t为y
j
将最前面两个字母

zh

替换为

z

的字符串,若t为拼音字典D里的字符串,将t添加到Z;S107)若y
j
的首字母为

f

,记t为y
j
将首字母

f

替换为

h

的字符串,若t为拼音字典D里的字符串,将t添加到Z;S108)若y
j
的首字母为

h

,记t为y
j
将首字母

h

替换为

f

的字符串,若t为拼音字典D里的字符串,将t添加到Z;S109)若y
j
的最后两个字母为

an

,记t为y
j
将最后两个字母

an

替换为

ang

的字符串,若t为拼音字典D里的字符串,将t添加到Z;S110)若y
j
的最后两个字母为

en

...

【专利技术属性】
技术研发人员:邓彪
申请(专利权)人:中科凡语武汉科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1