CN1187677C - 计算机整句汉字局部笔划输入方法 - Google Patents

计算机整句汉字局部笔划输入方法 Download PDF

Info

Publication number
CN1187677C
CN1187677C CNB021044430A CN02104443A CN1187677C CN 1187677 C CN1187677 C CN 1187677C CN B021044430 A CNB021044430 A CN B021044430A CN 02104443 A CN02104443 A CN 02104443A CN 1187677 C CN1187677 C CN 1187677C
Authority
CN
China
Prior art keywords
stroke
chinese
chinese character
feature
shu
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB021044430A
Other languages
English (en)
Other versions
CN1445640A (zh
Inventor
郑方
莫树联
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CNB021044430A priority Critical patent/CN1187677C/zh
Publication of CN1445640A publication Critical patent/CN1445640A/zh
Application granted granted Critical
Publication of CN1187677C publication Critical patent/CN1187677C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

本发明属于计算机汉字输入方法技术领域,涉及一种计算机整句汉字局部笔划输入方法,包括:23或40个特征笔划为汉字编码的基本码元,映射到输入设备键盘的相应键位上或用手写板书写;将汉字编成4个特征笔划或更少;按整句的方式进行对汉字的输入,每个汉字按汉字特征笔划顺序输入设定数目的特征笔划,利用汉语语言模型根据上下文的关联信息把整个句子自动转换出来而无需使用者逐字挑选。本发明具有输入方法易于掌握,转换速度快,转换正确率很高的特点,可用于各种计算机及移动通讯设备中。

Description

计算机整句汉字局部笔划输入方法
技术领域
本发明属于计算机(包括台式计算机、笔记本电脑、掌上电脑、个人数字助理等)汉字输入方法技术领域,特别涉及用于无线通讯设备(如手提电话)汉字输入方法。
背景技术
无线、掌上通讯设备如手提电话、个人数字助理(PDA)等是现今最流行的科讯产品,销售数额每年成倍递长。在使用这些通讯产品的同时,汉字的输入是必需的。而现今的计算机(包括台式计算机、笔记本电脑、掌上电脑、个人数字助理等,以及无线通讯设备等)环境大都是以英文为主,相对中文输入成为了一个复杂和困难的问题。现时这些产品的中文输入都是使用手写和小键盘;手写局限于整个字的书写输入,非常费时和缓慢;键盘输入现时较流行的是背字根和拼音,字根输入可以比较快,比如仓颉和五笔输入法等,但是要熟练该等输入法需要花相当的时间练习;拼音输入的毛病是需要选字,因为同音字太多;并且键盘在该等通讯设备上显示的比例相当小,不利于使用。
在基于笔划和键盘的汉字输入法中,五笔输入法是比较流行的。然而其最大的问题是拆字的方法不符合人们书写时的笔顺习惯,且输入时的拆字技巧需要很长时间的专业训练才能掌握。
在基于手写板的汉字输入法中,人们需要把整个汉字的所有笔划都写出,才可以把一个汉字输入到计算机或设备中。当要输入的汉字笔划很多时,或当书写时记不准汉字的书写时,出错是很常见的。
在现有的基于拼音的输入法中,为了解决一音多字的重码问题,需要使用汉语语言模型方法。
汉语语言模型(CLM)利用上下文中相邻词间的搭配信息,在需要把连续无空格的拼音、笔划,或代表字母或笔划的数字,转换成汉字串(即句子)时,可以计算出具有最大概率的句子,从而实现到汉字的自动转换,无需用户手动选择,避开了许多汉字对应一个相同的拼音(或笔划串,或数字串)的重码问题。
最常用的CLM是称为Tri-gram(三元组)的语言模型,它给出了任意三个汉语词a、b和c之间的搭配概率P(c|a,b)。当已经有海量的汉语文本时,通过简单的计数方法,可以统计出任意三个词之间的搭配次数,从而估算出其搭配概率。这可以用于在把拼音串、笔划串或数字串到汉字转换过程中从众多的候选中根据最大似然的原则挑选出最好的候选。当从汉字的特征表达串(如拼音串、数字串、或者笔划串)映射到适当的汉字串时,最大似然准则意味着最大概率。在Tri-gram语言模型中,汉字序列的出现概率以以下公式表示:
P ( w 1 , w 2 , · · · , w N ) = P ( w 1 ) · Π n = 2 N P ( w n | w 1 , · · · , w n - 1 ) - - - ( 1 )
≈ P ( w 1 ) · P ( w 2 | w 1 ) · Π n = 3 N P ( w n | w n - 2 , w n - 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)采用23个特征笔划为汉字编码的基本码元,所说的码元包括:
\,—,丨,/,
Figure C0210444300062
Figure C0210444300064
凵,匚,\ \,\ /,
>,— —,—丨,丨丨,/ \,<, / /,
Figure C0210444300069
2)将上述23种编码码元映射到所说设备的键盘的相应键位上;
3)将汉字分为左右、上下或外内两个部分,按笔顺分别取第一部分的和第二部分的前两个特征笔划作为汉字的局部编码序列;如果第一部分只有一个特征笔划,那么其余三个特征笔划从第二部分中顺序取出;如果特征笔划的数目不够4个,有多少就用多少作为局部编码序列;如果汉字不能拆成两部分,则按顺序直接取最大4个编码码元;
4)按整句的方式进行对汉字的输入,每个汉字按汉字特征笔划顺序输入设定数目的特征笔划,利用汉语语言模型根据上下文的关联信息把整个句子转换出来。
当使用大键盘的时候,为提高性能,还可包括附加的17个特征笔划共40个特征笔划:
\ —,\丨,\
Figure C02104443000610
— \,— /,— 丨\,丨—,丨/,
/ —,/丨,/
Figure C02104443000613
\,—,
Figure C02104443000615
Figure C02104443000616
丨,
Figure C02104443000617
/。
本发明还提出一种台式计算机、手持电子设备或移动通讯设备的整句汉字局部笔划输入法,应用于手写板输入设备,其特征在于,包括以下步骤:
1)采用23个特征笔划为汉字编码的基本码元,所说的码元包括:
Figure C02104443000619
Figure C02104443000620
Figure C02104443000621
Figure C02104443000623
Figure C02104443000624
Figure C02104443000625
Figure C02104443000626
Figure C02104443000631
Figure C02104443000632
Figure C02104443000633
Figure C02104443000634
Figure C02104443000635
Figure C02104443000642
Figure C02104443000643
Figure C02104443000644
2)将汉字分为左右、上下或外内两个部分,按笔顺分别取第一部分的和第二部分的前两个特征笔划作为汉字的局部编码序列;如果第一部分只有一个特征笔划,那么其余三个特征笔划从第二部分中顺序取出;如果特征笔划的数目不够4个,有多少就用多少作为局部编码序列;如果汉字不能拆成两部分,则按顺序直接取最大4个编码码元;
3)按整句的方式进行对汉字的输入,每个汉字按汉字特征笔划顺序输入设定数目的特征笔划,利用汉语语言模型根据上下文的关联信息把整个句子转换出来。
为提高性能,还可包括附加的特征笔划:
Figure C0210444300071
Figure C0210444300072
Figure C0210444300073
Figure C0210444300078
Figure C0210444300079
Figure C02104443000710
Figure C02104443000717
Figure C02104443000718
Figure C02104443000719
Figure C02104443000720
Figure C02104443000721
Figure C02104443000723
Figure C02104443000724
Figure C02104443000725
上述方法中的汉语语言模型包括以下步骤:
1)训练汉语语言模型;
2)对未出现词对进行概率估计;
3)压缩模型存储空间,其步骤为:第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按照出现次数从高到低排序。对所有的bi-gram统计出排在同一序号位的n-gram的平均概率,建立码表,以便搜索时用;第4步:降低索引的开销,建立三级索引。词号以两个字节表示,将词号分成三部分,最高的10位构成一级索引,中间4位构成二级索引,最后两位构成三级索引;用这种方式,有效的将一级索引的数目从几万降到了几百,从而降低了存储量
4)对所输入的特征笔划序列进行搜索得到汉字串。
所说的汉语语言模型中对未出现词对进行概率估计的步骤可为:当三个词a、b、c连在一起出现的三元组(a,b,c)的训练概率为0,即没有在训练语料中出现时,采用双向低阶退化算法进行估计,即同时参照二元组(a,b)和(b,c)的训练概率对三元组(a,b,c)的概率进行估计;这个过程时递归的,即如果二元组(x,y)的训练概率为0时,利用双向退化算法,同时用词x和词y的训练概率进行估计。
所说的汉语语言模型中进行存储空间压缩的方法,可包括以下步骤:
1)检查语言模型中所有n-gram(n元组),其中n可取3(tri-gram,三元组)、2(bi-gram,二元组)和1(uni-gram,一元组),在训练文本中的出现次数,把那些出现次数较多、对模型性能起重要作用的n-gram保留下来,而把其他n-gram的出现次数强制置为0;
2)因为在训练文本中出现次数越多的n-gram,其n-gram的数目越少,因此对于出现次数比较少的n-gram的次数,需要比较大的精度去保存,而对于出现次数较多的n-gram,则不必要保存非常精确的次数。本发明对uni-gram采用对数弯折曲线压缩其出现次数,从而用较低的比特宽度去存储模型,并且模型的信息基本没有丢失;
3)对模型中保留下来的bi-gram,其出现次数肯定非零,不记录其具体出现次数,但是把具有同一历史(即同一前续词)的bi-gram按照出现次数从高到低排序。对所有的bi-gram统计出排在同一序号位的n-gram的平均概率,建立码表,以便搜索时用;
4)降低索引的开销,建立三级索引。词号以两个字节共16比特表示,将其分成三部分,构成三级索引;如:最高的10位构成一级索引,中间4位构成二级索引。用这种方式,有效地将一级索引的数目从几万降到了几百,从而降低了存储量。
所述的汉语语言模型中的搜索算法,可包括以下步骤:
1)搜索开始,搜索候选路径清空;
2)获得一个特征笔划输入(从手写板、键盘或软键盘)的编码;
3)以输入的笔划推动笔划-汉字树进行状态跳转;
4)判断是否已经得到一个汉字的设定数目的特征笔划编码(根据应用,可以设定1个、2个、3个或4个),否则转第2步,是则继续第5步;
5)获得该单字的所有候选,推动词法树(所有词按字组织而成的树称为词法树)搜索状态跳转前进;
6)判断是否到达词边界,否则转第2步,是继续第7步;
7)获得所有的词候选,对现有的路径添加不同的候选词按公式(1)分别进行路径打分;
8)对所有的路径进行按概率分数从高到低排序;
9)判断是否输入结束,否则转第2步,是继续第10步;
10)获得最高分整句候选;
11)一次整句搜索结束。
本发明具有以下特征:
1)汉字的笔划编码方案科学、简洁,每个汉字最多只需要4个“特征笔划”就可以表达,当然存在一定的重码。这里“特征笔划”是本发明定义的,它不同于传统笔划。
2)中文语言模型很好地解决了0概率估计、降低了模型大小、提高了搜索速度和精度,同时结构零活。
3)在利用特征笔划输入汉字时,可以按整句的方式进行,每个汉字只需要按汉字的特征笔划编码顺序输入或手写设定数目的特征笔划(如按照特定应用的情况,可以设计为每个汉字只用前面1个、2个、3个或4个特征笔划,而不一定用全部特征笔划),并且在输入过程中使用者不必从重码的那些汉字候选中逐一选取,汉语语言模型会自动转换出整个句子。
4)这些局部特征笔划按顺序选取,符合人们的笔顺习惯,方法易于掌握。
5)汉语语言模型的规模小,整个数据小于1M字节,因而使得该技术可以应用到大多数小的手持设备上进行汉字输入。
6)转换正确率很高,首选高达97%以上,因而使用者很少需要在众多的候选中逐字挑选。
7)转换速度快,脱机测试每秒中可以转换300多个汉字。
8)多层次的数据结构设计可以很方便地把汉语语言模型与拼音、数字或其他特征结合起来实现汉字输入法。
本发明的良好效果:
根据国家颁布的汉字标准,二级字库有6,700多个汉字。如果使用四个特征笔划表示一个汉字,则平均每1.2个汉字使用同一个特征笔划序列。如果每个汉字只使用前两个特征笔划表示,则平均12个汉字使用同一个特征笔划序列。这样使用基于笔划的普通方法经常需要从汉字候选列表中选取所需要的汉字,而本发明则能够帮助人们摆脱这个繁琐的选取过程。当用户需要输入一个中文单词或者句子时,他只需要将每个汉字的局部特征笔划(如1个、2个,3个,或4个)依次输入;在输入的过程中,利用汉语语言模型的优势,利用汉字上下文相互信息,系统自动根据已经输入的特征笔划序列对照语言知识挑选出最合适的输出;所有笔划输完后,整个单词或者句子的最佳候选就自动给出。概括的说,本发明可以通过输入汉字的局部特征笔划序列获得整个单词/句子的正确候选,并且该系统的模型很小而正确率却非常之高。
附图说明
图1是说明本发明在各种应用上的层次框架图。
图2是笔划输入的搜索算法流程图。
图3是笔划输入方法的应用示例。
具体实施方式
本发明提出的计算机整句汉字局部笔划输入方法的内容及原理结合附图及实施例详细说明如下:
(一)特征笔划的定义
共定义40个特征笔划,见表1,它们是:
(1)单笔划:有5个,它们是“横(—)”、“竖(丨)”、“撇(/)”、“点(\)”、和“折(
Figure C0210444300091
)”。用作开头且不能和下一笔相连的一笔,如“白”、“突”、“舟”中等;或是最后剩下的一笔,如“我”字为“撇横、竖提、折撇”,最后的“点”便为单笔划。
“撇”和“提”为同一笔划,只要是同一方向的则归类为(/)。
“纳”和“点”为同一笔划,只要是同一方向的则归类为(\)。
“折”包括了所有方向的折,如“句”、“五”、“迅”、“弓(下部)”等一切不是直线的都归类为(
Figure C0210444300101
)。
“竖”包括“竖勾(亅)”和“竖提 ”,只要主体是竖得到都归为竖(丨)。如:含竖的例字有“行”(左边)等;含“竖左勾”的例字有“手”、“我(左边)”、“行(右边)”、“何(右边)”等;而含“竖右提”的例字有“良”、“民”等。注:“我”中右边的不是“竖”而是“勾”,因为主体不是竖。
(2)组合笔划:共23个,它们是
“\ \”   “\—”   “\丨”            “\
Figure C0210444300103
“—\”   “— —” “—丨”  “—/”  “—
“丨\”   “丨—”  “丨丨”  “丨/”  “丨
          “/—”   “/ 丨”  “/ /”  “/
Figure C0210444300106
Figure C0210444300107
\”—”
Figure C0210444300108
丨”
Figure C02104443001010
/”
Figure C02104443001011
所有单个汉字都按笔顺把笔划排列起来,每两个笔划为一组形成一个特征笔划(除非起笔无法与下一笔组合,或尾笔无其他笔划可以组合)。如“我”字为“撇横”、“竖提”、“折撇”、“点”;“言”字为“点横”、“横横”、“口”。
(3)形状笔划:共12个,这些划以拓扑的“形”为主,它们是:
(a)“口”:“国”、“中”、“四”、“田”等所含的所有完整的正方形字都取为“口”;而任何不整齐或不完整的都不包括在内,如:“耳”、“且”、“共”、“母”等。
(b)
Figure C02104443001012
例如“月”、“宝”、“冠”、“刚(左边)”、“雨”等。
(c) 例如“尸”、“户”、“巨(内部)”、“弓(起笔)”等。注:“弓”的收笔是“折”而不是
(d)“匚”:例如“区”、“欧”、“巨(外部)”等。
(e)“凵”:例如“山”、“屯”、“廿”等。
(f)“×”:“父”、“文”、“离”等为明显呈“×”型的都归类为“×”。
(g)“\ /”:取法为以此为边旁、笔划或形状的字,如“首”、“火”、“米”、“采”(“采”为“撇点<”、“点撇\ /”后再取其它笔划)等。
(h)“>”:取法为以此为边旁、笔划或形状的字,如“冰”、“水”、“冷”等。
(i)“/ \”:取法为以此为边旁、笔划或形状的字,如“人”、“入”、“火”、“小”、“空”等。
(j)“<”:取法为以此为边旁、笔划或形状的字,如“水”、“求”、“承”等。
(k)
Figure C02104443001015
取法为以此为边旁、笔划或形状的字,如:“红”、“玄”等。
(l)
Figure C02104443001016
取法为以此为边旁、笔划或形状的字,如:“过”、“廷”等。
形状笔划也称为优先笔划,因为如若有这样的形状,将会被优先组合在一起。如“小”字的取法因为有优先笔划的存在,所以取法由原来的“竖点、撇”变为“竖、点撇”。
表1 本发明的特征笔划、编码、手写笔划,以及含此特征笔划的例字
在键盘小,如手机,或没有键盘,如PDA,的应用中,则只用其中的23个特征笔划,即印刷体为:
\,—,丨,/,
Figure C0210444300112
Figure C0210444300113
Figure C0210444300114
Figure C0210444300115
凵,匚,\ \,\ /,
>,— —,—丨,丨丨,/ \,<, / /,
Figure C0210444300117
Figure C0210444300118
Figure C02104443001110
手写体为:
Figure C02104443001111
Figure C02104443001113
Figure C02104443001115
Figure C02104443001117
Figure C02104443001118
Figure C02104443001121
Figure C02104443001122
Figure C02104443001123
Figure C0210444300121
Figure C0210444300123
Figure C0210444300125
Figure C0210444300128
Figure C0210444300129
Figure C02104443001210
Figure C02104443001213
这时输入法的准确率略有降低。在键盘大,如PC机,或可以用手写板的应用中,输入法使用所有的40个特征笔划,除上述的23个特征笔划,还包括如下17个特征笔划,印刷体为:
\—,\丨,\ —\,—/,—
Figure C02104443001216
丨\,丨—,丨/,丨 /—,/丨,/
Figure C02104443001219
\,—,
Figure C02104443001220
丨, /;
手写体为:
Figure C02104443001224
Figure C02104443001227
Figure C02104443001228
Figure C02104443001230
Figure C02104443001231
Figure C02104443001232
Figure C02104443001235
Figure C02104443001236
Figure C02104443001237
Figure C02104443001239
Figure C02104443001242
Figure C02104443001243
Figure C02104443001244
Figure C02104443001249
Figure C02104443001250
Figure C02104443001252
Figure C02104443001253
上述的印刷体的特征笔划,如果需要映射到已有键盘上,可以根据需要随意设定,例如用已有的标准键盘作为输入设备时,使用26个字母键位及大小写转换键。而手写体的特征笔划,则需要直接使用手写板即可。而手写体的特征笔划,则可以按照要求书写即可。
(二)汉字的局部编码方法
(1)如果汉字是一个整体,无法拆成左右、上下或外内结构,那么笔划顺序取前4个特征笔划作为该汉字的局部编码序列;如果不够4个,有多少就用多少作为局部编码序列。如“我”字为“撇横”、“竖提”、“折撇”、“点”;“言”字为“点横”、“横横”、“口”。然后按表1,可以得到汉字的特征笔划编码序列。
(2)如果汉字可以拆成左右、上下或外内结构,那么拆成两个部分,按笔顺分别取第一部分的和第二部分的前两个特征笔划作为汉字的局部编码序列。如果第一部分只有一个特征笔划,那么其余三个特征笔划从第二部分中顺序取出。如果特征笔划的数目不够4个,有多少就用多少作为局部编码序列。
举例如下:
a)左右结构:由左至右,和平时书写方式相同,由左先取,不够两码才需取右边的部分。如:
博:—丨;—,
Figure C02104443001254
— —,之后的丨\,—丨,\便无须再取。
够:/
Figure C02104443001255
口;/
Figure C02104443001256
\,之后的/ \便无须再取。
b)上下结构:由上至下,先取上面的部分,如:
吊:口;
Figure C02104443001258
忍: /,\;/
Figure C02104443001260
\ \
c)外内结构:由外至内,先取外面的部分,如:
国:囗;— —,丨—,\
月:— —
Figure C02104443001261
(三)汉语语言模型的训练步骤
第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按照出现次数从高到低排序。对所有的bi-gram统计出排在同一序号位的n-gram的平均概率,建立码表,以便搜索时用;
第4步:降低索引的开销,建立三级索引。词号以两个字节表示,将词号分成三部分,最高的10位构成一级索引,中间4位构成二级索引,最后两位构成三级索引;用这种方式,有效的将一级索引的数目从几万降到了几百,从而降低了存储量。
(六)汉语语言模型的高效而准确的搜索算法
本发明我们提出一个多层的树状结构和一个字符同步的网格搜索算法来解决汉语语言模型的搜索问题。该结构分为三层,见图1:顶层为单词序列层,该层受中文语言模型约束;第二层为单词层,受词法树约束;最底层是汉字层,受“汉字-汉字特征(拼音、笔划或数字)”树约束。后两层可以认为是独立的,也可以当作一个整体来对待。通过使用该结构,从笔划序列到句子的搜索是汉字同步的,句子的概率随着单词的出现逐单词累加。该搜索算法能够达到300字/秒的搜索速度;在每个汉字使用两个笔划编码时能达到97%以上的正确率,而在每个汉字使用四个编码时则能达到99%以上的正确率。
从图1可以看出,这种多层次结构的优点在于具有良好的可扩充性。通过从字母、数字或者笔划到拼音或者汉字之间的映射,该输入系统可以被非常方便的移植到各种通过字母、数字或者笔划输入的系统上。
搜索算法如图2所示,步骤包括:
第1步:搜索开始,搜索候选路径清空;
第2步:获得一个特征笔划输入(从手写板、键盘或软键盘)的编码;
第3步:以输入的笔划推动笔划-汉字树进行状态跳转;
第4步:判断是否已经得到一个汉字的设定数目的特征笔划编码(根据应用,可以设定1个、2个、3个或4个),否则转第2步,是则继续第5步;
第5步:获得该单字的所有候选,推动词法树(所有词按字组织而成的树称为词法树)搜索状态跳转前进;
第6步:判断是否到达词边界,否则转第2步,是继续第7步;
第7步:获得所有的词候选,对现有的路径添加不同的候选词按公式(1)分别进行路径打分;
第8步:对所有的路径进行按概率分数从高到低排序;
第9步:判断是否输入结束,否则转第2步,是继续第10步;
第10步:获得最高分整句候选;
第11步:一次整句搜索结束。
本发明的应用举例:
以每个汉字只有两个特征笔划为例。
首先,按照汉语语言模型的序列步骤获得语言模型。
在输入时,比如要输入“上海的个人师傅克服困难”这个句子。按照本发明的编码,这些汉字对应的特征笔划序列见表2。
表2“上海的个人师傅克服困难”每个字的特征笔划序列和重码汉字
由此,每个汉字都要输入四划,并从重码的汉字中去选。如当输入“的”时,需要输入四个笔划“/,口,/ \”,并从候选“囱”及“的”中选出。而如果只输入前两划“/,口”,候选会更多,如“皎皇皋泉皤皓魄…”。下面看看用本发明的输入法的情形,见图3。图中,每个框中第一行为字候选,中间一行为词号,底下一行为累加的对数概率。每行从左到右按对数概率降序排列。
(i)先输入“上”的前两划“丨—,—”,得到四个前两划重码的汉字“上、冀、忐、邶”。
(ii)不用选,继续输入“海”的前两划“\ \,/”,虽然与“海”的前两划相同的字有很多,但考虑到“丨—,—”和“\ \,/”的搭配关系,可以得到几种可能的词“上海、上涨、上游、上演、上流、上溯、上派、上油”,以及对应该两划的两个可能的单字“河、沙”。
(iii)继续输入“的”的前两划“/,口”,由于“海的”不成词,它给出一些对应该两划的单字,又给出上个字为“河”本字为“口”时的可能单词“河口”。
(iv)如此下去,随着输入笔划的最多发现,算法选出了需要的句子“上海的个人师傅克服困难”,见图3中的粗黑框标出的汉字,该句子具有最大的概率。

Claims (7)

1、一种台式计算机、手持电子设备或移动通讯设备的整句汉字局部笔划输入法,其特征在于,包括以下步骤:
1)采用23个特征笔划为汉字编码的基本码元,所说的码元包括:
\,—,丨,/,,口,
Figure C021044430002C1
凵,匚,\\,\/,
>,——,—丨,丨丨,/\,<,×,//,,
Figure C021044430002C3
Figure C021044430002C4
2)将上述23种编码码元映射到所说设备的键盘的相应键位上;
3)将汉字分为左右、上下或外内两个部分,按笔顺分别取第一部分的和第二部分的前两个特征笔划作为汉字的局部编码序列;如果第一部分只有一个特征笔划,那么其余三个特征笔划从第二部分中顺序取出;如果特征笔划的数目不够4个,有多少就用多少作为局部编码序列;如果汉字不能拆成两部分,则按顺序直接取最大4个编码码元;
4)按整句的方式进行对汉字的输入,每个汉字按汉字特征笔划顺序输入设定数目的特征笔划,利用汉语语言模型根据上下文的关联信息把整个句子转换出来。
2、如权利要求1所述的整句汉字局部笔划输入法,其特征在于,还包括附加的17个特征笔划共40个特征笔划:
\—,\丨,\,—\,—/,—,丨\,丨—,丨/,
丨,/—,/丨,/,\,—,丨,/。
3、一种应用于带有手写板的设备的整句汉字局部笔划输入法,其特征在于,包括以下步骤:
1)采用23个特征笔划为汉字编码的基本码元,所说的码元包括:
Figure C021044430002C5
Figure C021044430002C8
Figure C021044430002C10
Figure C021044430002C12
Figure C021044430002C13
Figure C021044430002C15
Figure C021044430002C16
Figure C021044430002C17
Figure C021044430002C19
Figure C021044430002C22
Figure C021044430002C24
Figure C021044430002C27
Figure C021044430002C29
2)将汉字分为左右、上下或外内两个部分,按笔顺分别取第一部分的和第二部分的前两个特征笔划作为汉字的局部编码序列;如果第一部分只有一个特征笔划,那么其余三个特征笔划从第二部分中顺序取出;如果特征笔划的数目不够4个,有多少就用多少作为局部编码序列;如果汉字不能拆成两部分,则按顺序直接取最大4个编码码元;
3)按整句的方式进行对汉字的输入,每个汉字按汉字特征笔划顺序输入设定数目的特征笔划,利用汉语语言模型根据上下文的关联信息把整个句子转换出来。
4、如权利要求3所述的整句汉字局部笔划输入法,其特征在于,还包括附加的特征笔划:
Figure C021044430002C30
Figure C021044430002C31
Figure C021044430002C32
Figure C021044430002C37
Figure C021044430002C39
Figure C021044430002C41
Figure C021044430002C42
Figure C021044430002C43
Figure C021044430002C44
Figure C021044430003C1
Figure C021044430003C2
Figure C021044430003C3
Figure C021044430003C4
Figure C021044430003C5
Figure C021044430003C6
Figure C021044430003C8
Figure C021044430003C10
Figure C021044430003C12
Figure C021044430003C13
Figure C021044430003C15
5、如权利要求1、2、3或4所述的整句汉字局部笔划输入法,其特征在于,所说的汉语语言模型包括以下步骤:
1)训练汉语语言模型;
2)采用双向退化估计算法对未出现词对进行概率估计;
3)压缩模型存储空间,其步骤为:第1步:检查语言模型中所有n元组,其中n取3、2和1,在训练文本中的出现次数,把那些出现次数较多、对模型性能起重要作用的n元组保留下来,而把其他n元组的出现次数强制置为0;第2步:对一元组采用对数弯折曲线压缩其出现次数,用较低的比特宽度去存储模型;第3步:对模型中保留下来的二元组,其出现次数肯定非零,不记录其具体出现次数,但是把具有同一前续词的二元组按照出现次数从高到低排序,对所有的二元组统计出排在同一序号位的平均概率,建立码表,以便搜索时用;第4步:降低索引的开销,词号以两个字节共16比特表示,将其分成三部分构成三级索引;
4)对所输入的特征笔划序列进行搜索得到汉字串。
6、如权利要求5所述的整句汉字局部笔划输入法,其特征在于,所说的对未出现词对进行概率估计的步骤为:当三个词a、b、c连在一起出现的三元组(a,b,c)的训练概率为0,即没有在训练语料中出现时,采用双向低阶退化算法进行估计,即同时参照二元组(a,b)和(b,c)的训练概率对三元组(a,b,c)的概率进行估计;这个过程时递归的,即如果二元组(x,y)的训练概率为0时,利用双向退化算法,同时用词x和词y的训练概率进行估计。
7、如权利要求5所述的整句汉字局部笔划输入法,其特征在于,所说的搜索算法,包括以下步骤:
1)搜索开始,搜索候选路径清空;
2)从手写板、键盘或软键盘获得一个特征笔划输入的编码;
3)以输入的笔划推动笔划-汉字树进行状态跳转;
4)判断是否已经得到一个汉字的设定数目的特征笔划编码,否则转第2步,是则继续第5步;
5)获得该单字的所有候选,推动词法树搜索状态跳转前进;
6)判断是否到达词边界,否则转第2步,是继续第7步;
7)获得所有的词候选,对现有的路径添加不同的候选词按如下公式分别进行路径打分
P ( w 1 , w 2 , &CenterDot; &CenterDot; &CenterDot; , w N ) = P ( w 1 ) &CenterDot; P ( w 2 | w 1 ) &CenterDot; &Pi; n = 3 N P ( w n | w n - 2 , w n - 1 ) ;
8)对所有的路径进行按概率分数从高到低排序;
9)判断是否输入结束,否则转第2步,是继续第10步;
10)获得最高分整句候选;
11)一次整句搜索结束。
CNB021044430A 2002-03-18 2002-03-18 计算机整句汉字局部笔划输入方法 Expired - Fee Related CN1187677C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB021044430A CN1187677C (zh) 2002-03-18 2002-03-18 计算机整句汉字局部笔划输入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB021044430A CN1187677C (zh) 2002-03-18 2002-03-18 计算机整句汉字局部笔划输入方法

Publications (2)

Publication Number Publication Date
CN1445640A CN1445640A (zh) 2003-10-01
CN1187677C true CN1187677C (zh) 2005-02-02

Family

ID=27810882

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021044430A Expired - Fee Related CN1187677C (zh) 2002-03-18 2002-03-18 计算机整句汉字局部笔划输入方法

Country Status (1)

Country Link
CN (1) CN1187677C (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104503597B (zh) * 2014-12-19 2017-12-12 北京奇虎科技有限公司 笔画输入方法、装置和系统
CN108345580B (zh) * 2017-01-22 2020-05-15 创新先进技术有限公司 一种词向量处理方法及装置
CN110110292B (zh) * 2018-01-29 2023-11-14 北京搜狗科技发展有限公司 一种数据处理方法、装置和用于数据处理的装置

Also Published As

Publication number Publication date
CN1445640A (zh) 2003-10-01

Similar Documents

Publication Publication Date Title
CN1648828A (zh) 去多义性语音输入系统和方法
CN1113305C (zh) 语言处理装置和方法
CN1026525C (zh) 智能五笔双拼码计算机汉字输入方法
CN1232226A (zh) 句子处理装置及其方法
CN1542649A (zh) 自然语言生成系统中用于句子实现中排序的成分结构的语言信息统计模型
CN1677388A (zh) 用于逻辑形式的统计语言模型
CN1387650A (zh) 对拼写、打字和转换错误具有容错能力的将一种文本形式转换为另一种文本形式的语言输入体系结构
CN101067780A (zh) 智能设备的文字输入系统及方法
CN1095560C (zh) 修改汉字转换结果的系统
CN1187677C (zh) 计算机整句汉字局部笔划输入方法
CN1106619C (zh) 汉语输入变换处理装置和汉语输入变换处理方法
CN101046706A (zh) 用于不同人群电脑和手机可通用的输入法
CN1203389C (zh) 计算机整句汉字起始四笔划输入方法
CN1257445C (zh) 音义码汉字输入方法
CN1144141C (zh) 汉语输入变换处理装置及汉语输入变换处理方法
CN1102768C (zh) 一种用于电子计算机的汉字音形编码输入方法
CN1838044A (zh) 中文拼音声调笔划组合输入法
CN1679023A (zh) 创建和使用中文语言数据和用户自纠正数据的方法和系统
CN1156744C (zh) 元根码汉字输入方法
CN1123819C (zh) 计算机汉字键位码输入方法
CN1287321A (zh) 文本制作装置、转换处理方法和记录转换处理程序的记录媒体
CN1453692A (zh) 一种汉字拼形输入法的智能输入处理方法
CN1228565A (zh) 电脑文档自动检错、改错装置及方法
CN1554994A (zh) 与数字符号象形相关式手机汉字输入法及其键盘
CN1063556C (zh) 分析转换过程中动态路径选择方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee