具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本实施例提供了一种基于滑动轨迹确定候选词的方法,该方法包括:
101:提取单词的标准滑动轨迹在各个采样特征点i的位置特征h(i);
其中,h(i)为一个二维坐标点,表示单词的标准滑动轨迹的各个采样特征点在软键盘的横坐标和纵坐标。
其中,单词可以是某一词库中的英文单词、或汉字对应的拼音字母,拼音字母可以是汉字对应的全拼字母或简拼字母,本实施例并不限定。
其中,滑动轨迹数据是一个等时间间隔的数据流,其采样频率随手机触屏的参数差异而不同,例如,采用频率可以在50Hz-200Hz之间,每一个采样特征点包含三维数据(x,y,sw),x和y为当前采样点的横、纵坐标,sw为一个反映压力的二值信号,表示手指或触笔按下和抬起的状态。在本发明中,不论组成单词的字符有多少个,每一次按下到抬起完成一个单词的输入。为了减小数据处理量,可以对滑动轨迹进行二次采样(或称重采样)。本实施例中所称的滑动轨迹既可以是一次采样的滑动轨迹,也可以是二次采样的滑动轨迹,本实施例并不限定。
参见图2所示的单词“dog”在软键盘的标准滑动轨迹,从起点字符d滑向字符o,再从字符o滑向终点字符g,按照单词字符的先后顺序滑动经过的轨迹即为单词“dog”在软键盘的标准滑动轨迹。
102:根据h(i)和组成该单词的字符所在的位置,生成该单词的匹配模板α(i);
以单词“dog”为例,当h(i)为d、o、g三个字符所在的位置时α(i)=1。
103:建立权值模板β(i);
在滑动输入过程中,一般来说,用户对于滑动输入的开始段和结尾段比较容易按准确,而对于中间部分则正确性较差,因此构建一个如图3所示的二次曲线的权值模板β(i):
β(i)=a×(i-N)2+b,并且其中,a和b为大于0的常数,i=1,...,N,N为自然数。
可见,权值模板β(i)意味着采样特征点头尾所占的权值较大,中间较小,采样特征点的权值从中间向两端非线性增长,可以通过大量数据的训练得到。
104:提取用户的输入滑动轨迹在各个采样特征点i的位置特征f(i);
其中,f(i)为一个二维坐标点,表示用户的输入滑动轨迹的各个采样特征点在软键盘的横坐标和纵坐标。图4所示为单词“dog”的h(i)(粗线所示)与f(i)(细线所示)的对照示意图。
其中,滑动轨迹的含义参考步骤101,这里不再赘述。
进一步的,可以对用户的输入滑动轨迹进行预处理,以获取其在各个采样特征点i的位置特征f(i),预处理包括大小归一化、点距均一化、以及平滑滤波等。
其中,大小归一化包括线性归一化等,用于消除轨迹在尺寸上的差异。点距均一化,用于对轨迹点进行等间距重采样,消除硬件采样率和手写速度的差异。平滑滤波,用于用高斯滤波器进行平滑,消除人手抖动等引起的轨迹不规则抖动,使轨迹平滑,同时减小空间坐标量化带来的影响等。
105:根据f(i)、h(i)、α(i)和β(i),计算用户的输入滑动轨迹与该单词的标准滑动轨迹之间的相似度Xs;
1051:根据
计算用户的输入滑动轨迹与单词的标准滑动轨迹之间的距离δ(i),其中,
d(f(i),h)=min(||f(i)-h(i-r)||,||f(i)-h(i-r+1)||,||f(i)-h(i-r+2)||,...,||f(i)-h(i+r-1)||,||f(i)-h(i+r)||)
d(h(i),f)=min(||h(i)-f(i-r)||,||h(i)-f(i-r+1)||,||h(i)-f(i-r+2)||,...,||h(i)-f(i+r-1)||,||h(i)-f(i+r)||)
radius为软键盘的按键半径,r为比对范围值,当α(i)=1时r=min(N-i,i),当α(i)=0时r=N/10,并且i+r≤N和0≤i-r。其中,||.||表示模值运算,例如设f(i)=(x1,y1),h(i)=(x2,y2),则
其他模值运算与此相同不再赘述。max表示取多个中的最大值。min表示取多个中的最小值。
本步骤应用弹性匹配机制可以增加匹配的正确性,根据d(f(i),h)可知,f(i)与h中[i-r,i+r]的采样特征点进行匹配,寻找距离最小的匹配值判定为f(i)与h的距离,或者,根据d(h(i),f)可知,h(i)与f中[i-r,i+r]的采样特征点进行匹配,寻找距离最小的匹配值判定为h(i)与f的距离。
1052:根据
计算用户的输入滑动轨迹与单词的标准滑动轨迹之间的相似度X
s。
其中,相似度Xs越小,则意味着两个轨迹越接近。
106:根据该相似度确定候选词。
具体的,按照单词的相似度由小到大的顺序,依次作为候选词。
进一步的,还可以根据相似度和单词的频率确定候选词,通常将相似度较小且频率较大的单词优先作为候选词。具体的,可以将相似度和单词的频率分别设定一权值,并根据加权后的相似度和频率的函数确定候选词。例如,S=m×Xs+n×Yf,其中,Xs为相似度,Yf为与单词的频率成反比的函数,单词的频率越大Yf越小,m为相似度的权值,n为频率的权值,按照S由小到大的顺序确定候选词。
本实施例通过提取单词的标准滑动轨迹在各个采样特征点的位置特征,建立单词的匹配模板和权值模板,提取用户的输入滑动轨迹在各个采样特征点的位置特征,并根据上述信息计算用户的输入滑动轨迹与该单词的标准滑动轨迹之间的相似度,进而根据相似度确定候选词,用户只需按照单词字符的先后顺序滑动就能确定候选词,避免了传统输入法中频繁的按下和抬起操作,有利于提高输入效率和正确率,从而提高了用户体验。
实施例2
参见图5,本实施例提供了一种基于滑动轨迹确定候选词的装置,包括:
单词特征提取模块201,用于提取单词的标准滑动轨迹在各个采样特征点i的位置特征h(i);
其中,单词可以是某一词库中的英文单词、或汉字对应的拼音字母,拼音字母可以是汉字对应的全拼字母或简拼字母,本实施例并不限定。
匹配模板生成模块202,用于根据h(i)和组成单词的字符所在的位置,生成单词的匹配模板α(i);
权值模板生成模块203,用于建立权值模板β(i);
输入数据特征提取模块204,用于提取用户的输入滑动轨迹在各个采样特征点i的位置特征f(i);
相似度计算模块205,用于根据f(i)、h(i)、α(i)和β(i),计算用户的输入滑动轨迹与单词的标准滑动轨迹之间的相似度Xs;
候选词确定模块206,用于根据相似度确定候选词。
其中,滑动轨迹数据(例如:单词的标准滑动轨迹、或用户的输入滑动轨迹)是一个等时间间隔的数据流,其采样频率随手机触屏的参数差异而不同,例如,采用频率可以在50Hz-200Hz之间,每一个采样特征点包含三维数据(x,y,sw),x和y为当前采样点的横、纵坐标,sw为一个反映压力的二值信号,表示手指或触笔按下和抬起的状态。在本发明中,不论组成单词的字符有多少个,每一次按下到抬起完成一个单词的输入。为了减小数据处理量,可以对滑动轨迹进行二次采样(或称重采样)。本实施例中所称的滑动轨迹既可以是一次采样的滑动轨迹,也可以是二次采样的滑动轨迹,本实施例并不限定。
其中,匹配模板生成模块202,具体用于
其中,权值模板生成模块203,具体用于
β(i)=a×(i-N)
2+b,并且
其中,a和b为大于0的常数,i=1,...,N,N为自然数。
其中,相似度计算模块205,具体用于根据
计算用户的输入滑动轨迹与单词的标准滑动轨迹之间的距离δ(i),其中,
d(f(i),h)=min(||f(i)-h(i-r)||,||f(i)-h(i-r+1)||,||f(i)-h(i-r+2)||,...,||f(i)-h(i+r-1)||,||f(i)-h(i+r)||)
d(h(i),f)=min(||h(i)-f(i-r)||,||h(i)-f(i-r+1)||,||h(i)-f(i-r+2)||,...,||h(i)-f(i+r-1)||,||h(i)-f(i+r)||)
radius为软键盘的按键半径,r为比对范围值,当α(i)=1时r=min(N-i,i),当α(i)=0时r=N/10,并且i+r≤N和0≤i-r;
根据
计算用户的输入滑动轨迹与单词的标准滑动轨迹之间的相似度X
s。
采用弹性匹配机制可以增加匹配的正确性,根据d(f(i),h)可知,f(i)与h中[i-r,i+r]的采样特征点进行匹配,寻找距离最小的匹配值判定为f(i)与h的距离,或者,根据d(h(i),f)可知,h(i)与f中[i-r,i+r]的采样特征点进行匹配,寻找距离最小的匹配值判定为h(i)与f的距离。
其中,候选词确定模块206,可以按照单词的相似度由小到大的顺序,依次作为候选词,相似度Xs越小,则意味着两个轨迹越接近。进一步的,参见图6,还可以根据相似度和单词的频率确定候选词,通常将相似度较小且频率较大的单词优先作为候选词,单词的词频可以根据词库获得。具体的,可以将相似度和单词的频率分别设定一权值,并根据加权后的相似度和频率的函数确定候选词。例如,S=m×Xs+n×Yf,其中,Xs为相似度,Yf为与单词的频率成反比的函数,单词的频率越大Yf越小,m为相似度的权值,n为频率的权值,按照S由小到大的顺序确定候选词。
本实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。并且,本实施例提供的装置可以是输入法引擎或其一部分。
本实施例通过提取单词的标准滑动轨迹在各个采样特征点的位置特征,建立单词的匹配模板和权值模板,提取用户的输入滑动轨迹在各个采样特征点的位置特征,并根据上述信息计算用户的输入滑动轨迹与该单词的标准滑动轨迹之间的相似度,进而根据相似度确定候选词,用户只需按照单词字符的先后顺序滑动就能确定候选词,避免了传统输入法中频繁的按下和抬起操作,有利于提高输入效率和正确率,从而提高了用户体验。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。