发明内容
为了实现快速、准确地输入可拆分或具有象形字的汉字,本发明实施例提供了一种汉字输入方法及装置。所述技术方案如下:
一方面,提供了一种汉字输入方法,所述方法包括:
收集汉字的文字信息,所述汉字的文字信息包括所述汉字对应的拆分字拼音或象形字拼音、所述汉字本身及所述汉字对应的标准读音;
将所述汉字对应的拆分字拼音或象形字拼音作为所述汉字的拼音索引,生成具有拼音索引的拆字词库;
根据拆字词库及用户输入的拼音,获取并显示与所述用户输入的拼音相对应的汉字。
其中,所述生成具有拼音索引的拆字词库之后,还包括:
接收用户输入的汉字的文字信息,并将接收到的文字信息与生成的所述拆字词库中的文字信息进行合并;
根据合并后的文字信息更新拆字词库。
进一步地,所述生成具有拼音索引的拆字词库之后,还包括:
以预设时间为周期,更新拆字词库。
所述根据拆字词库及用户输入的拼音,获取与所述用户输入的拼音相对应的汉字,具体包括:
根据用户输入的拼音,直接在所述拆字词库中查找与所述用户输入的拼音相对应的汉字;
或,将所述拆字词库中的文字信息按照拼音索引进行排序,得到对应的二叉树;
根据用户输入的拼音,在所述二叉树中查找与所述用户输入的拼音相对应的汉字。
所述用户输入的拼音为连续的拆分字拼音、通过加减符号连接的拆分字拼音、含有匹配符的拆分字拼音、象形字拼音加固定字符中的一种。
另一方面,提供了一种汉字输入装置,所述装置包括:
收集模块,用于收集汉字的文字信息,所述汉字的文字信息包括所述汉字对应的拆分字拼音或象形字拼音、所述汉字本身及所述汉字对应的标准读音;
拆字词库生成模块,用于将所述汉字对应的拆分字拼音或象形字拼音作为所述汉字的拼音索引,生成具有拼音索引的拆字词库;
获取模块,用于根据拆字词库及用户输入的拼音,获取与所述用户输入的拼音相对应的汉字;
显示模块,用于显示与所述用户输入的拼音相对应的汉字。
所述汉字输入装置,还包括:
接收模块,用于接收用户输入的汉字的文字信息;
合并模块,用于将所述接收模块接收到的文字信息与生成的拆字词库中的文字信息进行合并;
第一更新模块,用于根据所述合并模块合并后的文字信息,更新拆字词库。
进一步地,所述汉字输入装置还包括:
第二更新模块,用于以预设时间为周期,更新拆字词库。
其中,所述获取模块,具体用于根据用户输入的拼音,直接在所述拆字词库中查找与所述用户输入的拼音相对应的汉字;或,将所述拆字词库中的文字信息按照拼音索引进行排序,得到对应的二叉树;根据用户输入的拼音,在所述二叉树中查找与所述用户输入的拼音相对应的汉字。
本发明实施例提供的技术方案的有益效果是:
本发明实施例提供的技术方案,通过收集包括拆分字拼音或象形字拼音的文字信息,生成具有拼音索引的拆字词库,并在汉字输入过程中应用拆字词库,可以实现快速、准确地输入可拆分或具有象形字的汉字,从而使汉字输入的过程更加便捷。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本实施例提供了一种汉字输入方法,具体方法流程如下:
101:收集汉字的文字信息,汉字的文字信息包括该汉字对应的拆分字拼音或象形字拼音、该汉字本身及该汉字对应的标准读音;
102:将该汉字对应的拆分字拼音或象形字拼音作为该汉字的拼音索引,生成具有拼音索引的拆字词库;
103:根据拆字词库及用户输入的拼音,获取并显示与用户输入的拼音相对应的汉字。
进一步地,为了便于理解拆分字及象形字,本实施例以汉字“汆”和“曱”为例,对拆分字及象形字的定义进行说明。其中,汉字“汆”可以被认为由汉字“入”与汉字“水”组成,将汉字“入”与汉字“水”定义为汉字“汆”的拆分字,则汉字“汆”对应的拆分字拼音为“ru′shui”;而对于汉字“曱”,可以认为与汉字“甲”的字形相像,因此,将汉字“甲”定义为汉字“曱”的象形字,则汉字“曱”对应的象形字拼音为“jia”。本实施例不对汉字的具体拆分方式进行限定,如果一个汉字存在多种拆分方式,本实施例提供的拆字词库中将包含每种拆分方式对应的文字信息,当用户输入的拼音为任意一种拆分字拼音时,均可获取到对应的汉字。
本实施例提供的方法,通过收集包括拆分字拼音或象形字拼音的文字信息,生成具有拼音索引的拆字词库,并在汉字输入过程中应用拆字词库,可以实现快速、准确地输入可拆分或具有象形字的汉字,从而使汉字输入的过程更加便捷。
实施例2
本实施例提供了一种汉字输入方法,该方法根据用户需要,生成具有拼音索引的拆字词库,通过在输入汉字过程中应用拆字词库,从而可以实现快速、准确地输入可拆分或具有象形字的汉字,特别是针对一些用户不知道读音或笔画的生僻字。参见图2,具体方法流程如下:
201:收集汉字的文字信息,其中,汉字的文字信息包括该汉字对应的拆分字拼音或象形字拼音、该汉字本身及该汉字对应的标准读音;
具体地,文字信息包括但不限于汉字对应的拆分字拼音或其象形字拼音、汉字本身以及汉字对应的标准读音。以汉字“汆”和“曱”为例,文字信息见表1:
表1
汉字对应的拆分字拼音或象形字拼音 |
汉字本身 |
汉字的标准读音 |
ru′shui |
汆 |
cu ān |
jia |
曱 |
yuē |
如表1所示,汉字“汆”可以被认为由两个拆分字“入”和“水”组成,则该汉字的文字信息是:“ru′shui汆cuān”,其中,“cuān”是“汆”的标准读音,“ru′shui”是拆分字“入”和“水”的拼音。又如汉字“曱”,其象形字是“甲”,则汉字“曱”的文字信息是:“jia曱yuē”,其中,“yuē”是“曱”的标准读音,“jia”是其象形字“甲”的拼音。
实际应用中,为了使本实施例提供的汉字输入方法尽量覆盖所有可拆分汉字或是具有象形字的汉字,在本实施例的实施过程中,需要收集大量的文字信息,具体的收集方式可以有很多种,本实施例不对收集文字信息的具体方式进行限定。本实施例首先采取从互联网上收集并整理文字信息的方式,后期在应用过程中,再根据用户的补充,逐渐丰富拆字词库中的文字信息。其中,从互联网上收集文字信息时,可以采用人工在互联网上进行检索的方式进行文字信息的收集,也可以通过访问一些有关汉字的专业网站,从而实现收集文字信息,还可以收集互联网上的一些热门的自造字,总之,本实施例不对从互联网上收集文字信息的方式进行具体限定。关于如何实现用户对文字信息进行补充,详见步骤202,此处暂不详述。
202:将汉字对应的拆分字拼音或象形字拼音作为该汉字的拼音索引,生成具有拼音索引的拆字词库;
针对该步骤,仍以汉字“汆”为例,该汉字“汆”的文字信息是:“ru′shui汆cuān”,则该汉字的拼音索引为其拆分字拼音“ru′shui”。又例如汉字“曱”,该汉字“曱”的文字信息是:“jia曱yuē”,则该汉字的拼音索引为其象形字拼音“jia”。需要说明的是,本实施例不对如何拆分汉字进行具体限定,例如,有些汉字有多种拆分方法,则该汉字对应不同的拆分字组合,针对这种情况,本实施例提供的拆字词库中应包含该汉字的每种拆分字组合,无论用户选择输入哪种拆分字拼音,均可以在拆字词库中找到该汉字,从而最大限度地满足用户对汉字输入的需求。生成的拆字词库可以存储在服务器端,也可以被加载到本地的客户端,本实施例对此不做限制,为了便于说明,本实施例以拆字词库被加载到本地的客户端为例进行说明。拆字词库的格式如表2所示:
表2
[Properties] |
[Records Default] |
[Records Custom] |
|
ye′mu=乸,nǎ |
|
Version=1.0 |
er′er=亖,sì...... |
...... |
如表2所示,本实施例提供的拆字词库分为三个部分,第一部分用于记录拆字词库的版本号、属性等信息,以字段[Properties]来表示;第二部分用于记录拆字词库中默认的文字信息,即拆字词库自带的文字信息,以字段[RecordsDefault]来表示;第三部分用于记录用户补充的文字信息,以字段[RecordsCustom]来表示,本实施例不对用户补充文字信息的方式进行具体限定。具体实现时,可设置一个单独的补充界面,通过用户选择该补充界面并进行文字信息输入,从而实现用户对文字信息的补充。可选地,文字信息还可以包括汉字对应的拆分字或象形字。
如果本地用户对本地的拆字词库进行了补充,则接收本地用户输入的一个或多个汉字的文字信息,并将接收到的文字信息与本地的拆字词库中[RecordsCustom]字段中的文字信息进行合并,根据合并后的文字信息更新本地的拆字词库,并将合并后的文字信息上传到服务器端。可选地,还可以先将合并的文字信息上传到服务器端,在服务器端进行拆字词库的更新,再将更新后的拆字词库分发到各个客户端。对于拆字词库的更新过程是在客户端还是在服务器端,本实施例不做具体限定。
进一步地,服务器端随时接收不同用户补充的文字信息,在对各个用户补充的文字信息进行筛选、去重和整理后,服务器端的拆字词库的版本也将随时都会更新。对于每个客户端,在将拆字词库加载到本地之后,需要以预设时间为周期,更新本地的拆字词库。其中,预设时间可以根据用户需要进行设定,例如:一个星期或者一天,本实施例不对预设时间进行限定。具体的更新过程为:到服务器端拉取拆字词库的版本信息文件,版本信息文件中带有当前最新的拆字词库的版本号,以及最新版本的拆字词库的下载链接;读取本地的拆字词库中[Properties]字段中的版本号,再与从本地读取的版本号与服务器上拉取的版本号比较,如果服务器上的版本比本地的版本新,验证本地的拆字词库需要更新,则根据返回的最新版本下载链接下载最新版本的拆字词库;下载完毕后,更新本地的拆字词库,同时,本地的拆字词库版本号也将随之更新为最新的版本号。可选地,对于每个客户端,也可以在各自更新本地拆字词库之后,将本地更新的拆字词库互传给其他客户端,以便其他客户端及时更新拆字词库。其中,将本地更新的拆字词库互传给其他客户端时,可以有多种互传方式,例如,通过局域网或是对等网络,本实施例不对采取何种方式互传进行具体限定。
另外,需要说明的是,由于本实施例提供的拆字词库中的文字信息仅针对可拆分汉字或是具有象形字的汉字,而对于用户而言,即使有些汉字可拆分或是具有象形字,但用户知道该汉字的读音或是笔画,从而选择直接输入该汉字的拼音。针对该种情况,需要另外提供一个“拼音输入词库”,该“拼音输入词库”中应存储所有汉字及每个汉字对应的拼音,不仅包括不可拆分且没有象形字的汉字,还要包括拆字词库中可拆分或是具有象形字的汉字。现有技术中有多种建立“拼音输入词库”的方法,本实施例不对如何建立“拼音输入词库”的方法进行具体限定。在加载拆字词库的同时,还要加载“拼音输入词库”。在后续步骤中,根据用户输入的拼音,同样要在该“拼音输入词库”中进行查找并显示对应的汉字,本实施例仅以在拆字词库中的查找过程为例进行说明,不对在“拼音输入词库”中的查找过程进行限定,此处将暂不赘述。
203:根据拆字词库及用户输入的拼音,获取与用户输入的拼音相对应的汉字;
具体地,用户输入的拼音存在多种形式,本实施例不对用户输入拼音的形式进行具体限定,包括但不限于如下几种形式:
(1)连续的拆分字拼音
以汉字“皕(bi)”为例,该汉字由两个拆分字“百(bai)”组成,用户可以连续输入两个拆分字拼音“bai′bai”。又例如,汉字“仝(tong)”分别由拆分字“人(ren)”及“工(gong)”组成,用户可以连续输入拆分字拼音“ren′gong”。
(2)通过加减符号连接的拆分字拼音
仍以汉字“皕(bi)”为例,该汉字由两个拆分字“百(bai)”组成,用户可以通过加号连接两个拆分字拼音,如输入拼音“bai+bai”。又例如,汉字“冉”可以被看作是汉字“再”去掉上面的一横,该一横被看作拆分字“一(yi)”,因此,用户可以通过减号连接两个拆分字拼音,如用户输入拼音“zai-yi”。
(3)含有匹配符的拆分字拼音
其中,匹配符可以有多种,本实施例不对具体的匹配符进行限定,此处以匹配符为“?”为例。如汉字“嫐(nao)”,该汉字可由三个拆分字组成,中间一个“男”字,两边各一个“女”字,任意一个拆分字拼音均可用匹配符“?”来代替,因此,用户可以输入“nv?nv”。
(4)象形字拼音加固定字符
针对该种输入形式,以汉字“由(you)”的象形字“田(tian)”为例,如果用户想要得到的汉字是“由(you)”,则为了避免对与象形字同音汉字的输入造成干扰,本实施例采取一种无冲突的方式,即在输入象形字拼音时,加上固定字符,本实施例不对固定字符进行具体限定。仍以“由(you)”的象形字“田(tian)”为例,当用户想要输入的字是“田(tian)”时,在用户输入“田(tian)”的象形字拼音“you”之后,再输入固定字符(如按“,”),以获取“由(you)”的象形字“田(tian)”。需要说明的是:为了不对同音字输入造成太大的干扰,本实施例采取拆分字输入仅支持全拼输入的方式,不支持简拼等输入方式。
在根据用户输入的拼音及拆字词库,获取与用户输入的拼音相对应的汉字时,具体可以有以下两种方式:
一、根据用户输入的拼音,直接在本地的拆字词库中查找与用户输入的拼音相对应的汉字;
二、将拆字词库中的文字信息按照拼音索引进行排序,得到对应的二叉树,根据用户输入的拼音,在二叉树中查找与用户输入的拼音相对应的汉字。
其中,在将拆字词库中的文字信息按照拼音索引进行排序时,可采用按照英文字母的先后顺序,对拼音索引进行排序,排序之后,得到对应的二叉树。为了便于后续步骤的汉字查找,本实施例以得到的二叉树为红黑树为例,排序之后的逻辑结构可如下所示:
ao′er→兕,sì
ao′er→聱,áo
er′er→亖,sì
er′er→聑,tiē
......
zi′zi′zi→孨,zhuǎn
zhi′zhi′zhi→歮,sè
zhi′zhi′zhi→矗,chù
具体在拆字词库中查找相对应的汉字时,为了提升查找的速度,可以采用现有技术中的二分查找法进行查找,下面,结合上述几种输入形式,对查找对应的汉字进行说明:
当用户输入带加号的拼音时,如用户输入“xi+xi”,由于带加号的拼音与不带加号的拼音的结果是一致的,因此可自动将加号去掉,然后在拆字词库中进行查找。当输入带减号的拼音时,如用户输入“zai-yi”,由于词库中的索引拼音也是允许带有减号,因此直接根据用户输入的拼音在二叉树中进行查找即可找到结果。
当输入带问号的拼音进行通配查找时,如用户输入“xin?xin”,在词库中查找匹配符“?”前的拼音串“xin”,得到匹配的第一个结果和最后一个结果,即得到一个匹配的区间,然后再在区间内对每个结果进行遍历,再与匹配符“?”后的拼音串“?xin”比较,得到最终的结果。本实施例不对具体的查找方式进行限定,可以采用现有的lowerbound和upperbound算法。
当输入象形字拼音加固定字符时,直接根据输入的象形字拼音在二叉树中进行查找即可。
204:显示与用户输入的拼音相对应的汉字。
具体地,当用户输入的拼音为拆分字拼音时,为了避免对与拆分字同音汉字的输入造成干扰,显示拆分字拼音对应的候选字会在界面上区别处理,并且选择该拆分字拼音对应的候选字的快捷键也与同音字的快捷键不产生冲突。本实施例不对候选词的设置进行限定,仍以汉字“皕”为例,如设置每页显示5个候选词,当用户连续输入拆分字“百”的拼音“bai′bai”时,则显示页面将以同等位置显示与“bai′bai”同音的候选字“1.拜拜”、“2.白白”、“3.掰掰”、“4.摆摆”、“5.伯伯”,用户通过按快捷键“1”到“5”可以分别选择第一个到第五个候选词,而本实施例在显示候选字“皕”时,可以在不同于上述同音汉字的位置显示该候选字,同时,该候选字对应的快捷键也要区别于同音候选字,例如,用户通过按快捷键“6”来选择候选字“6.皕(bi)”,从而实现与同音候选词的快捷键不产生冲突。
当用户输入的拼音为象形字拼音加固定字符时,可直接显示与该象形字拼音相对应的汉字。除此之外,具体实现时,还可以在用户输入象形字拼音后,再提示用户输入固定字符选择查看象形字拼音对应的汉字,并在用户输入之后,显示该象形字拼音对应的汉字。仍以“由(you)”的象形字“田(tian)”为例,当用户想要输入的字是“田(tian)”时,在用户输入“田(tian)”的象形字拼音“you”之后,界面上除了显示拼音为“you”的汉字之外,因为“由(you)”存在象形字,因此,将提示用户输入固定字符(如按“,”)查看“由(you)”的象形字“田(tian)”,并在用户输入固定字符之后,显示“由(you)”的象形字“田(tian)”。
综上所述,本实施例提供的方法,通过收集包括拆分字拼音或象形字拼音的文字信息,生成具有拼音索引的拆字词库,在应用拆字词库的同时,支持用户对拆字词库的补充,并及时更新拆字词库,从而可以实现快速、准确地输入可拆分或具有象形字的汉字,特别是一些用户不知道读音的生僻字,使用户输入汉字的过程变得更加便捷。
实施例3
参见图3,本实施例提供了一种汉字输入装置,该装置包括:
收集模块301,用于收集汉字的文字信息,其中,汉字的文字信息包括该汉字对应的拆分字拼音或象形字拼音、该汉字本身及该汉字对应的标准读音;
拆字词库生成模块302,用于将汉字对应的拆分字拼音或象形字拼音作为任一汉字的拼音索引,生成具有拼音索引的拆字词库;
获取模块303,用于根据拆字词库及用户输入的拼音,获取与用户输入的拼音相对应的汉字;
显示模块304,用于显示与用户输入的拼音相对应的汉字。
优选地,参见图4,该汉字输入装置还包括:
接收模块305,用于接收用户输入的汉字的文字信息;
合并模块306,用于将接收模块305接收到的文字信息与拆字词库中的文字信息进行合并;
第一更新模块307,用于根据合并模块306合并后的文字信息,更新拆字词库。
进一步地,参见图5,该汉字输入装置还包括:
第二更新模块308,用于以预设时间为周期,更新拆字词库。
其中,预设时间可以设置为一个星期或是一个月,也可以设置为在汉字输入装置每次启动时进行更新,本实施例不对预设时间进行具体限定。
具体地,上述获取模块303,具体用于根据用户输入的拼音,直接在拆字词库中查找与用户输入的拼音相对应的汉字;或,将拆字词库中的文字信息按照拼音索引进行排序,得到对应的二叉树;根据用户输入的拼音,在二叉树中查找与用户输入的拼音相对应的汉字。
综上所述,本实施例提供的汉字输入装置,通过收集包括拆分字拼音或象形字拼音的文字信息,生成具有拼音索引的拆字词库,并在汉字输入过程中应用该拆字词库,可以实现快速、准确地输入可拆分或具有象形字的汉字,从而使用户输入汉字的过程更加便捷。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。