CN105353968A - 对滑动输入轨迹进行识别的系统及其识别方法 - Google Patents
对滑动输入轨迹进行识别的系统及其识别方法 Download PDFInfo
- Publication number
- CN105353968A CN105353968A CN201510700504.9A CN201510700504A CN105353968A CN 105353968 A CN105353968 A CN 105353968A CN 201510700504 A CN201510700504 A CN 201510700504A CN 105353968 A CN105353968 A CN 105353968A
- Authority
- CN
- China
- Prior art keywords
- key mapping
- word
- sequence
- score
- intermediateness
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/041—Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
- G06F3/0416—Control or interface arrangements specially adapted for digitisers
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Input From Keyboards Or The Like (AREA)
- Machine Translation (AREA)
Abstract
本发明涉及滑动输入技术领域,具体涉及一种对滑动输入轨迹进行识别的系统及其识别方法。采集用户滑动输入的轨迹,生成轨迹序列;将轨迹序列转化为键位序列,同时记录轨迹与各个键位相交的坐标以及相交点与相邻键位相交点连线夹角;根据键位序列从词库中搜索有可能为用户输入目标的单词,生成单词集合,并依据评分标准对单词集合内的各个单词进行评分;依据各个单词的评分高低对单词集合内的各个单词进行排序,并将多余单词删除;将排序后的单词集合显示输出。对用户的输入轨迹没有明确的限制,用户可以按照较为随意的方式划出目标单词。用户在滑动过程中不需要准确的经过每一个字母,系统可以自动进行临近键位的匹配。
Description
技术领域
本发明涉及滑动输入技术领域,具体涉及一种对滑动输入轨迹进行识别的系统及其识别方法。
背景技术
随着电子设备的流行,越来越多的技术方案被提出来用于解决触摸屏上基于软键盘的输入问题。传统的输入法通常在触摸屏幕上模拟出一个完整的键盘,让用户通过按压屏幕上的虚拟键位完成输入。但是由于屏幕大小的限制,虚拟按键所占据的区域十分有限,用户输入的时候容易发生误触,同时这种输入方式需要用户依次准确的点击单词的每一个字母,用户输入的速度受到限制。后来发展出的另一种输入方法是让用户在触摸屏上使用手指依次划过单词的每一个字母所在的位置,这一过程中用户的手指不需要离开屏幕,根据所使用的算法的不同,也不需要用户精确的定位到每一个字母,所以可以极大的提高用户的输入速度,改善了用户的输入体验。
现有的滑动输入法的思想通常继承于手势识别算法,记录用户滑动的轨迹,并和单词库中的标准轨迹进行相似度的对比,从而选出相似度最高的结果。这种方法的缺点在于限制了用户滑动的方式,比如对于单词“right”,用户可以按照最短的轨迹,如图1所示,划出单词,也可能由于某些原因,按照图2的方式划出单词,如果基于轨迹相似度来判断,第二种方式的相似度是非常低的,从而无法给出正确的预测。其次,如果用户在输入较长的单词时,有可能会漏掉个别字母,从而导致轨迹变形,预测失败。最后轨迹相似度的比对会消耗较大的计算量,其实现方法也非常复杂,需要做抽样和坐标变化等预处理操作。
发明内容
为解决上述技术问题,本发明提供了一种更快速,自由度更高,更易于实现的对滑动输入轨迹进行识别的系统及其识别方法。
本发明一种对滑动输入轨迹进行识别的系统,其技术方案是:包括
输入模块:用于向用户提供虚拟键位的坐标信息,辅助用户完成输入和滑动操作;
滑动轨迹记录模块:用于采集输入模块内的滑动轨迹,并对滑动轨迹进行预处理,将轨迹序列转换为键位序列发送至搜索模块;
搜索模块:根据输入的键位序列,从词库存储模块内搜索有可能为用户输入目标的单词,生成单词集合,并将单词集合发送给排序模块;
排序模块:综合滑动轨迹的匹配得分和词频得分,对单词集合内的单词进行排序,并将多余单词删除,将排序后新形成的单词集合发送给输出模块;
输出模块:用于将接收到的排序后的单词集合显示输出;
词库存储模块:用于存储常用单词。
本发明一种对滑动输入轨迹进行识别的方法,其技术方案是,包括以下步骤,
步骤S1:采集用户滑动输入的轨迹,生成轨迹序列;
步骤S2:将轨迹序列转化为键位序列,同时记录轨迹与各个键位相交的坐标以及相交点与相邻键位相交点连线夹角;
步骤S3:根据键位序列从词库中搜索有可能为用户输入目标的单词,生成单词集合,并依据评分标准对单词集合内的各个单词进行评分;
步骤S4:依据各个单词的评分高低对单词集合内的各个单词进行排序,并将多余单词删除;
步骤S5:将排序后的单词集合显示输出;
进一步的,所述步骤S2中,滑动轨迹记录模块将轨迹序列与输入模块上的键盘布局进行对照,依据轨迹与键盘上不同键位相交的顺序将轨迹序列转换成由各个键位组成的键位序列;
记录并存储轨迹与键位序列中各个键位的相交坐标、键位序列中各个键位中心点坐标、相交点与相邻键位相交点连线夹角;
记录轨迹滑动时手指停留在各个键位上的时长,并与键位序列中每个键位停留的平均时长进行比对,若某个键位停留时长与键位序列中每个键位停留的平均时长的比值超过阈值,则认为该输入键位为重叠键位。
进一步的,所述步骤S3中,搜索模块对词库存储模块内的单词查找树进行多轮遍历,遍历过程中将匹配到的单词进行存储;
所述遍历过程根据键位序列中的键位顺序依次进行,遍历过程中将每轮遍历得到的所有中间状态进行存储,所述中间状态内保存的信息包括本轮遍历起始节点和待匹配键位,所述遍历过程如下:
步骤a,对所有中间状态进行匹配操作和删除操作;
匹配操作,以起始节点为起点,待匹配键位为遍历目标,在起始节点的子节点中寻找可与待匹配键位匹配的目标子节点,若找到可与待匹配键位匹配的目标子节点,则生成新中间状态并将原中间状态删除,更新后的中间状态内包括目标子节点和新的待匹配键位;
删除操作,从键位序列中与起始节点对应的键位开始依次删除i个键位,i依次取1、2、3......n,依次以第i+1个键位为遍历目标,在起始节点的子节点中寻找可与之匹配的目标子节点,生成新中间状态并将原中间状态删除,更新后的中间状态数量与可匹配目标子节点数量相对应,每个更新后的中间状态内包括一个可匹配目标子节点和新的待匹配键位,所述新的待匹配键位为可匹配目标子节点对应键位的下一个键位;
步骤b,对所有新的中间状态进行新一轮的匹配与删除操作;
重复步骤b,直至键位序列中所有键位遍历完成;
所述遍历过程中,匹配目标节点后可形成一个单词时,则将该单词进行存储。
进一步的,所述步骤S3中,搜索模块对词库存储模块内的单词查找树进行多轮遍历,遍历过程中将匹配到的单词进行存储;
所述遍历过程根据键位序列中的键位顺序依次进行,遍历过程中将每轮遍历得到的所有中间状态进行存储,所述中间状态内保存的信息包括本轮遍历起始节点和待匹配键位,所述遍历过程如下:
步骤a,对所有中间状态进行匹配操作和删除操作;
匹配操作,以起始节点为起点,待匹配键位为遍历目标,在起始节点的子节点中寻找可与待匹配键位或键盘上与待匹配键位相邻其它键位匹配的目标子节点,若找到可与待匹配键位以及键盘上与其相邻其它键位匹配的目标子节点,则生成新中间状态并将原中间状态删除,更新后的中间状态内包括目标子节点和新的待匹配键位;
删除操作,从键位序列中与起始节点对应的键位开始依次删除i个键位,i依次取1、2、3......n,依次以第i+1个键位为遍历目标,在起始节点的子节点中寻找可与之匹配或可与其键盘上相邻键位匹配的目标子节点,生成新中间状态并将原中间状态删除,更新后的中间状态数量与可匹配目标子节点数量相对应,每个更新后的中间状态内包括一个可匹配目标子节点和新的待匹配键位,所述新的待匹配键位为可匹配目标子节点对应键位的下一个键位;
步骤b,对所有新的中间状态进行新一轮的匹配与删除操作;
重复步骤b,直至键位序列中所有键位遍历完成;
所述遍历过程中,匹配目标节点后可形成一个单词时,则将该单词进行存储。
进一步的,所述匹配操作过程中,若起始节点的子节点中存在与起始节点相同的节点,则将该节点自动匹配,在该节点的子节点中寻找可与待匹配键位匹配的目标子节点,同时以起始节点为起点,在起始节点的子节点中寻找可与待匹配键位匹配的目标子节点。
进一步的,所述每轮遍历均对中间状态进行评分,所述评分过程考虑匹配得分与惩罚得分,所述匹配得分与惩罚得分综合运算后生成该中间状态的状态得分,每次遍历的中间状态得分进行叠加形成遍历所得的每个单词的得分,将最终生成的单词得分进行存储;
所述匹配得分用于匹配操作,根据轨迹与键位序列中各个键位的相交坐标、键位序列中各个键位中心点坐标、相交点与相邻键位相交点连线夹角进行计算,所述匹配操作完成后,滑动轨迹与对应键位的相交点坐标至键位中心点坐标之间的距离越小,该中间状态的匹配得分越高,相交点与相邻键位相交点连线夹角越大,匹配得分越高;
所述惩罚得分用于删除操作,所述删除操作完成后,若删除键位为单个,则根据该删除键位的轨迹相交点与相邻键位相交点连线夹角的大小进行计算,夹角越大,惩罚得分越高;若删除键位为多个,则根据这几个键位与前后两个键位构成的多边形面积大小进行计算,面积越大,惩罚得分越高。
进一步的,所述评分过程中,若单词中包含可与输入重叠键位相对应的重叠字母,则给予该单词更高的单词得分。
进一步的,所述步骤S4中,每个单词得分需与该单词的词频得分综合运算后生成排序得分,并根据排序得分进行单词排序,所述词频得分为语料库中单词使用频率根据用户输入习惯修正后的修正得分。
进一步的,所述每轮遍历结束后均根据新生成的中间状态对所有可能为用户输入目标的单词进行枚举,根据所有中间状态的累计得分进行单词排序,并将该排序后的单词实时输出。
本发明的有益效果:对用户的输入轨迹没有明确的限制,用户可以按照较为随意的方式划出目标单词。用户在滑动过程中不需要准确的经过每一个字母,系统可以自动进行临近键位的匹配。在输入较长的单词时,系统可以允许用户省略掉个别字母,不影响最终的输出结果,从而改善了用户的输入体验。将轨迹相似度问题转换为序列的搜索匹配问题,可以实现在用户滑动的同时,将当前的最佳匹配实时输出,不需要用户将完整的轨迹全部完成,节省时间。除此以外,本发明由于将轨迹转换成键位序列,基于单词查找树的同一个词库能同时满足滑动输入与非滑动输入两种状态,有效的减小了占用内存。系统实现更为容易,计算需求更小,响应速度更快,即使在性能较差的设备上也能够很好的响应用户的输入。
附图说明
图1为“right”的第一种输入轨迹示意图;
图2为“right”的第二种输入轨迹示意图;
图3为本发明系统连接结构框图;
图4为本发明方法流程图;
图5为单词查找树示意图;
图中:1—输入模块,2—滑动轨迹记录模块,3—搜索模块,4—排序模块,5—输出模块,6—词库存储模块。
具体实施方式
以下结合附图和具体实施例对本发明作进一步的详细说明:
本发明的实施例包括但不限于包含触摸屏的电子设备,任何能够提供滑动方式进行交互的场景下都可以应用本发明。在描述本发明的具体实施方案时,主要使用英文作为例子,本发明的适用性并不依赖于特定的语言。
如图1和图2所示分别为英文单词“right”的两种滑动输入轨迹,本发明主要以图2的输入轨迹进行说明。
如图3所示为本发明所示系统的连接结构框图,包括输入模块1:用于向用户提供虚拟键位的坐标信息,辅助用户完成输入和滑动操作;滑动轨迹记录模块2:用于采集输入模块内的滑动轨迹,并对滑动轨迹进行预处理,将轨迹序列转换为键位序列发送至搜索模块;搜索模块3:根据输入的键位序列,从词库存储模块内搜索有可能为用户输入目标的单词,生成单词集合,并将单词集合发送给排序模块;排序模块4:综合滑动轨迹的匹配得分和词频得分,对单词集合内的单词进行排序,并将多余单词删除,将排序后新形成的单词集合发送给输出模块;输出模块5:用于将接收到的排序后的单词集合显示输出;词库存储模块6:用于存储常用单词。输入模块和输出模块可以由手机触摸屏代替。
利用该系统进行识别的方法其步骤如图4所示:
步骤S1,采集用户滑动输入的轨迹,生成轨迹序列。在滑动轨迹记录模块2内设置计时器和采样间隔,当用户手指开始和设备发生接触时,对用户的轨迹进行采样,得到轨迹序列。
步骤S2,将轨迹序列转化为键位序列,同时记录轨迹与各个键位相交的坐标以及相交点与相邻键位相交点连线夹角。将轨迹序列与输入模块上的键盘布局进行对照,依据轨迹与键盘上不同键位相交的顺序将轨迹序列转换成由各个键位组成的键位序列。比如图2种滑动轨迹起点和键位“R”相交,那么键位序列的第一个键位变成对应的键位“R”。与此同时,记录并存储轨迹与键位序列中各个键位的相交坐标、键位序列中各个键位中心点坐标、相交点与相邻键位相交点连线夹角,即当前键位的转折角度。
由于轨迹是由一系列采样点构成,而采样的时间间隔很短,键位序列中会有许多重复的键位,比如划过字母r时得到的序列是rrr,针对这种情况,取距离键盘上虚拟键位r中心点最近的,去掉其他点。在本实施例中轨迹与键位的相交坐标以与键位中心距离最近的采样点坐标为准。计算每一个键位的转折角度,转折角度是当前按键与前后两个相邻键所构成的夹角,为了避免经过去重后的相邻点带来的角度的变化,此处需要使用未去重的键位进行夹角的计算,输入序列的起始点和终点默认设置为180度。转折角度代表了用户的滑动意图,通常转折点附近的键位更有可能属于用户当前滑动的单词,所以转折角度是单词排序的重要依据,角度越大证明这个点的权重更高。但是由于用户在滑动时有一定的随意性,所以很多时候也会形成干扰,所以为了排除这种影响,规定a)转折角度只有大于一定的阈值才会发生实际效用;b)对于每一个转折角度大于预设阈值的键位,则将其和相邻的采样点进行比较,如果该点的转折角度是最大的,则将其他点的转折角度置为0,将经过修正后的输入序列作为最终键位序列,作为下一步骤的搜索条件。
在采样同时,记录轨迹滑动时手指停留在各个键位上的时长,并与键位序列中每个键位停留的平均时长进行比对,若某个键位停留时长与键位序列中每个键位停留的平均时长的比值超过阈值,则认为该输入键位为重叠键位。当用户想要输入重叠字母,如“good”,但是在滑动输入时轨迹仍是“god”,由于输入时,手指在“o”处停留时间较其它键位停留时间更长,因此在该键位处能够取得更多的采样点。将用户在“o”上面停留的时间除以其他键位的平均停留时间,得到的值如果大于设定的阈值,则证明用户在这个键位做了较多的停留,相应的在后续搜索的时候会对匹配“oo”的单词额外的加上相应的权重。
步骤S3,根据键位序列从词库中搜索有可能为用户输入目标的单词,生成单词集合,并依据评分标准对单词集合内的各个单词进行评分。本实施例中使用的词库需要预先生成,词库采用的数据结构是一种Trie树的改良版本,Trie树又称为单词查找树,每一个节点上存储了该深度下所有可能的字符序列,可以快速的查找单词是否出现在词库中,这里为了改善空间的使用效率,采用了本领域的常用技术对查找树进行了压缩,当分支只包含一个子节点时,将其和子节点进行合并存储。
该过程中搜索模块3需要对词库存储模块6内的单词查找树进行多轮遍历,遍历过程中将匹配到的单词进行存储,遍历过程根据键位序列中的键位顺序依次进行。定义数组A和B用来分别存储遍历查找树时的中间状态和每一轮遍历结束后生成的新中间状态,中间状态内保存的信息包括本轮遍历起始节点和待匹配键位,新中间状态内保存的信息包括下一轮遍历起始节点和待匹配键位。遍历过程如下:
步骤a,对所有中间状态进行匹配操作和删除操作;
匹配操作,以起始节点为起点,待匹配键位为遍历目标,在起始节点的子节点中寻找可与待匹配键位匹配的目标子节点,若找到可与待匹配键位匹配的目标子节点,则生成新中间状态存储进数组B中,数组B内存储的中间状态包括实现匹配的目标子节点(即下一轮遍历的起始节点)和新的待匹配键位。
删除操作,从键位序列中与起始节点对应的键位开始依次删除i个键位,i依次取1、2、3......n,n为设定的最多可删除键位数或键位序列的总键位数,依次以第i+1个键位为遍历目标,在起始节点的子节点中寻找可与之匹配的目标子节点,生成新中间状态存储进数组B中,数组B存储的新生成的中间状态数量与可匹配目标子节点数量相对应,每个更新后的中间状态内包括一个可匹配目标子节点(即下一轮遍历的起始节点)和新的待匹配键位,所述新的待匹配键位为可匹配目标子节点对应键位的下一个键位;
步骤b,将数组B内的值赋予A,对数组A内所有新的中间状态进行新一轮的匹配与删除操作;
重复步骤b,直至键位序列中所有键位遍历完成。在遍历的过程中,若匹配目标节点后可形成一个单词时,则将该单词进行存储。
遍历为初始状态时,数组B为空,初始状态的起始节点设置为单词查找树的根节点,键位序列置为开头。如果当前节点N的子节点中存在和键位序列下一个键位Pk匹配的节点Nc,那么生成一个新状态(Nc,Pk+1)加入数组B,k为当前键位在键位序列中的位置。新状态以当前匹配的子节点Nc和序列中下一个待匹配键位Pk+1作为唯一索引。如对于单词right,从初始节点开始,存在以r开头的字母,所以词典中也能够找到一个和根节点相连的子节点其关联的路径是字母r,这时能够进行一次成功的匹配。
由于用户想滑动包括重叠字母的单词,如单词是good,但是输入序列只会包含一个字母o,输入序列实际上不存在完整的g-o-o-d序列,因此,在匹配操作过程中,需要进一步考虑重叠字母的问题。本发明在进行匹配操作时,若起始节点的子节点中存在与起始节点相同的节点,则将该节点自动匹配,在该节点的子节点中寻找可与待匹配键位匹配的目标子节点,同时以起始节点为起点,在起始节点的子节点中寻找可与待匹配键位匹配的目标子节点,以此来实现重叠字母的匹配。比如需要在匹配到前缀go时,判断当前树节点是否包含以o作为路径的子节点,如果存在,则认为输入o同时匹配了当前节点和其以o作为路径的子节点。
对于同一个中间状态,除去匹配操作以外,还需要进行删除操作。删除操作采用枚举法,依次删除i个键位,i依次取1、2、3......n,即第一次删除一个键位,第二次删除该键位和与它相邻的下一个键位,以此类推,直至下一个键位可以匹配为止。删除操作中可以删除连续的多个输入键位,但是删除多个输入键位后,一个输入键位必须能够在当前树节点N的子节点中找到一个匹配的路径。如,一次性删除了键位P2—Pk,而键位Pk+1可以实现与树节点的匹配,则该删除操作成立,并将该树节点和待匹配键位Pk+2作为下一轮遍历的索引。对于图2提供的输入序列“rdfcvbjiuyghjiuyt”,假设此时考虑的中间状态已经匹配了字母r,并且词典中只包含一个以r开头的单词right,这时进行删除操作,依次考虑删除d,df,dfc,dfcvb....,均不能成功完成之后的匹配,只有删除到dfcvbj时,发现存在r到i的连接,能够完成匹配,这时便进行了一次成功的删除操作。
根据用户要求,本发明还以开启模糊匹配模式,在该模式下允许输入键位可以和虚拟键盘上对应字母的相邻字母匹配,这种扩展使得用户不需要完全准确的滑过目标单词的所有键位,而只需要经过目标键位附近的区域即可。采用该模式在遍历过程中,匹配操作,以起始节点为起点,待匹配键位为遍历目标,在起始节点的子节点中寻找可与待匹配键位或键盘上与待匹配键位相邻其它键位匹配的目标子节点,若找到可与待匹配键位匹配的目标子节点,则生成新中间状态存储进数组B中,数组B内存储的中间状态包括实现匹配的目标子节点(即下一轮遍历的起始节点)和新的待匹配键位。
删除操作,从键位序列中与起始节点对应的键位开始依次删除i个键位,i依次取1、2、3......n,依次以第i+1个键位为遍历目标,在起始节点的子节点中寻找可与之匹配或可与其键盘上相邻键位匹配的目标子节点,生成新中间状态存储进数组B中,数组B存储的新生成的中间状态数量与可匹配目标子节点数量相对应,每个更新后的中间状态内包括一个可匹配目标子节点(即下一轮遍历的起始节点)和新的待匹配键位,所述新的待匹配键位为可匹配目标子节点对应键位的下一个键位。
在特定模式下,本发明还可以实现省略操作,在该模式下可以在用户滑动时无意中跳过部分字母时,避免遍历时无法找到目标单词。对中间状态执行省略时,直接认为当前节点的所有子节点都能够匹配。省略后的状态不是一个合法的新状态,需要再进行一次删除或者匹配操作。加入省略操作后,用户即使完全不经过某一个键位或其临近区域,也能够在最终的搜索状态中包含目标单词。
每轮遍历均对中间状态进行评分,评分过程考虑匹配得分与惩罚得分,匹配得分与惩罚得分综合运算后生成该中间状态的状态得分,每次遍历的中间状态得分进行叠加形成遍历所得的每个单词的得分,所述每个单词得分与该单词的词频得分综合运算后,将最终生成的排序得分进行存储。评分过程中,若单词中包含可与输入重叠键位相对应的重叠字母,则给予该单词更高的单词得分。匹配得分用于匹配操作,根据轨迹与键位序列中各个键位的相交坐标、键位序列中各个键位中心点坐标、相交点与相邻键位相交点连线夹角进行计算。所述匹配操作完成后,滑动轨迹与对应键位的相交点坐标至键位中心点坐标之间的距离越小,该中间状态的匹配得分越高,相交点与相邻键位相交点连线夹角越大,匹配得分越高。惩罚得分用于删除操作,所述删除操作完成后,若删除键位为单个,则根据该删除键位的轨迹相交点与相邻键位相交点连线夹角的大小进行计算。夹角越大,惩罚得分越高;若删除键位为多个,则根据这几个键位与前后两个键位构成的多边形面积大小进行计算,面积越大,惩罚得分越高。
步骤S4:将每个单词得分与该单词的词频得分进行综合运算,生成排序得分,根据排序得分进行单词排序,并将多余单词删除。在遍历过程中,可以将每个单词得分与该单词的词频得分综合运算后所得的排序得分进行存储,利用排序模块排序后一次输出,也可以将中间状态的得分实时统计,枚举可能为用户输入目标的单词实时输出。词频得分为语料库中单词使用频率根据用户输入习惯修正后的修正得分。若用户希望在没有滑出完整单词的时就给出正确结果,可以在用户滑动的过程中,每隔一段时间触发一次搜索算法,使用当前的输入序列进行搜索,将数组A中遍历到得状态进行补全操作,比如用户希望输入experience,但是实际已经完成的输入时experie,此时当遍历算法已经枚举完所有的输入序列时,单词集合中依然不会出现目标单词,而数组A中包含了能够到达目标单词结尾的中间状态,这时需要对数组A中的结果进行补全操作,即将所有能够通过A中的中间状态访问到的单词加入单词集合中。根据每个单词内中间状态的累计得分生成排序,从而使得用户输入单词出现在最终的预测结果中。
步骤S5:将排序后的单词集合显示输出,供用户选择。
基于本发明的方案在识别图2所示第二种滑动轨迹的时候,输入轨迹会被首先转换为键位序列“rdfcvbjiuyghjiuyt”,然后按照在词典中搜索,搜索过程中目标单词需要依次删除dfcvbj、uy,jiuy这些字符,这里有两个明显的多余转折轨迹分别在dfcvbj序列中的字母c处,和jiuy中的i处,由于删除惩罚的存在,他们会降低目标单词的最终得分,最终的搜索结果中会包含序列中所有可能组合出的单词,排序后right依然出现在最靠前的位置。
以上所述,仅为本发明的具体实施方式,应当指出,任何熟悉本领域的技术人员在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种对滑动输入轨迹进行识别的系统,其特征在于,包括
输入模块(1):用于向用户提供虚拟键位的坐标信息,辅助用户完成输入和滑动操作;
滑动轨迹记录模块(2):用于采集输入模块内的滑动轨迹,并对滑动轨迹进行预处理,将轨迹序列转换为键位序列发送至搜索模块;
搜索模块(3):根据输入的键位序列,从词库存储模块内搜索有可能为用户输入目标的单词,生成单词集合,并将单词集合发送给排序模块;
排序模块(4):综合滑动轨迹的匹配得分和词频得分,对单词集合内的单词进行排序,并将多余单词删除,将排序后新形成的单词集合发送给输出模块;
输出模块(5):用于将接收到的排序后的单词集合显示输出;
词库存储模块(6):用于存储常用单词。
2.一种利用权利要求1所述对滑动输入轨迹进行识别的系统进行识别的方法,其特征在于,包括以下步骤,
步骤S1:采集用户滑动输入的轨迹,生成轨迹序列;
步骤S2:将轨迹序列转化为键位序列,同时记录轨迹与各个键位相交的坐标以及相交点与相邻键位相交点连线夹角;
步骤S3:根据键位序列从词库中搜索有可能为用户输入目标的单词,生成单词集合,并依据评分标准对单词集合内的各个单词进行评分;
步骤S4:依据各个单词的评分高低对单词集合内的各个单词进行排序,并将多余单词删除;
步骤S5:将排序后的单词集合显示输出。
3.如权利要求2所述的对滑动输入轨迹进行识别的方法,其特征在于:所述步骤S2中,滑动轨迹记录模块(2)将轨迹序列与输入模块上的键盘布局进行对照,依据轨迹与键盘上不同键位相交的顺序将轨迹序列转换成由各个键位组成的键位序列;
记录并存储轨迹与键位序列中各个键位的相交坐标、键位序列中各个键位中心点坐标、相交点与相邻键位相交点连线夹角;
记录轨迹滑动时手指停留在各个键位上的时长,并与键位序列中每个键位停留的平均时长进行比对,若某个键位停留时长与键位序列中每个键位停留的平均时长的比值超过阈值,则认为该输入键位为重叠键位。
4.如权利要求2所述对滑动输入轨迹进行识别的方法,其特征在于:所述步骤S3中,搜索模块(3)对词库存储模块(6)内的单词查找树进行多轮遍历,遍历过程中将匹配到的单词进行存储;
所述遍历过程根据键位序列中的键位顺序依次进行,遍历过程中将每轮遍历得到的所有中间状态进行存储,所述中间状态内保存的信息包括本轮遍历起始节点和待匹配键位,所述遍历过程如下:
步骤a,对所有中间状态进行匹配操作和删除操作;
匹配操作,以起始节点为起点,待匹配键位为遍历目标,在起始节点的子节点中寻找可与待匹配键位匹配的目标子节点,若找到可与待匹配键位匹配的目标子节点,则生成新中间状态并将原中间状态删除,更新后的中间状态内包括目标子节点和新的待匹配键位;
删除操作,从键位序列中与起始节点对应的键位开始依次删除i个键位,i依次取1、2、3......n,依次以第i+1个键位为遍历目标,在起始节点的子节点中寻找可与之匹配的目标子节点,生成新中间状态并将原中间状态删除,更新后的中间状态数量与可匹配目标子节点数量相对应,每个更新后的中间状态内包括一个可匹配目标子节点和新的待匹配键位,所述新的待匹配键位为可匹配目标子节点对应键位的下一个键位;
步骤b,对所有新的中间状态进行新一轮的匹配与删除操作;
重复步骤b,直至键位序列中所有键位遍历完成;
所述遍历过程中,匹配目标节点后可形成一个单词时,则将该单词进行存储。
5.如权利要求2所述对滑动输入轨迹进行识别的方法,其特征在于:所述步骤S3中,搜索模块(3)对词库存储模块(6)内的单词查找树进行多轮遍历,遍历过程中将匹配到的单词进行存储;
所述遍历过程根据键位序列中的键位顺序依次进行,遍历过程中将每轮遍历得到的所有中间状态进行存储,所述中间状态内保存的信息包括本轮遍历起始节点和待匹配键位,所述遍历过程如下:
步骤a,对所有中间状态进行匹配操作和删除操作;
匹配操作,以起始节点为起点,待匹配键位为遍历目标,在起始节点的子节点中寻找可与待匹配键位或键盘上与待匹配键位相邻其它键位匹配的目标子节点,若找到可与待匹配键位以及键盘上与其相邻其它键位匹配的目标子节点,则生成新中间状态并将原中间状态删除,更新后的中间状态内包括目标子节点和新的待匹配键位;
删除操作,从键位序列中与起始节点对应的键位开始依次删除i个键位,i依次取1、2、3......n,依次以第i+1个键位为遍历目标,在起始节点的子节点中寻找可与之匹配或可与其键盘上相邻键位匹配的目标子节点,生成新中间状态并将原中间状态删除,更新后的中间状态数量与可匹配目标子节点数量相对应,每个更新后的中间状态内包括一个可匹配目标子节点和新的待匹配键位,所述新的待匹配键位为可匹配目标子节点对应键位的下一个键位;
步骤b,对所有新的中间状态进行新一轮的匹配与删除操作;
重复步骤b,直至键位序列中所有键位遍历完成;
所述遍历过程中,匹配目标节点后可形成一个单词时,则将该单词进行存储。
6.如权利要求4或5所述对滑动输入轨迹进行识别的方法,其特征在于:所述匹配操作过程中,若起始节点的子节点中存在与起始节点相同的节点,则将该节点自动匹配,在该节点的子节点中寻找可与待匹配键位匹配的目标子节点,同时以起始节点为起点,在起始节点的子节点中寻找可与待匹配键位匹配的目标子节点。
7.如权利要求6所述对滑动输入轨迹进行识别的方法,其特征在于:所述步骤S3中,每轮遍历均对中间状态进行评分,所述评分过程考虑匹配得分与惩罚得分,所述匹配得分与惩罚得分综合运算后生成该中间状态的状态得分,每次遍历的中间状态得分进行叠加形成遍历所得的每个单词的得分,将最终生成的单词得分进行存储。
所述匹配得分用于匹配操作,根据轨迹与键位序列中各个键位的相交坐标、键位序列中各个键位中心点坐标、相交点与相邻键位相交点连线夹角进行计算,所述匹配操作完成后,滑动轨迹与对应键位的相交点坐标至键位中心点坐标之间的距离越小,该中间状态的匹配得分越高,相交点与相邻键位相交点连线夹角越大,匹配得分越高;
所述惩罚得分用于删除操作,所述删除操作完成后,若删除键位为单个,则根据该删除键位的轨迹相交点与相邻键位相交点连线夹角的大小进行计算,夹角越大,惩罚得分越高;若删除键位为多个,则根据这几个键位与前后两个键位构成的多边形面积大小进行计算,面积越大,惩罚得分越高。
8.如权利要求7所述对滑动输入轨迹进行识别的方法,其特征在于:所述评分过程中,若单词中包含可与输入重叠键位相对应的重叠字母,则给予该单词更高的单词得分。
9.如权利要求8所述对滑动输入轨迹进行识别的方法,其特征在于:所述步骤S4中,每个单词得分需与该单词的词频得分综合运算后生成排序得分,并根据排序得分进行单词排序,所述词频得分为语料库中单词使用频率根据用户输入习惯修正后的修正得分。
10.如权利要求9所述对滑动输入轨迹进行识别的方法,其特征在于:所述每轮遍历结束后均根据新生成的中间状态对所有可能为用户输入目标的单词进行枚举,根据所有中间状态的累计得分进行单词排序,并将该排序后的单词实时输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510700504.9A CN105353968B (zh) | 2015-10-23 | 2015-10-23 | 对滑动输入轨迹进行识别的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510700504.9A CN105353968B (zh) | 2015-10-23 | 2015-10-23 | 对滑动输入轨迹进行识别的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105353968A true CN105353968A (zh) | 2016-02-24 |
CN105353968B CN105353968B (zh) | 2018-07-03 |
Family
ID=55329947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510700504.9A Active CN105353968B (zh) | 2015-10-23 | 2015-10-23 | 对滑动输入轨迹进行识别的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105353968B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943319A (zh) * | 2017-11-28 | 2018-04-20 | 科大讯飞股份有限公司 | 一种模拟输入法操作的方法及装置 |
CN109032378A (zh) * | 2018-07-13 | 2018-12-18 | 汉王科技股份有限公司 | 一种滑行输入方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101719022A (zh) * | 2010-01-05 | 2010-06-02 | 汉王科技股份有限公司 | 用于全功能键盘的字符输入方法及其处理装置 |
US20120223889A1 (en) * | 2009-03-30 | 2012-09-06 | Touchtype Ltd | System and Method for Inputting Text into Small Screen Devices |
CN102880302A (zh) * | 2012-07-17 | 2013-01-16 | 重庆优腾信息技术有限公司 | 一种基于多词连续输入的字词识别方法、装置和系统 |
CN103713845A (zh) * | 2013-12-16 | 2014-04-09 | 北京搜狗科技发展有限公司 | 筛选候选项的方法和装置、文字输入方法和输入法系统 |
-
2015
- 2015-10-23 CN CN201510700504.9A patent/CN105353968B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120223889A1 (en) * | 2009-03-30 | 2012-09-06 | Touchtype Ltd | System and Method for Inputting Text into Small Screen Devices |
CN101719022A (zh) * | 2010-01-05 | 2010-06-02 | 汉王科技股份有限公司 | 用于全功能键盘的字符输入方法及其处理装置 |
CN102880302A (zh) * | 2012-07-17 | 2013-01-16 | 重庆优腾信息技术有限公司 | 一种基于多词连续输入的字词识别方法、装置和系统 |
CN103713845A (zh) * | 2013-12-16 | 2014-04-09 | 北京搜狗科技发展有限公司 | 筛选候选项的方法和装置、文字输入方法和输入法系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943319A (zh) * | 2017-11-28 | 2018-04-20 | 科大讯飞股份有限公司 | 一种模拟输入法操作的方法及装置 |
CN107943319B (zh) * | 2017-11-28 | 2021-12-03 | 科大讯飞股份有限公司 | 一种模拟输入法操作的方法及装置 |
CN109032378A (zh) * | 2018-07-13 | 2018-12-18 | 汉王科技股份有限公司 | 一种滑行输入方法及装置 |
WO2020010789A1 (zh) * | 2018-07-13 | 2020-01-16 | 汉王科技股份有限公司 | 滑行输入方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105353968B (zh) | 2018-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11341419B2 (en) | Method of and system for generating a prediction model and determining an accuracy of a prediction model | |
EP2940557B1 (en) | Method and device used for providing input candidate item corresponding to input character string | |
CN102439542B (zh) | 电子设备的文本输入系统及文本输入方法 | |
JP5492187B2 (ja) | 編集距離および文書情報を使用する検索結果順位付け | |
CN101290632B (zh) | 一种用户词参与智能组词输入的方法及一种输入法系统 | |
CN106843737B (zh) | 文本输入方法、装置及终端设备 | |
CN111052064B (zh) | 自动提供基于手势的自动完成建议的方法及其电子设备 | |
US20090198644A1 (en) | Learning query rewrite policies | |
CN104281649A (zh) | 一种输入方法、装置及电子设备 | |
CN105224554A (zh) | 推荐搜索词进行搜索的方法、系统、服务器和智能终端 | |
US20220327151A1 (en) | Method for building ranking model, query auto-completion method and corresponding apparatuses | |
US8825620B1 (en) | Behavioral word segmentation for use in processing search queries | |
CN105447179A (zh) | 基于微博社交网络的话题自动推荐方法及其系统 | |
WO2021139209A1 (zh) | 查询自动补全的方法、装置、设备和计算机存储介质 | |
WO2017054332A1 (zh) | 路径查询方法、装置、设备及非易失性计算机存储介质 | |
CN111125538B (zh) | 一个利用实体信息增强个性化检索效果的搜索方法 | |
US10528328B2 (en) | Learning from input patterns in Programing-By-Example | |
US20220005546A1 (en) | Non-redundant gene set clustering method and system, and electronic device | |
CN112364126A (zh) | 一种关键词的提示方法、装置、计算机设备和存储介质 | |
CN105353968A (zh) | 对滑动输入轨迹进行识别的系统及其识别方法 | |
CN107832447A (zh) | 用于移动终端的用户反馈纠错方法、装置及其设备 | |
CN105025013B (zh) | 基于优先级Trie树的动态IP匹配模型的建立方法 | |
CN110020272A (zh) | 缓存方法、装置以及计算机存储介质 | |
EP3876563A1 (en) | Method and apparatus for broadcasting configuration information of synchronizing signal block, and method and apparatus for receiving configuration information of synchronizing signal block | |
CN101553810A (zh) | 字符转换装置和字符转换装置控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 1605 and 1606, Block A, Guanggu New World, 355 Guanshan Avenue, Donghu New Technology Development Zone, Wuhan City, Hubei Province Patentee after: Wuhan Yuelan Heart Network Technology Co., Ltd. Address before: 430074 Guanggu SBI Pioneer Street, Donghu New Technology Development Zone, Wuhan City, Hubei Province, 5 1601 blocks Patentee before: WUHAN YUERANXINDONG NETWORK TECHNOLOGY CO., LTD. |
|
CP03 | Change of name, title or address |