拼音输入法中长句的生成方法

文档序号:6354582阅读:627来源:国知局
专利名称:拼音输入法中长句的生成方法
技术领域
本发明涉及中文输入法领域,尤其涉及一种在拼音输入法中长句的生成方法。
背景技术
随着计算机、手机、电子阅读器等电子设备的普及,人们广泛应用电子设备进行文 本的输入及输出。目前,人们广泛应用多种中文输入法在计算机或手机上输入中文汉字,其 中最为常用的是拼音输入法和笔画输入法。目前大多拼音输入法软件都设置有一个拼音词 库,当用户输入拼音串后,该软件通过查询拼音词库识别用户需要输入的汉字,并提供给用 户选择。很多拼音输入法不支持长句生成,当用户将一个长句的拼音串输入后,输入法软 件仅能提供多个词组给用户进行选择,而不是根据拼音串生成一个长句提供给用户选择, 导致用户需要进行多次选择才能输入一个完整的句子。若用户使用手机输入长句,则选词 所消耗的时间更长,不利于用户的操作。例如,公开号为CNlO 112290IA的中国发明专利申请公开了 一种名为“中文整句 生成方法及装置”的发明创造,该整句生成方法首先对用户输入的拼音串进行分割,如用 户输入“zhejianwoshihenda”的拼音串,该方法根据音节将拼音串分割成多个拼音,获得 "zhe' jian'wo' shi'hen' da”的多个拼音,然后通过查询词库获得“zhe,jian”拼音组对应 的汉字,提供给用户选择,在用户选择后生成该词语。然后再获取后面的拼音生成候选词, 生成候选词时先获取上一次生成的候选词,并根据上次生成的候选词与当前的拼音构成有 向图,基于有向图生成当此的候选词。由于该方法需要根据用户选取的上一候选词来判断当前拼音所需生成的候选词, 因此需要用户进行多次选择才能实现长句的输入。此外,该方法生成候选词的过程中,是根 据拼音串由前至后进行拼音组的识别,这容易将由多个汉字组成的词语拆分,无法给用户 提供最准确的候选词,也导致用户选词的次数增多,造成用户中文输入的效率低下,给用户 的输入操作带来极大的不便,上述缺陷在使用手机输入中文时更为明显。

发明内容
本发明的主要目的是提供一种能准确生成长句的拼音输入法中长句生成方法。本发明的另一目的是提供一种输入效率较高的拼音输入法中长句生成方法。为了实现上述的主要目的,本发明提供的拼音输入法中长句生成方法包括建立拼 音词库,该拼音词库包括长词词库、短词词库以及单字表,对用户输入的拼音串进行分割, 形成多个拼音,并且,通过查询长词词库确定拼音串中包含的四个或四个以上汉字组成的 词语,通过查询长词词库以及短词词库,查找拼音串剩余的拼音中可能存在的三个汉字组 成的三字词以及两个汉字组成的双字词,并计算每一三字词以及每一双字词的可选价值, 依据每一个三字词的可选价值以及每一个双字词的可选价值高低确定拼音串中剩余拼音 中包含的所有三字词以及双字词,通过查询单字表确定拼音串仍未被确定的拼音所对应的单字。由上述方案可见,本发明的方法不需要根据用户上次生成的候选词生成当前的词 语,也就是无需用户进行多次选择生成长句。并且,生成长句的过程中,首先对字数较多的 词语进行识别,然后对字数较少的词语识别,最后是对单字进行识别。由于字数越多的拼音 组对应词语的候选词越少,生成的词语准确率越高,通过上述方法可大大提高对拼音组的 识别准确率,生成的长句准确率也就越高。一个优选的方案是,确定三字词的步骤是计算三字词的可选价值,并选取拼音 串中与三字词对应的长词拼音组,将与该长词拼音组相邻的一个拼音跟该长词拼音组成两 个相邻的短词拼音组,通过查询短词词库获得相邻的短词拼音组各自对应双字词的短词频 率,使用双字词的短词频率计算相邻双字词的可选价值,若三字词的可选价值大于相邻双 字词的可选价值,则选取三字词,否则,选取相邻双字词。由此可见,通过对三字词与相邻双字词可选价值的比较确定选取三字词还是相邻 双字词,可更准确地选取长句中的词语,减少用户选词的麻烦,方便用户操作,从而提高中 文输入的效率。进一步的方案是,确定双字词的步骤是在确定拼音串中所有三字词后,将剩余的 拼音划分为多组两两相接的短词拼音组,计算每一短词拼音组对应的双字词的可选价值, 依据双字词的可选价值高低确定拼音串的双字词。可见,通过对两两相接短词拼音组对应双字词可选价值的比较,能准确地选取用 户所需输入的双字词,提高长句生成的准确率。再进一步的方案是,长词词库设有一个索引表,索引表包括有多个由三个字母组 成的索引拼音,每一索引拼音对应有至少一个三字词。这样,通过索引表查询三字词,能减少查找三字词所消耗的时间,提高长句生成的效率。更进一步的方案是,短词词库设有一个高频词库,高频词库包括多组由两个拼音 组成的双字拼音组,每一双字拼音组具有唯一的拼音号,每一所述拼音号对应有一个双字 拼音组对应的出现频率最高的双字词。这样,通过高频词库选取出现频率最高的双字词,选词的时间大大减少,且词语选 取的准确率也大为提高,从而提高长句生成的准确率与效率。更进一步的方案是,单字表设有一个高频字表,高频字表包括多个单字拼音,每一 单字拼音对应有三个单字,三个单字分别是该单字拼音位于句首、句中及句末时被选取频 率最高的单字。由此可见,区分每一单字拼音位于在句首、句中及句末不同的位置,根据该单字位 于句子不同位置时选取不同的单字,可提高单字选取的准确率。


图1是本发明实施例的流程图。图2是本发明实施例中用户输入拼音串的示意图。图3是本发明实施例中对拼音串分割的示意图。图4是本发明实施例在拼音串中确定三字词后的示意图。
5
图5是本发明实施例中将拼音串的剩余拼音划分成多个短词拼音组的示意图。图6是本发明实施例中第一次双字词识别后的示意图。图7是本发明实施例中第二次双字词识别后的示意图。图8是本发明实施例中第三次双字词识别后的示意图。图9是本发明实施例中第四次双字词识别后的示意图。图10是本发明实施例中对所有三字词以及双字词识别后的示意图。以下结合附图及实施例对本发明作进一步说明。
具体实施例方式本实施例是应用于计算机或手机上的拼音输入法中对长句生成的方法,应用本方 法时,首先需要建立一个拼音词库,本实施例的拼音词库具有一个长词词库、一个短词词库 以及一个单字表,其中长词词库存储有三个或三个以上汉字组成词语所对应的长词拼音 组,每一个长词拼音组对应有至少一个词语,并且每一词语具有自身的长词频率,该长词频 率是通过对大量文献统计后所获得的频率,也就是该词语在所统计的大量文献中出现的频 率。通常,长词频率是一个自然数,例如,词语“国庆节”的长词频率为27。本文中,将由三 个汉字组成的词语称为“三字词”。短词词库存储有由两个汉字组成的词语对应的短词拼音组,本文中,将两个汉字 组成的词语成为“双字词”。本实施例中,每一短词拼音组对应有至少一个双字词,每一双字 词具有自身的短词频率,短词频率也是通过对大量文献统计获得的,并且也是一个自然数, 例如,双字词“一起”的短词频率是2290。单字表存储有大量单个汉字所对应的单字拼音,每一单字拼音对应至少一个单 字,每一个单字具有自身的单字频率,单字频率也是通过对大量文献的统计获得的,并且也 是一个自然数。建立拼音词库后,将拼音词库嵌入到输入法中,即可应用本实施例对长句进行生 成。参见图1,对长句进行生成时,首先执行步骤Si,对用户输入的拼音串进行分割, 例如,用户输入如图2所示的拼音串,则需要根据中文音节对拼音串进行分割,分割成多个 拼音,分割后的多个拼音如图3所示。对拼音分割的方法与现有的方法相同,不再赘述。对拼音串进行分割后,执行步骤S2,对拼音串中四个或四个汉字以上组成的词语 进行识别。执行该步骤时,选取分割后的多个相邻的拼音与长词词库中的长词拼音组进行 对比,逐一筛选出四个或四个以上汉字组成的词语。如本实施例中,首先识别句首的四个拼 音是否属于长词词库所存储的长词拼音组,由于长词词库内并没有“guo’ qing’ jie’ wo”这 样的拼音组,因此不会识别“guo’ qing’ jie’ wo”这一拼音组。使用相同的方法,对拼音串 中余下的拼音进行识别。由于本实施例中并没有四个或四个以上汉字组成的词语,因此,四 个或四个以上汉字的识别结果为零。对四个或四个以上汉字进行识别后,执行步骤S3,识别拼音串中可能存在的三字 词。识别三字词时,也是选取分割后的相邻三个拼音与长词词库中的长词拼音组进行对比。 经过对比后,识别出该拼音串中“guo,qing' jie”对应有三字词“国庆节”,“he,pi,jiu”
对应有三字词“喝啤酒”。
识别三字词后,还需要执行步骤S4,对所识别的三字词进行检测,检测的方法是将 所识别的三字词对应的长词拼音组与相邻的一个拼音组成两个相邻的短词拼音组,并分析 这两个相邻的短词拼音组是否具有更高的可选价值,若三字词具有更高的可选价值,则选 取该三字词,若相邻的两个短词拼音具有更高的可选价值,则选取该两个短词拼音,并获得 两个双字词。例如,若选取“guo,qing,jie”对应的三字词为“国庆节”,则不能选取“guo,qing” 和“jie’ wo"这样相邻的两个短词拼音组所对应的双字词,因此必须检测是选取 "guo' qing' jie”还是选取“guo’ qing”和“jie’ wo”更为合理,以提高生成长句的准确性。检测时,首先计算三字词的可选价值,可通过以下公式计算 三字词可选价值=长词频率的二次方根X 100 (式1)
式1中,100是一个预先设定的系数,实际应用是可根据实际情况对该系数进行修改。通过查询长词词库可获得“国庆节”的长词频率为27,二次方根为5. 19,经过去尾 后获得数值为5,根据式1计算其可选价值是500。然后,计算相邻双字词的可选价值。通过查询短词词库可获得“guo’ qing”和 “jie’ wo”对应的双字词分别是“国庆”和“接我”,其短词频率分别是110和14,相邻双字 词的可选价值可通过以下公式计算获得
相邻双字词的可选价值=第一双字词的短词频率的二次方根X第二双字词的短词频 率的二次方根(式2)
根据式2计算可得,“国庆”的短词频率二次方根为10. 49,去尾后为10,“接我”的短词 频率二次方根为3. 24,去尾后为3,因此“国庆接我”的可选价值为30。显然,“国庆节”的 可选价值大于“国庆接我”的可选价值,因此选择三字词“国庆节”而不选取相邻双字词“国 庆接我”。当然,本实施例中,“guo’ qing’ jie”位于句首,前面没有相邻的拼音,如 "guo' qing' jie”位于句中,前后都有拼音,则需要将“guo’ qing' jie”与前面一个相邻的 拼音再次组成相邻双字词进行检测。根据相同的方法,对于所识别的“he’ pi’ jiu”长词拼音组也需要进行检测。由于 “喝啤酒”的长词频率为1,其可选价值为100,“hai’ he”和“pi’ jiu”对应的双字词分别 是“海河”和“啤酒”,短词频率分别是17和218,相邻双字词的可选价值是56,因此选取三 字词“喝啤酒”而不选取“海河啤酒”。当然,本实施例均是选取了三字词的情况,如句中存在“shang,hai,shi,bo”这 样的新词语的拼音组,则可识别存在有三字词“上海市”以及相邻双字词“上海” “世博”,此 时,查询长词词库得到“上海市”的长词频率为1,可选价值为100,“上海”与“世博”的短词 频率分别是4810和14,可选价值是207,因此对于“shang,hai,shi,bo”的拼音组,应该选 取“上海世博”的相邻双字词。通过上述检测,可确定拼音串中所有的三字词,即执行步骤S5,确定三字词后的拼 音串与汉字的对应关系如图4所示。对所有三个或三个以上汉字组成的词语进行识别后,需要执行步骤S6,对双字词 进行识别。识别双字词时,首先将剩余的拼音划分成多组两两相接的短词拼音组,本文所 说的“相接”是指前一短词拼音组的第二个拼音为后一短词拼音组的第一个拼音,如图5所示,短词拼音组 0’ he”与短词拼音组“he’ san”相接,短词拼音组“he’ san”与短词拼音 组“san’ tong”相接,如此类推。划分多个短词拼音组后,查询短词词库获得每一短词拼音组对应的双字词以及该 双字词的短词频率,如“wo’ he”对应的双字词为“我和”,短词频率为634,“he’ san”对应的 双字词为“和三”,短词频率为1,如此类推。图5中,位于每一双字词上方或下方的是该双 字词的短词频率。然后,计算每一双字词的可选价值,可通过以下公式计算 双字词的可选价值=短词频率-相接双字词的短词频率/2 (式3)
例如,“我和”的可选价值=634-1/2 = 634,因为1/2的计算结果小于1,归0。“和三” 的可选价值=1- (634+28) /2 = -330,通过类似的计算,可得“三通”的可选价值为-142, “同学”的可选价值为312,“学艺”的可选价值为-1288,“一起”的可选价值为2267,“启齿” 的可选价值为-1391,“吃饭”的可选价值为523,“泛海”的可选价值为-266。根据上述的计算结果,“一起”的可选价值最高,因此选取双字词“一起”,同时放弃 与“一起”相接的两个双字词“学艺”和“启齿”,如图6所示。经过第一次双字词识别后,选取了“一起”这一双字词。然后,进行第二次的双字词 识别,依据图6所示重新计算剩余拼音中多个短词拼音组对应的双字词的可选价值,计算 结果是“我和”的可选价值为634,“和三”的可选价值为-330,“三通”的可选价值为-142, “同学”的可选价值=339-28/2 = 325,“吃饭”的可选价值=534-1/2 = 5;34,“泛海”的可 选价值为-266。由于“我和”的可选价值最高,因此第二次双字词识别后选取了双字词“我 和”,双字词“和三”被放弃,如图7所示。接着,根据图7所示表格计算剩余短词拼音组对应的双字词的可选价值,获得“吃 饭”的可选价值为534,其是可选价值最高的双字词,因此第三次双字词识别选取了 “吃饭” 并放弃双字词“泛海”,如图8所示。由于拼音串中剩余可识别的双字词只有“三通”和“同学”,因此分别计算“三通”和 “同学”的可选价值。由于“同学”的可选价值大于“三通”的可选价值,因此选取“同学”并 放弃“三通”,如图9所示。此时,拼音串中剩余“san”与“hai”两个单字拼音未被识别。为 了提高长句生成的准确性,可对两个单字进行一次检测,即通过查询短词词库是否存在“和 san"以及“san同”的双字词,或者存在“饭hai”以及“hai喝”这样的双字词,若存在上述 的双字词,还需要计算上述的双字词的短词频率大于一定数值,如200。通过查询后未发现 短词词库中存储有上述的双字词,因此可确定“ san”与“hai ”为单字拼音。经过双字词识别后,拼音串与对应汉字的示意图如图10所示,拼音串中剩余的两 个单字拼音分别是“san”与“hai”,此时执行步骤S7,通过查询单字表选取两个单字拼音对 应的单字,分别是“三”与“还”。因此,生成的长句为“国庆节我和三同学一起吃饭还喝啤 酒”。由上述的方案可见,本实施例生成长句时,先对四个或四个汉字以上组成的词语 进行识别,然后对三字词进行识别,接着对双字词进行识别,最后对单字进行识别。由于字 数越多的词语识别准确率越高,通过上述的步骤进行识别,可大幅提高词语识别的准确率。 此外,本实施例也不需要借助于用户上次选取的候选词进行识别,用户输入较长的拼音串 后,本实施例可生成准确性较高的长句供用户选择,减少用户选词的次数,提高用户中文输
8入的效率。当然,为了提高选词速度,可对长词词库、短词词库以及单字表进行设计,通过索 引的方式进行词语的查询。例如,在长词词库中设置一个索引表,索引表中包括由三个字母 组成的索引拼音,并赋予每一索引拼音一个索引拼音号,每一个索引拼音号对应一个三字 词。例如,识别“zhong’ guo' ren”的拼音串时,提取该拼音串中每一拼音的首个字母, 即“zgr”,然后查询索引表与索引拼音进行对比,查询到“zgr”对应的三字词为“中国人”, 则选取“中国人”作为拼音串“zhong’ guo' ren”对应的汉字。赋予索引拼音的索引拼音号时,可将索引拼音看作一个26进制的三位数,其中第 一位是百位,第二位是十位,第三位是个位,而每一位上的字母按照其在字母表上的顺序给 予相应的序号,从而获得一个唯一的索引拼音号。并且,在短词词库内设置一个高频词库,高频词库存储有多组两个拼音组成的双 字拼音组,并且赋予每一个双字拼音组一个唯一的拼音号。赋予双字拼音号前,首先赋予每 一拼音唯一的拼音号,例如“zhong”的拼音号为20,“guo”的拼音号为100,一共有420个 拼音,每一个拼音均设置唯一的拼音号。对于双字拼音号,可看作一个420进制的两位数,第一位是十位,第二位是个位, 则“ zhongguo ”的拼音号是20X420+100 = 8500。每一个拼音号对应有一个该双字拼音组 对应的出现频率最高的双字词,如“zhongguo”对应的双字词中出现频率最高的是“中国”。 因此,当需要识别的短词拼音组为“zhongguo”时,可计算该短词拼音组的拼音号,并从高频 词库中获取出现频率最高的双字词。对于单字的识别,则可根据单字拼音出现在句首、句中以及句末等不同情况区分 不同的单字,所选取的单字也就不相同。例如,单字拼音“ba”出现在句首与句中时,选取频 率最高是“把”,但出现在句末时,选取频率最高的是“吧”;又如。单字拼音“ju”出现在句 首时,选取频率最高的是“据”,出现在句中时,选取频率最高的是“距”,出现在句末时,选取 频率最高的是“局”。为了提高单字选取的准确性,应根据单字拼音出现在句子的不同位置 而选取不同的单字。因此,在单字表中设置一个高频字表,高频字表中存储有多个单字拼音,每一单字 拼音对应有三个单字,三个单字分别是单字拼音出现在句首、句中以及句末是选取频率最 高的单字。对单字拼音进行识别时,应该首先判断该单字拼音在句子中的位置,任何通过查 询高频字表确定选取哪一单字并生成句子。可见,通过本实施例的方法生成长句后,准确性可大为提高,且减少了用户选词的 次数。当然,本实施例中,每一长词的长词频率、短词的短词频率以及单字的单字频率可 根据用户多次选词后进行更改,以便将用户最常选择的词语或单字提供给用户选择。最后需要强调的是,本发明不限于上述实施方式,如词语可选价值计算方法的改 变、高频词库中拼音号设置方法的改变等变化也应该包括在本发明权利要求的保护范围 内。
权利要求
1.拼音输入法中长句的生成方法,包括建立拼音词库,所述拼音词库包括长词词库、短词词库以及单字表;对用户输入的拼音串进行分割,形成多个拼音;其特征在于通过查询所述长词词库确定所述拼音串中包含的四个或四个以上汉字组成的词语;通过查询所述长词词库以及所述短词词库,查找所述拼音串剩余的拼音中可能存在的 三个汉字组成的三字词以及两个汉字组成的双字词,并计算每一所述三字词以及每一所述 双字词的可选价值,依据每一所述三字词的可选价值以及每一所述双字词的可选价值高低 确定剩余的拼音中包含的所有三字词以及双字词;通过查询所述单字表确定所述拼音中串仍未被确定的拼音所对应的单字。
2.根据权利要求1所述拼音输入法中长句的生成方法,其特征在于所述长词词库存储有多组由三个或三个以上拼音组成的长词拼音组,每一所述长词拼 音组对应有至少一个长词,每一所述长词对应有长词频率。
3.根据权利要求2所述拼音输入法中长句的生成方法,其特征在于所述短词词库存储有多组由两个拼音组成的短词拼音组,每一所述短词拼音组对应有 至少一个双字词,每一所述双字词对应有短词频率。
4.据权利要求3所述拼音输入法中长句的生成方法,其特征在于确定所述三字词的步骤是计算所述三字词的可选价值,并选取所述拼音串中与所述 三字词对应的长词拼音组,将与所述长词拼音组相邻的一个拼音跟所述长词拼音组成两个 相邻的短词拼音组,通过查询所述短词词库获得所述相邻的短词拼音组各自对应双字词的 短词频率,使用所述双字词的短词频率计算相邻双字词的可选价值,若所述三字词的可选 价值大于所述相邻双字词的可选价值,则选取所述三字词,否则,选取所述相邻双字词。
5.根据权利要求4所述拼音输入法中长句的生成方法,其特征在于计算所述三字词可选价值的步骤是计算所述长词频率的二次方根与设定系数的乘积。
6.根据权利要求4或5所述拼音输入法中长句的生成方法,其特征在于计算所述相邻双字词的可选价值步骤是计算所述相邻双字词中的每一所述双字词的 短词频率二次方根的乘积。
7.根据权利要求3至5任一项所述拼音输入法中长句的生成方法,其特征在于确定所述双字词的步骤是在确定所述拼音串中所有三字词后,将剩余的拼音划分为 多组两两相接的短词拼音组,计算每一所述短词拼音组对应的双字词的可选价值,依据所 述双字词的可选价值高低确定所述拼音串的双字词。
8.根据权利要求1至5任一项所述拼音输入法中长句的生成方法,其特征在于所述长词词库设有一个索引表,所述索引表包括有多个由三个字母组成的索引拼音, 每一所述索引拼音对应有至少一个所述三字词。
9.根据权利要求1至5任一项所述拼音输入法中长句的生成方法,其特征在于所述短词词库设有一个高频词库,所述高频词库包括多组由两个拼音组成的双字拼音 组,每一双字拼音组具有唯一的拼音号,每一所述拼音号对应有一个所述双字拼音组对应 的出现频率最高的双字词。
10.根据权利要求1至5任一项所述拼音输入法中长句的生成方法,其特征在于 所述单字表设有一个高频字表,所述高频字表包括多个单字拼音,每一所述单字拼音 对应有三个单字,所述三个单字分别是所述单字拼音位于句首、句中及句末时被选取频率最高的单字。
全文摘要
本发明提供一种拼音输入法中长句的生成方法,包括建立拼音词库,该拼音词库包括长词词库、短词词库以及单字表,对用户输入的拼音串进行分割,形成多个拼音,并且,通过查询长词词库确定拼音串中包含的四个或四个以上汉字组成的词语,通过查询长词词库以及短词词库,查找拼音串剩余的拼音中可能存在的三个汉字组成的三字词以及两个汉字组成的双字词,并计算每一三字词以及每一双字词的可选价值,依据每一个三字词的可选价值以及每一个双字词的可选价值高低确定拼音串中剩余拼音包含的所有三字词以及双字词,通过查询单字表确定拼音串中仍未被确定拼音所对应的单字。本发明能准确地生成长句,并减少用户的选词操作,提高用户中文输入效率。
文档编号G06F3/023GK102081677SQ20111003957
公开日2011年6月1日 申请日期2011年2月17日 优先权日2011年2月17日
发明者陈翔 申请人:珠海全志科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1