计算机整句汉字起始四笔划输入方法

文档序号:6577814阅读:257来源:国知局
专利名称:计算机整句汉字起始四笔划输入方法
技术领域
本发明属于计算机(包括台式计算机、笔记本电脑、掌上电脑、个人数字助理等)汉字输入方法技术领域,特别涉及用于无线通讯设备(如手提电话)汉字输入方法。
在基于笔划和键盘的汉字输入法中,五笔输入法是比较流行的。然而其最大的问题是拆字的方法不符合人们书写时的笔顺习惯,且输入时的拆字技巧需要很长时间的专业训练才能掌握。
在基于手写板的汉字输入法中,人们需要把整个汉字的所有笔划都写出,才可以把一个汉字输入到计算机或设备中。当要输入的汉字笔划很多时,或当书写时记不准汉字的书写时,出错是很常见的。
在现有的基于拼音的输入法中,为了解决一音多字的重码问题,需要使用汉语语言模型方法。
汉语语言模型(CLM)利用上下文中相邻词间的搭配信息,在需要把连续无空格的拼音、笔划,或代表字母或笔划的数字,转换成汉字串(即句子)时,可以计算出具有最大概率的句子,从而实现到汉字的自动转换,无需用户手动选择,避开了许多汉字对应一个相同的拼音(或笔划串,或数字串)的重码问题。
最常用的CLM是称为Tri-gram(三元组)的语言模型,它给出了任意三个汉语词a、b和c之间的搭配概率P(c|a,b)。当已经有海量的汉语文本时,通过简单的计数方法,可以统计出任意三个词之间的搭配次数,从而估算出其搭配概率。这可以用于在把拼音串、笔划串或数字串到汉字转换过程中从众多的候选中根据最大似然的原则挑选出最好的候选。当从汉字的特征表达串(如拼音串、数字串、或者笔划串)映射到适当的汉字串时,最大似然准则意味着最大概率。在Tri-gram语言模型中,汉字序列的出现概率以以下公式表示P(w1,w2,...,wN)=P(w1)·Πn=2NP(wn|w1,...,wn-1)]]>≈P(w1)·P(w2|w1)·Πn=3NP(wn|wn-2,wn-1)----(1)]]>其中三元组(wn-2,wn-1,wn)出现的概率,也就是P(wn|wn-2,wn-1),是从海量汉语文本(称为训练文本)中学习来的。
已有的Tri-gram语言模型有这样几个步骤(i)对未曾出现的在训练文本中的三元组的进行概率估计;(ii)降低模型存储规模;(iii)进行解码或搜索,即利用公式(1)从大量重码的候选中快速而准确地选出正确句子。
(i)对未曾出现的三元组的进行概率估计中文中常用的词大约有30,000个或更多。任意三个词组成的三元组的数目就达到30,0003规模,这其中有些三元组是不可能出现的,有些是很少出现的。因此,不管训练用的语料有多大,总会有一些三元组(a,b,c)不会在语料中出现。如果对这些三元组的概率不做特殊处理,将导致这些三元组的估计概率P(c|a,b)为0,从而导致句子的概率为0。但是,这些没有在训练语料中找到的三元组并不完全是0概率,而是说它们出现的概率相对要小一点。因此这些三元组应该赋予相对较小的合理概率,而且不同的三元组应该根据具体情况赋予不同的概率。传统的解决0概率的方法是根据低阶的二元组概率P(c|b)去估计,这就是回退算法。回退算法是可以递归的,即如果P(c|b)还为0概率,则进一步回退到P(c)。为了保证概率总和为1,必须从那些非零概率的三元组的概率中折扣出来一些概率值,在未出现三元组中进行重新分配。该传统回退方法的缺点在于它只考虑了往一个方向向低阶做回退,这使得对这些未出现单元的概率估计不够准确。
(ii)压缩模型存储空间正如(i)中所说,Tri-gram语言模型在存储上十分巨大,因为即使大部分的三元组都没有出现,那些出现的三元组的存放也需要非常巨大的空间。通常情况下,一个词表大小为50K的中文语言模型需要300M到1G字节的空间用于存储。在PC机等具有大量存储的设备上可以不压缩模型存储空间;但存储量只有几十兆字节甚至更小的设备上应用是不实际的。这有两个方面的原因,一方面显然是因为存储空间,另一方面则是由于存储巨大造成的搜索过程耗时很大。
(iii)进行解码或搜索搜索的目的是将汉字的特征表达串(如拼音串、数字串、或者笔划串)映射到汉字序列上并且根据最大似然准则找到匹配最佳的序列作为最后的结果。因为(1)多个汉字共享一个笔划序列、拼音序列或数字序列;(2)中文句子中词之间没有明确的词边界;(3)一个句子由于切分点的不同而可以划分成不同的词序列(只有一个最合适),因此在从特征表达串映射到单个字,进而映射到句子的过程中,会产生很多符合匹配的“句子”。在这种情况下,我们不可能列出所有的可能汉字序列并比较概率。因此,一个高效而且准确地搜索算法就显得非常的重要。已有的解码方法是传统的动态规划算法,其不足是没有针对具体应用的的特点,它只使用单层次结构,因此移植不零活、解码效率低、解码效果不够理想。
本发明提出一种计算机整句汉字起始四笔划输入方法,其特征在于,包括以下步骤1)采用5个标准的笔划为汉字编码码元,所说的码元包括\,—,丨,/,;2)将上述5种编码码元映射到输入设备的键盘的相应键位上;3)将汉字按书写笔划顺序取前4个笔划作为该汉字的编码序列;如果不够4个,有多少就用多少作为编码序列;4)按整句的方式通过所说的键盘进行对汉字的输入,每个汉字按汉字书写笔划顺序输入所说的至多4个标准笔划,利用汉语语言模型根据上下文的关联信息把整个句子转换出来。
本发明还提出一种计算机整句汉字起始四标准/手写笔划输入方法,其特征在于,包括以下步骤1)采用5个手写笔划为汉字编码的基本码元,所说的码元包括 或 或 2)将汉字按书写笔划顺序取前4个手写笔划作为该汉字的编码序列,如果不够4个,有多少就用多少作为编码序列;3)按整句的方式通过手写板输入设备进行对汉字的输入,每个汉字按汉字书写笔划顺序输入所说的至多4个手写笔划,利用汉语语言模型根据上下文的关联信息把整个句子转换出来。
上述方法中的汉语语言模型可采用已有的技术方案,也可采用以下方法,具体步骤包括1)训练汉语语言模型;2)采用双向退化估计算法对未出现n元组进行概率估计;3)压缩模型存储空间,其步骤为第1步检查语言模型中所有三元组(tri-gram)、二元组(bi-gram)和一元组(uni-gram)(统称为n-gram,n元组)的在训练文本中的出现次数,把那些出现次数较多、对模型性能起重要作用的n-gram保留下来,而把其他n-gram的出现次数强制置为0;第2步因为在训练文本中出现次数越多的n-gram,其n-gram的数目越少,因此对于出现次数比较少的n-gram的次数,需要比较大的精度去保存,而对于出现次数较多的n-gram,则不必要保存非常精确的次数。本发明对uni-gram采用对数弯折曲线压缩其出现次数,从而用较低的比特宽度去存储模型,并且模型的信息基本没有丢失;第3步对模型中保留下来的bi-gram,其出现次数肯定非零,不记录其具体出现次数,但是把具有同一历史(即同一前续词)的bi-gram按照出现次数从高到低排序。对所有的bi-gram统计出排在第m位的n-gram的平均概率,建立码表,以便搜索时用;第4步降低索引的开销,建立三级索引。词号以两个字节共16比特表示,将词号分成三部分。例如最高的10位构成一级索引,中间4位构成二级索引,最后两位构成三级索引。用这种方式,有效的将一级索引的数目从几万降到了几百,从而降低了存储量;4)对所输入的笔划序列进行搜索得到汉字串。
上述方法中的第1)、2)、4)步骤均可采用传统的方法。
其中,第2)步的汉语语言模型中对未出现的n元组进行概率估计的方法;也可采用以下步骤当三个词a、b、c连在一起出现的三元组(a,b,c)的训练概率为0,即没有在训练语料中出现时,采用双向低阶退化算法进行估计,即同时参照二元组(a,b)和(b,c)的训练概率对三元组(a,b,c)的概率进行估计;这个过程时递归的,即如果二元组(x,y)的训练概率为0时,利用双向退化算法,同时用词x和词y的训练概率进行估计。
上述方法第4)步中的搜索算法,也可包括以下步骤1)搜索开始,搜索候选路径清空;2)获得一个笔划输入(从手写板、键盘或软键盘)的编码;3)以输入的笔划推动“笔划-汉字”树进行状态跳转;4)判断是否已经得到一个汉字的4个笔划编码(或汉字没有4个笔划时遇到表示汉字笔划输入完成的符号),否则转第2步,是则继续第5步;5)获得该单字的所有候选,推动词法树(所有词按字组织而成的树称为词法树)搜索状态跳转前进;6)判断是否到达词边界,否则转第2步,是继续第7步;7)获得所有的词候选,对现有的路径添加不同的候选词按公式(1)分别进行路径打分;8)对所有的路径进行按概率分数从高到低排序;9)判断是否输入结束,否则转第2步,是继续第10步;10)获得最高分整句候选;11)一次整句搜索结束。
本发明具有以下特征1)汉字的笔划编码方案科学、简洁,每个汉字最多只需要4个“笔划”就可以表达,当然存在一定的重码。这里“笔划”就是传统的笔划,是符合国家标准的笔划。
2)中文语言模型很好地解决了0概率估计、降低了模型大小、提高了搜索速度和精度,同时结构零活。
3)在利用笔划输入汉字时,可以按整句的方式进行,每个汉字只需要按标准的汉字笔划编码顺序输入或手写4个笔划,并且在输入过程中使用者不必从重码的那些汉字候选中逐一选取,汉语语言模型会自动转换出整个句子。
4)这些局部笔划完全按标准的笔顺选取,符合人们的笔顺习惯,方法易于掌握。
5)汉语语言模型的规模小,整个数据占1M字节左右,因而使得该技术可以应用到大多数小的手持设备上进行汉字输入。
6)转换正确率很高,首选高达94%以上,因而使用者很少需要在众多的候选中逐字挑选。
7)转换速度快,脱机测试每秒中可以转换300多个汉字。
8)多层次的数据结构设计可以很方便地把汉语语言模型与拼音、数字或其他特征结合起来实现汉字输入法。
本发明的良好效果根据国家颁布的汉字标准,二级字库有6,700多个汉字。如果使用四个笔划去表示一个汉字,则平均每1.2个汉字使用同一个笔划序列。如果每个汉字只使用前两个笔划表示,则平均12个汉字使用同一个笔划序列。这样使用基于笔划的普通方法经常需要从汉字候选列表中选取所需要的汉字,而本发明则能够帮助人们摆脱这个繁琐的选取过程。当用户需要输入一个中文单词或者句子时,他只需要将每个汉字的前面的局部几个笔划依次输入;在输入的过程中,利用汉语语言模型的优势,利用汉字上下文相互信息,系统自动根据已经输入的笔划序列对照语言知识挑选出最合适的输出;所有笔划输完后,整个单词或者句子的最佳候选就自动给出。概括的说,本发明可以通过输入汉字的局部笔划序列获得整个单词/句子的正确候选,并且该系统的模型很小而正确率却非常之高。
图2是笔划输入的搜索算法流程图。
图3是笔划输入方法的应用示例。
(2)“—”。所有横向的单一笔划。如见于‘草’之第一划。
(3)“丨”。所有主体是“竖”的单一笔划。包括“竖(丨)”、“竖左勾(‘刂’或‘扌’之第二划、‘我’之第三划)”和“竖右提(‘民’之左部、‘钅’之第五划、‘比’之第一划)”。又如‘艹’之第二划和第三划。
(4)“/”。所有从左下到右上或右上到左下方向的单一笔划。包括“撇(丿)”和“提(‘冫’之第二划或‘氵’之第三划)”。又如‘灬’之第一划,‘冖’之第一划,和‘宀’之第二划。
(5)“”。“折”。所有其他不是上述四个笔划的非直线方向的单一笔划。例如‘五’之第三划、‘饣’之第二划、‘夂’ 之第二划、‘勹’之第二划、水’之第二划、‘永’之第三划、‘卩’之第一划、‘阝’之第一划、‘讠’之第二划、‘飞’之第一划、‘辶’之第二划、‘廴’之第一划;‘弓’之第三划、‘丐’之第四划;‘厶’之第一划、‘幺’之第一划和第二划、‘纟’之第一划和第二划、‘巛’之三个笔划;‘我’之第五划;‘犭’之第二划;等。
注某些字变成偏旁时,其收笔可能发生变化,如‘土王玉业止鸟乌里车军的收笔由“横”变“提”(‘车’和‘军’的收笔更有笔顺的变化)等,又如‘北’的收笔由“折”变“竖(竖右提)”。又如,‘月’的第一划有时为‘丿’,有时为‘丨’(见‘有’中)。
(二)汉字的局部编码方法将汉字按笔划顺序取前4个笔划作为该汉字的编码序列;如果不够4个,有多少就用多少作为编码序列。
(三)汉语语言模型的训练实施例步骤第1步选择适当大小的词表,并根据单个汉字的笔划编码对词表做适当处理;第2步根据词表对海量文本数据进行智能切分,形成词号序列;第3步对词号序列进行统计分析,获得所有出现过的三元组(a,b,c)和出现次数;第4步对模型进行平滑处理,即对概率为0的n-gram进行概率估计。
(四)汉语语言模型中0概率的双向退化估计方法实施例考虑到传统的解决0概率方法的不足,当P(c|a,b)为0时,本发明不仅仅考虑P(c|b),而且考虑P(b|a);同样,当二元组概率P(x|y)为0时,也不仅仅考虑P(x),而且考虑P(y)。从而利用双向退化算法更准确地对0概率进行了重新估计。
(五)汉语语言模型中压缩模型存储空间实施例包括以下步骤第1步检查语言模型中所有三元组(tri-gram)、二元组(bi-gram)和单个词(uni-gram)(统称为n-gram)的在训练文本中的出现次数,把那些出现次数较多、对模型性能起重要作用的n-gram保留下来,而把其他n-gram的出现次数强制置为0;第2步因为在训练文本中出现次数越多的n-gram,其n-gram的数目越少,因此对于出现次数比较少的n-gram的次数,需要比较大的精度去保存,而对于出现次数较多的n-gram,则不必要保存非常精确的次数。本发明对uni-gram采用对数弯折曲线压缩其出现次数,从而用较低的比特宽度去存储模型,并且模型的信息基本没有丢失;第3步对模型中保留下来的bi-gram,其出现次数肯定非零,不记录其具体出现次数,但是把具有同一历史(即同一前续词)的bi-gram按照出现次数从高到低排序。对所有的b-gram统计出排在第m位的n-gram的平均概率,建立码表,以便搜索时用;第4步降低索引的开销,建立三级索引。词号以两个字节表示,将词号分成三部分。例如最高的10位构成一级索引,中间4位构成二级索引,最后两位构成三级索引。用这种方式,有效的将一级索引的数目从几万降到了几百,从而降低了存储量。
(六)汉语语言模型的高效而准确的搜索算法的实施例本实施例提出的汉语语言模型为一个多层的树状结构和一个字符同步的网格搜索算法来解决汉语语言模型的搜索问题。
该结构分为三层,如

图1所示,图中,顶层为单词序列层,该层受中文语言模型约束,该层为输入模式;第二层为单词层,受词法树约束,该层为解码模式;最底层是汉字层,受“汉字-汉字特征(拼音、笔划或数字)”树约束,该层为输出模式。后两层可以认为是独立的,也可以当作一个整体来对待。通过使用该结构,从笔划序列到句子的搜索是汉字同步的,句子的概率随着单词的出现逐单词累加。该搜索算法能够达到300字/秒的搜索速度;在每个汉字使用四个笔划编码时能达到94%以上的正确率,而在每个汉字使用八个编码时则能达到99%以上的正确率。
从图1可以看出,这种多层次结构的优点在于具有良好的可扩充性。通过从字母、数字或者笔划到拼音或者汉字之间的映射,该输入系统可以被非常方便的移植到各种通过字母、数字或者笔划输入的系统上。
该搜索算法如图2所示,步骤包括第1步搜索开始,搜索候选路径清空;第2步获得一个笔划输入(从手写板、键盘或软键盘)的编码;第3步以输入的笔划推动“笔划-汉字”树进行状态跳转;第4步判断是否已经得到一个汉字的4个笔划编码,否则转第2步,是则继续第5步;第5步获得该单字的所有候选,推动词法树(所有词按字组织而成的树称为词法树)搜索状态跳转前进;第6步判断是否到达词边界,否则转第2步,是继续第7步;第7步获得所有的词候选,对现有的路径添加不同的候选词按公式(1)分别进行路径打分;第8步对所有的路径进行按概率分数从高到低排序;第9步判断是否输入结束,否则转第2步,是继续第10步;第10步获得最高分整句候选;第11步一次整句搜索结束。
本发明的一个应用实例详细说明如下首先,按照汉语语言模型的序列步骤获得语言模型。
在输入时,比如要输入“上海的个人师傅克服困难”这个句子。这句汉字每个字的笔划序列和重码汉字如表1所示。
表1

由此,每个汉字都要输入四划(少于四划补一个空白笔划即可),并从重码的汉字中去选。如当输入“的”时,需要输入四个笔划“/,丨,,—”,并从12个候选“的、卑、皂…”中选出。
(i)先输入“上”的三划,得到一个候选。
(ii)继续输入“海”的四个笔划,虽然与“海”的前四划相同的字有很多,但考虑到搭配关系,可以得到几种可能的词“上海、上派”,以及对应该两划的两个可能的单字“海、没、派……”等。
(iii)继续输入“的”的四个笔划,由于“海的”不成词,它给出一些对应该四划的单字。
(iv)如此下去,随着输入笔划的最多,本发明算法选出了需要的句子“上海的个人师傅克服困难”,见图3中的粗黑框标出的汉字,该句子具有最大的概率。
本发明同时提供一个候选句子列表,表中所有的句子的笔划序列都完全相同;本发明也对每个字提供候选字列表,表中所有字的笔划序列完全相同。
有时,实际结果与期望输入的可能不同,则可以在候选句子列表中选取希望录入的句子。如果候选句子中也没有期望输入的句子,则选出最接近的句子,找到第一个不对的字,从候选字列表中选出期望输入的字;如果候选字数目太多,则继续输入该字后面的笔划,由于重码的字数随着输入笔划数目的增加会越来越少,从而可以很快确定出期望输入的字。其他不对的字如此类推可逐个选出。
权利要求
1.一种计算机整句汉字起始四笔划输入方法,其特征在于,包括以下步骤1)采用5个标准的笔划为汉字编码的基本码元,所说的码元包括\,—,丨,/,;2)将上述5种编码码元映射到输入设备的键盘的相应键位上;3)将汉字按书写笔顺取前4个笔划作为该汉字的编码序列,不够4个有多少就用多少作为编码序列;4)按整句的方式通过所说的键盘进行对汉字的输入,每个汉字按汉字书写笔划顺序输入所说的至多4个标准笔划,利用汉语语言模型根据上下文的关联信息把整个句子转换出来。
2.一种计算机整句汉字起始四笔划输入方法,其特征在于,包括以下步骤1)采用5个手写笔划为汉字编码的基本码元,所说的码元包括 或或 2)将汉字按书写笔划顺序取前4个手写笔划作为该汉字的编码序列,有多少就用多少作为编码序列;3)按整句的方式进行对汉字的输入,每个汉字按汉字笔划顺序输入所说的至多4个手写笔划,利用汉语语言模型根据上下文的关联信息把整个句子转换出来。
3.如权利要求1或2所述的整句汉字局部笔划输入法,其特征在于,所说的汉语语言模型包括以下步骤1)训练汉语语言模型;2)采用双向退化估计算法对未出现n元组进行概率估计;3)压缩模型存储空间,其步骤为第1步检查语言模型中所有n元组,其中n取3、2和1,在训练文本中的出现次数,把那些出现次数较多、对模型性能起重要作用的n元组保留下来,而把其他n元组的出现次数强制置为0;第2步对一元组采用对数弯折曲线压缩其出现次数,用较低的比特宽度去存储模型;第3步对模型中保留下来的二元组,其出现次数肯定非零,不记录其具体出现次数,但是把具有同一前续词的二元组按照出现次数从高到低排序,对所有的二元组统计出排在第m位的平均概率,建立码表,以便搜索时用;第4步降低索引的开销,词号以两个字节共16比特表示,将其分成三部分构成三级索引;4)对所输入的笔划序列进行搜索得到汉字串。
4.如权利要求3所述的整句汉字局部笔划输入法,其特征在于,所说的对未出现n元组进行概率估计的步骤为当三个词a、b、c连在一起出现的三元组(a,b,c)的训练概率为0,即没有在训练语料中出现时,采用双向低阶退化算法进行估计,即同时参照二元组(a,b)和(b,c)的训练概率对三元组(a,b,c)的概率进行估计;这个过程时递归的,即如果二元组(x,y)的训练概率为0时,利用双向退化算法,同时用词x和词y的训练概率进行估计。
5.如权利要求3所述的整句汉字局部笔划输入法,其特征在于,所说的搜索算法,包括以下步骤1)搜索开始,搜索候选路径清空;2)从手写板、键盘或软键盘获得一个笔划输入的编码;3)以输入的笔划推动笔划-汉字树进行状态跳转;4)判断是否已经得到一个汉字的4个笔划编码,否则转第2步,是则继续第5步;5)获得该单字的所有候选,推动词法树搜索状态跳转前进;6)判断是否到达词边界,否则转第2步,是继续第7步;7)获得所有的词候选,对现有的路径添加不同的候选词按如下公式分别进行路径打分P(w1,w2,...,wN)=P(w1)·P(w2|w1)·Πn=3NP(wn|wn-2,wn-1);]]>8)对所有的路径进行按概率分数从高到低排序;9)判断是否输入结束,否则转第2步,是继续第10步;10)获得最高分整句候选;11)一次整句搜索结束。
全文摘要
本发明属于计算机汉字输入方法技术领域,涉及一种计算机整句汉字局部笔划输入方法,包括:5个标准的笔划为汉字编码的基本码元,映射到输入设备键盘的相应键位上或用手写板书写;将每个汉字编成4个笔划的序列;按整句的方式进行对汉字的输入,每个汉字按汉字笔划顺序输入最多4个笔划,利用汉语语言模型根据上下文的关联信息把整个句子自动转换出来而无需使用者逐字挑选。本发明具有输入方法易于掌握,转换速度快,转换正确率很高的特点,可用于各种计算机及移动通讯设备中。
文档编号G06F3/023GK1378130SQ0211793
公开日2002年11月6日 申请日期2002年5月24日 优先权日2002年5月24日
发明者郑方 申请人:郑方
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1