发明内容
有鉴于此,本发明提供了一种中文动态联想输入方法,能够提高文字信息的输入速度。
本发明提供的一种中文动态联想输入方法,该方法包括:基于当前输入的文字进行联想方式搜索,该方法进一步包括:
在已输入文字序列中查找与所述当前输入文字相同的文字,并缓存所述已输入文字序列中与查找到的文字相邻且位于其后的文字;
将当前输入的文字添加至所述已输入文字序列并保存;
将所述联想输入方式搜索得到的、以及所缓存的文字所有文字作为候选文字显示输出。
当前输入的文字添加至所述已输入文字序列的最后;
在所述已输入文字序列中,从后至前依次查找与当前输入的文字相同的文字。
所述已输入文字序列中与查找到的文字相邻且位于其后的文字,缓存于预先设置的临时缓存区中。
预先设置临时缓存区的上限;
在所述已输入文字序列中,查找到的与当前输入的文字相同的文字数量达到所述上限时,停止查找。
所述将所缓存的文字、以及所述联想输入方式搜索得到的所有文字作为候选文字显示输出包括:
将临时缓存区中存储的文字填充至输出缓存区中;
将所述联想输入方式搜索得到的文字与输出缓存区中的文字进行比较,并将联想输入方式搜索得到的所有文字中与输出缓存区中不同的文字填充至输出缓存区;
将输出缓存区中存储的所有文字作为候选文字显示输出。
由上述技术方案可见,本发明在进行联想输入方式从文字库中搜索的同时,还从在当前输入文字之前已输入的文字序列中选择与当前输入文字匹配使用的文字,并将联想输入方式从文字库中搜索到的文字与从已输入的文字序列中选择的文字均作为下一次输入的候选文字,因而能够实现对联想输入方式搜索得到的候选文字进行动态调整,使得候选文字不受文字库的各种限制,而能够动态适应不同用户的输入习惯,从而能够提高文字信息的输入速度。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明中,在进行联想输入方式从文字库中搜索的同时,还从在当前输入文字之前已输入的文字序列中选择与当前输入文字匹配使用的文字,并将联想输入方式从文字库中搜索到的文字与从已输入的文字序列中选择的文字均作为下一次输入的候选文字。
这样,本发明通过在候选文字中增加从已输入的文字序列中选择的文字,因而能够实现对联想输入方式搜索得到的候选文字进行动态调整,使得候选文字不受文字库的各种限制,而能够动态适应不同用户的输入习惯,从而能够提高文字信息的输入速度。
假设用户需要输入的文字信息中包括需重复输入的某个非常用文字。虽然该非常用文字由于其使用的频率较低而排序比较靠后、甚至不存在于文字库中,但除第一次需要输入该非常用字之外,由于之前输入的文字序列中已包括了该非常用文字,因此,当再次需要输入该非常用字时,该非常用字也会作为候选文字而通过显示屏的候选区域显示输出,使得用户无需通过键盘移动候选区域的焦点、或者翻页操作,即可选择该非常用文字作为下一次输入的文字,从而提高了用户输入文字信息的速度。
下面,对本发明中文动态联想输入方法进行详细说明。
首先需要明确的是,实现本发明的技术方案无需改变输入状态、也无需改变现有通用的键盘按键布局。
图1为本发明中中文动态联想输入方法所基于的键盘和显示屏示意图。如图1所示,以本发明中的技术方案应用于手机为例,显示屏中包括预设的上行候选字符显示区域21和下行候选字符显示区域22。
其中,上行候选字符显示区域21用于显示候选文字;下行候选字符显示区域22则用于显示通过键盘输入文字的笔画、拼音等其他字符信息。
如图1所示,键盘部分包括:左软键23、右软键24、确定键25、方向键26、删除键27、*号键28、#号键29、以及数字键(数字0~9键)20。
由于本发明中文动态联想输入法所基于的键盘按键布局与现有相同,因此,对于键盘中的各按键在此不再赘述。
本发明中文动态联想输入方法在进行联想输入方式搜索的同时,主要还包括如下3个处理过程:
1)查找过程
在完成当前的文字输入之后,在当前保存的已输入的文字序列中,从后至前依次查找与当前输入的文字相同的文字,并将与查找到的文字相邻且位于其后的文字,保存至临时缓存区中。
其中,由于文字序列中排列靠后的文字为最近输入的文字,因此,本发明采用从后至前的查找顺序。但实际应用中,也可以采用从前至后的查找顺序。
假设当前输入的文字为“我”,该文字可以是用户通过键盘输入的、也可以是用户从联想输入方式搜索到的候选文字中选择输入的;
当前保存的已输入的文字序列为“今天我们去我家找我同学玩”。
则在保存的已输入的文字序列中查找到的文字为“我”;与查找到的文字相邻且位于其后的文字从后至前依次为“同”、“家”、“们”。
2)存储过程
将当前输入的文字添加并保存至已保存的文字序列的最后。
假设当前输入的文字为“我”;
当前保存的已输入的文字序列为“今天我们去我家找我同学玩”。
则将当前输入的文字添加并保存至当前保存的文字序列的最后之后,得到新的文字序列为“今天我们去我家找我同学玩我”。
本发明中的存储过程是下一次输入文字之后的查找过程的前提。也就是说,每次查找过程所针对的当前文字序列,均是由当前的文字输入之前的所有输入文字按照输入的先后顺序构成并保存的。
3)输出过程
将临时缓存区中存储的文字填充至输出缓存区中,然后将基于当前输入的文字进行联想输入方式搜索得到的所有文字与输出缓存区中的文字进行比较,并将联想输入方式搜索得到的所有文字中与输出缓存区中不同的文字也填充至输出缓存区,即从联想输入方式搜索得到的所有文字中去除与输出缓冲区中重复的文字。
假设当前输入的文字为“我”;
将临时缓存区中存储的文字填充至输出缓存区中之后,输出缓存区中存储的文字包括“同”、“家”、“们”;
联想输入方式搜索得到的文字包括“在”、“们”、“的”、“是”、“有”、“要”、“家”;
则将联想输入方式搜索得到的所有文字中与输出缓存区中不同的文字也填充至输出缓存区之后,输出缓存区中存储的文字包括“同”、“家”、“们”、“在”、“的”、“是”、“要”。
在输出过程之后,输出缓存区中存储的所有文字即可作为候选文字,通过显示屏中的候选区域显示输出。
通过现有联想输入方法搜索到的文字作为候选文字的显示结果参见图2a,通过发明中文动态联想输入方法得到候选文字的显示结果参见图2b。
通过图2和图3的比较,可以清楚看到,如果通过现有联想输入方法搜索得到的候选文字中,仅包括从文字库中搜索到的具有相对稳定排列顺序的文字“在”、“们”、“的”、“是”、“有”、“要”、“家”;而通过本发明中文动态联想输入方法得到的候选文字中,不但包括从文字库中搜索到的具有相对稳定排列顺序的文字“在”、“们”、“的”、“是”、“有”、“要”、“家”,还包括用户之前已输入的文字“同”、“家”、“们”,且所有候选文字的排列顺序也由于用户之前已输入的文字而发生了变化。
下面结合一具体实施例,对上述技术方案进行进一步说明。
图3为本发明实施例中的中文动态联想输入方法的流程示意图。如图3所示,本实施例中的中文动态联想输入方法包括:
步骤301,设置一数组word[],用于保存已输入文字序列,并设置一临时缓存区LX[]。
步骤302,在数组word[]所保存的已输入文字序列中查找与当前输入的文字相同的文字。
步骤303,将数组word[]当前保存的已输入文字序列中,与查找到的文字相邻且位于其后的文字缓存至临时缓存区LX[]。
实际应用中,可设置临时缓存区LX[]可缓存的文字最多为n,n为大于等于0的正整数。较佳地,n取为3。
在数组word[]当前保存的已输入文字序列中,如果查找到的与当前输入的文字相同的文字数量达到n,则由于LX[]中无法存储多于n个文字,因而停止查找。
步骤304,将临时缓存区LX[]中保存的最后一个文字,填充至数组word[]中,构成新的已输入文字序列。
实际应用中,可设置数组word[]能够存储的文字最多为m,m为大于0的正整数。较佳地,m取为100。
这样,如果文字序列的长度小于m,则每次完成当前的文字输入之后,将该文字保存于数组word[]中已保存的文字序列之后;如果文字序列的长度达到m,则每次完成当前的文字输入之后,先删除数组word[]中已保存的文字序列的最前一个文字,然后将剩余的文字序列前移后,再将当前输入的文字保存于文字序列之后,即对已输入文字序列中的文字实现先进先出。
步骤305,基于当前输入的文字,并按照现有方式进行联想输入方式搜索。
步骤306,将临时缓存区LX[]所缓存的文字、以及联想输入方式搜索得到的所有文字进行比较,以消除重复的文字,然后将剩余的文字填充至输出缓存区。
步骤307,将输出缓存区中的文字作为候选文字显示输出。
至此,本流程结束。
由上述实施例可见,本发明在进行联想输入方式从文字库中搜索的同时,还从在当前输入文字之前已输入的文字序列中选择与当前输入文字匹配使用的文字,并将联想输入方式从文字库中搜索到的文字与从已输入的文字序列中选择的文字均作为候选文字,因而能够实现对联想输入方式搜索得到的候选文字进行动态调整,使得候选文字不受文字库的各种限制,而能够动态适应不同用户通过输入操作方式、输入文字的语法语义、输入文字的上下文所体现出的不同用户输入习惯,从而能够提高文字信息的输入速度。
而且,本发明除了必要的用于保存已输入文字序列的存储空间、以及输出缓冲区之外,只需再设置一个临时缓冲区,该临时缓冲区可以由应用本发明技术方案的任意装置中的已有存储硬件来实现,而无需额外增加硬件,因而能够节省硬件资源、且无需增加硬件成本;即便应用本发明技术方案的任意装置不具有存储硬件,临时缓冲区也可以由成本较低的各种存储器或缓存来实现,使得本发明的技术方案易于实现、且几乎不需要增加硬件成本;临时缓冲区的大小可根据实际需要或应用环境而任意设定,使得本发明的技术方案具有较高的灵活性和通用性。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。