一种英文的输入方法和装置转让专利

申请号 : CN201410475386.1

文献号 : CN104281275B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王燚赵虹

申请人 : 北京搜狗科技发展有限公司

摘要 :

本发明实施例提供了一种英文的输入方法和装置,所述的方法包括:接收输入的英文字符串;所述英文字符串具有原始长度;根据所述英文字符串的原始长度计算目标长度;查找长度介于所述原始长度与所述目标长度之间的目标英文单词;计算所述目标英文单词与所述英文字符串的最长的公共长度;所述公共长度为相同字母的长度;当所述最长的公共长度为所述原始长度的N倍时,返回所述目标英文单词;所述N为小于等于1的正数。本发明实施例使得用户在忘记英文单词拼写或者在较少输入等的情境下,输入英文单词中部分的英文字母串则可以得到需要的英文单词,大大提高了操作的简便性。

权利要求 :

1.一种英文的输入方法,其特征在于,包括:接收输入的英文字符串;所述英文字符串具有原始长度;

根据所述英文字符串的原始长度计算目标长度;

查找长度介于所述原始长度与所述目标长度之间的目标英文单词;

计算所述目标英文单词与所述英文字符串的最长的公共长度;所述公共长度为相同字母的长度;

当所述最长的公共长度为所述原始长度的N倍时,返回所述目标英文单词;所述N为小于等于1的正数。

2.根据权利要求1所述的方法,其特征在于,所述公共长度所属的相同的字母的顺序相同。

3.根据权利要求1所述的方法,其特征在于,所述根据所述英文字符串的原始长度计算目标长度的步骤包括:计算所述英文字符串的原始长度与预设的相似度阈值的比值,获得目标长度。

4.根据权利要求1或2或3所述的方法,其特征在于,所述查找长度介于所述原始长度与所述目标长度之间的目标英文单词的步骤包括:将所述英文字符串的原始长度赋值给预设的中间变量;

判断所述中间变量是否大于所述目标长度;

若否,则从预置的英文词库中提取长度与所述中间变量相等的英文单词,获得目标英文单词;

对所述中间变量增加数值一,返回执行所述判断所述中间变量是否大于所述目标长度的步骤。

5.根据权利要求4所述的方法,其特征在于,所述英文词库中包括一个或多个分组,每个分组中的英文单词的长度相同,每个分组中的英文单词按照使用频率排序。

6.根据权利要求1或2或3所述的方法,其特征在于,所述计算目标英文单词与所述英文字符串的最长的公共长度的步骤包括:采用动态规划计算目标英文单词与所述英文字符串的最长的公共长度。

7.根据权利要求5所述的方法,其特征在于,所述计算目标英文单词与所述英文字符串的最长的公共长度的步骤包括:采用动态规划计算目标英文单词与所述英文字符串的最长的公共长度。

8.根据权利要求1或2或3所述的方法,其特征在于,所述返回所述目标英文单词的步骤包括:对所述目标英文单词进行排序;

返回排序后的目标英文单词。

9.根据权利要求5所述的方法,其特征在于,所述返回所述目标英文单词的步骤包括:对所述目标英文单词进行排序;

返回排序后的目标英文单词。

10.一种英文的输入装置,其特征在于,包括:英文字符串接收模块,用于接收输入的英文字符串;所述英文字符串具有原始长度;

目标长度计算模块,用于根据所述英文字符串的原始长度计算目标长度;

目标英文单词查找模块,用于查找长度介于所述原始长度与所述目标长度之间的目标英文单词;

公共长度计算模块,用于计算所述目标英文单词与所述英文字符串的最长的公共长度;所述公共长度为相同字母的长度;

英文单词返回模块,用于在所述最长的公共长度为所述原始长度的N倍时,返回所述目标英文单词;所述N为小于等于1的正数。

11.根据权利要求10所述的装置,其特征在于,所述公共长度所属的相同的字母的顺序相同。

12.根据权利要求10所述的装置,其特征在于,所述目标长度计算模块包括:比值计算子模块,用于计算所述英文字符串的原始长度与预设的相似度阈值的比值,获得目标长度。

13.根据权利要求10或11或12所述的装置,其特征在于,所述目标英文单词查找模块包括:赋值子模块,用于将所述英文字符串的原始长度赋值给预设的中间变量;

判断子模块,用于判断所述中间变量是否大于所述目标长度;若否,则调用提取子模块;

提取子模块,用于从预置的英文词库中提取长度与所述中间变量相等的英文单词,获得目标英文单词;

增值子模块,用于对所述中间变量增加数值一,返回调用判断子模块。

14.根据权利要求13所述的装置,其特征在于,所述英文词库中包括一个或多个分组,每个分组中的英文单词的长度相同,每个分组中的英文单词按照使用频率排序。

15.根据权利要求10或11或12所述的装置,其特征在于,所述公共长度计算模块包括:动态规划计算子模块,用于采用动态规划计算目标英文单词与所述英文字符串的最长的公共长度。

16.根据权利要求14所述的装置,其特征在于,所述公共长度计算模块包括:动态规划计算子模块,用于采用动态规划计算目标英文单词与所述英文字符串的最长的公共长度。

17.根据权利要求10或11或12所述的装置,其特征在于,所述英文单词返回模块包括:排序子模块,用于对所述目标英文单词进行排序;

返回子模块,用于返回排序后的目标英文单词。

18.根据权利要求14所述的装置,其特征在于,所述英文单词返回模块包括:排序子模块,用于对所述目标英文单词进行排序;

返回子模块,用于返回排序后的目标英文单词。

说明书 :

一种英文的输入方法和装置

技术领域

[0001] 本发明涉及英文输入的技术领域,特别是涉及一种英文的输入方法和一种英文的输入装置。

背景技术

[0002] 随着电子设备的广泛普及,尤其是移动设备的广泛应用,用户经常使用电子设备处理各种事情,例如通讯、浏览网页、发微博等等,随之用户经常需要使用输入法程序输入文字内容,其中包括英文单词。
[0003] 在输入英文单词时,一般的输入法程序,大多采用末尾补全的策略来实现英文单词的联想功能,以期用户在记不清楚英文单词拼写的情况下,通过输入单词前缀也能得到正确的单词。
[0004] 例如,用户打算输入“successful”,当输入“succe”这5个字母的时候,输入法程序会查找词库中所有长度大于或等于5的英文单词,如果前5位字母与“succe”完全匹配,则该英文单词出现在候选中,如“success”、“succeed”、“successful”等,使得用户可以不用完整输入,通过查看候选,就可以提交自己想要输入的英文单词。
[0005] 但是如果用户输入的字母串属于多个英文单词的前缀,输入法程序会返回较多候选,用户需要经过翻页等操作进行查找。
[0006] 例如,“succe”与“success”、“succeed”、“successful”、“successsion”、“successive”等多个英文单词的前缀相同,用户清楚知道它们的后缀不同,输入法程序却无法快速区分。
[0007] 多次翻页等操作使得用户的操作和时间成本很大,输入效率很低,并且,电子设备多次响应翻页等操作,耗费大量的系统资源。

发明内容

[0008] 本发明实施例所要解决的技术问题是提供一种英文的输入方法,用以降低用户的操作和时间成本,提高输入效率,降低系统资源消耗。
[0009] 相应的,本发明实施例还提供了一种英文的输入装置,用以保证上述方法的实现及应用。
[0010] 为了解决上述问题,本发明实施例公开了一种英文的输入方法,包括:
[0011] 接收输入的英文字符串;所述英文字符串具有原始长度;
[0012] 根据所述英文字符串的原始长度计算目标长度;
[0013] 查找长度介于所述原始长度与所述目标长度之间的目标英文单词;
[0014] 计算所述目标英文单词与所述英文字符串的最长的公共长度;所述公共长度为相同字母的长度;
[0015] 当所述最长的公共长度为所述原始长度的N倍时,返回所述目标英文单词;所述N为小于等于1的正数。
[0016] 优选地,所述公共长度所属的相同的字母的顺序相同。
[0017] 优选地,所述根据所述英文字符串的原始长度计算目标长度的步骤包括:
[0018] 计算所述英文字符串的原始长度与预设的相似度阈值的比值,获得目标长度。
[0019] 优选地,所述查找长度介于所述原始长度与所述目标长度之间的目标英文单词的步骤包括:
[0020] 将所述英文字符串的原始长度赋值给预设的中间变量;
[0021] 判断所述中间变量是否大于所述目标长度;
[0022] 若否,则从预置的英文词库中提取长度与所述中间变量相等的英文单词,获得目标英文单词;
[0023] 对所述中间变量增加数值一,返回执行所述判断所述中间变量是否大于所述目标长度的步骤。
[0024] 优选地,所述英文词库中包括一个或多个分组,每个分组中的英文单词的长度相同,每个分组中的英文单词按照使用频率排序。
[0025] 优选地,所述计算目标英文单词与所述英文字符串的最长的公共长度的步骤包括:
[0026] 采用动态规划计算目标英文单词与所述英文字符串的最长的公共长度。
[0027] 优选地,所述返回所述目标英文单词的步骤包括:
[0028] 对所述目标英文单词进行排序;
[0029] 返回排序后的目标英文单词。
[0030] 本发明实施例还公开了一种英文的输入装置,包括:
[0031] 英文字符串接收模块,用于接收输入的英文字符串;所述英文字符串具有原始长度;
[0032] 目标长度计算模块,用于根据所述英文字符串的原始长度计算目标长度;
[0033] 目标英文单词查找模块,用于查找长度介于所述原始长度与所述目标长度之间的目标英文单词;
[0034] 公共长度计算模块,用于计算所述目标英文单词与所述英文字符串的最长的公共长度;所述公共长度为相同字母的长度;
[0035] 英文单词返回模块,用于在所述最长的公共长度为所述原始长度的N倍时,返回所述目标英文单词;所述N为小于等于1的正数。
[0036] 优选地,所述公共长度所属的相同的字母的顺序相同。
[0037] 优选地,所述目标长度计算模块包括:
[0038] 比值计算子模块,用于计算所述英文字符串的原始长度与预设的相似度阈值的比值,获得目标长度。
[0039] 优选地,所述目标英文单词查找模块包括:
[0040] 赋值子模块,用于将所述英文字符串的原始长度赋值给预设的中间变量;
[0041] 判断子模块,用于判断所述中间变量是否大于所述目标长度;若否,则调用提取子模块;
[0042] 提取子模块,用于从预置的英文词库中提取长度与所述中间变量相等的英文单词,获得目标英文单词;
[0043] 增值子模块,用于对所述中间变量增加数值一,返回调用判断子模块。
[0044] 优选地,所述英文词库中包括一个或多个分组,每个分组中的英文单词的长度相同,每个分组中的英文单词按照使用频率排序。
[0045] 优选地,所述公共长度计算模块包括:
[0046] 动态规划计算子模块,用于采用动态规划计算目标英文单词与所述英文字符串的最长的公共长度。
[0047] 优选地,所述英文单词返回模块包括:
[0048] 排序子模块,用于对所述目标英文单词进行排序;
[0049] 返回子模块,用于返回排序后的目标英文单词。
[0050] 与现有技术相比,本发明实施例包括以下优点:
[0051] 本发明实施例根据接收的英文字符串的原始长度计算目标长度,查找长度介于原始长度与目标长度之间的目标英文单词,在目标英文单词与所述英文字符串的最长的公共长度与原始长度相同时,返回目标英文单词,使得用户在忘记英文单词拼写或者在较少输入等的情境下,输入英文单词中部分的英文字母串则可以得到需要的英文单词,大大提高了操作的简便性,并且该英文字母不必相连,容错性大,大大提高了查找英文单词的准确性,在补全英文单词的情况下,通过计算公共长度大大减少了返回的英文单词的数量,去除了冗余的英文单词,减少了展示的位置,减少了用户翻页等操作,大大降低了用户的操作和时间成本,提高了输入效率,并且,减少了电子设备多次响应翻页等操作,减少了系统资源的消耗。

附图说明

[0052] 图1是本发明的一种英文的输入方法实施例的步骤流程图;
[0053] 图2A至图2B是本发明的一种虚拟键盘的示例图;
[0054] 图3是本发明的一种英文的输入方法的示例流程图
[0055] 图4是本发明的一种英文的输入方装置实施例的结构框图。

具体实施方式

[0056] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0057] 参照图1,示出了本发明的一种英文的输入方法实施例的步骤流程图,具体可以包括如下步骤:
[0058] 步骤101,接收输入的英文字符串;
[0059] 需要说明的是,本发明实施例可以应用于具有输入装置的电子设备中,该电子设备可以包括手机、PDA(Personal Digital Assistant,个人数字助理)、膝上型计算机、掌上电脑等等,本发明实施例对此不加以限制。
[0060] 该电子设备可以支持包括Windows、Android(安卓)、IOS、WindowsPhone等操作系统,通常可以运行通过虚拟键盘或语音或物理键盘等方式进行输入的应用程序。其中,该虚拟键盘或物理键盘可以包括九宫格键盘、全键盘(如QWERT键盘)等等,该应用程序可以包括输入法程序、即时聊天工具、浏览器等等。
[0061] 该虚拟键盘或物理键盘通常可以具有一个或多个按键,该按键经常被复用,可以用于输入字符串,具体可以包括但不限于输入数字字符串、英文字符串、中文字符串和符号字符串中的至少一个。
[0062] 在具体实现中,用户可以通过点击虚拟键盘的按键、或者在虚拟键盘的按键上滑行(即滑行输入)、或者点击物理键盘的按键、或者输入语言(即语音输入)等方式输入英文字符串。
[0063] 进一步地,本发明实施例可以在电子设备的显示器屏幕前面、两侧或者后面检测用户针对虚拟键盘的触控信息,以检测触发的按键。
[0064] 例如,参照图2A和图2B,示出了本发明实施例的一种虚拟键盘的示例图。
[0065] 虚拟键盘200可以称为九宫格键盘或9键键盘,主要可以包括9个虚拟按键。若点击或者滑行按键201,可以输入英文字符串“D”、“E”、“F”,或者,“d”、“e”、“f”。
[0066] 虚拟键盘210可以称为全键盘或26键键盘,一个典型的全键盘或26键键盘可以为QWERT键盘,主要可以包括26个虚拟按键。若点击或者滑行按键211,可以输入英文字符串“W”或者“w”,若点击或者滑行按键212,可以输入英文字符串“G”或者“g”。
[0067] 所述英文字符串可以具有原始长度,该原始长度可以为英文字符串中英文字符的数量。
[0068] 例如,若输入的英文字符串为“scful”,则该英文字符串“scful”的原始长度为5;又例如,若输入的英文字符串为“ssful”,则该英文字符串“ssful”的原始长度为5。
[0069] 步骤102,根据所述英文字符串的原始长度计算目标长度;
[0070] 在本发明实施例中,目标长度可以为补全/改正英文字符串后的英文单词长度最大/最短的值。
[0071] 在本发明的一种优选实施例中,步骤102可以包括如下子步骤:
[0072] 子步骤S11,计算所述英文字符串的原始长度与预设的相似度阈值的比值,获得目标长度。
[0073] 在具体实现中,该相似度可以为输入的英文字符串与预置的英文词库中的英文单词的相似度,具体可以计算该英文字符串的长度与英文单词的长度的比值(即相似度=英文字符串的长度/英文单词的长度),获得相似度。
[0074] 在本发明实施例中,可以预先设置一个相似度的阈值,计算英文字符串的原始长度与该相似度阈值的比值,获得补全英文字符串后的英文单词长度最大的值。
[0075] 需要说明的是,该相似度阈值可以根据学习的情况进行相应的调整。
[0076] 例如,若输入的英文字符串为“scful”,假设相似度阈值为1/2,那么目标长度为5/(1/2)=5*2=10,返回的英文单词可以包括“successful”;假设相似度阈值为1/3,那么目标长度为5/(1/3)=5*3=15,返回的英文单词可以包括“successful”和“successfully”。
[0077] 步骤103,查找长度介于所述原始长度与所述目标长度之间的目标英文单词;
[0078] 在具体实现中,英文单词可以存储在英文词库中,则可以在该英文词库中查找长度介于原始长度与目标长度之间的目标英文单词。
[0079] 在本发明实施例的一种优选示例中,所述英文词库中可以包括一个或多个分组。具体地,英文单词可以按照单词长度进行分组,该分组可以称为单词段,单词段的段长可以为该单词段中英文单词的长度,每个分组中的英文单词的长度可以相同(即段长);
[0080] 每个分组中的英文单词可以按照使用频率排序,即在单词段中,英文单词可以按照使用频率进行从大到小的递减排序。
[0081] 需要说明的是,英文词库可以分为两种,系统词库和用户词库。系统词库可以保存群体用户对某个英文单词的使用频率,不会根据当前用户的输入而改变;用户词库保存当前用户对某个英文单词的使用频率,可以会随着当前用户的输入而进行调整。
[0082] 本发明实施例中可以优先搜索用户词库,按照当前用户对某个英文单词的使用频率排序,然后搜索系统词库,按照群体用户对某个英文单词的使用频率排序。
[0083] 当然,本发明实施例中也可以优先然后搜索系统词库,按照群体用户对某个英文单词的使用频率排序,再搜索用户词库,按照当前用户对某个英文单词的使用频率排序;或者,按照搜索系统词库,按照群体用户对某个英文单词的使用频率排序;或者,搜索用户词库,按照当前用户对某个英文单词的使用频率排序,等等,本发明实施例对此不加以限制。
[0084] 在实际应用中,因为输入法程序等对反应速度的要求比较高,所以英文词库可以以二进制格式保存在内存中。
[0085] 以下以一个英文词库的示例:
[0086] 英文词库中的英文单词包括“hi”,“hello”,“good”,“happy”,“how”,“what”,“name”。
[0087] 英文词库中的分段表可以如下所示:
[0088]
[0089]
[0090] 例如,编号为3的单词段(即分组)中可以存储段长(即长度)为3的英文单词,从第1个英文单词(即英文单词的开始位置)之后为该编号为3的单词段,共有1个英文单词(即英文单词的数量),从第0+1*2=2个字节开始,为该编号为3的单词段的英文单词的数据。
[0091] 英文词库中的数据表可以如下所示:
[0092]英文单词的编号 数据的开始位置 备注
0 0+0*2 hi
1 2+0*3 how
2 5+0*4 hood
3 5+1*4 what
4 5+2*4 name
5 13+0*5 hello
6 13+1*5 happy
[0093] 例如,编号为2的英文单词为“how”,其段长(即长度)为3,属于编号为3的单词段,为英文词库从2+0*3=2(即数据的开始位置)个字节开始的数据。
[0094] 若用户输入了原始长度为3的英文字符串“hay”,一般情况下是不会想输入小于长度3的英文单词,为了快速找到相关的英文单词,可以将英文词库按照长度分段,这样可以搜索长度大于或等于3的单词段(分组),即编号为3、4、5的单词段,而不用搜索整个单词词库。
[0095] 在实际应用中,可以通过诸如GetSegmentPhraseDataPtr(英文词库的指针,段长,英文单词的段内偏移)等函数在内存中查找长度介于原始长度与目标长度之间目标英文单词。
[0096] 其中,英文词库中的指针可以指示内存地址,为分段表中数据的开始位置,段长可以为单词段的编号,英文单词的段内偏移可以为数据表中数据的开始位置。
[0097] 例如,执行GetSegmentPhraseDataPtr(2,3,9)可以查找到英文单词“what”。
[0098] 在本发明实施例的一种优选示例中,步骤103可以包括如下子步骤:
[0099] 子步骤S21,将所述英文字符串的原始长度赋值给预设的中间变量;
[0100] 子步骤S22,判断所述中间变量是否大于所述目标长度;若否,则执行子步骤S23;
[0101] 子步骤S23,从预置的英文词库中提取长度与所述中间变量相等的英文单词,获得目标英文单词;
[0102] 子步骤S24,对所述中间变量增加数值一,返回执行子步骤S22。
[0103] 本示例中,可以采用中间变量逐增(增加数值一)的方式遍历英文词库中,长度介于原始长度与目标长度之间的英文单词,以获得目标英文单词。
[0104] 在本发明实施例的另一种优选示例中,步骤103可以包括如下子步骤:
[0105] 子步骤S31,将所述目标长度赋值给预设的中间变量;
[0106] 子步骤S32,判断所述中间变量是否小于所述英文字符串的原始长度;若否,则执行子步骤S33;
[0107] 子步骤S33,从预置的英文词库中提取长度与所述中间变量相等的英文单词,获得目标英文单词;
[0108] 子步骤S34,对所述中间变量减去数值一,返回执行子步骤S32。
[0109] 本示例中,可以采用中间变量逐减(减去数值一)的方式遍历英文词库中,长度介于原始长度与目标长度之间的英文单词,以获得目标英文单词。
[0110] 当然,上述遍历方式只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他遍历方式,例如随机选择,本发明实施例对此不加以限制。另外,除了上述判断处理方法外,本领域技术人员还可以根据实际需要采用其它遍历方式,本发明实施例对此也不加以限制。
[0111] 步骤104,计算所述目标英文单词与所述英文字符串的最长的公共长度;
[0112] 需要说明的是,所述公共长度可以为相同字母的长度;进一步地,所述公共长度所属的相同的字母的顺序可以相同,即公共长度可以为相同字母的长度。
[0113] 例如,英文字符串“scful”和目标英文单词“successful”具有相同顺序的相同字母“scful”,则两者最长的公共长度为5。
[0114] 又例如,英文字符串“scful”和目标英文单词“scale”具有相同顺序的相同字母“scl”,则两者最长的公共长度为3。
[0115] 在本发明的一种优选实施例中,步骤104可以包括如下子步骤:
[0116] 子步骤S41,采用动态规划计算目标英文单词与所述英文字符串的最长的公共长度。
[0117] 动态规划(Dynamic Programming)是运筹学中用于求解决策过程(decision process)中的最优化数学方法,是一种使用多阶段决策过程最优的通用方法。
[0118] 动态规划的一个计算两个序列(如英文字符串与目标英文单词)的最长公共子序列(如最长的公共长度)的过程可以如下:
[0119] 以两个序列X、Y为例子:
[0120] 设有二维数组f[i,j]表示X的i位和Y的j位之前的最长公共子序列的长度,则有:
[0121] f[1][1]=same(1,1);
[0122] f[i,j]=max{f[i-1][j-1]+same(i,j),f[i-1,j],f[i,j-1]}
[0123] 其中,same(a,b)在X的第a位与Y的第b位相同时为“1”,否则为“0”。
[0124] 此时,二维数组中最大的数便是X和Y的最长公共子序列的长度,依据该数组回溯,则可找出最长公共子序列。
[0125] 当然,上述最长的公共长度的计算方法只是作为示例,在实施本发明实施例时,可以根据实际情况设置其他最长的公共长度的计算方法,本发明实施例对此不加以限制。
[0126] 例如,可以直接进行枚举英文字符串与目标英文单词的公共子序列,从公共子序列中选取最长的公共子序列,该最长的公共子序列的长度即为最长的公共长度。
[0127] 具体而言,可以对序列S的每一个子序列,检查是否为序列T的子序列,从而确定该子序列是否为S和T的公共子序列,并且选出最长的公共子序列。
[0128] 序列S和序列T的所有子序列都检查过后即可求出序列S和序列T的最长公共子序列。序列S的一个子序列相应于下标序列1,2,...,n的一个子序列(n为正整数)。因此,序列S共有2^n个子序列。当然,序列T也有2^m个子序列(m为正整数)。
[0129] 又例如,可以采用递归的方法计算目标英文单词与所述英文字符串的最长的公共长度。
[0130] 具体而言,可以比较两个字符串(如英文字符串与目标英文单词)的首字符是否相同,如果相同则将其添加到已知的公共子串结尾,然后对两个字符串去掉首字符后剩下的子串继续递归匹配。若果两个字符串的首字符不相同,则用三种对齐策略分别计算可能的最长公共子串,然后取最长的一个与当前已知的最长公共子串比较,如果比当前已知的最长公共子串长就用计算出的最长的公共子串代替当前已知的最长公共子串。
[0131] 其中,第一种对齐策略是将第一个字符串的首字符删掉,将剩下的子串与第二个字符串继续匹配;第二种对齐策略是将第二个字符串的首字符删掉,将剩下的子串与第一个字符串继续匹配;第三种对齐策略是将两个字符串的首字符都删掉,然后继续匹配两个字符串剩下的子串。
[0132] 又例如,可以采用两重循环的方法计算目标英文单词与所述英文字符串的最长的公共长度。
[0133] 具体而言,第一重循环确定第一个字符串(如英文字符串)的对齐位置,第二重循环确定第二个字符串(如目标英文单词)的对齐位置,每次循环确定一组两个字符串的对齐位置,并从此对齐位置开始匹配两个字符串的最长子串,如果匹配到的最长子串比已知的最长子串长,则更新已知最长子串的内容。
[0134] 步骤105,当所述最长的公共长度为所述目标长度的N倍时,返回所述目标英文单词;所述N为小于等于1的正数。
[0135] 在具体实现中,若公共长度为目标长度的N倍时,则将该目标英文单词作为候选返回,以让用户选择。
[0136] 若在误输入(如本来想输入字母“a”的,但是不小心输入了字母“a”旁边的字母“s”)、用户输错单词中字母的顺序、多输入了字母等情形下,最长的公共长度一般比目标长度小,则N可以设置为小于1的正数,以增加容错性。例如,用户输入了5个英文字符串,若查找到的目标英文单词与其的最长的公共长度为4,N为0.8,该查找到的目标英文单词也可以返回。
[0137] 特别地,用户在正常输入单词时出现误输入使得多输入了字母,例如,用户想输入“hello”,但是设备发生了卡顿,使得用户多输入了“helllo”,多输入了一个字母“l”,则最长的公共长度一般比目标长度小,N也可以设置为小于1的正数。
[0138] 此外,当N=1,即最长的公共长度与目标长度相同时,返回的目标英文单词较少,准确度较高。
[0139] 需要说明的是,在英文词库中的分组中的英文单词是预先按照使用频率排序的,而且长度较小的英文单词相似度更大,同时为了节约时间和空间,本发明实施例可以不对目标英文单词排序。
[0140] 在本发明的另一个实施例中,步骤105可以包括如下子步骤:
[0141] 子步骤S51,对所述目标英文单词进行排序;
[0142] 子步骤S52,返回排序后的目标英文单词。
[0143] 本发明实施例可以对目标英文单词排序,再返回,以使得更加可能为用户所需的英文单词优先展示,进一步减少用户翻页等操作。
[0144] 在具体实现中,可以按照使用频率对目标英文单词进行排序,例如,对于当前用户的使用频率较高的目标英文单词可以排序在前,对于群体用户的使用频率较高的目标英文单词可以排序在前,而对于当前用户的使用频率较对于群体用户的使用频率优先;也可以按照当前情景对目标英文单词进行排序,例如,当前处于视频搜索网站的搜索栏中,可以将视频类的目标英文单词排序在前;也可以按照上下文对目标英文单词进行排序,例如,采用自然语言处理技术(Natural Language Processing,NLP)计算符合上下文的目标英文单词的概率,按照概率进行排序等等,本发明实施例对此不加以限制。
[0145] 本发明实施例根据接收的英文字符串的原始长度计算目标长度,查找长度介于原始长度与目标长度之间的目标英文单词,在目标英文单词与所述英文字符串的最长的公共长度与原始长度相同时,返回目标英文单词,使得用户在忘记英文单词拼写或者在较少输入等的情境下,输入英文单词中部分的英文字母串则可以得到需要的英文单词,大大提高了操作的简便性,并且该英文字母不必相连,容错性大,大大提高了查找英文单词的准确性,在补全英文单词的情况下,通过计算公共长度大大减少了返回的英文单词的数量,去除了冗余的英文单词,减少了展示的位置,减少了用户翻页等操作,大大降低了用户的操作和时间成本,提高了输入效率,并且,减少了电子设备多次响应翻页等操作,减少了系统资源的消耗。
[0146] 为使本领域技术人员更好地理解本发明实施例,以下通过具体的示例来说明本发明实施例中英文的输入方法。
[0147] 如图3所示,示出了本发明的一种英文的输入方法的示例流程图。
[0148] 在步骤S301中,开始本示例的流程;
[0149] 在步骤S302中,计算输入的英文字符串的原始长度PLen,计算目标长度MaxCanLen,将原始长度PLen赋值给一中间变量SegLen(SegLen=PLen);
[0150] 在步骤S303中,判断中间变量SegLen是否大于目标长度MaxCanLen;若是,则执行步骤S309;若否,则执行步骤S304;
[0151] 在步骤S304中,判断在预置的英文词库中,是否检索完毕长度为中间变量SegLen的英文单词;若是,则执行步骤S308;若否,则执行步骤S305;
[0152] 在步骤S305中,从英文词库中段长与中间变量SegLen相同的单词段(即分组)中获取英文单词;
[0153] 在步骤S306中,采用动态规划计算英文字符串与英文单词的最长的公共长度LCSLen;
[0154] 在步骤S307中,在原始长度PLen与最长的公共长度LCSLen相同时(PLen=LCSLen),把当前的英文单词作为候选单词保存,获得目标英文单词,返回给用户;否则(即PLen≠LCSLen),不做任何处理,返回执行步骤S304;
[0155] 在步骤S308中,对中间变量增加数值一(SegLen=SegLen+1),返回执行步骤S303;
[0156] 在步骤S309中,结束本示例流程。
[0157] 例如,若输入的英文字符串为“scful”,其原始长度PLen为5,假设相似度阈值为1/3,则最长的公共长度LCSLen为5/(1/3)=3*5=15,将原始长度PLen的值5赋值给中间变量SegLen,即中间变量SegLen为5,使之在英文词库中遍历段长(即长度)介于5和15之间的英文单词,查找与英文字符串“scful”的最长的公共长度LCSLen为5的英文单词,可以返回目标英文单词“successful”和“succesfully”。
[0158] 又例如,若输入的英文字符串为“scfll”,其原始长度PLen为5,假设相似度阈值为1/3,则最长的公共长度LCSLen为5/(1/3)=3*5=15,将原始长度PLen的值5赋值给中间变量SegLen,即中间变量SegLen为5,使之在英文词库中遍历段长(即长度)介于5和15之间的英文单词,查找与英文字符串“scful”的最长的公共长度LCSLen为5的英文单词,可以返回目标英文单词“successfully”和“specifically”。
[0159] 又例如,用户想输入英文单词“successfully”时记不清楚该英文单词的具体拼写,但是知道该英文单词发音或者某些关键字母。用户只需要根据读音或者记忆映像输入“scful”或者“ssful”等英文字符串,则可以返回“successful”、“successfully”两个英文单词,如果用户输入“scfuly”或者“ssfuly”等英文字符串,那么将返回一个英文单词“successfully”,操作十分简便,用户体验很好。
[0160] 又例如,若输入的英文字符串为“helllo”,其原始长度PLen为6,假设相似度阈值为1.2,则最长的公共长度LCSLen为6/1.2=5,将原始长度PLen的值6赋值给中间变量SegLen,即中间变量SegLen为6,使之在英文词库中遍历段长(即长度)介于6和5之间的英文单词,设置N为大于0.8、小于等于1的正数,查找英文单词“hello”与英文字符串“helllo”的最长的公共长度LCSLen为5,为英文字符串“helllo”的原始长度的0.83倍,符合N的范围,可以返回。
[0161] 需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0162] 参照图4,示出了本发明一种英文的输入装置实施例的结构框图,具体可以包括如下模块:
[0163] 英文字符串接收模块401,用于接收输入的英文字符串;所述英文字符串具有原始长度;
[0164] 目标长度计算模块402,用于根据所述英文字符串的原始长度计算目标长度;
[0165] 目标英文单词查找模块403,用于查找长度介于所述原始长度与所述目标长度之间的目标英文单词;
[0166] 公共长度计算模块404,用于计算所述目标英文单词与所述英文字符串的最长的公共长度;所述公共长度为相同字母的长度;
[0167] 英文单词返回模块405,用于在所述最长的公共长度为所述原始长度的N倍时,返回所述目标英文单词;所述N为小于等于1的正数。
[0168] 在本发明的一种优选实施例中,所述公共长度所属的相同的字母的顺序可以相同。
[0169] 在本发明的一种优选实施例中,所述目标长度计算模块402可以包括如下子模块:
[0170] 比值计算子模块,用于计算所述英文字符串的原始长度与预设的相似度阈值的比值,获得目标长度。
[0171] 在本发明实施例的一种优选示例中,所述目标英文单词查找模块403可以包括如下子模块:
[0172] 赋值子模块,用于将所述英文字符串的原始长度赋值给预设的中间变量;
[0173] 判断子模块,用于判断所述中间变量是否大于所述目标长度;若否,则调用提取子模块;
[0174] 提取子模块,用于从预置的英文词库中提取长度与所述中间变量相等的英文单词,获得目标英文单词;
[0175] 增值子模块,用于对所述中间变量增加数值一,返回调用判断子模块。
[0176] 在本发明的一种优选实施例中,所述英文词库中可以包括一个或多个分组,每个分组中的英文单词的长度可以相同,每个分组中的英文单词可以按照使用频率排序。
[0177] 在本发明的一种优选实施例中,所述公共长度计算模块404可以包括如下子模块:
[0178] 动态规划计算子模块,用于采用动态规划计算目标英文单词与所述英文字符串的最长的公共长度。
[0179] 在本发明的一种优选实施例中,所述英文单词返回模块405可以包括如下子模块:
[0180] 排序子模块,用于对所述目标英文单词进行排序;
[0181] 返回子模块,用于返回排序后的目标英文单词。
[0182] 对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0183] 本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0184] 本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0185] 本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0186] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0187] 这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0188] 尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0189] 最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0190] 以上对本发明所提供的一种英文的输入方法和一种英文的输入装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。