对滑动输入轨迹进行识别的系统及其识别方法_2

文档序号:9597114阅读:来源:国知局
心点坐标、相交点与相邻键位相交点连线夹角进行计算,所述匹配操作完成后,滑动轨迹与对应键位的相交点坐标至键位中心点坐标之间的距离越小,该中间状态的匹配得分越高,相交点与相邻键位相交点连线夹角越大,匹配得分越高;
[0040]所述惩罚得分用于删除操作,所述删除操作完成后,若删除键位为单个,则根据该删除键位的轨迹相交点与相邻键位相交点连线夹角的大小进行计算,夹角越大,惩罚得分越高;若删除键位为多个,则根据这几个键位与前后两个键位构成的多边形面积大小进行计算,面积越大,惩罚得分越高。
[0041]进一步的,所述评分过程中,若单词中包含可与输入重叠键位相对应的重叠字母,则给予该单词更高的单词得分。
[0042]进一步的,所述步骤S4中,每个单词得分需与该单词的词频得分综合运算后生成排序得分,并根据排序得分进行单词排序,所述词频得分为语料库中单词使用频率根据用户输入习惯修正后的修正得分。
[0043]进一步的,所述每轮遍历结束后均根据新生成的中间状态对所有可能为用户输入目标的单词进行枚举,根据所有中间状态的累计得分进行单词排序,并将该排序后的单词实时输出。
[0044]本发明的有益效果:对用户的输入轨迹没有明确的限制,用户可以按照较为随意的方式划出目标单词。用户在滑动过程中不需要准确的经过每一个字母,系统可以自动进行临近键位的匹配。在输入较长的单词时,系统可以允许用户省略掉个别字母,不影响最终的输出结果,从而改善了用户的输入体验。将轨迹相似度问题转换为序列的搜索匹配问题,可以实现在用户滑动的同时,将当前的最佳匹配实时输出,不需要用户将完整的轨迹全部完成,节省时间。除此以外,本发明由于将轨迹转换成键位序列,基于单词查找树的同一个词库能同时满足滑动输入与非滑动输入两种状态,有效的减小了占用内存。系统实现更为容易,计算需求更小,响应速度更快,即使在性能较差的设备上也能够很好的响应用户的输入。
【附图说明】
[0045]图1为“right”的第一种输入轨迹示意图;
[0046]图2为“right”的第二种输入轨迹示意图;
[0047]图3为本发明系统连接结构框图;
[0048]图4为本发明方法流程图;
[0049]图5为单词查找树不意图;
[0050]图中:1 一输入模块,2—滑动轨迹记录模块,3—搜索模块,4一排序模块,5—输出模块,6—词库存储模块。
【具体实施方式】
[0051]以下结合附图和具体实施例对本发明作进一步的详细说明:
[0052]本发明的实施例包括但不限于包含触摸屏的电子设备,任何能够提供滑动方式进行交互的场景下都可以应用本发明。在描述本发明的具体实施方案时,主要使用英文作为例子,本发明的适用性并不依赖于特定的语言。
[0053]如图1和图2所示分别为英文单词“right”的两种滑动输入轨迹,本发明主要以图2的输入轨迹进行说明。
[0054]如图3所示为本发明所示系统的连接结构框图,包括输入模块1:用于向用户提供虚拟键位的坐标信息,辅助用户完成输入和滑动操作;滑动轨迹记录模块2:用于采集输入模块内的滑动轨迹,并对滑动轨迹进行预处理,将轨迹序列转换为键位序列发送至搜索模块;搜索模块3:根据输入的键位序列,从词库存储模块内搜索有可能为用户输入目标的单词,生成单词集合,并将单词集合发送给排序模块;排序模块4:综合滑动轨迹的匹配得分和词频得分,对单词集合内的单词进行排序,并将多余单词删除,将排序后新形成的单词集合发送给输出模块;输出模块5:用于将接收到的排序后的单词集合显示输出;词库存储模块6:用于存储常用单词。输入模块和输出模块可以由手机触摸屏代替。
[0055]利用该系统进行识别的方法其步骤如图4所示:
[0056]步骤S1,采集用户滑动输入的轨迹,生成轨迹序列。在滑动轨迹记录模块2内设置计时器和采样间隔,当用户手指开始和设备发生接触时,对用户的轨迹进行采样,得到轨迹序列。
[0057]步骤S2,将轨迹序列转化为键位序列,同时记录轨迹与各个键位相交的坐标以及相交点与相邻键位相交点连线夹角。将轨迹序列与输入模块上的键盘布局进行对照,依据轨迹与键盘上不同键位相交的顺序将轨迹序列转换成由各个键位组成的键位序列。比如图2种滑动轨迹起点和键位“R”相交,那么键位序列的第一个键位变成对应的键位“R”。与此同时,记录并存储轨迹与键位序列中各个键位的相交坐标、键位序列中各个键位中心点坐标、相交点与相邻键位相交点连线夹角,即当前键位的转折角度。
[0058]由于轨迹是由一系列采样点构成,而采样的时间间隔很短,键位序列中会有许多重复的键位,比如划过字母r时得到的序列是rrr,针对这种情况,取距离键盘上虚拟键位r中心点最近的,去掉其他点。在本实施例中轨迹与键位的相交坐标以与键位中心距离最近的采样点坐标为准。计算每一个键位的转折角度,转折角度是当前按键与前后两个相邻键所构成的夹角,为了避免经过去重后的相邻点带来的角度的变化,此处需要使用未去重的键位进行夹角的计算,输入序列的起始点和终点默认设置为180度。转折角度代表了用户的滑动意图,通常转折点附近的键位更有可能属于用户当前滑动的单词,所以转折角度是单词排序的重要依据,角度越大证明这个点的权重更高。但是由于用户在滑动时有一定的随意性,所以很多时候也会形成干扰,所以为了排除这种影响,规定a)转折角度只有大于一定的阈值才会发生实际效用;b)对于每一个转折角度大于预设阈值的键位,则将其和相邻的采样点进行比较,如果该点的转折角度是最大的,则将其他点的转折角度置为0,将经过修正后的输入序列作为最终键位序列,作为下一步骤的搜索条件。
[0059]在采样同时,记录轨迹滑动时手指停留在各个键位上的时长,并与键位序列中每个键位停留的平均时长进行比对,若某个键位停留时长与键位序列中每个键位停留的平均时长的比值超过阈值,则认为该输入键位为重叠键位。当用户想要输入重叠字母,如“good”,但是在滑动输入时轨迹仍是“god”,由于输入时,手指在“ο”处停留时间较其它键位停留时间更长,因此在该键位处能够取得更多的采样点。将用户在“ο”上面停留的时间除以其他键位的平均停留时间,得到的值如果大于设定的阈值,则证明用户在这个键位做了较多的停留,相应的在后续搜索的时候会对匹配“00”的单词额外的加上相应的权重。
[0060]步骤S3,根据键位序列从词库中搜索有可能为用户输入目标的单词,生成单词集合,并依据评分标准对单词集合内的各个单词进行评分。本实施例中使用的词库需要预先生成,词库采用的数据结构是一种Trie树的改良版本,Trie树又称为单词查找树,每一个节点上存储了该深度下所有可能的字符序列,可以快速的查找单词是否出现在词库中,这里为了改善空间的使用效率,采用了本领域的常用技术对查找树进行了压缩,当分支只包含一个子节点时,将其和子节点进行合并存储。
[0061]该过程中搜索模块3需要对词库存储模块6内的单词查找树进行多轮遍历,遍历过程中将匹配到的单词进行存储,遍历过程根据键位序列中的键位顺序依次进行。定义数组A和B用来分别存储遍历查找树时的中间状态和每一轮遍历结束后生成的新中间状态,中间状态内保存的信息包括本轮遍历起始节点和待匹配键位,新中间状态内保存的信息包括下一轮遍历起始节点和待匹配键位。遍历过程如下:
[0062]步骤a,对所有中间状态进行匹配操作和删除操作;
[0063]匹配操作,以起始节点为起点,待匹配键位为遍历目标,在起始节点的子节点中寻找可与待匹配键位匹配的目标子节点,若找到可与待匹配键位匹配的目标子节点,则生成新中间状态存储进数组B中,数组B内存储的中间状态包括实现匹配的目标子节点(即下一轮遍历的起始节点)和新的待匹配键位。
[0064]删除操作,从键位序列中与起始节点对应的键位开始依次删除i个键位,i依次取1、2、3.
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1