在中文输入法中恢复候选词顺序的方法及系统
技术领域
本发明涉及计算机中文输入技术领域,特别涉及在中文输入法中恢复候选词顺序的方法及系统。
背景技术
计算机使用者要将汉字输入到计算机,就要使用中文输入法,目前,中文输入法可分为键盘输入法和非键盘输入法,而使用比较成熟的就是基于键盘的中文输入法。所谓中文输入法,即把键盘输入的编码或其他非键盘输入的媒体数据转换成汉字输入的方法。
下面对现有各类型的中文输入法的概况进行介绍:
1)键盘中文输入法
键盘中文输入法就是利用键盘,根据一定的编码规则来输入汉字的一种方法。
英文字母只有26个,它们对应着键盘上的26个字母,所以,对于英文而言是几乎不存在输入法的,直接输入英文字母就可以。汉字的字数有几万个,它们和键盘是没有任何对应关系的,但为了向计算机中输入汉字,必须对汉字进行编码,并将这些编码与键盘上的键联系起来,这样在键盘上输入某个汉字的编码时,计算机就会把编码转换成汉字。
目前,汉字编码方案已经有数百种,其中在计算机上已经应用的就有几十种,作为一种图形文字,汉字是由字的音、形、义来共同表达的,汉字输入的编码方法,基本上都是采用将音、形、义与特定的键相联系,再根据不同汉字进行组合来完成汉字的输入的。
2)非键盘中文输入法
非键盘中文输入法包括手写输入法、语音输入法、OCR输入法等。
手写输入法是一种笔式环境下的手写中文识别输入方法,符合中国人用笔写字的习惯,只要在手写板上按平常的习惯写字,计算机就能将其识别显示出来。采用手写输入法需要配套的硬件手写板,在配套的手写板上用笔(可以是任何类型的硬笔)来书写录入汉字,不仅方便、快捷,而且错字率也比较低,当然也可以用鼠标在指定区域内写出字来,进而转换成汉字。
语音输入法是通过话筒输入声音然后转换成文字的一种输入方法。虽然使用起来很方便,但错字率仍然比较高,特别是一些未经训练的专业名词以及生僻字。语音输入法在硬件方面要求计算机必须配备能进行正常录音的声卡,然后调试好麦克风,使用者可以对着麦克风用普通话语音进行文字录入。如果使用者普通话口音不标准,只要用它提供的语音训练程序,进行一段时间的训练,让它熟悉使用者的口音,也同样可以通过讲话来实现文字输入。
OCR,叫做光学字符识别技术,它要求首先把要输入的文稿通过扫描仪转化为图形才能识别,所以,扫描仪是必须的,而且原稿的印刷质量越高,识别的确率就越高,一般最好是印刷体的文字,比如图书、杂志等,如果原稿的纸张较薄,那么有可能在扫描时纸张背面的图形、文字也透射过来,干扰最后的识别效果。
现有技术中的主流键盘中文输入法,一般都提供自学习、自造词、清除自学习内容、以及清除所有自造词的功能,其界面如图1所示,其中,自学习功能是指在输入法中根据用户的输入,动态地改变候选词的顺序或者添加用户自定义词的功能。用户可以根据自身需要,自由使用这些功能,例如:用户需要把输入法根据用户的输入习惯而动态调整的所有词条顺序恢复到了安装时的状态,则可以使用清除自学习内容功能来实现。
图2是现有技术中键盘中文输入法词表的数据结构示意图,该数据结构保存了输入法的核心数据--拼音串到其对应候选词的对应关系。当用户输入一个拼音串,如“dajia”,首先进行音节划分,得到结果音节串为“da′jia”,然后在输入法词表中查找,找到“da′jia”这条记录后,把其对应的所有候选词按照一定的顺序返回给用户。图中,“1258”表示候选词“大家”的用户词频,“635”表示候选词“大甲”的用户词频,“2564”表示候选词“打架”的用户词频,“1635”表示候选词“打假”的用户词频,“324”表示候选词“大加”的用户词频。
在词表结构中,结果音节串对应的候选词的原始顺序是按照词的原始词频(图中没有标出)从大到小进行排序的。程序中还需要一个全局变量bIsUserFreq,用于保存是否考虑用户词频。如果不考虑用户词频,全局变量bIsUserFreq=0,则直接按照词表数据结构中的顺序将结果返回给用户,即图中所示,以“dajia”为例;如果考虑用户词频,全局变量bIsUserFreq=1,则需要根据候选词结点中的用户词频域从大到小重新进行排序后再将排序结果返回给用户,此时,候选词顺序为:打架(2564)、打假(1635)、大家(1258)、大甲(635)、大加(324)。
而现有技术中主流输入法所提供的清除用户自学习内容的功能,只需把全局变量bIsUserFreq设置成0即可,这样整个词表都恢复到安装时的状态,这种方法只能对自学习的全部内容进行清除,即把所有词条的候选词顺序都恢复到了初始状态,而不能针对某个特定的词条进行单独调整,不能满足用户的个性化需求;另外,由于用户在输入某一或某几个词条后,有可能多次错误选择所需的汉字,从而使这些词条的候选词排序结果变成违背用户意愿的排序,用户想要调整该某一或某几个词条的候选词顺序,只能对词表中的所有词条的候选词顺序进行调整,这样就会改变其它词条的、适合于该用户用词习惯的候选词排序,给用户增加了一些在选择其它词条的候选词时的麻烦。
发明内容
本发明要解决的技术问题是提供在中文输入法中恢复候选词顺序的方法及系统,能够对特定词条的候选词顺序进行单独调整且不影响其它词条的候选词顺序,满足用户的个性化需求。
本发明的技术方案是:
在中文输入法中恢复候选词顺序的方法,包括以下步骤:
101.在词表的表头结点中设置标志位域,所述标志位的取值有两种取值,分别为词条的原始候选词顺序值和自学习候选词顺序值;
102.输入词条;
103.根据所述输入法的汉字编码规则对所输入词条进行划分,并在所述词表中查找词条的划分结果;
104.在词表的表头结点中将所述划分结果对应的标志位值设置为原始候选词顺序值,恢复对应词条的原始候选词顺序。
步骤101中具体包括:
所述原始候选词顺序为按照候选词的原始词频从大到小进行排列的顺序;所述自学习候选词顺序为按照候选词的用户词频从大到小进行排列的顺序。
步骤104中恢复对应词条的原始候选词顺序具体包括:
301.清除候选词的用户词频;
302.按照候选词原始词频,从大到小重新排列对应的所有候选词的顺序。
步骤101中还包括:
按所述原始候选词顺序和所述自学习候选词顺序排列的两个序列,分别存储在所述词表中,所述标志位的原始候选词顺序值和自学习候选词顺序值的指针分别指向原始候选词序列和自学习候选词序列。
步骤104中恢复对应词条的原始候选词顺序具体包括:
根据所述标志位的原始候选词顺序值,取出词表中原始候选词顺序值的指针指向的原始候选词序列,得到原始候选词顺序。
步骤103中:所述输入法的汉字编码规则为拼音编码规则或字根编码规则。
步骤104之后还包括:
在用户界面的显示窗口中显示所述原始候选词顺序。
在中文输入法中恢复候选词顺序的系统,包括:
在词表的表头结点中设置标志位域的内核词表模块,
以及根据所述输入法的汉字编码规则对所输入词条进行划分,在所述内核词表模块中查找词条的划分结果,并将所述划分结果对应标志位值修改为原始候选词顺序值和自学习候选词顺序值的候选词顺序调整模块。
在中文输入法中恢复候选词顺序的系统,还包括:
将用户输入词条转给所述候选词顺序调整模块,以及显示候选词顺序调整模块提交的所述原始候选词顺序值和自学习候选词顺序值的候选词窗口显示模块。
所述候选词窗口显示模块上设置有一将用户输入词条转给所述候选词顺序调整模块的按钮。
本发明的有益效果是:
在本发明中,通过在词表中的表头结点中设置所有词条单独对应的标志位域,而每一词条对应的标志位都有两种取值,分别表示词条所对应的候选词顺序是否考虑用户词频,或表示词条所对应的候选词顺序是否为原始候选词顺序状态,只需改变标志位的取值,就可以实现对特定词条的候选词顺序进行调整,用户在使用本发明的恢复候选词顺序的方法时,可以针对某个特定的词条恢复其候选词顺序为初始状态,并且不影响其它词条的候选词顺序,即用户可以有针对性地进行候选词顺序恢复,而保留符合用户用词习惯的其它词条的候选词顺序,这样不仅有利于用户对已经熟悉的候选词顺序进行快速选词,而且也满足了用户的个性化需求;在候选词窗口显示模块上设置有一将用户输入词条转给所述候选词顺序调整模块的按钮,从而方便用户在使用中文输入法时,随时使用恢复词条的原始候选词顺序的功能。
附图说明
图1是现有技术中的主流键盘中文输入法提供的部分功能的界面图。
图2是现有技术中键盘中文输入法词表的数据结构示意图。
图3是本发明恢复候选词顺序的方法流程图。
图4是拼音串“dajia”的初始候选词顺序示意图。
图5是自学习时拼音串“dajia”的候选词顺序示意图。
图6是本发明键盘中文输入法词表的数据结构示意图(一)。
图7是本发明键盘中文输入法词表的数据结构示意图(二)。
图8是本发明恢复候选词顺序的系统模块图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的介绍,但不作为对本发明的限定。
本发明相对于现有技术来说,能够单独对特定词条的候选词顺序进行恢复,主要是在词表的表头结点中设置有标志位域,每一词条所对应的标志位相互独立,标志位的取值只影响对应候选词的排列顺序,在恢复候选词顺序时,只需将词条所对应的标志位设置为原始候选词顺序值,即可实现本发明的目的。
图3是本发明恢复候选词顺序的方法流程图,其具体过程如下:
步骤3a:在词表的表头结点中设置标志位域,该标志位有两种取值:原始候选词顺序值和自学习候选词顺序值,这两种取值分别表示词条的原始候选词顺序和自学习候选词顺序,当标志位取原始候选词顺序值时,词条的候选词顺序为按照候选词的原始词频从大到小进行排列的顺序;当标志位取自学习候选词顺序值时,词条的候选词顺序为按照候选词的用户词频从大到小进行排列的顺序;
步骤3b:输入词条,是指用户在键盘上输入的字母串,也就是说需要恢复该字母串所对应候选词的排列顺序;
步骤3c:根据所述输入法的汉字编码规则对所输入词条进行划分,并在所述词表中查找词条的划分结果;这里输入法的汉字编码规则可以为拼音编码规则,也可以为字根编码规则,其中,拼音编码规则是指以汉语拼音为基础的编码,而字根编码规则,则是指以汉字形状为基础的编码,如目前流行的五笔编码、二笔编码等;
步骤3d:在词表的表头结点中将所述划分结果对应的标志位值设置为原始候选词顺序值,由于每一标志位的取值相互独立,因此修改该标志位的取值不会影响其他标志位的取值;
步骤3e:对应的候选词顺序变为原始候选词顺序,即词条的候选词顺序为按照候选词的原始词频从大到小进行排列的顺序;
步骤3f:显示恢复的原始候选词顺序,即通过用户界面的显示窗口显示原始候选词顺序,向用户返回恢复结果,结束整个恢复过程。
下面以拼音编码规则,结合具体的拼音串“dajia”对本发明的恢复候选词顺序的方法进行更详细说明:
图4是拼音串“dajia”的初始候选词顺序示意图,用户在启用自学习功能的一段时间后,拼音串“dajia”候选词的顺序调整为如图5所示的示意图,其中的几个候选词的排列顺序发生改变,此时用户打算把此顺序再恢复为初始的状态,只需使用本发明的恢复候选词顺序的方法,就可以将候选窗口则恢复为初始的状态,即图4所示的示意图。
在恢复候选词顺序时可以通过不同的途径进行,如果词表结构不同,则恢复的过程或多或少存在一些异同,这里给出两种不同词表结构,如图6和图7所示,分别是本发明键盘中文输入法词表的数据结构示意图(一)和示意图(二)。
在图6中,这个数据结构保存了输入法的核心数据--拼音串到其对应候选词的对应关系。当用户输入一个拼音串,如“dajia”,首先按照汉语拼音的规则对该拼音串进行音节划分,划分结果为“da′jia”,然后在词表中查找该结果音节串“da′jia”,在词表头结点中设置有每一结果音节串对应的标志位域,这些标志位的取值为0或1,在找到“da′jia”这条记录后,把其对应的所有候选词按照原始或自学习的顺序返回给用户。
在词表中,拼音串对应的候选词的原始顺序是按照词的原始词频(图中没有标出)从大到小进行排序的,其排列顺序如图所示。表头结点中设置的标志位域用于指示是否采用用户词频。表头各个结点的标志位初始值都为1,即考虑用户词频,需要根据候选词结点中的用户词频域从大到小重新进行排序后再返回给用户,图中,候选词“大家”的用户词频为1258,候选词“大甲”的用户词频为635,候选词“打架”的用户词频为2564,候选词“打假”的用户词频为1635,候选词“大加”的用户词频为324,如果按照用户词频进行排序,则候选词顺序为:打架(2564)、打假(1635)、大家(1258)、大甲(635)、大加(324)。
此时,将词条“da′jia”候选词顺序恢复到初始的状态,如图6所示,则需要对表头结点“da′jia”中的标志位域设置为0;此后,清除候选词的用户词频,按照候选词原始词频,从大到小重新排列对应的所有候选词的顺序,则在下次输入“da′jia”的时候就不考虑用户词频,而是按照原始的排序返回给用户,从而实现了针对特定词条进行候选词顺序的恢复。
而在图7中,把原始的候选词序列和自学习的候选词序列分开存储在词表中,即按所述原始候选词顺序和所述自学习候选词顺序排列的两个序列,分别存储在所述词表中。标志位的原始候选词顺序值和自学习候选词顺序值的指针分别指向原始候选词序列和自学习候选词序列,每一个词条记录的头结点中有两个指针分别指向这两个序列,根据表头结点的标志位域来决定采用哪个序列。当标志位的值为0时,指针指向原始候选词序列,当标志位的值为1时,指针指向自学习候选词序列。
如标志位取0时,则取出词表中原始候选词顺序值的指针指向的原始候选词序列,得到原始候选词顺序:大家(2564)、大甲(1857)、打架(1635)、打假(658)、大加(324),从而完成了候选词恢复的过程。与图6所示的词表结构相比较,这种词表结构加快了返回候选词顺序的速度,因为不用根据原始词频对候选词进行重新排序,而直接从词表中取出原始候选词序列即可向用户返回恢复结果。
为了应用本发明的恢复候选词顺序的方法,可以通过如图8所示的本发明恢复候选词顺序的系统模块图来实现。
本发明的系统包括:候选词窗口显示模块8a、候选词顺序调整模块8b和内核词表模块8c,其中,在内核词表模块的词表头结点中设置标志位域,每一词条对应的标志位有两种取值:原始候选词顺序值和自学习候选词顺序值,这两种取值分别表示词条的原始候选词顺序和自学习候选词顺序;用户可以通过候选词窗口显示模块输入词条,由候选词窗口显示模块将用户输入词条转给所述候选词顺序调整模块,候选词顺序调整模块根据输入法的汉字编码规则(拼音编码规则或字根编码规则)对所输入词条进行划分,在所述内核词表模块中查找词条的划分结果,并将该划分结果对应标志位值修改为原始候选词顺序值,从而得到原始候选词顺序,最后,候选词顺序调整模块将该原始候选词顺序提交给候选词窗口显示模块进行显示,向用户返回恢复结果。
为了使用户随时使用本发明的恢复候选词顺序的方法,本发明的候选词窗口显示模块上还设置有一将用户输入词条转给所述候选词顺序调整模块的按钮,用户指定要恢复的词条的操作很简单,在输入词条后,只需在候选词窗口显示模块中点击该按钮,即可恢复候选词顺序,方便,快捷。
综上所述,本发明能够对特定词条的候选词顺序进行单独调整且不影响其它词条的候选词顺序,满足用户的个性化需求,同时,在候选词窗口显示模块上设置的按钮,当用户在使用中文输入法时,随时能够使用恢复词条的原始候选词顺序的功能。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。