汉字输入方法、设备及***
技术领域
本发明涉及计算机输入法技术领域,特别涉及一种汉字输入方法、设备及***。
背景技术
输入法是指为了将各种符号输入计算机或其他设备(如手机)而采用的编码方法。汉字输入的编码方法,基本上都是采用将音、形、义与特定的键相联系,再根据不同汉字进行组合来完成汉字的输入的。
目前现有技术中常见的汉字输入法类型包括拼音输入法、五笔输入法等,使用这些输入法得到输出的汉字,这些输入法采用的技术手段一般都是根据用户输入字型或者字音,之后通过输入的字型或者字音与汉字字典之间的映射关系得到汉字,并输出结果。还有一些输入法具有智能联想的功能,对于常见的输入可以产生较好的匹配结果,比如输入xinxilan,输入法根据输入的字型或者字音联想出来新西兰或者信息栏等匹配结果。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
现有技术中的输入法只能对输入的字型和字音进行联想,不能对输出结果产生同义联想,因此,在用户只知道某个词语的同义词,而不知道确切的该词语时,就不能从输入法得到与同义词匹配的用户真实想要的词语。
发明内容
为了使输入法能够根据输入结果进行同义联想,匹配出用户真正想要的词语,本发明实施例提供了一种输出同义词匹配结果的输入法、装置及***。所述技术方案如下:
一方面,一种汉字输入方法,包括:
根据用户输入的编码获得的候选词列表,所述候选词列表中包括至少一个候选词;
从所述候选词列表中选取至少一个候选词,并向同义词服务器发送同义词服务请求,所述同义词服务请求中包括所选取的候选词;
接收所述同义词服务器返回的与所选取的候选词匹配的同义词,并输出所述候选词列表和所述同义词。
其中,所述向同义词服务器发送同义词服务请求,包括:
分析所选取的候选词,判断所选取的候选词中是否包含虚词;
如果所选取的候选词中包含虚词,则删除所选取的候选词中的虚词,并发送同义词服务请求到同义词服务器,所述同义词服务请求中携带删除虚词后的所述候选词。
其中,所述输出所述候选词列表和所述同义词,包括:
在所述候选词列表中添加所述同义词;
输出添加了所述同义词后的候选词列表。
其中,从所述候选词列表中选取位于首位的候选词,则所述在所述候选词列表中添加所述同义词具体包括:将所述同义词添加至所述候选词列表中的第二位置。
其中,输出所述候选词和所述同义词之后,还包括:
当接收到用户对所述输出的同义词的纠错请求时,对所述输出的同义词进行纠错处理。
其中,根据所述编码得到所述候选词列表之后,还包括:
判断同义词服务功能是否开启;
如果是,则执行从所述候选词列表中选取至少一个候选词,并向同义词服务器发送同义词服务请求的步骤;
否则,输出所述候选词列表。
另一方面,一种汉字输入方法,包括:
接收客户端发送的同义词服务请求,所述同义词服务请求中包括待匹配的候选词;
查找与所述候选词匹配的同义词;
将所述匹配的同义词返回给所述客户端,使得所述客户端输出所述同义词。
其中,所述接收客户端发送的同义词服务请求之前,还包括:按照红黑树数据结构存储同义词数据库;
所述查找与所述候选词匹配的同义词,包括:从所述同义词数据库中查找与所述候选词匹配的同义词。
又一方面,一种客户端,包括:
选取模块,用于根据用户输入的编码获得的候选词列表,从所述候选词列表中选取至少一个候选词,所述候选词列表中包括至少一个候选词;
发送模块,用于向同义词服务器发送同义词服务请求,所述同义词服务请求中包括所选取的候选词;
接收模块,用于接收所述同义词服务器返回的与所述候选词匹配的同义词;
输出模块,用于输出所述候选词列表和所述同义词。
其中,所述客户端还包括:
优化模块,用于分析所选取的候选词,判断所选取的候选词中是否包含虚词,如果所选取的候选词中包含虚词,则删除所选取的候选词中的虚词;
所述发送模块具体用于发送同义词服务请求到同义词服务器,所述同义词服务请求中携带所述优化模块删除虚词后的候选词。
其中,所述输出模块包括:
添加单元,用于在所述候选词列表中添加所述同义词;
输出单元,用于输出添加了所述同义词后的候选词列表。
其中,所述选取模块具体用于从所述候选词列表中选取位于首位的候选词;
所述添加单元具体用于将所述同义词添加至所述候选词列表中的第二位置。
其中,所述客户端还包括:
纠错模块,用于当将所述输出模块输出所述候选词和所述同义词之后,如果接收到用户对所述输出的同义词的纠错请求,则对所述输出的同义词进行纠错处理。
其中,所述客户端还包括:
判断模块,用于在所述客户端根据所述编码得到所述候选词列表之后,判断同义词服务功能是否开启;
相应地,所述发送模块具体用于当所述判断模块判断的结果为是时,发送包括所述选取的候选词的同义词服务请求到同义词服务器;
所述输出模块还用于当所述判断模块判断的结果为否时,输出所述候选词列表。
又一方面,一种同义词服务器,包括:
接收模块,用于接收客户端发送的同义词服务请求,所述同义词服务请求中包括待匹配的候选词;
查找模块,用于查找与所述候选词匹配的同义词;
发送模块,用于将所述查找模块找到的所述同义词返回给所述客户端,使得所述客户端输出所述同义词。
其中,所述服务器还包括:
存储模块,用于在所述接收模块接收客户端发送的同义词服务请求之前,按照红黑树数据结构存储同义词数据库;
相应地,所述查找模块具体用于从所述同义词数据库中查找与所述候选词匹配的同义词。
再一方面,一种汉字输入***,包括:至少两个同义词服务器和如上所述的客户端;所述同义词服务器为如上所述的同义词服务器。
其中,所述至少两个同义词服务器中,其中一个同义词服务器为主同义词服务器,其他同义词服务器为从同义词服务器;当所述主同义词服务器出现异常时,所述从同义词服务器代替所述主同义词服务器工作。
本发明实施例提供的技术方案带来的有益效果是:
根据用户输入的编码获得的候选词列表,从中选取至少一个候选词,并发送包括该候选词的同义词服务请求到同义词服务器,得到服务器返回的与该候选词匹配的同义词,然后输出该候选词列表和同义词,可以让用户有更多的输出结果选择,得到用户真正想要的输出结果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的一种汉字输入方法流程图;
图2是本发明实施例1提供的另一种汉字输入方法流程图;
图3是本发明实施例2提供的一种汉字输入方法流程图;
图4是本发明实施例2提供的输出同义词的示意图;
图5是本发明实施例2提供的另一输出同义词的示意图;
图6是本发明实施例3提供的一种客户端结构图;
图7是本发明实施例3提供的另一种客户端结构图;
图8是本发明实施例4提供的一种同义词服务器结构图;
图9是本发明实施例5提供的一种汉字输入***结构图;
图10是本发明实施例5提供的同义词服务器部署示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本发明实施例提供了一种输出同义词匹配结果的输入方法,所述方法包括:
101:根据用户输入的编码获得的候选词列表,从所述候选词列表中选取至少一个候选词,所述候选词列表中包括至少一个候选词;
102:向同义词服务器发送同义词服务请求,所述同义词服务请求中包括所选取的候选词;
103:接收所述同义词服务器返回的与所选取的候选词匹配的同义词;
104:输出所述候选词列表和所述同义词。
本发明实施例提供的上述方法,根据用户输入的编码获得的候选词列表,从中选取至少一个候选词,并发送包括该候选词的同义词服务请求到同义词服务器,得到服务器返回的与该候选词匹配的同义词,然后输出该候选词列表和同义词,可以让用户有更多的输出结果选择,得到用户真正想要的输出结果。
参见图2,本发明实施例还提供了一种汉字输入方法,所述方法包括:
201:接收客户端发送的同义词服务请求,所述同义词服务请求中包括待匹配的候选词;
202:查找与所述候选词匹配的同义词;
203:将所述匹配的同义词返回给所述客户端,使得所述客户端输出所述同义词。
本发明实施例提供的上述方法,根据客户端发送的同义词服务请求中的候选词,查找匹配的同义词,并将该同义词发送给客户端,使得客户端可以输出该同义词,可以让用户有更多的输出结果选择,得到用户真正想要的输出结果。
实施例2
参见图3,本发明实施例提供了一种汉字输入方法,所述方法包括以下步骤:
301:客户端接收用户输入的编码,根据该编码得到匹配的候选词列表,该候选词列表中包括至少一个候选词;
该步骤可以采用常规的输入法,用户输入的编码可以包括字型或者拼音,根据输入的编码与汉字之间的映射关系来得到和输入编码匹配的候选词列表,比如用户以拼音输入法输入“xinxilanshoudu”,则根据拼音与汉字之间的映射关系得到的第一个候选词是“新西兰首都”,第二个候选词是“新西兰”,第三个候选词是“信息栏”。
302:客户端从候选词列表中选取至少一个候选词,分析选取的候选词,判断其中是否包含虚词,如果选取的候选词中包括虚词,则删除所述候选词中的虚词,并发送同义词服务请求到同义词服务器,该同义词服务请求中包括所述删除虚词后的候选词;
该步骤为了提高得到同义词服务的效率,在发送同义词匹配服务请求之前,会删除得到的候选词中的虚词。所述虚词是指没有完整的词汇意义,但有语法意义或功能意义的词,通常情况下,虚词依附于实词或语句,用来表示语法意义。所述虚词包括但不限于:副词、介词、连词、助词、语气词、象声词等没有实际意义的词,例如,当根据用户的编码得到候选词为“陈奕迅的老婆”时,则会在请求同义词服务之前将该候选词改为“陈奕迅老婆”。
303:同义词服务器收到客户端发送的同义词服务请求后,查找与所述同义词服务请求中的候选词匹配的同义词,并将该同义词发送给客户端;
其中,同义词服务器可以在同义词数据库中查找相应的同义词。具体地,所述同义词数据库为SQL(Structured Query Language,结构化查询语言)数据库,输入法使用的同义词数据库中的同义词共150多万条,需要更新的话,仅仅需要更新SQL数据库中相关记录即可,同义词数据库可以存储在同义词服务器上,或者作为一个单独的同义词数据库服务器提供服务。同义词服务器接收同义词服务请求后,访问本地的同义词数据库,或者连接同义词数据库服务器,从中查找与输入结果匹配的同义词。
提供同义词服务的同义词服务器的部署,可以采用HA高可用性HA(High Availability,高可用的)模型,并采用主从工作方式,当master(主)服务器出现异常的时候,输入法会自动连接slave(从)服务器,此时slave服务器提升为master服务器,保证及时提供同义词服务,master服务器同时降级为slave服务器。
本实施例中,进一步地,为了提高查找同义词的效率,同义词服务器还可以预先按照红黑树数据结构存储同义词数据库;相应地,同义词服务器查找与所述同义词服务请求中的候选词匹配的同义词,可以具体包括:从所述同义词数据库中查找与所述候选词匹配的同义词,从而可以保证同义词服务器查找同义词的速度更快。
304:客户端接收同义词服务器返回的与所述候选词匹配的同义词;
305:客户端输出所述候选词列表和收到的同义词。
本步骤可以具体包括:
在所述候选词列表中添加所述同义词,输出添加了所述同义词后的候选词列表。
客户端在输出同义词后,用户就可以根据需要进行选择,从而更方便用户使用。例如,参见图4,在用户输入“xinxilanshoudu”后,将第一个候选词“新西兰首都”发送到同义词服务器请求同义词服务,同义词服务器查找到的同义词为“惠灵顿”并发给客户端,则客户端输出的结果就包括了“惠灵顿”,用户可以根据需要选择需要的结果,如为“新西兰首都”或者“惠灵顿”。
为了提高得到同义词服务的效率,进一步地,步骤302中客户端可以选取该候选词列表中位于首位的候选词,则相应地,所述在所述候选词列表中添加所述同义词可以具体包括:
将所述同义词添加到所述候选词列表中的第二位置。
从候选词列表中选取位于首位的候选词,可以保证得到的同义词服务每次最多显示一个相关度最高的同义词,以提高得到同义词服务的效率,同义词服务是在输入法获取常规的候选词之后,才将输入法匹配的第一个候选词发送请求到同义词服务。
例如,以拼音输入法输入“xinxilan”,得到候选词列表,其中,第一个候选词是“新西兰”,第二个候选词是“信息栏”,则选取第一个候选词“新西兰”并发送到同义词服务器。
进一步地,上述方法在客户端输出候选词列表和同义词后,还可以包括如下步骤:
306:当接收到用户对所述输出的同义词的纠错请求时,对输出的同义词进行纠错处理。
该步骤提供给了用户更多的选择,在用户对匹配的同义词结果不满意的时候可以对输出的同义词进行纠错,重新将所述候选词发送到同义词服务器进行查找匹配同义词,以便提供其它的同义词给用户。
另外,本实施例中,客户端还可以提供同义词服务功能选项给用户,供用户选择是否开启同义词服务功能,具体地,所述方法还包括:
在客户端根据编码得到候选词列表后,先判断同义词服务功能是否开启,如果是,则客户端执行步骤302以及后续步骤,按照上述流程执行;否则,客户端直接输出该候选词列表,按照常规的流程执行。
参见图5,在输出的“惠灵顿”一词旁,给出了一个小图标,如果用户点击该小图标,可以得到纠错功能和关闭智能取词功能,用户可以根据需要对得到的同义词进行纠错或者关闭同义词服务。
本发明实施例提供的上述方法,客户端根据用户输入的编码得到匹配的候选词列表,从中选取至少一个候选词,发送携带该候选词的同义词服务请求到同义词服务器,同义词服务器查找匹配的同义词并发送给客户端,客户端输出该候选词列表和同义词,可以让用户有更多的选择,得到用户真正想要的结果。进一步地,通过在发送同义词服务请求之前输出没有实际意义的虚词,提高了同义词服务的效率。通过采用红黑树数据结构存储同义词数据库,并在该同义词数据库中查找同义词,可以进一步提高查找的效率,从而提高了同义词服务的效率。
实施例3
参见图6,本发明实施例提供了一种客户端,所述客户端包括:
选取模块601,用于根据用户输入的编码获得的候选词列表,从所述候选词列表中选取至少一个候选词,所述候选词列表中包括至少一个候选词;
发送模块602,用于向同义词服务器发送同义词服务请求,该同义词服务请求中包括所选取的候选词;
接收模块603,用于接收同义词服务器返回的与所述候选词匹配的同义词;
输出模块604,用于输出所述候选词列表和同义词。
参见图7,本实施例中,所述客户端还包括:
优化模块605,用于分析所选取的候选词,判断所选取的候选词中是否包含虚词,如果所选取的候选词中包含虚词,则删除所选取的候选词中的虚词;
相应地,发送模块602具体用于发送同义词服务请求到同义词服务器,所述同义词服务请求中携带优化模块605删除虚词后的候选词。
本实施例中,输出模块604包括:
添加单元,用于在所述候选词列表中添加所述同义词;
输出单元,用于输出添加了所述同义词后的候选词列表。
进一步地,选取模块601具体用于从所述候选词列表中选取位于首位的候选词;相应地,所述添加单元具体用于将所述同义词添加至所述候选词列表中的第二位置。
本实施例,所述客户端还包括:
纠错模块,用于当将所述输出模块输出所述候选词和所述同义词之后,如果接收到用户对所述输出的同义词的纠错请求,则对所述输出的同义词进行纠错处理。
本实施例中,所述客户端还包括:
判断模块,用于在所述客户端根据所述编码得到所述候选词列表之后,判断同义词服务功能是否开启;
相应地,所述发送模块具体用于当所述判断模块判断的结果为是时,发送包括所述选取的候选词的同义词服务请求到同义词服务器;
所述输出模块还用于当所述判断模块判断的结果为否时,输出所述候选词列表。
本发明实施例提供的上述客户端,根据用户输入的编码获得的候选词列表,从中选取至少一个候选词,并发送包括该候选词的同义词服务请求到同义词服务器,得到服务器返回的与该候选词匹配的同义词,然后输出该候选词列表和同义词,可以让用户有更多的输出结果选择,得到用户真正想要的输出结果。
实施例4
参见图8,本发明实施例提供了一种同义词服务器,包括:
接收模块801,用于接收客户端发来的同义词服务请求,所述同义词服务请求中包括待匹配的候选词;
查找模块802,用于查找与所述候选词匹配的同义词;
发送模块803,用于将所述查找模块找到的所述同义词返回给所述客户端,使得所述客户端输出所述同义词。
本实施例中,所述服务器还包括:
存储模块,用于在接收模块801接收客户端发送的同义词服务请求之前,按照红黑树数据结构存储同义词数据库;
相应地,所述查找模块具体用于从所述同义词数据库中查找与所述候选词匹配的同义词。
本发明实施例提供的上述同义词服务器,根据客户端发送的同义词服务请求中的候选词,查找匹配的同义词,并将该同义词发送给客户端,使得客户端可以输出该同义词,可以让用户有更多的输出结果选择,得到用户真正想要的输出结果。
实施例5
参见图9,本发明实施例提供了一种汉字输入***,所述***包括:客户端901和至少两个同义词服务器902。
其中,客户端901具体为实施例3提供的所述客户端,具有相同的功能,同义词服务器902具体为实施例4提供的同义词服务器,具有相同的功能,此处不赘述。
本实施例中,所述至少两个同义词服务器902中,其中一个同义词服务器可以具体为主同义词服务器,其他同义词服务器为从同义词服务器;当主同义词服务器出现异常时,从同义词服务器代替主同义词服务器工作。
例如,参见图10,同义词服务器1001为主同义词服务器,所述***还包括从同义词服务器1002,从同义词服务器1002用于当主同义词服务器1001出现异常时,接收同义词服务请求,从同义词数据库中查找与候选词匹配的同义词。
本发明实施例提供的上述***,客户端根据用户输入的编码得到匹配的候选词列表,从中选取至少一个候选词,发送携带该候选词的同义词服务请求到同义词服务器,同义词服务器查找匹配的同义词并发送给客户端,客户端输出该候选词列表和同义词,可以让用户有更多的选择,得到用户真正想要的结果。进一步地,通过在发送同义词服务请求之前删除没有实际意义的虚词,提高了同义词服务的效率。通过采用红黑树数据结构存储同义词数据库,并在该同义词数据库中查找同义词,可以进一步提高查找的效率,从而提高了同义词服务的效率。
需要说明的是:上述实施例提供的设备和***在进行输出汉字时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的设备、***与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。