掌桥专利:专业的专利平台
掌桥专利
首页

展示单词建议的方法、装置、存储介质及计算机设备

文献发布时间:2023-06-19 11:16:08


展示单词建议的方法、装置、存储介质及计算机设备

技术领域

本发明涉及信息技术领域,尤其是涉及一种展示单词建议的方法、装置、存储介质及计算机设备。

背景技术

由于英语教育在当前社会越发重要,掀起了英语学习的热潮,传统电脑、平板电脑以及智能手机上的各种英语学习类APP也越来越多,在学习英语时用户经常会利用各种APP搜索单词。

目前,在单词搜索的过程中,通常会将用户输入的字符串与词典中各单词包含的字符串进行模糊匹配,根据模糊匹配结果为用户推荐单词信息。然而,在这种方式中,一旦用户输入的某个字符与单词中相应字符不一致,便认为这两个字符之间不存在任何关联,但实质上很可能是用户在键盘中敲击错误导致的,因此这种匹配方式给出的推荐信息偏差较大,信息推荐的精度较低,推荐效果并不好,用户体验较差。

发明内容

本发明提供了一种展示单词建议的方法、装置、存储介质及计算机设备,主要在于能够提高单词搜索过程中的单词推荐精度,确保单词建议能够满足用户的搜索需求。

根据本发明的第一个方面,提供一种展示单词建议的方法,包括:

获取用户输入的字符串;

将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对;

确定所述第一不同字符对在字符输入键盘上的相对位置信息;

根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离;

基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示。

可选地,所述将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对,包括:

判定所述字符串对应的字符数量与所述各单词中目标单词对应的字符数量是否相同:

若所述字符串对应的字符数量与所述目标单词对应的字符数量相同,则将所述字符串中的第一字符与所述目标单词中的第二字符进行匹配以获得第一不同字符对;

若所述字符串对应的字符数量与所述目标单词对应的字符数量不同,则在所述字符串中插入或删除目标字符,并将插入或删除所述目标字符后的字符串中的第一字符与所述目标单词中的第二字符进行匹配以获得第一不同字符对。

可选地,所述在所述字符串中插入或删除目标字符,包括:

将所述字符串与所述目标单词进行对比,根据对比结果,确定在所述字符串中插入或删除的所述目标字符;

在所述字符串中插入或删除所述目标字符,以便插入或删除所述目标字符后的字符串与所述目标单词之间的相似度大于预设阈值。

可选地,所述根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离,包括:

若所述字符串对应的字符数量与所述目标单词对应的字符数量相同,则根据所述相对位置信息,确定所述第一不同字符对对应的距离值;

根据所述第一不同字符对对应的距离值,确定所述字符串与所述目标单词之间的编辑距离。

可选地,所述根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离,包括:

若所述字符串对应的字符数量与所述目标单词对应的字符数量不同,则根据所述目标字符对应的字符数量,确定所述字符串对应的第一编辑距离;

根据所述相对位置信息,确定所述字符串对应的第二编辑距离;

将所述第一编辑距离和所述第二编辑距离相加,得到所述字符串与所述目标单词之间的编辑距离。

可选地,在所述根据所述相对位置信息,得到所述第一不同字符对对应的距离值之后,所述方法还包括:

根据所述第一字符在所述字符串中的位置信息,确定所述第一不同字符对对应的正确率权重;和/或

根据所述第一不同字符对查询预设历史错误权重表,确定所述第一不同字符对对应的历史错误权重;

所述根据所述第一不同字符对对应的距离值,确定所述字符串与所述目标单词之间的编辑距离,包括:

基于所述正确率权重和/或所述历史错误权重,以及所述距离值,确定所述字符串与所述目标单词之间的编辑距离。

可选地,所述基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示,包括:

判断所述字符串是否为所述预设词库中的单词前缀;

若所述字符串为单词前缀,则将所述字符串与包含所述单词前缀的各单词之间的所述编辑距离修正为0;

基于修正后的编辑距离,由小到大对所述各单词进行排序,并将符合预设条件的单词作为单词建议进行展示。

可选地,所述方法还包括:

当匹配到所述第一不同字符对时,提示用户进行语音输入;

确定所述用户输入的语音信息对应的单词,并将所述语音信息对应的单词加入所述单词建议中进行展示,其中,所述语音信息对应的单词在所述单词建议中的展示顺序处于预设靠前展示范围。

可选地,所述基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示,包括:

将所述各单词中编辑距离小于预设编辑距离的单词作为单词建议;

根据所述单词建议中单词对应的编辑距离,确定所述单词建议中单词对应的展示优先级;

基于所述展示优先级,对所述单词建议中的单词进行展示。

可选地,所述基于所述展示优先级,对所述单词建议中的单词进行展示,包括:

确定所述单词建议中与用户学习任务相匹配的单词,并对所述与用户学习任务相匹配的单词对应的展示优先级进行修正;

基于修正后的展示优先级,对所述单词建议中的单词进行展示。

可选地,所述基于所述展示优先级,对所述单词建议中的单词进行展示,包括:

若存在所述字符串对应的用户历史点选记录,则确定所述单词建议中存在于所述用户历史点选记录中的单词;

根据所述单词建议中存在于所述用户历史点选记录中的单词对应的点选频率和/或点选时间,对所述单词建议中存在于所述用户历史点选记录中的单词对应的展示优先级进行修正;

基于修正后的展示优先级,对所述单词建议中的单词进行展示。

可选地,所述基于所述展示优先级,对所述单词建议中的单词进行展示,包括:

若不存在所述字符串对应的用户历史点选记录,则收集其他用户的历史点选记录,根据所述其他用户的历史点选记录中点选词对应的点选频率对所述点选词进行排序;

根据排序结果确定排序名次处于预设范围内的目标点选词;

判断所述单词建议中是否存在所述目标点选词;

若所述单词建议中存在所述目标点选词,则对所述目标点选词对应的展示优先级进行修正;

基于修正后的展示优先级,对所述单词建议中的单词进行展示。

可选地,在所述判断所述单词建议中是否存在所述目标点选词之后,所述方法还包括:

若所述单词建议中不存在目标点选词,则将符合预设排名靠前条件的目标点选词添加至所述单词建议中,并对添加后的单词建议中的单词进行展示。

可选地,所述基于所述展示优先级,对所述单词建议中的单词进行展示,包括:

获取所述单词建议中单词标记的学习状态信息;

基于所述学习状态信息,对所述单词建议中单词对应的展示优先级进行修正;

基于修正后的展示优先级,对所述单词建议中的单词进行展示。

根据本发明的第二个方面,提供一种展示单词建议的装置,包括:

获取单元,用于获取用户输入的字符串;

匹配单元,用于将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对;

确定单元,用于确定所述第一不同字符对在字符输入键盘上的相对位置信息;

计算单元,用于根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离;

展示单元,用于基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示。

可选地,所述匹配单元,包括:判定模块、匹配模块和插入模块,

所述判定模块,用于判定所述字符串对应的字符数量与所述各单词中目标单词对应的字符数量是否相同;

所述匹配模块,用于若所述字符串对应的字符数量与所述目标单词对应的字符数量相同,则将所述字符串中的第一字符与所述目标单词中的第二字符进行匹配以获得第一不同字符对;

所述插入模块,用于若所述字符串对应的字符数量与所述目标单词对应的字符数量不同,则在所述字符串中插入或删除目标字符,并将插入或删除所述目标字符后的字符串中的第一字符与所述目标单词中的第二字符进行匹配以获得第一不同字符对。

可选地,所述插入模块,包括:对比子模块和插入子模块,

所述对比子模块,用于将所述字符串与所述目标单词进行对比,根据对比结果,确定在所述字符串中插入或删除的所述目标字符;

所述插入子模块,用于在所述字符串中插入或删除所述目标字符,以便插入或删除所述目标字符后的字符串与所述目标单词之间的相似度大于预设阈值。

可选地,所述计算单元,包括:第一确定模块和第二确定模块,

所述第一确定模块,用于若所述字符串对应的字符数量与所述目标单词对应的字符数量相同,则根据所述相对位置信息,确定所述第一不同字符对对应的距离值;

所述第二确定模块,用于根据所述第一不同字符对对应的距离值,确定所述字符串与所述目标单词之间的编辑距离。

可选地,所述计算单元,包括:第一确定模块、第二确定模块和相加模块,

所述第一确定模块,用于若所述字符串对应的字符数量与所述目标单词对应的字符数量不同,则根据所述目标字符对应的字符数量,确定所述字符串对应的第一编辑距离;

所述第二确定模块,用于根据所述相对位置信息,确定所述字符串对应的第二编辑距离;

所述相加模块,用于将所述第一编辑距离和所述第二编辑距离相加,得到所述字符串与所述目标单词之间的编辑距离。

可选地,所述第一确定模块,还用于根据所述第一字符在所述字符串中的位置信息,确定所述第一不同字符对对应的正确率权重;和/或根据所述第一不同字符对查询预设历史错误权重表,确定所述第一不同字符对对应的历史错误权重;

所述第二确定模块,具体用于基于所述正确率权重和/或所述历史错误权重,以及所述距离值,确定所述字符串与所述目标单词之间的编辑距离。

可选地,所述展示单元,包括:判断模块、修正模块和展示模块,

所述判断模块,用于判断所述字符串是否为所述预设词库中的单词前缀;

所述修正模块,用于若所述字符串为单词前缀,则将所述字符串与包含所述单词前缀的各单词之间的所述编辑距离修正为0;

所述展示模块,用于基于修正后的编辑距离,由小到大对所述各单词进行排序,并将符合预设条件的单词作为单词建议进行展示。

可选地,所述装置还包括:提示单元,

所述提示单元,用于当匹配到所述第一不同字符对时,提示用户进行语音输入;

所述展示单元,还用于确定所述用户输入的语音信息对应的单词,并将所述语音信息对应的单词加入所述单词建议中进行展示,其中,所述语音信息对应的单词在所述单词建议中的展示顺序处于预设靠前展示范围。

可选地,所述展示单元,包括:确定模块和展示模块,

所述确定模块,用于将所述各单词中编辑距离小于预设编辑距离的单词作为单词建议;

所述确定模块,还用于根据所述单词建议中单词对应的编辑距离,确定所述单词建议中单词对应的展示优先级;

所述展示模块,用于基于所述展示优先级,对所述单词建议中的单词进行展示。

可选地,所述展示模块,包括:修正子模块和展示子模块,

所述修正子模块,用于确定所述单词建议中与用户学习任务相匹配的单词,并对所述与用户学习任务相匹配的单词对应的展示优先级进行修正;

所述展示子模块,用于基于修正后的展示优先级,对所述单词建议中的单词进行展示。

可选地,所述展示模块,包括:确定子模块、修正子模块和展示子模块,

所述确定子模块,用于若存在所述字符串对应的用户历史点选记录,则确定所述单词建议中存在于所述用户历史点选记录中的单词;

所述修正子模块,用于根据所述单词建议中存在于所述用户历史点选记录中的单词对应的点选频率和/或点选时间,对所述单词建议中存在于所述用户历史点选记录中的单词对应的展示优先级进行修正;

所述展示子模块,用于基于修正后的展示优先级,对所述单词建议中的单词进行展示。

可选地,所述展示模块,包括:排序子模块、确定子模块、判断子模块、修正子模块和展示子模块,

所述排序子模块,用于若不存在所述字符串对应的用户历史点选记录,则收集其他用户的历史点选记录,根据所述其他用户的历史点选记录中点选词对应的点选频率对所述点选词进行排序;

所述确定子模块,用于根据排序结果确定排序名次处于预设范围内的目标点选词;

所述判断子模块,用于判断所述单词建议中是否存在所述目标点选词;

所述修正子模块,用于若所述单词建议中存在所述目标点选词,则对所述目标点选词对应的展示优先级进行修正;

所述展示子模块,用于基于修正后的展示优先级,对所述单词建议中的单词进行展示。

可选地,所述展示模块,还包括:添加子模块,

所述添加子模块,用于若所述单词建议中不存在目标点选词,则将符合预设排名靠前条件的目标点选词添加至所述单词建议中,并对添加后的单词建议中的单词进行展示。

可选地,所述展示模块,包括:获取子模块、修正子模块和展示子模块,

所述获取子模块,用于获取所述单词建议中单词标记的学习状态信息;

所述修正子模块,用于基于所述学习状态信息,对所述单词建议中单词对应的展示优先级进行修正;

所述展示子模块,用于基于修正后的展示优先级,对所述单词建议中的单词进行展示。

根据本发明的第三个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述信息搜索方法。

根据本发明的第四个方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述信息搜索方法。

本发明提供的一种展示单词建议的方法、装置、存储介质及计算机设备,与目前一旦输入字符与单词中相应字符不一致,便认为这两个字符之间不存在任何关联的方式相比,本发明能够获取用户输入的字符串;并将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对;与此同时,确定所述第一不同字符对在字符输入键盘上的相对位置信息;并根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离;最终基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示,由此根据第一不同字符对在字符输入键盘上的相对位置信息,计算字符串与单词之间的编辑距离,能够在编辑距离的计算过程中参考字符输入键盘的布局因素,从而提高字符串与单词之间的编辑距离计算精度,进而依据该编辑距离,将符合预设条件的单词作为单词建议推荐给用户,能够提高单词搜索过程中的单词推荐精度,确保单词建议能够满足用户的搜索需求,增强用户体验。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1示出了本发明实施例提供的一种展示单词建议的方法流程图;

图2示出了本发明实施例提供的另一种展示单词建议的方法流程图;

图3示出了本发明实施例提供的键盘布局示意图;

图4示出了本发明实施例提供的一种展示单词建议的装置的结构示意图;

图5示出了本发明实施例提供的另一种展示单词建议的装置的结构示意图;

图6示出了本发明实施例提供的一种计算机设备的实体结构示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

目前,一旦用户输入的某个字符与单词中相应字符不一致,便认为这两个字符之间不存在任何关联,但实质上很可能是用户在键盘中敲击错误导致的,因此这种匹配方式给出的推荐信息偏差较大,信息推荐的精度较低,推荐效果并不好,用户体验较差。

为了解决上述问题,本发明实施例提供了一种展示单词建议的方法,如图1所示,所述方法包括:

101、获取用户输入的字符串。

其中,字符串为用户当前在搜索框(或输入框)中输入的英文字符串,该字符串具体可以是单词的前缀,也可以是完整的单词,还可以不是完整的单词仅包含部分字符,本发明实施例不做具体限定,该字符串中至少包括一个字符,如beauti,当用户在搜索框中输入字符串进行单词搜索时,下拉列表中会显示相应的推荐内容,即推荐的单词信息,推荐内容会随着用户键入的字符不断改变。本发明实施例主要适用于单词搜索、单词输入等场景,本发明实施例的执行主体为能够进行信息搜索或信息输入的装置或设备,具体可以设置在客户端或者服务器一侧。

102、将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对。

其中,第一字符为字符串中的一个字符,第二字符为单词中的一个字符,字符串中的第一字符不同于单词中的第二字符,当字符串中的第一字符和单词中的第二字符处于同一位置次序时,第一字符与第二字符便组成第一不同字符对,对于本发明实施例,如果用户输入的字符与单词中处于同一位置次序的字符不同,便将用户输入的字符确定为第一字符,将单词中处于同一位置次序的字符确定为第二字符,第一字符和第二字符便组成了第一不同字符对,即当用户输错一个字符时,便产生第一不同字符对,在用户输入字符的过程中,可能会存在多个错误的字符,即当字符串中的第三字符和单词中处于同一位置次序的第四字符不同时,便产生第二不同字符对,例如,用户输入的字符串为“lukcy”,预设词库中的单词为“lucky”,字符串中的第一字符“k”与单词中的第二字符“c”组成第一不同字符对,字符串中的第三字符“c”与单词中的第四字符“k”组成第二不同字符对,以此类推,可以组成多个不同字符对,如第三不同字符对和第四不同字符对等。

103、确定所述第一不同字符对在字符输入键盘上的相对位置信息。

其中,相对位置信息为字符串中的第一字符与单词中的第二字符在字符输入键盘上的相对位置信息,如用户输入的字符串loak中的第一字符“k”与单词loam中的第二字符“m”组成第一不同字符对,确定第一不同字符对“k”和“m”在字符输入键盘上的相对位置信息,相对位置信息包括字符之间左右相邻、对角相邻和不相邻,在如图3所示的键盘布局中,当用户输入的字符串为loak时,第一字符“k”与单词loam中的第二字符“m”在键盘上的相对位置信息为对角相邻,第一字符“k”与单词load中的第二字符“d”在键盘上的相对位置信息为不相邻;当用户输入的字符为loan时,第一字符“n”与单词loam中的第二字符“m”在键盘上的相对位置信息为左右相邻。此外,预设词库中存储有大量英文单词,具体可以为英文词典。

由于现有技术在将字符串与预设词库中的单词进行匹配时,一旦字符串中的字符与单词中的相应字符不一致,便认为两者之间不存在任何关联,但字符的不一致很可能是由于键盘的局部因素导致用户字符输入错误所引发的,因此本发明实施例在将字符串与单词进行匹配的过程中,引入了键盘布局因素,需要确定第一不同字符对在键盘上的相对位置信息,进而依据该相对位置信息,计算用户输入的字符串与词库中单词的编辑距离,以便根据计算的编辑距离度量字符串与预设词库中单词的差异。

具体地,在确定第一不同字符对在字符输入键盘上的相对位置信息时,首先将字符串中的字符与预设词库中任一单词的相应位置处的字符进行对比,如果字符串中的字符与该单词中相应位置处的字符相同,则不需要考虑两者在字符输入装置上的相对位置信息;如果字符串中的字符与该单词中相应位置处的字符不同,则产生第一不同字符对,需要确定第一不同字符对在字符输入键盘上的相对位置信息,进而依据该相对位置信息,计算字符串与该单词之间的编辑距离。例如,用户当前输入的字符串为lock,将用户输入的字符串与预设词库中的单词loam进行匹配时,需要分别将字符串中的每个字符与单词loam中相应位置处的字符进行对比,通过对比可以确定字符串lock中的第一字符“c”与单词“loam”中的第二字符“a”不同,第三字符“k”与单词“loam”中的第四字符“m”不同,由此产生第一不同字符对和第二不同字符对,并分别确定第一不同字符对和第二不同字符在字符输入键盘上的相对位置信息,通过参考键盘的布局,可以确定字符串lock中第一字符“c”与单词loam中的第二字符“a”之间的相对位置信息为不相邻,字符串lock中第三字符“k”与单词loam中第四字符“m”之间的相对位置信息为对角相邻。

进一步地,在参考键盘的布局因素时,可以查询预设键盘字符位置信息表,该预设键盘字符位置信息表中记录有键盘中各字符对应的左右相邻字符,和对角相邻字符,例如,在该预设键盘字符位置信息表中记录字符a对应的左右相邻字符包括s,字符a对应的对角相邻字符包括q、w和z,字符z对应的左右相邻字符包括x,字符z对应的对角相邻字符包括a和s,由此在确定相对位置信息时,可以通过查询预设键盘字符位置信息表,确定第一不同字符对在键盘上的相对位置信息,例如,用户输入的字符串为loak,预设词库中的单词为loam,在确定字符串loak中第一字符“k”与单词loam中第二字符“m”之间的相对位置信息时,通过查询预设键盘字符位置信息表,确定第一字符k对应的左右相邻字符包括j和l,第一字符k对应的对角相邻字符包括i、o和m,由此能够确定字符串loak中第一字符“k”与单词loam中第二字符“m”之间的相对位置信息为对角相邻。

104、根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离。

其中,字符串与单词之间的编辑距离是指字符串需要经过多少次插入、删除、替换操作可以转换成该单词对应的字符串,例如,用户当前输入的字符串为loak,将用户输入的字符串与预设词库中的单词loam进行匹配时,现有技术直接确定第一字符“k”与单词loam中的第二字符“m”无关联,从而会导致编辑距离的计算精度较低,依据该编辑距离为用户推荐的单词信息偏差较大,无法满足用户的搜索需求,而本发明实施例在计算编辑距离的过程中,会引入字符输入键盘的布局因素,依据第一不同字符对在输入键盘上的相对位置信息,计算编辑距离,从而能够提高编辑距离的计算精度,确保依据该编辑距离为用户推荐的单词信息能够满足用户的搜索需求,提高单词搜索的精度。

具体地,在根据相对位置信息,计算字符串与各单词之间的编辑距离时,需要根据相对位置信息,确定第一不同字符对对应的距离值,如果存在多个不同字符对,则将多个不同字符对对应的距离值相加,得到字符串与单词之间的编辑距离。其中,字符串中第一字符与单词中相应位置处的第二字符在字符输入键盘上的距离越接近,第一不同字符对对应的距离值越小,进而计算得到的字符串与预设词库中单词之间的编辑距离越小;相反字符串中第一字符与单词中相应位置处的第二字符在字符输入键盘上的距离越远,第一不同字符对对应的距离值越大,进而计算得到的字符串与预设词库中单词之间的编辑距离越大。例如,如果第一字符与第二字符在键盘上的相对位置信息为左右相邻,则确定第一不同字符对对应的距离值为0.1;如果第一字符与第二字符在键盘上的相对位置信息为对角相邻,则确定第一不同字符对对应的距离值为0.4;如果第一字符与第二字符在键盘上的相对位置信息为不相邻,则确定第一不同字符对对应的距离值为1,由此根据该相对位置信息能够确定第一不同字符对对应的距离值,进而依据该距离值,能够计算得到字符串与预设词库中单词之间的编辑距离。

例如,用户输入的字符串为lock,预设词库中的单词为loam,通过将lock中的字符与单词中相应位置处的字符进行对比,确定字符串lock中的第一字符“c”与单词loam中的第二字符“a”组成第一不同字符对,字符串lock中的第三字符“k”与单词loam中的第四字符“m”组成第二不同字符对,之后确定第一不同字符对在键盘上的相对位置信息为不相邻,同时确定第二不同字符对在键盘上的相对位置信息为对角相邻,根据该相对位置信息,分别确定第一不同字符对对应的距离值为1,第二不同字符对对应的距离值为0.4,最终将第一不同字符对和第二不同字符对对应的距离值相加,得到字符串lock与单词“loam”之间的编辑距离。

105、基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示。

对于本发明实施例,为了向用户展示单词建议,需要计算出用户输入的字符串与预设词库中各个单词之间的编辑距离,之后根据该编辑距离的大小,对预设词库中的各个单词进行排序,根据该排序结果,筛选排序名次处于预设排名范围内的(例如前N个)单词作为单词建议推荐给用户,具体可以根据计算的编辑距离,由小到大对预设词库中的各个单词进行排序,并将符合预设条件的单词作为单词建议(例如将编辑距离小于预设编辑距离的单词作为单词建议);还可以根据编辑距离,由大到小逆序对预设词库中的各个单词进行排序,进而根据该排序结果筛选出符合预设排名靠后条件的单词(例如后N个单词)作为单词建议,或者可以将符合预设条件的单词(例如将编辑距离小于预设编辑距离的单词)作为单词建议,推荐给用户,该预设排名范围和预设排名靠后条件可以根据单词搜索的业务需求进行设定,如按照编辑距离由小到大的顺序排名时,设定将排名前10的单词按照排名顺序推荐给用户,进一步地,为了保证推荐的单词更能够满足用户的搜索需求,对通过上述步骤得到的单词建议进行进一步筛选。可选地,可以将得到的单词建议中的部分单词推荐给用户,例如当得到的单词建议中有N个(例如10个)单词时,其中有m个(例如6个)单词的编辑距离小于或者等于目标编辑距离(目标编辑距离小于预设编辑距离),因此将该m个单词作为筛选后的单词建议推荐给用户。需要说明的是,上述实施例中,为了减小计算编辑距离所花费的整体时间,可以采用根据编辑距离从小到大的顺序对单词进行排序,从而在计算得到所需的N个编辑距离小于预设编辑距离的单词时,停止继续计算字符串与预设词库中的其他单词的编辑距离,避免了计算与预设词库中每个单词对应的编辑距离,因此节省了计算时间。其中,当编辑距离小于预设编辑距离的单词数量较多时,可以取其中N个编辑距离较小的单词作为单词建议。

在具体应用场景中,如用户输入的字符串为loak,预设词库中的单词分别为loam和load,通过计算得到字符串loak与单词loam之间的编辑距离为0.4,字符串loak与单词load之间的编辑距离为1,根据该编辑距离,由小到大对单词进行排序,由于字符串loak与单词loam之间的编辑距离更小,因此单词loam排在单词load之前,具体展示时会将单词loam优先展示给用户,由此按照上述方式向用户推荐的单词建议更容易满足用户的搜索需求。

进一步地,用户在搜索的过程中可以在搜索框中输入字符串,通过计算输入的字符串与预设词库中各单词之间的编辑距离,并对该编辑距离由小到大进行排序,根据排序结果筛选符合预设条件的单词在搜索框对应的展示区域进行展示,具体地,可以根据搜索框在屏幕中所处的位置信息,选择相应符合预设条件的单词的展示区域和展示类型,其中,展示类型可以包括上拉列表和下拉列表,例如,如果搜索框处于屏幕显示区域的中上部,则可以在下拉列表中展示符合预设条件的单词;如果搜索框处于屏幕显示区域的中下部,则可以在上拉列表中展示符合预设条件的单词。另外,也可以采用上拉与下拉列表同时存在的方式,按照符合预设条件的单词的排序交替展示于上拉和下拉列表中,例如,可以将符合预设条件的单词中排序第一的单词展示在下拉列表的第一位置,将符合预设条件的单词中排序第二的单词展示在上拉列表的第一位置,以此类推。

在具体应用场景中,当出现第一不同字符对时,可以获取用户的语音信息,将该语音信息对应的单词加入至单词建议中进行展示,基于此,所述方法还包括:当匹配到所述第一不同字符对时,提示用户进行语音输入;确定所述用户输入的语音信息对应的单词,并将所述语音信息对应的单词加入所述单词建议中进行展示,其中,所述语音信息对应的单词在所述单词建议中的展示顺序处于预设靠前展示范围。具体地,当出现第一不同匹配对时,通过显示喇叭图标提示用户进行语音输入,对用户输入的语音信息进行识别,确定该语音信息对应的单词,并将语音信息对应的单词加入至单词建议中一同进行展示,如将语音信息对应的单词放置于单词建议中的前三名进行展示。

进一步地,在向用户推荐单词建议的过程中,可以通过语音播放的形式向用户播放单词建议中单词的发音,还可以在屏幕的显示区域展示单词建议中的单词,为了增强用户的体验,在通过屏幕显示区域展示单词的过程中,还可以同时向用户进行语音播放。

对于本发明实施例,在计算出字符串与预设词库中各单词之间的编辑距离后,为了保证信息的推荐精度,在根据编辑距离对各个单词进行排序之前,还需要对计算的编辑距离进行修正,在具体应用场景中,可以将用户当前输入的字符串与预设词库中的单词前缀进行匹配,判断用户输入的字符串是否为单词前缀,如果该字符串是单词前缀,则将该字符串与包含该单词前缀的各单词之间的编辑距离修正为0,在根据修正后的编辑距离,对各个单词进行排序,根据排序结果,筛选排序名次处于预设排名范围的单词推荐给用户,基于此,步骤104具体包括:判断所述字符串是否为所述预设词库中的单词前缀;若所述字符串为单词前缀,则将所述字符串与包含所述单词前缀的各单词之间的所述编辑距离修正为0;基于修正后的编辑距离,由小到大对所述各单词进行排序,并将符合预设条件的单词作为单词建议进行展示。由此通过判断该字符串是否是单词前缀,能够对计算的编辑距离进行修正,从而能够进一步提高单词推荐的精度。

可选地,本发明实施例中,在对编辑距离进行修正后,若得到了数量超过预设数量阈值的修正后的编辑距离为0的单词时,将根据以下方式筛选得到的单词作为单词建议中的单词:根据修正后编辑距离为0的单词对应的单词长度对单词进行排序,例如,根据单词长度由短到长对修正后编辑距离为0的单词进行排序,筛选排名前N的修正后编辑距离为0的单词,或者根据单词长度由长到短对修正后编辑距离为0的单词进行排序,筛选排名后N的修正后编辑距离为0的单词,和/或,根据修正后编辑距离为0的单词查询用户的历史查询记录,将修正后编辑距离为0的单词中不存在于用户历史查询记录中的预设数量(例如p个)单词加入至单词建议中,其中,历史查询记录中记录用户已查询过的单词,由于用户对于未查询过的单词较为陌生,因此将其加入至单词建议中一同推荐给用户。与此同时,还可以根据用户输入的字符串对应的下一字符在字母表中的位置次序,从修正后编辑距离为0的单词中筛选出下一字符位置次序靠前的单词,例如,用户输入的字符串为lo,下一字符在字母表中的先后次序为a、c、g、n、o、s、v、w,根据修正后编辑距离为0的单词位于lo后的下一字符在字母表中的位置次序,将修正后编辑距离为0的单词中下一字符位置次序处于前M的单词筛选出来,如筛选出来的位置次序前M的单词为load、local、log、long、look,将筛选出来的上述单词加入至单词建议中推荐给用户,而忽略下一字符在字母表中位置次序靠后的单词。

需要说明的是,不仅可以在计算出字符串与各单词之间的编辑距离之后,对编辑距离进行修正,还可以在获取用户输入的字符串后,直接判断该字符串是否是单词前缀,如果该字符串是单词前缀,则直接确定该字符串与预设词库中包含该单词前缀的各单词之间的编辑距离为0;如果该字符串不是单词前缀,则继续确定字符串中字符与各单词中相应字符在字符输入装置上的相对位置信息,并根据该相对位置信息,计算字符串与各单词之间的编辑距离,由此在字符串为单词前缀的情况下,能够直接确定编辑距离,减少计算过程。

可选地,本发明实施例中,在获取用户输入的字符串后,直接判断该字符串是单词前缀,并得到了数量超过预设数量阈值的编辑距离为0的单词时,将根据以下方式筛选得到的单词作为单词建议中的单词:根据编辑距离为0的单词对应的单词长度对单词进行排序,例如,根据单词长度由短到长对编辑距离为0的单词进行排序,筛选排名前N的编辑距离为0的单词,或者根据单词长度由长到短对编辑距离为0的单词进行排序,筛选排名后N的编辑距离为0的单词,和/或,根据编辑距离为0的单词查询用户的历史查询记录,将编辑距离为0的单词中不存在于用户历史查询记录中的单词加入至单词建议中,其中,历史查询记录中记录用户已查询过的单词,由于用户对于未查询过的单词较为陌生,因此将其加入至单词建议中一同推荐给用户。与此同时,还可以根据用户输入的字符串对应的下一字符在字母表中的位置次序,从编辑距离为0的单词中筛选出下一字符位置次序靠前的单词,例如,用户输入的字符串为lo,下一字符在字母表中的先后次序为a、c、g、n、o、s、v、w,根据编辑距离为0的单词位于lo后的下一字符在字母表中的位置次序,将编辑距离为0的单词中下一字符位置次序处于前M的单词筛选出来,如筛选出来的位置次序前M的单词为load、local、log、long、look,将筛选出来的上述单词加入至单词建议中推荐给用户,而忽略下一字符在字母表中位置次序靠后的单词。

其中,在将符合预设条件的单词作为单词建议进行展示时,对于编辑距离相同的单词(包括但不限于在字符串是单词前缀时,得到的编辑距离均为0的单词),可以按照以下方式确定编辑距离相同的单词的展示优先级:根据编辑距离相同的单词对应的单词长度对编辑距离相同的单词进行排序,根据排序名次确定编辑距离相同的单词对应的展示优优先级,具体地,可以根据编辑距离相同的单词对应的单词长度由短到长对编辑距离相同的单词进行排序,排名越靠前的单词其对应的展示优先级越高,或者可以根据编辑距离相同的单词对应的单词长度由长到短对编辑距离相同的单词进行排序,排名越靠后的单词其对应的展示优先级越高。与此同时,还可以根据编辑距离相同的单词中下一字符在字母表中的位置次序,确定编辑距离相同的单词对应的展示优先级,其中,下一字符为单词中紧挨字符串后的下一字符,如用户输入的字符串为lo,单词load中紧挨字符串lo后的下一字符为“a”,单词local中紧挨字符串lo后的下一字符为“c”,单词log中紧挨字符串lo后的下一字符为“g”,通过查询字母表可知下一字符在字符表中的位置次序为a、c、g,根据编辑距离相同的单词中下一字符在字母表中的位置次序,确定单词load对应的展示优先级最高,其次是单词local,单词log对应的展示优先级最低,即单词中位于输入的字符串后的下一字符的位置次序越靠前的单词其对应的展示优先级越高,位置次序越靠后的单词其对应的展示优先级越低,进一步地,将展示优先级高的单词先于展示优先级低的单词进行展示,或者展示优先级高的单词对应的展示位置位于展示优先级低的单词对应的展示位置之前。

在具体应用场景中,还可以根据用户的当前知识等级,对计算出的编辑距离进行修正,基于此,所述基于所述编辑距离,将符合预设条件的单词进行展示,包括:获取用户的当前知识等级;确定所述各单词中与所述当前知识等级相匹配的单词,并将与所述当前知识等级相匹配的单词对应的编辑距离向下修正;基于修正后的编辑距离,由小到大对所述各单词进行排序,并将符合预设条件的单词进行展示。其中,用户当前的知识等级包括英语四级、英语六级、雅思和托福等。例如,用户的当前知识等级为英语四级,确定预设词库中的四级英文单词,并将字符串与四级英文单词之间的编辑距离向下修正,如编辑距离减少0.5,进一步地,按照修正后的编辑距离,对各个单词进行排序,根据排序结果,筛选排序名次处于预设排序范围的单词推荐给用户,具体可以根据修正后的编辑距离,由小到大对各个单词进行排序,将排名前N的单词加入单词建议中推荐给用户,或者根据修正后的编辑距离,由大到小对各个单词进行排序,将排名后N的单词加入单词建议中推荐给用户。可选地,还可以将修正后的编辑距离小于预设编辑距离的单词筛选出来加入单词建议中推荐给用户,进一步地,为了保证推荐的单词更能够满足用户的搜索需求,可以对单词建议中的单词进一步筛选,可选地,可以将单词建议中的部分单词推荐给用户,例如,当前单词建议中有10个单词,其中,有6个单词的编辑距离小于或者等于目标编辑距离(其中目标编辑距离小于预设编辑距离),因此将这6个单词作为筛选后的单词推荐给用户。由此能够根据用户的当前知识等级,对计算的编辑距离进行修正,从而能够保证推荐的单词信息符合用户的当前知识等级,确保推荐的单词信息满足用户的搜索需求。

在具体应用场景中,还可以根据用户的历史搜索记录,对计算的编辑距离进行调整,基于此,所述基于所述编辑距离,将符合预设条件的单词进行展示,包括:获取用户的历史搜索记录;根据所述历史搜索记录对所述编辑距离进行修正,基于修正后的编辑距离,由小到大对所述各单词进行排序,并将符合预设条件的单词进行展示。其中,历史搜索记录中记录有用户输入的字符串与搜索建议的单词列表中的点选词之间的对应关系。

例如,用户输入的字符串为loak,单词建议中推荐的单词loam的展示位置要优于单词lock的展示位置,因为通过编辑距离计算可知单词“loam”与字符串“loak”之间的编辑距离要小于单词“lock”与字符串“loak”之间的编辑距离,但是通过统计用户的历史搜索记录发现,当用户多次输入“loak”时,用户点选的都是单词“lock”,则将字符串“loak”与单词“lock”之间的编辑距离向下调整,确保字符串“loak”与单词“lock”之间的编辑距离小于字符串“loak”与单词“loam”之间的编辑距离,以便将单词“lock”放到更优的位置进行展示,便于用户进行点选,同时能够保证推荐的单词信息满足用户的搜索需求。

本发明实施例提供的一种展示单词建议的方法,与目前一旦输入字符与单词中相应字符不一致,便认为这两个字符之间不存在任何关联的方式相比,本发明能够获取用户输入的字符串;并将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对;与此同时,确定所述第一不同字符对在字符输入键盘上的相对位置信息;并根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离;最终基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示,由此根据第一不同字符对在字符输入键盘上的相对位置信息,计算字符串与单词之间的编辑距离,能够在编辑距离的计算过程中参考字符输入键盘的布局因素,从而提高字符串与单词之间的编辑距离计算精度,进而依据该编辑距离,将符合预设条件的单词作为单词建议推荐给用户,能够提高单词搜索过程中的单词推荐精度,确保单词建议能够满足用户的搜索需求,增强用户体验。

进一步的,为了更好的说明上述单词的搜索过程,作为对上述实施例的细化和扩展,本发明实施例提供了另一种展示单词建议的方法,如图2所示,所述方法包括:

201、获取用户输入的字符串。

对于本发明实施例,用户可以在各种与英文相关的APP中进行单词搜索,具体搜索时用户会在搜索框中输入相应的英文字符串,进而能够获取用户输入的字符串,以便将该字符串与预设词库中的各单词进行匹配。

202、将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对。

对于本发明实施例,为了获取第一不同字符对,步骤202具体包括:判定所述字符串对应的字符数量与所述各单词中目标单词对应的字符数量是否相同:若所述字符串对应的字符数量与所述目标单词对应的字符数量相同,则将所述字符串中的第一字符与所述目标单词中的第二字符进行匹配以获得第一不同字符对;若所述字符串对应的字符数量与所述目标单词对应的字符数量不同,则在所述字符串中插入或删除目标字符,并将插入或删除所述目标字符后的字符串中的第一字符与所述目标单词中的第二字符进行匹配以获得第一不同字符对。其中,目标单词可以为预设词库中的任意一个单词。

例如,用户当前输入的字符串为loak,预设词库中的目标单词为loam,由于字符串loak对应的字符数量与目标单词loam对应的字符数量相同,因此可以直接将loak中的第一字符“k”与目标单词loam中的第二字符“m”进行匹配,获得第一字符对,进一步地,通过查询预设键盘字符位置信息表,确定第一字符“k”与第二字符“m”在键盘上的相对位置信息为对角相邻。

再比如,用户当前输入的字符串为lukt,预设词库中的目标单词为lucky,由于字符串lukt对应的字符数量与目标单词lucky对应的字符数量不同,因此不能直接进行字符匹配,需要先在字符串lukt中插入目标字符“c”,以便插入目标字符后的字符串对应的字符数量与目标单词lucky对应的字符数量相同,同时保证插入目标字符后的字符串与目标单词lucky最相近,由此确定插入目标字符后的字符串为luckt,进一步地,将插入目标字符后的字符串luckt中的第一字符“t”与lucky中的第二字符“y”进行匹配,获得第一不同字符对,通过查询预设键盘字符位置信息表,确定第一字符“t”与目标单词的第二字符“y”在键盘上的相对位置信息为左右相邻。由此按照上述方式能够在不同场景下获得第一不同字符对,进而能够确定第一不同字符对在字符输入键盘上的相对位置信息,以便根据该相对位置信息,计算字符串与目标单词之间的编辑距离。

进一步地,针对在字符串中插入或删除目标字符的具体过程,作为一种可选实施方式,所述方法包括:将所述字符串与所述目标单词进行对比,根据对比结果,确定在所述字符串中插入或删除的所述目标字符;在所述字符串中插入或删除所述目标字符,以便插入或删除所述目标字符后的字符串与所述目标单词之间的相似度大于预设阈值。其中,预设阈值可以根据单词搜索的业务需求进行设定,需要说明的是,为了保证单词搜索的精度,预设阈值不宜设定过低。

例如,用户输入的字符串为beauiful,预设词库中待进行匹配的目标单词为beautiful,由于字符串对应的字符数量为8,目标单词对应的字符数量为9,因此确定字符串对应的字符数量小于目标单词对应的字符数量,需要在字符串中插入1个相应的字符,具体地,为了保证插入字符后的字符串与目标单词最相近,即两者的相似度大于预设阈值,在字符串的字符“u”和字符“i”之间插入目标字符“t”,插入目标字符后的字符串beautiful与目标单词完全相同。

203、确定所述第一不同字符对在字符输入键盘上的相对位置信息。

对于本发明实施例,为了计算字符串与各单词之间的编辑距离,需要确定第一不同字符对在字符输入键盘上的相对位置信息,针对确定相对位置信息的具体过程与步骤103完全相同,在此不再赘述。

204、根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离。

对于本发明实施例,如果字符串对应的字符数量与目标单词对应的字符数量相同,则可以直接根据第一不同字符对的距离值,计算字符串与目标单词之间的编辑距离,基于此,步骤204具体包括:若所述字符串对应的字符数量与所述目标单词对应的字符数量相同,则根据所述相对位置信息,确定所述第一不同字符对对应的距离值;根据所述第一不同字符对对应的距离值,确定所述字符串与所述目标单词之间的编辑距离。在这种场景下编辑距离的计算过程与步骤104中编辑距离的计算过程完全相同,在此不再赘述。

进一步地,如果字符串对应的字符数量与目标单词对应的字符数量不同,则在计算编辑距离时,不仅要考虑第一不同字符对对应的距离值,还需要考虑在字符串中插入或删除字符的操作,基于此,步骤204具体包括:若所述字符串对应的字符数量与所述目标单词对应的字符数量不同,则根据所述目标字符对应的字符数量,确定所述字符串对应的第一编辑距离;根据所述相对位置信息,确定所述字符串对应的第二编辑距离;将所述第一编辑距离和所述第二编辑距离相加,得到所述字符串与所述目标单词之间的编辑距离。

例如,用户输入的字符串为beeutfilly,预设词库中待进行匹配的目标单词为beautifully,由于字符串对应的字符数量小于目标单词对应的字符数量,因此需要在字符串中的相应位置处插入字符,具体地,在字符串beeutfilly的字符“t”和字符“f”之间插入一个字符“i”,得到插入字符后的字符串为beeutifilly,由于在字符串中仅插入了一个字符,因此可以确定经过一次插入操作,便可以使插入字符后的字符串对应的字符数量与目标单词对应的字符数量相同,进而根据该插入字符的数量,可以确定字符串对应的第一编辑距离为1,进一步地,将插入字符的字符串中的第一字符“e”与目标单词中的第二字符“a”进行匹配,获得第一不同字符对,同理将插入字符后的字符串中的第三字符“i”与目标单词中的第四字符“u”进行匹配,获得第二不同字符对,通过查询预设键盘字符位置信息表,确定第一字符“e”与目标单词中第二字符“a”在键盘上的相对位置信息为不相邻,同时确定第三字符“i”与目标单词中第四字符“u”在键盘上的相对位置信息为左右相邻,由此根据该相对位置信息,确定第一不同字符对对应的距离值为1,第二不同字符对对应的距离值为0.1,进一步地,将第一不同字符对和第二不同字符对对应的距离值相加,得到字符串beeutfilly对应的第二编辑距离为1.1,最终将计算得到的第一编辑距离和第二编辑距离相加,得到字符串beeutfilly与目标单词beautifully之间的编辑距离为2.1,由此在字符串对应的字符数量与目标单词对应的字符数量不同时,按照上述方式能够计算出字符串与目标单词之间的编辑距离,且在编辑距离计算的过程中充分考虑了键盘布局因素所带来的影响,提高了编辑距离的计算精度。

在具体应用场景中,随着用户逐个输入字符,根据推荐内容的反馈,用户会不断地对之前输入的字符进行修正,因此在当前获取的字符串中位置较靠前的字符出错的概率较低,位置较靠后的字符出错的概率较大,由此在计算字符串与目标单词之间的编辑距离的过程中,不仅要考虑键盘布局的因素,还要考虑字符串中不同位置字符输入的正确率,基于此,在所述根据所述相对位置信息,得到所述第一不同字符对对应的距离值之后,所述方法还包括:根据所述第一字符在所述字符串中的位置信息,确定所述第一不同字符对对应的正确率权重;与此同时,所述根据所述第一不同字符对对应的距离值,确定所述字符串与所述目标单词之间的编辑距离,包括:基于所述正确率权重以及所述距离值,确定所述字符串与所述目标单词之间的编辑距离。

具体地,由于字符串中位置越靠前的字符输入正确的概率越大,因此可以根据字符串中字符对应的位置信息,确定字符对应的正确率权重,该正确率权重代表了该位置处的字符用户输入正确的可能性,正确率权重越大,代表字符输入正确的可能性越高,具体可以将字符对应的位置信息输入预设正确率权重预测模型进行权重预测,得到该字符对应的正确率权重,该预设正确率权重预测模型可以为:f(s,i)=(1.0+s.length-i)/(4.0+s.length),其中,s.length为字符串的长度,即字符串包含的字符数量,i为字符在字符串中的下标位置索引,即字符对应的位置信息,如0、1、2等,由此根据字符对应的位置信息和预设正确率权重预测模型,能够确定字符对应的正确率权重。

例如,用户输入的字符串为lock,预设词库中目标单词为loam,通过将字符串与目标单词进行对比,确定第一不同字符对“c”和“a”,第二不同字符对“k”和“m”,并能够确定第一不同字符对对应的距离值为1,第二不同字符对对应的距离值为0.4,进一步地,根据第一字符“c”对应的位置信息3和预设正确率权重预测模型,能够确定第一字符“c”对应的正确率权重为3/8,同理能够确定第三字符“k”对应的正确率权重为2/8,进一步地,在计算字符串与目标单词之间的编辑距离的过程中,同时考虑键盘布局因素和用户输入正确率的因素,将第一字符“c”对应的正确率权重和距离值相乘,得到第一字符“c”对应的相乘结果为3/8,同理将第三字符“k”对应的正确率权重和距离值相乘,得到第三字符“k”对应的相乘结果为0.1,最终将第一字符“c”对应的相乘结果和第三字符“k”对应的相乘结果相加,得到字符串lock与目标单词loam之间的编辑距离,由此计算的编辑距离能够同时考虑键盘布局因素和用户输入正确率的因素,从而进一步提高了编辑距离的计算精度,保证单词建议的可靠性。

在具体应用场景中,计算编辑距离时,还可以考虑第一不同字符对的历史错误权重,例如,第一不同字符对为a和s,第一不同字符对的历史错误权重越低,表示用户将字符a输错为字符s的历史出错次数越多,用户每增加一次字符的出错频率,第一不同字符对对应的历史错误权重会降低,基于此,在所述根据所述相对位置信息,得到所述第一不同字符对对应的距离值之后,所述方法还包括:根据所述第一不同字符对查询预设历史错误权重表,确定所述第一不同字符对对应的历史错误权重;与此同时,所述根据所述第一不同字符对对应的距离值,确定所述字符串与所述目标单词之间的编辑距离,包括:基于所述历史错误权重以及所述距离值,确定所述字符串与所述目标单词之间的编辑距离。其中,预设历史错误权重表中记录有不同字符对对应的历史错误权重。

例如,用户本次输入的字符串为“loak”,在计算其与单词“look”之间的编辑距离时,首先查询预设历史错误权重表,确定第一不同字符对“a”和“o”对应的历史错误权重,之后将第一不同字符对对应的历史错误权重与距离值相乘,得到字符串“loak”与单词“look”之间的编辑距离,当用户将第一字符“a”输错为第二字符“o”的次数越多时,第一不同字符对对应的历史错误权重越小,进而通过上述方式计算的编辑距离越小。从而能够在编辑距离计算的过程中考虑历史错误权重所带来的影响,进一提高了编辑距离的计算精度。

进一步地,在计算编辑距离的过程中,还可以同时考虑正确率权重和历史错误权重所带来的影响,具体地,可以将第一不同字符对对应的正确率权重、历史错误权重以及距离值相乘,得到用户输入字符与单词之间的编辑距离,如果还存在第二不同字符对,则将第二不同字符对对应的正确率权重、历史错误权重以及距离值相乘,并将第二不同字符对对应的相乘结果与第一不同字符对对应的相乘结果相加,得到输入字符与单词之间的编辑距离。

205、将所述各单词中编辑距离小于预设编辑距离的单词作为单词建议。

其中,预设编辑距离可以根据实际的业务需求进行设定,如设定将编辑距离小于1.2的单词加入单词建议中展示给用户,需要说明的是为了保证推荐精度,预设编辑距离不宜设定过大。

206、根据所述单词建议中单词对应的编辑距离,确定所述单词建议中单词对应的展示优先级。

对于本发明实施例,单词建议中单词对应的编辑距离越小,单词对应的展示优先级越高,相反单词对应的编辑距离越大,单词对应的展示优先级越低,例如,在单词建议中存在10个单词,根据这10个单词对应的编辑距离由小到大进行排序,根据排序结果确定单词建议中单词对应的展示优先级。

207、基于所述展示优先级,对所述单词建议中的单词进行展示。

其中,展示优先级用于表示单词建议中的单词的展示位置和/或展示排序。例如,在展示单词建议时,展示优先级高的单词先于展示优先级低的单词进行展示,和/或,展示优先级高的单词的展示位置位于展示优先级低的单词之前。

对于本发明实施例,在对单词建议中的单词进行展示的过程中,可以根据用户的当前学习任务,对单词的展示优先级进行调整,基于此,步骤207具体包括:确定所述单词建议中与用户学习任务相匹配的单词,并对所述与用户学习任务相匹配的单词对应的展示优先级进行修正;基于修正后的展示优先级,对所述单词建议中的单词进行展示。

例如,用户的当前学习任务为四级词汇的学习,将单词建议中四级单词的展示优先级提高,具体可以在屏幕的显示区域将四级单词的展示位置提前,或者优先播放四级单词对应的发音,此外,在屏幕的显示区域优先展示四级单词的同时,也可以对其进行语音播放,增强用户的体验。再比如,用户的当前学习任务为四级范围外词汇的学习,则可以将单词建议中四级范围外的单词对应的展示优先级提高,从而优先为用户推荐四级范围外的单词,以方便用户对于其他单词的学习。

在具体应用场景中,还可以根据用户的历史点选记录,对单词建议中单词的展示优先级进行修正,基于此,步骤207具体包括:若存在所述字符串对应的用户历史点选记录,则确定所述单词建议中存在于所述用户历史点选记录中的单词;根据所述单词建议中存在于所述用户历史点选记录中的单词对应的点选频率和/或点选时间,对所述单词建议中存在于所述用户历史点选记录中的单词对应的展示优先级进行修正;基于修正后的展示优先级,对所述单词建议中的单词进行展示。其中,用户的历史点选记录中记录有用户输入某一字符串时,从单词建议中选择的单词即点选词,以及每个点选词的点选频率(即用户点选该单词的次数)和/或点选时间(即用户对该单词进行点选的时间)。

例如,用户输入的字符串为loak,单词建议中单词“look”和“load”存在于用户的历史点选记录中,通过查询用户的历史点选记录,确定单词“look”和“load”分别对应的点选频率和/或点选时间,在本次进行单词展示的过程中,如果单词“look”对应的点选频率高于单词“load”对应的点选频率,则将单词“load”对应的展示优先级修正为高于单词“look”对应的展示优先级(即点选频率越高的单词的展示优先级越低),或者,如果单词“look”对应的点选时间晚于单词“load”对应的点选时间,则将单词“load”对应的展示优先级修正为高于单词“look”对应的展示优先级,即用户在更早时间查询过的单词的展示优先级高于较晚时间查询过的单词的展示优先级。

进一步地,如果用户此前未输入过该字符串,便不存在用户针对该字符串的历史点选记录,此时可以根据其他用户针对该字符串的历史点选记录对单词的展示优先级进行修正,基于此,步骤207具体包括:若不存在所述字符串对应的用户历史点选记录,则收集其他用户的历史点选记录,根据所述其他用户的历史点选记录中点选词对应的点选频率对所述点选词进行排序;根据排序结果确定排序名次处于预设范围内的目标点选词;判断所述单词建议中是否存在所述目标点选词;若所述单词建议中存在所述目标点选词,则对所述目标点选词对应的展示优先级进行修正;基于修正后的展示优先级,对所述单词建议中的单词进行展示。进一步地,在所述判断所述单词建议中是否存在所述目标点选词之后,所述方法还包括:若所述单词建议中不存在目标点选词,则将符合预设排名靠前条件的目标点选词添加至所述单词建议中,并对添加后的单词建议中的单词进行展示。其中,上述收集的其他用户的历史点选记录为其他用户输入上述字符串时的点选记录,即记录了其他用户在输入该字符串时的点选词和点选时间,以及各个点选词对应的点选频率。

例如,用户第一次输入字符串“loak”,由于不存在用户针对该字符串的历史点选记录,因此收集其他用户针对字符串“loak”的历史点选记录,并统计其他用户的历史点选记录中点选词对应的点选频率,根据点选频率对点选词进行排序,根据排序结果筛选排名前n的目标点选词,进一步地,判断单词建议中是否存在目标点选词,如果单词建议中存在目标点选词,则将单词建议中存在的目标点选词对应的展示优先级进行修正,如排名前n的点选词中有m个在单词建议中,则将m个点选词对应的展示优先级调高,且m个点选词中点选频率越高的点选词对应的展示优先级越高,点选频率越低的点选词对应的展示优先级越低;如果单词建议中不存在目标点选词,即排名前n的点选词均不存在于单词建议中,则根据点选频率从大到小的顺序进行排序,从n个点选词中筛选符合预设排名靠前条件的点选词添加至单词建议中进行展示,如从n个点选词中筛选排名前3的点选词,将其添加至单词建议中进行展示,具体展示时根据点选词对应的点选频率,确定点选词的展示优先级。

在具体应用场景中,用户在对单词进行学习的过程中,可以对学过的单词标记学习状态信息,如将单词标记为已掌握、一知半解、陌生等,进而根据单词建议中各个单词对应的学习状态信息,确定其对应的展示优先级,用户掌握程度越差的单词,其对应的展示优先级越高,用户掌握程度越好的单词,其对应的展示优先级越低,基于此,步骤207具体包括:获取所述单词建议中单词标记的学习状态信息;基于所述学习状态信息,对所述单词建议中单词对应的展示优先级进行修正;基于修正后的展示优先级,对所述单词建议中的单词进行展示。

例如,用户输入的单词为loak,单词建议中存在标记的单词为look和load,单词look对应的学习状态信息为一知半解,单词load对应的学习状态信息为陌生,因此将单词load对应的展示优先级调整为高于单词look对应的展示优先级。

本发明实施例提供的另一种展示单词建议的方法,与目前一旦输入字符与单词中相应字符不一致,便认为这两个字符之间不存在任何关联的方式相比,本发明能够获取用户输入的字符串;并将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对;与此同时,确定所述第一不同字符对在字符输入键盘上的相对位置信息;并根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离;最终基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示,由此根据第一不同字符对在字符输入键盘上的相对位置信息,计算字符串与单词之间的编辑距离,能够在编辑距离的计算过程中参考字符输入键盘的布局因素,从而提高字符串与单词之间的编辑距离计算精度,进而依据该编辑距离,将符合预设条件的单词作为单词建议推荐给用户,能够提高单词搜索过程中的单词推荐精度,确保单词建议能够满足用户的搜索需求,增强用户体验。

进一步地,作为图1的具体实现,本发明实施例提供了一种展示单词建议的装置,如图4所示,所述装置包括:获取单元31、匹配单元32、确定单元33、计算单元34和展示单元35。

所述获取单元31,可以用于获取用户输入的字符串。

所述匹配单元32,可以用于将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对。

所述确定单元33,可以用于确定所述第一不同字符对在字符输入键盘上的相对位置信息。

所述计算单元34,可以用于根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离。

所述展示单元35,可以用于基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示。

在具体应用场景中,为了获取第一不同字符对,如图5所示,所述匹配单元32,包括:判定模块321、匹配模块322和插入模块323。

所述判定模块321,可以用于判定所述字符串对应的字符数量与所述各单词中目标单词对应的字符数量是否相同。

所述匹配模块322,可以用于若所述字符串对应的字符数量与所述目标单词对应的字符数量相同,则将所述字符串中的第一字符与所述目标单词中的第二字符进行匹配以获得第一不同字符对。

所述插入模块323,可以用于若所述字符串对应的字符数量与所述目标单词对应的字符数量不同,则在所述字符串中插入或删除目标字符,并将插入或删除所述目标字符后的字符串中的第一字符与所述目标单词中的第二字符进行匹配以获得第一不同字符对。

进一步地,为了确定在字符串中插入或者删除的目标字符,所述插入模块323,包括:对比子模块和插入子模块。

所述对比子模块,可以用于将所述字符串与所述目标单词进行对比,根据对比结果,确定在所述字符串中插入或删除的所述目标字符。

所述插入子模块,可以用于在所述字符串中插入或删除所述目标字符,以便插入或删除所述目标字符后的字符串与所述目标单词之间的相似度大于预设阈值。

在具体应用场景中,为了计算字符串与目标单词之间的编辑距离,所述计算单元34,包括:第一确定模块341和第二确定模块342。

所述第一确定模块341,可以用于若所述字符串对应的字符数量与所述目标单词对应的字符数量相同,则根据所述相对位置信息,确定所述第一不同字符对对应的距离值。

所述第二确定模块342,可以用于根据所述第一不同字符对对应的距离值,确定所述字符串与所述目标单词之间的编辑距离。

在具体应用场景中,为了计算字符串与目标单词之间的编辑距离,所述计算单元34,包括:第一确定模块341、第二确定模块342和相加模块343。

所述第一确定模块341,可以用于若所述字符串对应的字符数量与所述目标单词对应的字符数量不同,则根据所述目标字符对应的字符数量,确定所述字符串对应的第一编辑距离。

所述第二确定模块342,可以用于根据所述相对位置信息,确定所述字符串对应的第二编辑距离。

所述相加模块343,可以用于将所述第一编辑距离和所述第二编辑距离相加,得到所述字符串与所述目标单词之间的编辑距离。

进一步地,为了确定字符串与目标单词之间的编辑距离,所述第一确定模块,还可以用于根据所述第一字符在所述字符串中的位置信息,确定所述第一不同字符对对应的正确率权重;和/或根据所述第一不同字符对查询预设历史错误权重表,确定所述第一不同字符对对应的历史错误权重。

所述第二确定模块,具体可以用于基于所述正确率权重和/或所述历史错误权重,以及所述距离值,确定所述字符串与所述目标单词之间的编辑距离。

在具体应用场景中,为了对单词建议中的单词进行展示,所述展示单元35,包括:判断模块351、修正模块352和展示模块353。

所述判断模块351,可以用于判断所述字符串是否为所述预设词库中的单词前缀。

所述修正模块352,可以用于若所述字符串为单词前缀,则将所述字符串与包含所述单词前缀的各单词之间的所述编辑距离修正为0。

所述展示模块353,可以用于基于修正后的编辑距离,由小到大对所述各单词进行排序,并将符合预设条件的单词作为单词建议进行展示。

在具体应用场景中,为了对用户进行语音播放,所述装置还包括:提示单元36。

所述提示单元36,可以用于当匹配到所述第一不同字符对时,提示用户进行语音输入。

所述展示单元35,还可以用于确定所述用户输入的语音信息对应的单词,并将所述语音信息对应的单词加入所述单词建议中进行展示,其中,所述语音信息对应的单词在所述单词建议中的展示顺序处于预设靠前展示范围。

在具体应用场景中,为了展示单词建议中的单词,所述展示单元35,包括:确定模块354和展示模块353。

所述确定模块354,可以用于将所述各单词中编辑距离小于预设编辑距离的单词作为单词建议;

所述确定模块354,还可以用于根据所述单词建议中单词对应的编辑距离,确定所述单词建议中单词对应的展示优先级;

所述展示模块353,可以用于基于所述展示优先级,对所述单词建议中的单词进行展示。

在具体应用场景中,可以基于用户当前的学习任务对单词的展示优先级进行修正,所述展示模块353,包括:修正子模块和展示子模块。

所述修正子模块,可以用于确定所述单词建议中与用户学习任务相匹配的单词,并对所述与用户学习任务相匹配的单词对应的展示优先级进行修正。

所述展示子模块,可以用于基于修正后的展示优先级,对所述单词建议中的单词进行展示。

在具体应用场景中,可以基于用户的历史点选记录对单词的展示优先级进行修正,所述展示模块353,包括:确定子模块、修正子模块和展示子模块。

所述确定子模块,可以用于若存在所述字符串对应的用户历史点选记录,则确定所述单词建议中存在于所述用户历史点选记录中的单词。

所述修正子模块,可以用于根据所述单词建议中存在于所述用户历史点选记录中的单词对应的点选频率和/或点选时间,对所述单词建议中存在于所述用户历史点选记录中的单词对应的展示优先级进行修正。

所述展示子模块,可以用于基于修正后的展示优先级,对所述单词建议中的单词进行展示。

在具体应用场景中,还可以基于其他用户的历史点选记录对单词的展示优先级进行修正,所述展示模块353,包括:排序子模块、确定子模块、判断子模块、修正子模块和展示子模块。

所述排序子模块,用于若不存在所述字符串对应的用户历史点选记录,则收集其他用户的历史点选记录,根据所述其他用户的历史点选记录中点选词对应的点选频率对所述点选词进行排序;

所述确定子模块,可以用于根据排序结果确定排序名次处于预设范围内的目标点选词。

所述判断子模块,可以用于判断所述单词建议中是否存在所述目标点选词。

所述修正子模块,可以用于若所述单词建议中存在所述目标点选词,则对所述目标点选词对应的展示优先级进行修正。

所述展示子模块,可以用于基于修正后的展示优先级,对所述单词建议中的单词进行展示。

进一步地,所述展示模块353,还包括:添加子模块,所述添加子模块,可以用于若所述单词建议中不存在目标点选词,则将符合预设排名靠前条件的目标点选词添加至所述单词建议中,并对添加后的单词建议中的单词进行展示。

在具体应用场景中,还可以基于单词标记的学习状态信息,对单词的展示优先级进行修正,所述展示模块353,包括:获取子模块、修正子模块和展示子模块。

所述获取子模块,可以用于获取所述单词建议中单词标记的学习状态信息。

所述修正子模块,可以用于基于所述学习状态信息,对所述单词建议中单词对应的展示优先级进行修正。

所述展示子模块,可以用于基于修正后的展示优先级,对所述单词建议中的单词进行展示。

需要说明的是,本发明实施例提供的一种展示单词建议的装置所涉及各功能模块的其他相应描述,可以参考图1所示方法的对应描述,在此不再赘述。

基于上述如图1所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:获取用户输入的字符串;将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对;确定所述第一不同字符对在字符输入键盘上的相对位置信息;根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离;基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示。

基于上述如图1所示方法和如图4所示装置的实施例,本发明实施例还提供了一种计算机设备的实体结构图,如图6所示,该计算机设备包括:处理器41、存储器42、及存储在存储器42上并可在处理器上运行的计算机程序,其中存储器42和处理器41均设置在总线43上所述处理器41执行所述程序时实现以下步骤:获取用户输入的字符串;将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对;确定所述第一不同字符对在字符输入键盘上的相对位置信息;根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离;基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示。

通过本发明的技术方案,能够获取用户输入的字符串;并将所述字符串中的第一字符与预设词库中各单词中的第二字符进行匹配以获得第一不同字符对;与此同时,确定所述第一不同字符对在字符输入键盘上的相对位置信息;并根据所述相对位置信息,计算所述字符串与所述各单词之间的编辑距离;最终基于所述编辑距离,将符合预设条件的单词作为单词建议进行展示,由此根据第一不同字符对在字符输入键盘上的相对位置信息,计算字符串与单词之间的编辑距离,能够在编辑距离的计算过程中参考字符输入键盘的布局因素,从而提高字符串与单词之间的编辑距离计算精度,进而依据该编辑距离,将符合预设条件的单词作为单词建议推荐给用户,能够提高单词搜索过程中的单词推荐精度,确保单词建议能够满足用户的搜索需求,增强用户体验。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

相关技术
  • 展示单词建议的方法、装置、存储介质及计算机设备
  • 资产建议生成方法、装置、计算机设备和存储介质
技术分类

06120112860284