CN103502915A - 电子设备上基于屏幕软件健盘实现滑动输入文本的系统及方法 - Google Patents

电子设备上基于屏幕软件健盘实现滑动输入文本的系统及方法 Download PDF

Info

Publication number
CN103502915A
CN103502915A CN201180069878.5A CN201180069878A CN103502915A CN 103502915 A CN103502915 A CN 103502915A CN 201180069878 A CN201180069878 A CN 201180069878A CN 103502915 A CN103502915 A CN 103502915A
Authority
CN
China
Prior art keywords
word
text
sliding trace
user
electronic equipment
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
Application number
CN201180069878.5A
Other languages
English (en)
Other versions
CN103502915B (zh
Inventor
谢海潮
张卿
何琪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Chule Cootek Information Technology Co Ltd
Original Assignee
Shanghai Chule Cootek Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Chule Cootek Information Technology Co Ltd filed Critical Shanghai Chule Cootek Information Technology Co Ltd
Publication of CN103502915A publication Critical patent/CN103502915A/zh
Application granted granted Critical
Publication of CN103502915B publication Critical patent/CN103502915B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0488Interaction 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
    • G06F3/04883Interaction 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 for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction 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/0488Interaction 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
    • G06F3/04886Interaction 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 by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

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)
  • User Interface Of Digital Computer (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

提供一种电子设备上基于屏幕软件键盘实现滑动输入文本的系统,该系统包括特征词库模块、特征词库构建模块、用户接口模块、滑动轨迹特征提取模块、粗略分类过滤模块、粗略匹配过滤模块和精确匹配排序模块。还提供一种基于该系统实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法。该种电子设备上基于屏幕软件键盘实现滑动输入文本的系统及方法不仅可以保证速度,而且可以根据输入部分前序轨迹输入单词,并巧妙利用行进间预测输入,减小滑动距离,有效提高了单词文本的输入速度和准确度,降低用户操作复杂度,实现过程简单,使用方便快捷,工作性能稳定可靠,适用范围较为广泛,给人们工作和生活带来很大的便利。

Description

电子设备上基于屏幕软件键盘实现滑动输入文本的系统及方法 技术领域
本发明涉及电子设备输入控制领域, 特别涉及电子设备触摸屏幕信息输入技术领域, 具 体是指一种电子设备上基于屏幕软件键盘实现滑动输入文本的系统及方法。 背景技术
现代生活中, 随着集成电路技术的不断发展, 已经出现了各种各样的触摸犀电子设备, 在这些众多的配备触摸犀的电子设备(如掌上电脑、 智能手机、 嵌入式系统、 袖珍型电脑等) 上, 由于受到体积, 制造成本等因素的制约, 无法配备完善的硬件键盘, 因而在这类设备上 进行输入通常是通过软件模拟完成的。
通常, 在现有技术中, 传统的软件键盘会给用户的使用带来很大的不便。 这主要是由于 触摸犀面积较小, 供选择的内容较多, 所以相应的屏幕选择区域也较小。 这样就使得用户无 法直接通过手指准确的点击屏幕上的选择区域来进行输入而往往需要借助于其他具有更小触 点分辨率的工具, 如手写笔。
在大多数情况下, 这就要求用户同时使用双手进行操作: 一只手把握该电子设备, 另一 只手利用手写笔点击触摸犀进行输入。 即使如此, 在某些环境, 如行驶的汽车中, 即使借助 其它工具, 由于环境的影响, 如震动, 用户仍然可能由于环境的影响无法准确的选择要输入 的内容。
请参阅图 1所示, 通常在类似于的配备有较小面积触摸屏的设备 100上, 主要的输入是 通过软件键盘 102来完成的。 用户通过点击键盘上的键, 如键 104, 来完成输入。 而通常的 触摸屏软件在用户按压点击软件键盘上的键时即完成输入内容的选择。 为了达到精确输入的 目的, 用户通常需要借助一些点击分辨率较高的辅助工具, 如手写笔, 来进行输入。 即使如 此, 在某些情况下, 比如用户置身于一个正在开动的较颠簸的汽车中, 用户仍然会因为各种 原因错误点击了键盘上的内容而造成误操作。
另一种在触摸屏上输入文本的方式是滑动输入。 用户在一个软件键盘上依次滑过单词中 各个字母所在的位置, 输入想要的单词。 这种方式的优点是用户的手指不需要离开触摸屏, 滑动的速度可以比点击速度更快, 这样可以是输入更加快捷和方便。 但这种方式仍存在几大 问题:
1、 滑动轨迹会很不精确, 导致很难达到很高的预测准确率; 2、 计算复杂度高, 很难在有限计算能力的电子设备上实现;
3、要滑动出一个单词的完整轨迹才能完成计算, 对于一些较长的单词, 用户很难划出完 整的正确的轨迹。
所以在实际应用中, 仍然需要一种更准确、 更快速、 更易用的滑动输入系统和方法。 发明内容
本发明的目的是克服了上述现有技术中的缺点, 提供一种能够有效提高单词文本的输入 速度和准确度、 明显降低用户操作复杂度、 实现过程筒单、 使用方便快捷、 计算复杂度低、 适用范围较为广泛的电子设备上基于屏幕软件键盘实现滑动输入文本的系统。
本发明的另一个目的是提供一种能够基于该系统实现电子设备上基于屏幕软件键盘进行 滑动输入文本的方法。
为了实现上述的目的, 本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的系统 及方法如下:
该电子设备上基于屏幕软件键盘实现滑动输入文本的系统, 其主要特点是, 所述的系统 包括:
特征词库模块, 用于存储单词文本的理想滑动轨迹特征;
特征词库构建模块, 对于字典中的单词文本, 提取出对应的理想滑动轨迹特征并储存于 所述的特征词库模块中;
用户接口模块, 处理与用户的交互, 记录用户滑动轨迹, 并将文本候选词结果显示出来; 滑动轨迹特征提取模块, 接收所述的用户接口模块所记录的用户滑动轨迹, 并转换成为 待处理的用户滑动轨迹特征集合;
粗略分类过滤模块, 接收所述的滑动轨迹特征提取模块输出的用户滑动轨迹特征集合, 从所述的特征词库模块中分类过滤出与该用户滑动轨迹特征集合具有相似的理想滑动轨迹特 征的单词文本, 并组成初选单词文本集合;
粗略匹配过滤模块, 接收所述的粗略分类过滤模块输出的初选单词文本集合, 使用关键 特征集合的相似度, 根据该相似度排序并匹配过滤得到再选单词文本集合。
该电子设备上基于屏幕软件键盘实现滑动输入文本的系统中还包括:
精确匹配排序模块, 接收所述的粗略匹配过滤模块送来的再选单词文本集合, 并精确计
^ 亇 ' δ 、 、 2 ' ' " ' 合的精确相似度, 根据该精确相似度、 词频、 用户历史输入信息排序并得到文本候选词结果, 将该文本候选词结果返回至所述的用户接口模块。
该基于上述的系统实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其主要 特点是, 所述的方法包括以下步骤:
( 1 )特征词库构建处理操作,提取出字典中的单词文本所对应的理想滑动轨迹特征并储 存于所述的特征词库模块中;
( 2 )用户接口交互信息处理操作 , 处理与用户的交互信息, 记录用户滑动轨迹;
( 3 )滑动轨迹特征提取处理操作 , 将所述的用户接口模块所记录的用户滑动轨迹转换成 为待处理的用户滑动轨迹特征集合;
( 4 )粗略分类过滤处理操作,从所述的特征词库模块中分类过滤出与该用户滑动轨迹特 征集合具有相似的理想滑动轨迹特征的单词文本, 并组成初选单词文本集合;
( 5 )粗略匹配过滤处理操作,使用关键点特征计算该初选单词文本集合中各个单词文本 的理想滑动轨迹特征与所述的用户滑动轨迹特征集合的相似度, 根据该相似度排序并匹配过 滤得到再选单词文本集合, 并将该再选单词文本集合作为文本候选词结果返回至所述的用户 接口模块。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的步骤( 5 )中还包括对 再选单词文本集合的以下处理步骤:
( 6 )精确匹配排序处理操作,精确计算出该再选单词文本集合中每个单词文本的理想滑 动轨迹特征与所述的用户滑动轨迹特征集合的精确相似度, 根据该精确相似度、 词频、 用户 历史输入信息排序并得到文本候选词结果,将该文本候选词结果返回至所述的用户接口模块。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的单词文本的理想滑动 轨迹特征包括单词理想轨迹的理想轨迹长度和单词理想关键点序列, 所述的单词理想关键点 序列为该单词理想轨迹上的关键点的有序组合。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的关键点包括轨迹起止 关键点和一般关键点, 所述的一般关键点为轨迹上的拐点。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的特征词库模块中包含 K元倒排索引。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的 K元倒排索引为二元 倒排索引。 该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的 K元倒排索引中包含 从 Κ元关键点到单词节点的映射,所述单词节点包含单词标识和所述 Κ元关键点在所述单词 的理想滑动轨迹中出现的概率。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的特征词库模块中包括 单词特征表及单词理想轨迹索引表, 所述的单词特征表中的字段包括单词标识、 单词内容、 理想轨迹长度和单词长度, 所述的单词理想轨迹索引表引用单词特征表中的单词标识。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的单词理想轨迹可以为 根据大量训练数据从用户的滑动轨迹中所提取出的对应单词文本的大量相似轨迹, 或者该单 词理想轨迹也可以为单词的连续字母中心在屏幕软件键盘中的直线连线。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的将用户滑动轨迹转换 成为待处理的用户滑动轨迹特征集合, 包括以下步骤:
( 21 ) 系统对用户滑动轨迹进行轨迹预处理操作;
( 22 ) 系统对预处理后的用户滑动轨迹进行特征点提取处理操作。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的粗略分类过滤处理操 作中釆用增量计算的方法。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的粗略分类过滤处理操 作, 包括以下步骤:
( 31 )计算所述的特征词库模块中的单词与所述的用户滑动轨迹特征集合的粗略匹配度; ( 32 )如果该粗略匹配度大于系统预设的粗略匹配度阈值, 则将相应的单词加入所述的 初选单词文本集合中;
( 33 )返回上述步骤( 31 ), 直至遍历过特征词库模块中每一个单词。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算特征词库模块中 的单词与用户滑动轨迹特征集合的粗略匹配度, 包括以下步骤:
( 311 )根据用户滑动轨迹特征集合, 提取用户滑动轨迹上的关键点序列;
( 312 )根据所述的用户滑动轨迹上的关键点序列得到相应的 Κ元字符串集合;
( 313 )将该 Κ元字符串集合中的各个 Κ元字符串作为查询条件在所述的特征词库模块 中进行查询, 并取出所有查询命中的 Κ元字符串的概率和各概率所对应的单词文本;
( 314 )计算用户在输入滑动轨迹 W的前提下而实际希望得到单词文本 C的概率 P( C|W ); ( 315 )计算该滑动轨迹 W和该单词文本 C的粗略匹配度。 该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算特征词库模块中 的单词与用户滑动轨迹特征集合的粗略匹配度, 包含前缀匹配的方法。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算初选单词文本集 得到再选单词文本集合, 包括以下步骤:
( 41 )计算所述的初选单词文本集合中的单词的理想轨迹与所述的用户滑动轨迹特征集 合之间的线性匹配距离;
( 42 )如果该线性匹配距离小于系统预设的线性匹配距离阈值, 则将相应的单词加入所 述的再选单词文本集合中;
( 43 )返回上述步骤(41 ), 直至遍历过初选单词文本集合中每一个单词。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的步骤(41 )之前还包 括以下步骤:
( 40 )根据所述的用户滑动轨迹特征集合对初选单词文本集合中的单词的理想轨迹进行 轨迹切分。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的根据精确相似度、 词 频、 用户历史输入信息排序并得到文本候选词结果, 包括以下步骤:
( 61 )计算再选单词文本集合中每个单词文本与用户滑动轨迹特征集合的精确匹配距离; ( 62 )对所有的精确匹配距离进行大小排序;
( 63 )根据系统预设的文本候选词数量选择最小的精确匹配距离所对应的单词文本, 并 作为文本候选词结果。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的提取出单词文本所对 应的理想滑动轨迹特征并储存于特征词库模块中, 包括以下步骤:
( 11 )提取单词文本的理想轨迹长度和单词长度, 统计该单词文本的词频, 并存入所述 的单词特征表中的相应记录中, 所述的单词长度为该单词文本所包含的字符的个数;
( 12 )对单词文本进行二元切分得到二元字符串子集;
( 13 )根据以下公式计算二元字符串子集中每个二元字符串的概率 P ( Xk- iXk|C ):
P ( Xk- iXk|C ) = P ( Xk- i|C ) ρ ( Xk|C );
其中, C为单词文本, Xk- Xk均单词理想轨迹上的关键点, P ( Xk|C ) 为关键点 xk在 单词文本 C中出现的概率; ( 14 )根据所述的二元字符串子集中每个二元字符串的概率 P ( Xk XklC )及相应的单词 文本 W在单词特征表中的单词标识建立相应的二元倒排索引;
( 15 )根据所述的二元字符串子集所对应的全部二元倒排索引构建全局的单词理想轨迹 索引表。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的统计单词文本的词频 可以为自行统计或者基于来自互联网上的语料库进行统计。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的关键点在单词文本中 出现的概率可以为通过大量训练数据中单词对应的大量实际轨迹所计算出的该单词下关键点 的出现概率, 或者也可以为系统预设的关键点的出现概率。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的系统预设的关键点的 出现概率为 1 , 且关键点正好位于单词对应字母上。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的将用户滑动轨迹转换 成为待处理的用户滑动轨迹特征集合, 包括以下步骤:
( 21 ) 系统对用户滑动轨迹进行轨迹预处理操作;
( 22 ) 系统对预处理后的用户滑动轨迹进行特征点提取处理操作。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的对用户滑动轨迹进行 轨迹预处理操作, 包括以下步骤:
( 211 )对用户滑动轨迹进行大小归一化处理, 得到统一坐标系的点序列;
( 212 )对所述的点序列进行轨迹平滑处理, 得到去除抖动引起的噪点后的点序列。 该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的轨迹平滑处理, 具体 为:
对轨迹进行平滑处理, 消除因手抖动等原因所造成的滑动轨迹数据中的噪点。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的对轨迹进行平滑处 理, 具体为:
用均值滤波器的方法对轨迹进行平滑处理。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的对用户滑动轨迹进行 特征点提取处理操作 , 包括以下步骤:
( 221 )选取用户滑动轨迹上的关键点;
( 222 )计算用户滑动轨迹的长度。 该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的选取用户滑动轨迹上 的关键点, 包括以下步骤:
(2211)提取用户滑动轨迹的起止点作为起止关键点;
( 2212 )计算用户滑动轨迹的点序列中各点的斜率的变化率, 提取出轨迹中的拐点作为 一般关键点。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算用户滑动轨迹的 点序列中各点的斜率的变化率, 具体为:
使用二阶差分计算用户滑动轨迹的点序列中各点的斜率的变化率。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算用户滑动轨迹的 长度, 包括以下步骤:
(2221 )根据用户滑动轨迹的点序列, 计算每二个连续点之间的距离;
(2222)将所有的两个连续点之间的距离相加, 得到用户滑动轨迹的长度。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的分类过滤出与用户滑 下步骤:
( 31 )计算所述的特征词库模块中的单词与所述的用户滑动轨迹特征集合的粗略匹配度; ( 32 )如果该粗略匹配度大于系统预设的粗略匹配度阈值, 则将相应的单词加入所述的 初选单词文本集合中;
( 33 )返回上述步骤( 31 ), 直至遍历过特征词库模块中每一个单词。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算所述的特征词库 模块中的单词与所述的用户滑动轨迹特征集合的粗略匹配度, 可以包括以下步骤:
(311)根据用户滑动轨迹特征集合, 提取用户滑动轨迹的长度和用户滑动轨迹上的关键 点序列;
(312)根据所述的用户滑动轨迹上的关键点序列得到相应的二元字符串集合;
( 313 )将该二元字符串集合中的各个二元字符串作为查询条件在所述的特征词库模块中 进行查询, 并取出所有查询命中的二元字符串的概率和各概率所对应的单词文本;
(314)根据以下公式计算用户在输入滑动轨迹 W的前提下而实际希望得到单词文本 C 的概率 P (C|W):
P (C|W) =P ($ri|C) P ( r1 |C ) ...... P (rn-irn|C) P ( rn$|C ) P ( C ); 其中 ru^r^...rn为滑动轨迹 W的关键点序列, $n、 nr2 rn-irn, rn$为滑动轨迹 W的 关键点序列的二元字符串, P (C) 为单词文本 C出现的词频, $为标记首尾的特殊字符;
(315)根据以下公式计算该滑动轨迹 W和该单词文本 C的粗略匹配度 match_metricP (C|W):
match metricP ( C|W ) =
logP ( $ri|C ) + logP ( r1 |C ) + ... + logP ( rn— irn|C ) + logP ( rn$|C ) + logP ( C ); 其中 log为对数运算。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算所述的特征词库 模块中的单词与所述的用户滑动轨迹特征集合的粗略匹配度, 也可以包括以下步骤:
(321 ) 系统接收到用户所输入的部分滑动轨迹 V, 该部分滑动轨迹 V为用户应输入的 完整滑动轨迹 W的前缀轨迹;
( 322 )根据所述的部分滑动轨迹 V, 提取该部分滑动轨迹的长度和该部分滑动轨迹上的 关键点序列;
( 323 )根据所述的部分滑动轨迹上的关键点序列得到相应的二元字符串集合;
( 324 )将该二元字符串集合中的各个二元字符串作为查询条件在所述的特征词库模块中 进行查询, 并取出所有查询命中的二元字符串的概率和各概率所对应的单词文本;
(325 )根据以下公式计算用户在输入部分滑动轨迹 V 的前提下而实际希望得到单词文 本 C的概率 P ( C|V ):
P (C|V) =P ( $ri|C ) P ( r1 |C ) ...... P (rk1 |C) P ( rk$|C ) P ( C ); 其中!^!^^…!^为完整滑动轨迹 W的关键点序列, Γ134... 为部分滑动轨迹 V的关键 点序列, 且1^≤ $n、 nr2 -1 、 $为部分滑动轨迹 V的关键点序列的二元字符串, P
( C ) 为单词文本 C出现的词频, $为标记首尾的特殊字符;
( 326 )根据以下公式计算该部分滑动轨迹 V和该单词文本 C的粗略匹配度 match_metricP (C|V):
match metricP ( C|V ) =
logP ( $ri|C ) + logP ( r1 |C ) + ... + logP ( rk1 |C ) + logP ( rk$|C ) + logP ( C ); 其中 log为对数运算;
( 327 )将该部分滑动轨迹 V和该单词文本 C的粗略匹配度 match_metricP ( C|V )作为 该完整滑动轨迹 W和该单词文本 C的粗略匹配度 match_metricP ( C|W )。 该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算所述的特征词库 模块中的单词与所述的用户滑动轨迹特征集合的粗略匹配度, 还可以包括以下步骤:
( 331 ) 系统初始时将前段滑动轨迹 V设置为 0, 并将该前段滑动轨迹 V和单词文本 C 的粗略匹配度 match_metricP ( C|V )设置为 logP ( C ), 其中, P ( C )为单词文本 C出现的词 频;
( 332 ) 系统检测到用户在滑动轨迹上某点处的停留时间超过系统预设的停留时间阈值; ( 333 ) 系统接收到用户在此次滑动停留之前所输入的全部滑动轨迹 W;
( 334 )根据以下公式得到本段滑动轨迹 S, 并提取该本段滑动轨迹 S的长度和该本段滑 动轨迹 S上的关键点序列:
S = W - V;
( 335 )根据所述的本段滑动轨迹 S上的关键点序列得到相应的二元字符串集合;
( 336 )将该二元字符串集合中的各个二元字符串作为查询条件在所述的特征词库模块中 进行查询, 并取出所有查询命中的二元字符串的概率和各概率所对应的单词文本;
( 337 ) 根据以下公式计算该本段滑动轨迹 S 和该单词文本 C 的增量粗略匹配度 match metricP ( C|S ):
match metricP ( C|S ) = logP ( $rk|C ) + logP ( rkrk+ i|C ) + ... + logP ( rn- irn|C ) + logP ( rn$|C ); 其中, log为对数运算, rkrk+ 1...rn为本段滑动轨迹 S的关键点序列, $rk、 rkrk+ 1 rn - irn, rn$为本段滑动轨迹 S的关键点序列的二元字符串, $为标记首尾的特殊字符;
( 338 ) 根据以下公式计算该全部滑动轨迹 W 和该单词文本 C 的粗略匹配度 match metricP ( C|W ):
match metricP ( C|W ) = match metricP ( C|V ) + match metricP ( C|S ); ( 339 )将前段滑动轨迹 V设置为该全部滑动轨迹 W, 并将该前段滑动轨迹 V和单词文 本 C的粗略匹配度 match_metricP ( C|V )设置为该全部滑动轨迹 W和该单词文本 C的粗略 匹配度 match metricP ( C|W );
( 3310 )将该全部滑动轨迹 W和该单词文本 C的粗略匹配度 match_metricP ( C|W )作 为该完整滑动轨迹 T和该单词文本 C的粗略匹配度 match_metricP ( C|T )0
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算初选单词文本集 得到再选单词文本集合, 包括以下步骤: ( 41 )计算所述的初选单词文本集合中的单词的理想轨迹与所述的用户滑动轨迹特征集 合之间的线性匹配距离;
( 42 )如果该线性匹配距离小于系统预设的线性匹配距离阈值, 则将相应的单词加入所 述的再选单词文本集合中;
(43)返回上述步骤(41), 直至遍历过初选单词文本集合中每一个单词。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算所述的初选单词 文本集合中的单词的理想轨迹与所述的用户滑动轨迹特征集合之间的线性匹配距离, 包括以 下步骤:
(411 )根据单词的理想轨迹, 提取单词理想关键点序列, 并根据所述的用户滑动轨迹特 征集合, 提取用户滑动轨迹上的关键点序列;
( 412 )根据以下公式计算用户滑动轨迹上的关键点序列中的第一个关键点 n和单词理想 关键点序列中的第一个关键点 w之间的匹配距离 match_metric:
match—metric = distance ( ri, ui ) xw[ri];
其中 distance (p, q) q两点之间的距离, !:!^为关键点 n的权值;
( 413 )判断用户滑动轨迹上的关键点序列中的下一个关键点 1^和单词理想关键点序列中 的第一个关键点 u」之间的距离 distance , Uj )是否小于匹配距离阈值;
(414)如果是, 则根据以下公式计算匹配距离 match_metric:
match—metric = match—metric + distance ( r;, Uj ) xw[r;];
其中, w ]为关键点 的权值;
并将 i和 j各增加 1后继续步骤( 416 );
(415)如果否, 则将该距离 distance , Uj )记录于未匹配关键点集合中;
( 416 )判断是否已经遍历完所述的用户滑动轨迹上的关键点序列中所有的关键点或者遍 历完单词理想关键点序列中所有的关键点;
(417)如果否, 则返回上述步骤(413);
(418)如果是, 则判断所述的未匹配关键点集合是否为空;
(419)如果否, 则根据以下公式计算匹配距离 match_metric:
match—metric = match—metric + ^_id eS (t,- * τ[ζ]); 其中, = distance (r1? u」), S为未匹配关键点集合;
( 4110 )判断所遍历完的是用户滑动轨迹上的关键点序列中所有的关键点还是单词理想 关键点序列中所有的关键点;
( 4111 )如果所遍历完的是用户滑动轨迹上的关键点序列中所有的关键点, 则根据以下 公式计算匹配距离 match_metric: match—metric = match—metric + * ¾ k ]); 其中, uk为单词理想关键点序列中未遍历到的关键点, k = j , j + 1 , ... , η, η为单词理 想关键点序列中关键点的总数, ck为关键点 uk到用户滑动轨迹的最近距离;
( 4112 )如果所遍历完的是单词理想关键点序列中所有的关键点, 则根据以下公式计算 匹配 3巨离 match_metric: match—metric = match—metric + ^lk_i (ck * w[rk ]);
其中, rk为用户滑动轨迹上的关键点序列中未遍历到的关键点, k = i, i + 1 , m, m 为用户滑动轨迹上的关键点序列中关键点的总数, 为关键点 rk到单词的理想轨迹的最近距 离;
( 4113 )将所述的匹配距离 match_metric作为单词的理想轨迹与所述的用户滑动轨迹特 征集合之间的线性匹配距离。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的距离为欧氏距离。 该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的步骤(41 )之前还可 以包括以下步骤:
( 40 )根据所述的用户滑动轨迹特征集合对初选单词文本集合中的单词的理想轨迹进行 轨迹切分。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的根据用户滑动轨迹特 征集合对初选单词文本集合中的单词的理想轨迹进行轨迹切分, 包括以下步骤:
( 401 )根据单词的理想轨迹, 提取单词理想关键点序列, 并根据所述的用户滑动轨迹特 征集合, 提取用户滑动轨迹的长度和用户滑动轨迹上的关键点序列;
( 402 ) 根据以下公式计算单词的理想轨迹上每个单词理想关键点 d的路程长度 PathLen[i] :
PathLen[i] = PathLen[i _ 1] + distance ( Q- i , Q );
其中 i = 2 , 3 , n, n为单词理想关键点的总数, PathLen[l] = 0 , distance ( Q- i , Q ) 为单词理想关键点 d - 和 d之间的距离;
( 403 )逐一判断所述的用户滑动轨迹的长度 PathLenR是否满足以下关系: |PathLenR - PathLen[i] | <Tien diff;
其中 i = 2, 3 , n, Tlendlff为系统预设的轨迹切分长度阈值;
( 404 )如果满足, 则将单词理想关键点 Q加入到切分点候选集合中;
( 405 ) 重复上述步骤(403 ) 至(404 ), 直至遍历单词理想关键点序列中所有的单词理 想关键点;
( 406 )逐一判断所述的切分点候选集合中各个单词理想关键点 d是否满足以下关系: distance ( Pend, ) < Tdlsdlff
其中, i = 2, 3 , n, Pend为用户滑动轨迹上的关键点序列中的最后一个关键点, Tdlsdlff 为系统预设的轨迹切分距离阈值;
( 407 )如果满足, 则根据该单词理想关键点 对所述的单词的理想轨迹进行切分, 并 将从该单词的理想轨迹的起点至该单词理想关键点 Q之间的轨迹段作为该单词理想子轨迹加 入切分后的单词理想子轨迹集合中;
( 408 ) 重复上述步骤(406 ) 至(407 ), 直至遍历切分点候选集合中所有的单词理想关 键点。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的轨迹切分长度阈值 Tlendlff通过大量训练数据得到。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的轨迹切分距离阈值 dlff通过大量训练数据得到。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的计算初选单词文本集 合中的单词的理想轨迹与用户滑动轨迹特征集合之间的线性匹配距离, 具体为:
逐一将所述的切分后的单词理想子轨迹集合中各个单词理想子轨迹作为单词的理想轨 迹, 执行上述步骤 ( 411 ) 至(4112 ), 并选取所计算出的各个匹配距离 match_metric中最小 的一个作为该单词的理想轨迹与所述的用户滑动轨迹特征集合之间的线性匹配距离。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的精确计算出再选单词 文本集合中每个单词文本的理想滑动轨迹特征与用户滑动轨迹特征集合的精确相似度, 包括 以下步骤:
( 51 )对所述的再选单词文本集合中每个单词的理想滑动轨迹, 得到相应的理想轨迹点 序列;
( 52 )对所述的用户滑动轨迹, 得到用户轨迹点序列; ( 53 )根据所述的理想轨迹点序列和用户轨迹点序列计算每个单词的理想滑动轨迹与用 户滑动轨迹之间的相似距离;
( 54 )将所述的相似距离作为该单词文本的理想滑动轨迹特征与用户滑动轨迹特征集合 的精确相似度。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的根据理想轨迹点序列 和用户轨迹点序列计算每个单词的理想滑动轨迹与用户滑动轨迹之间的相似距离, 包括以下 步骤:
( 531 )对于所述的用户轨迹点序列中的每一个点 S[i], 根据以下公式将理想轨迹点序列 中的所有点 ·]与该点 S[i]之间的距离进行逐一累加计算, 并得到相似距离 DTW[i, j]:
DTW[i, j] = cost + min ( DTW[i - 1 , j], DTW[i, j - 1], DTW[i - 1 , j - 1] ); 其中 , cost = distance ( s[i] , t| ] ), distance ( s[i] , t|j] )为 s[i]和 t|j]两点之间的距离, DTW[0 , 0] = 0, i = 1 , 2, 3 , ... , η, η 为用户轨迹釆样点序列中点的总数, j = l , 2, 3 , m, m 为理想轨迹釆样点序列中点的总数, min ( DTW[i - 1 , j] , DTW[i, j - 1] , DTW[i - 1 , j - 1] ) 为 DTW[i _ 1 , j]、 DTW[i, j - 1]、 DTW[i - 1 , j - 1]三者中的最小值;
( 532 )重复上述步骤(531 ), 直至遍历所述的理想轨迹点序列中的所有点, 并得到累加 计算后的理想滑动轨迹与用户滑动轨迹之间的相似距离 DTW[n, m]。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的步骤(51 )之前还可 以包括以下步骤:
( 50 )根据所述的用户滑动轨迹特征集合对再选单词文本集合中的单词的理想轨迹进行 轨迹切分。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的根据用户滑动轨迹特 征集合对再选单词文本集合中的单词的理想轨迹进行轨迹切分, 包括以下步骤:
( 501 )根据单词的理想轨迹, 提取单词理想关键点序列, 并根据所述的用户滑动轨迹特 征集合, 提取用户滑动轨迹的长度和用户滑动轨迹上的关键点序列;
( 502 ) 根据以下公式计算单词的理想轨迹上每个单词理想关键点 d的路程长度 PathLen[i]:
PathLen[i] = PathLen[i _ 1] + distance ( Ci- i , Ci );
其中 i = 2, 3 , n, n为单词理想关键点的总数, PathLen[l] = 0, distance ( Q- i , Q ) 为单词理想关键点 d - 和 d之间的距离; ( 503 )逐一判断所述的用户滑动轨迹的长度 PathLenR是否满足以下关系:
|PathLenR - PathLen[i] | <Tien diff;
其中 i = 2, 3 , n, Tlendlff为系统预设的轨迹切分长度阈值;
( 504 )如果满足, 则将单词理想关键点 Q加入到切分点候选集合中;
( 505 ) 重复上述步骤(503 ) 至(504 ), 直至遍历单词理想关键点序列中所有的单词理 想关键点;
( 506 )逐一判断所述的切分点候选集合中各个单词理想关键点 d是否满足以下关系: distance ( Pend, d ) < Tdlsdlff;
其中, i = 2, 3 , n, Pend为用户滑动轨迹上的关键点序列中的最后一个关键点, Tdlsdlff 为系统预设的轨迹切分距离阈值;
( 507 )如果满足, 则根据该单词理想关键点 对所述的单词的理想轨迹进行切分, 并 将从该单词的理想轨迹的起点至该单词理想关键点 Q之间的轨迹段作为该单词理想子轨迹加 入切分后的单词理想子轨迹集合中;
( 508 ) 重复上述步骤(506 ) 至(507 ), 直至遍历切分点候选集合中所有的单词理想关 键点。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的轨迹切分长度阈值 Tlendlff通过大量训练数据得到。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的轨迹切分距离阈值 dlff通过大量训练数据得到。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的根据理想轨迹点序列 和用户轨迹点序列计算每个单词的理想滑动轨迹与用户滑动轨迹之间的相似距离, 具体为: 逐一将所述的切分后的单词理想子轨迹集合中各个单词理想子轨迹作为单词的理想轨 迹, 执行上述步骤(531 )至(532 ), 并选取所计算出的各个相似距离 DTW[n, m]中最小的 一个作为该单词的理想滑动轨迹与用户滑动轨迹之间的相似距离。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的根据精确相似度、 词 频、 用户历史输入信息排序并得到文本候选词结果, 包括以下步骤:
( 61 )根据以下公式计算再选单词文本集合中每个单词文本与用户滑动轨迹特征集合的 4青确匹配 3巨离 match_metricl:
其中, real ^a j 为用户滑动轨迹的长度, ideal 为单词文本前缀的理想轨迹 长度, wordjreq 为单词文本前缀的词频, word—len 为组成单词文本前缀的字符个数, wafc/^t _ ort _feM为组成单词文本的字符个数, a、 b、 c分别为权重调整因子;
( 62 )对所有的精确匹配距离 match_metricl进行大小排序;
( 63 )根据系统预设的文本候选词数量选择最小的精确匹配距离 match_metricl所对应的 单词文本, 并作为文本候选词结果。
该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法中的权重调整因子 b、 c均通过大量训练数据得到。
釆用了该发明的电子设备上基于屏幕软件键盘实现滑动输入文本的系统及方法, 由于其 中主要包括了六个功能模块, 用户接口模块主要负责与用户的交互, 包括记录用户的滑动轨 迹以及将引擎的返回结果显示给用户, 轨迹特征提取模块主要负责将 UI 记录的用户滑动轨 迹, 变成可以处理的特征集合, 包括进行轨迹平滑、 归一、 特征提取, 特征词库构建模块能 够对于字典中的任意单词提取出对应的理想轨迹特征并储存在特征词库, 粗略分类过滤模块 能够根据用户滑动轨迹的特征, 从特征词库中快速迅速过滤出与轨迹相似的有可能的数百个 单词集合, 粗略匹配过滤模块能够使用关键点特征计算上一步过滤后的结果集与滑动轨迹的 相似度, 并根据相似度排名, 过滤出有可能数个单词, 精确匹配排序模块能够精确计算出每 个候选词理论上滑动轨迹与实际用户滑动轨迹的相似度, 然后综合考虑滑动轨迹的相似度以 及完整度(前缀匹配需求), 以及词频、 用户历史输入信息等情况对候选词进行排序, 返回至 用户接口模块, 从而使得能够正确利用滑动轨迹中的各种特征, 同时速度上可以得到保证, 而且其可以根据输入部分前序轨迹即输入单词, 并结合了联想词技术, 巧妙利用了行进间预 测输入, 实现了滑动过程中的键盘上停留片刻后及时给出建议的候选词的功能, 明显减小了 滑动距离, 有效提高了单词文本的输入速度和准确度, 明显降低用户操作复杂度, 实现过程 筒单, 使用方便快捷, 工作性能稳定可靠, 适用范围较为广泛, 大大促进了电子设备触摸犀 幕信息输入方法的大规模应用, 给人们的工作和生活带来了很大的便利。 附图说明 图 1为现有技术中的触摸屏电子设备上软件键盘的基本布局方式示意图。
图 1A为应用本发明的电子设备上所显示的内容示意图。
图 2为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的系统进行实际操作的 整体流程图。
图 2A为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法的整体流程示 意图。
图 3为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法中的特征词库构 建处理过程示意图。
图 4为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法中的特征词库构 建处理过程中的二元倒排索引结构示意图。
图 5为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法中的特征词库整 体£辑结构示意图。
图 6为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法中的轨迹特征提 取处理操作的流程示意图。
图 7为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法中的单词理想轨 迹示意图。
图 8为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法中的用户准确滑 动轨迹示意图。
图 9为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法中的另一种用户 实际滑动轨迹示意图。
图 10 为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法中的粗略分类 过滤处理中实现行进间预测功能的增量计算流程示意图。
图 11 为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法中的粗略匹配 过滤处理中实现单词前缀匹配功能的轨迹切分示意图。
图 12 为本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的方法中的精确匹配 排序处理中计算单词的理想滑动轨迹与用户滑动轨迹之间的相似距离的流程示意图。
,图 13为本发明的具体实施例中单词 quick的理想轨迹示意图。
图 14为本发明的具体实施例中对用户轨迹做第一次粗匹配和精确匹配的示意图。
图 15为本发明的具体实施例中对用户轨迹做第二次粗匹配和精确匹配的示意图。
图 16为本发明的具体实施例中对用户轨迹做第三次粗匹配和精确匹配的示意图。
16 更正页 (细则第 91奈) 图 17为本发明的具体实施例中对用户轨迹做第四次粗匹配和精确匹配的示意图。
图 18为本发明的具体实施例中对于法语单词 L'oc0an的用户滑动轨迹示意图。
图 19为本发明的具体实施例中对于西班牙语单词 Perd6n的用户滑动轨迹示意图。
图 20为本发明的具体实施例中对于中文汉字 "好" 的用户滑动轨迹示意图。 具体实施方式
为了能够更清楚地理解本发明的技术内容, 特举以下实施例详细说明。
首先介绍本发明的系统的表现形式:
请参阅图 1所示, 其中描述了一种基于屏幕软件键盘实现滑动输入文本的系统的示例电 子设备, 该设备可包含一个触摸屏, 在该触摸屏上可包含一个软件键盘区域, 用于接收用户 的输入信号。 该软件键盘区域可以显示一种键盘布局 (如 QWERTY布局)。
再请参阅图 1A所示, 其中描述了该电子设备上的显示内容, 可包含一个文本输入区域, 该文本输入区域可插入用户输入的文字或单词。 该电子设备的显示屏上还可包含一个候选词 区域, 可显示出系统输入的可能的候选词列表。 该候选词区域在本实施例中是可选的。
系统检测用户的触屏操作, 当检测到用户在键盘区域上的滑动操作时, 将记录滑动轨迹 的相关数据。 在某些实施例中, 用户滑动轨迹会显示在屏幕上。 当用户提起触点结束滑动时, 或当用户停止滑动超过某一时间阈值时, 系统将通过分析用户滑动的轨迹数据 , 计算出可能 的候选词。
在某些实施例中, 候选词区域会显示出候选词列表, 供用户选择。 其中可能有一个优选 (例如, 匹配度最高)的候选词可作为默认候选词。 当用户不对候选词列表做任何选择操作, 而进行下一次滑动操作时, 该默认候选词将自动被输入至文本输入区域。
在某些实施例中, 候选词区域可能被省略。 系统将一个优选的候选词作为默认候选词, 直接输入至文本输入区域。
请再参阅图 9所示, 其中描述了一种用户输入英文单词 "quickly"时的输入过程。 当用户 以图示中的轨迹依次划过字母 "Q" , "U" , "I" , "C" , "K" , "L" , "Y" 所在的大致位置, 并放开触点 (或停留超过一段时间) 时, 系统将计算出可能的候选词, 并可将其显示在候选 词区域中, 同时将优选的候选词 "quickly"作为默认候选词。
再请参阅图 17所示, 其中描述了另一种用户输入英文单词的输入过程。 当用户以图示中 的轨迹依次划过字母 "Q" , "U" , "I" , "C" , "K" 所在的大致位置, 并停留超过一段时间 后, 系统可能将" quickly"作为前序轨迹预测的单词计算为候选词。 当用户提前结束滑动并提 起触点后, 可以选择候选词 "quickly,,作为输入单词。
再请参阅图 2所示, 其为用户使用本发明的电子设备上基于屏幕软件键盘实现滑动输入 文本的系统进行实际操作的整体流程图, 其中描述了本实施例的一个整体流程, 具体如下:
( 1) 系统检测用户滑动输入操作;
(2) 系统判断是否发生了用户的触点提起动作;
(3)如果是, 则进行以下处理:
(a) 系统根据本次滑动轨迹, 计算可能的候选词;
(b) 系统显示候选词;
(c) 系统输入用户所选择的候选词, 并结束;
( 4 )如果否, 则判断用户的滑动停留是否超过了某一个时间阈值;
(5)如果是, 则进行以下处理:
(a) 系统根据本次滑动轨迹, 计算可能的候选词;
(b) 系统显示候选词;
(c)返回上述步骤( 1 );
(6)如果否, 则记录滑动轨迹, 并返回上述步骤(1)。
其中, 本发明的处理过程中包括了以下三个关键技术:
• K元倒排索引;
參 轨迹切分;
參 增量匹配计算。
在本发明中, K元倒排索引 ( K-Grams Inverted Index ) 的应用, 是滑动输入法支持前序 轨迹预测匹配的重要手段, 它可以达到在不增加额外空间消耗的前提下, 在基本滑动输入功 能的基础上实现前序轨迹预测功能。 因为 K元倒排索引的特性使单词的局部特性得到很好的 描述。 其他方法(如: 对每个单词的每个前缀做冗余存储)也可能实现同样的功能, 但是其 空间消耗较基本滑动输入功能是线性增长的。
假设基本滑动输入功能的特征词库的存储空间需要 M个存储单元,那么利用 K元倒排索 引来实现这个存储, 本身就可以天然的支持前序轨迹预测功能, 即存储空间仍然为 M。 如果 釆用额外地对每个单词的每个前缀做冗余存储, 即使只对长词 (假设长度为 7以上) 的前缀 长度 3以上的前缀做额外存储, 假设长词占词库的 30%, 那么存储空间将达到: M+ (7-3) M 30% = 2.2M , 是本发明所使用的方法中存储方式空间消耗的 2.2倍。 在本发明中, 所述的基本滑动输入功能特别指的是通过滑动单词完整轨迹输入某单词; 而前序轨迹预测功能指的是只需滑动单词的前半部分字母连接轨迹即可预测出某单词。
本发明中的轨迹切分算法也是实现本发明的前序轨迹预测功能的重要前提, 其配合 K元 倒排索引使用, 其能够进一步优化本发明的计算性能。 本发明所釆用的轨迹切分算法如下: 请参阅图 11 所示, 点线" "和实线所示为单词 quickly 的单词理想轨迹, 长虚线
" "所示为实际滑动轨迹(输入 quickly时, 滑动 k后停留, 并期望得到结果 quickly )。 此算法需要解决的问题是将单词的理想轨迹切分成前后两部分(黑色实线和黑色虚线所示), 将前半部分轨迹(黑色实线)上的特征或轨迹本身与实际滑动轨迹进行上述的匹配过程(用 红色实线与黑色实线进行匹配)。 关键就是要解决如何找出切分点 (图中的 k) 的问题。
假设从第四节过滤出的候选词集为 CandidateWords ( Wi, W2, ... , W1? ..., WN ) , 对每 个候选词 Wi, 算法步骤如下:
( 1 )假设 ^\^有 n个字符组成, 表示为 W^ d, C2, Q, Cn)。 计算经过每个 d时经过的路程, 存储于 PathLen[i], 也就是 PathLen[i] = PathLen[i - 1] + distance ( Q-i, ), i = 2, 3, n。
(2)假设实际滑动轨迹的长度为 PathLenR, 给定一个阈值 Tlendlff, 对于 i= l, ..., η, 如果:
|PathLenR - PathLen[i]| < Tlen ^is
则将 加入步骤 3将要进一步处理的候选集 C_Set中。 最终得出大小为 m的 C_Set, — 般的 m最多为 3。 其中 Tlen— 可以通过训练得出。
( 3 )假设实际滑动轨迹的最后一个点为 Pend, 对每个 C_Set中的字符 q (j = l, 2, ..., m ),假设 P ( Cj )为 Cj对应的坐标。再给定一个阈值 Tdlsώίϊ,如果 distance ( Pend, PCj ) < Tdls dlff, 那么 即为需要寻找的点。 其中 dlff可以通过训练得出。
上述算法中可能可以找出 1 ~3个可能的切分点,对每个点作为单词结束字符, 进行后续 的候选词计算和匹配处理, 并取最小的 match_metric即可。
同时, 需要指出的是, 釆用其他存储方式存储特征词库可能不需要轨迹切分这一处理过 程, 但是使用了二元倒排索引则一定需要轨迹切分, 否则前序轨迹预测功能的正确率将显著 低。 轨迹切分算法本身的时间复杂度比较小, 即执行效率较高。
另一方面, 本发明中的增量匹配是在计算的过程中可以利用前次匹配的计算结果, 轨迹 每次往前行进, 只需计算当前增加的部分轨迹的匹配度, 在综合前序的匹配度得到当前的匹 配度。 这样可以避免重复计算, 一定程度上提高了匹配速度。 本技术也依赖于二元倒排索引 存储方式。
同时, 关于计算候选词的具体过程将在以下部分的系统实现方法中详细阐述。
对于本发明的系统实现方法, 具体如下:
该电子设备上基于屏幕软件键盘实现滑动输入文本的系统, 其中可包括:
( 1 )特征词库模块, 用于存储单词文本的理想滑动轨迹特征;
( 2 )用户接口模块, 处理与用户的交互, 记录用户滑动轨迹, 并将文本候选词结果显示 出来;
( 3 )滑动轨迹特征提取模块, 接收所述的用户接口模块所记录的用户滑动轨迹, 并转换 成为待处理的用户滑动轨迹特征集合;
( 4 )粗略分类过滤模块,接收所述的滑动轨迹特征提取模块输出的用户滑动轨迹特征集 合, 从所述的特征词库模块中分类过滤出与该用户滑动轨迹特征集合具有相似的理想滑动轨 迹特征的单词文本, 并组成初选单词文本集合;
( 5 )粗略匹配过滤模块, 接收所述的粗略分类过滤模块输出的初选单词文本集合, 使用 关键点特征计算该初选单词文本集合中各个单词文本的理想滑动轨迹特征与所述的用户滑动 轨迹特征集合的相似度, 根据该相似度排序并匹配过滤得到再选单词文本集合。
该电子设备上基于屏幕软件键盘实现滑动输入文本的系统中还可包括:
( 6 )精确匹配排序模块, 接收所述的粗略匹配过滤模块送来的再选单词文本集合, 并精 征集合的精确相似度, 根据该精确相似度、 词频、 用户历史输入信息排序并得到文本候选词 结果, 将该文本候选词结果返回至所述的用户接口模块。
此外, 为了生成特征词库模块, 该系统中还可包括:
( 7 )特征词库构建模块, 对于字典中的单词文本, 提取出对应的理想滑动轨迹特征并储 存于所述的特征词库模块中;
该特征词库构建模块一般不存放在电子设备上, 而是存放在计算机或其他台式设备上, 且只需要预先执行。因此在实际的电子设备上基于屏幕软件键盘实现滑动输入文本的系统中, 很可能并不包含该模块。
在实际使用当中,本发明的电子设备上基于屏幕软件键盘实现滑动输入文本的系统包括: • UI 层——主要负责与用户的交互, 包括记录用户的滑动轨迹以及将引擎的返回结 果显示给用户。
• 提取轨迹特征模块——主要负责将 UI记录的用户滑动轨迹, 变成可以处理的特征 集合, 包括轨迹平滑、 归一、 特征提取。
• 特征词库构建模块——对于字典中的任意单词,提取出对应的理想轨迹特征并储存 在特征词库。
• 粗略分类过滤模块——根据用户滑动轨迹的特征, 釆用快速算法,从特征词库中快 速迅速过滤出与轨迹相似的有可能的数百个单词集合。 这一步的关键是滑动轨迹各 种特征的正确利用。
• 粗略匹配过滤模块 ——使用关键点特征计算上一步过滤后的结果集与滑动轨迹的 相似度, 根据相似度排名, 过滤出有可能数个单词。 此步计算时间复杂度比上一步 高, 但是由于其计算范围在上一步过滤出的数百个单词集上, 所以速度上可以得到 保证。
• 精确匹配排序模块 ——精确计算出每个候选词理论上滑动轨迹与实际用户滑动轨 迹的相似度。 然后综合考虑滑动轨迹的相似度以及完整度(前缀匹配需求), 以及词 频, 用户历史输入信息等情况, 对候选词进行排序, 返回 UI层。
请参阅图 2A至图 12所示, 该基于上述的系统实现电子设备上基于屏幕软件键盘进行滑 动输入文本的方法, 其中包括以下步骤:
歩骤一: 所述的特征词库模块中; 该理想滑动轨迹特征包括单词理想轨迹的理想轨迹长度和单词理想 关键点序列, 所述的单词理想关键点序列为该单词理想轨迹上的关键点的有序组合; 关键点 包括轨迹起止关键点和一般关键点, 所述的一般关键点为轨迹上的拐点。
该步骤一并非是本发明的方法中的必要步骤, 也可以釆用其它任何能够达到相同或者相 应技术效果的处理方式。 其中, 该实现电子设备上基于屏幕软件键盘进行滑动输入文本的方 法中的特征词库模块中包括单词特征表及单词理想轨迹索引表, 所述的单词特征表中的字段 包括单词标识、 单词内容、 理想轨迹长度和单词长度, 所述的单词理想轨迹索引表引用单词 特征表中的单词标识; 该单词理想轨迹可以为根据大量训练数据从用户的滑动轨迹中所提取 出的对应单词文本的大量相似轨迹, 或者该单词理想轨迹也可以为单词的连续字母中心在屏 词库模块中, 包括以下步骤:
( a )提取单词文本的理想轨迹长度和单词长度, 统计该单词文本的词频, 并存入所 述的单词特征表中的相应记录中, 所述的单词长度为该单词文本所包含的字符的个 数; 该统计单词文本的词频可以为自行统计或者基于来自互联网上的语料库进行统 计;
( b )对单词文本进行二元切分得到二元字符串子集;
( c )根据以下公式计算二元字符串子集中每个二元字符串的概率 P ( Xk- !Xk|C ):
P ( Xk-iXk|C ) = P ( Xk- i|C ) χρ ( Xk|C );
其中, C为单词文本, Xk- i、 Xk均单词理想轨迹上的关键点, P ( Xk|C )为关键点 xk 在单词文本 C 中出现的概率; 该关键点在单词文本中出现的概率可以为通过大量训 练数据中单词对应的大量实际轨迹所计算出的该单词下关键点的出现概率,或者也可 以为系统预设的关键点的出现概率; 在本发明的具体实施方式中, 该系统预设的关键 点的出现概率可以设置为 1 , 且关键点正好位于单词对应字母上;
( d )根据所述的二元字符串子集中每个二元字符串的概率 P ( Xk- iXk|C )及相应的单 词文本 W在单词特征表中的单词标识建立相应的二元倒排索引;
( e )根据所述的二元字符串子集所对应的全部二元倒排索引构建全局的单词理想轨 迹索引表。
在实际使用当中, 对于单词理想轨迹, 在特征词库构建阶段, 通过大量训练数据, 本发 明可以从用户的滑动轨迹中提取对应单词比如 quickly的大量相似轨迹, 从而提取特征。
如果缺乏训练数据 ,也可以假设理想轨迹为单词连续字母中心在虚拟键盘上的直线连线, 如图 7所示, 单词 quickly的连续字母直线连线被当作理想轨迹。
其巾:
• 理想轨迹长度——对于每个单词的理想轨迹会有一个可计算的理想轨迹长度,对于 假设理想轨迹而言, 即连续字母中心距离之和。
• 单词理想关键点序列 ——单词对应理想关键点序列为该单词理想路径上关键点的 有序组合。
• 单词实际关键点序列 ——相对应的由用户输入的单词实际路径上的关键点组成的 有序集合。
对于每个单词的理想轨迹会有一个可提取理想关键点, 如图 8所示, 根据某个用户的滑 动轨迹,单词 quickly对应的轨迹,其关键点为 ( q, i, c, 1, y ),如图 9所示,对应单词 quickly, 另外一个用户的输入轨迹, 对应的关键点也可能是(q, i, v, 1, y), 因为习惯或者某些干扰, 将 c滑到 上。 因而单词 quickly理想关键点序列为 qicly以及 qivly。 在特征词库构建阶段, 通过大量训练数据 (即每个单词对应的大量实际轨迹), 可以计算出该单词下每个关键点的出 现概率, 例如对于单词 quickly, 在上述 2条轨迹下, ( q, i, c, 1, y) 以及 ( q, i, v, 1, y) 轨迹, 关键点 P (q|quickly)、 P ( i| quickly )、 P ( c| quickly )、 P (v|quickly)、 P ( 1| quickly )、 P (y|quickly)的概率分别为 1、 1、 0.5、 0.5、 1、 1。 通过训练得到的关键点出现概率可以提高 用户候选单词的匹配率。 如果缺乏训练数据, 也可以釆用人工估计的关键点出现概率。 在不 经过训练的情况认为所有的关键点的概率都为 1, 并且关键点正好位于单词对应字母上, 即 P (q|quickly)、 P (i|quickly)、 P ( c| quickly )、 P ( 1| quickly )、 P ( y|quickly ) 的概率均为 1。
对于特征词库的构建过程, 请参阅图 3所示, 如上所述, 对于字典中的任意单词, 提取 出对应的理想轨迹特征, 主要包括轨迹长度以及理想特征点, 将其存储在特定的结构中, 来 快速计算候选词。 为了适应前缀匹配以及拼写检查(SpellCheck)的需要, 选择釆用 K-grams 倒排索引结构。 特征词库由单词特征表及理想轨迹索引表两部分组成, 索引表引用单词特征 表中的每个单词。 接下来详细介绍这两部分。
对于单词理想轨迹索引表, 首先说明 K元模型 ( K-GramsMODEL ) 的概念:
K-Grams 是由长度为 K 的连续字符串的构成的某个字符串子集。 假设字符串为 ΧιΧ2...Χ„Χ„-ι, 则其 K-Grams分别为 XiX^.Xi X2X3...Xk+1、 Xnk+1Xnk+2...Xn。 当长度 K 为 2, Κ-元模型变成特殊的 2-元模型(Bi-grams)。 如前述, 假设单词 quickly对应的理想关节 点序列为 qicly, 则该理想关键点序列对应的 2-元( Bi-grams ) 为 $q、 qi、 ic、 cl、 ly, 这里用 特殊字符$来标记首位。
对于单词对应的 Bi-grams概率:
假设单词 W对应的理想点轨迹序列为 XiX2...XnXn- , 对应关键点概率记做:
P (Xi|W), P ( X2|W ) ...P ( X„|W )
对应的 Bi-grams概率为:
P (Xk-iXk|W) =P (Xk-i|W) P ( Xk|W ) ......3.1 特别的对于首位来说:
以下介绍 K-元倒排索引 ( K-grams Inverted Index ): 倒排索引 ( Inverted index )是一种用部分属性映射( Map )总体记录的存储结构, 被广泛 的运用于信息检索领域。 不同于常用的结构, 倒排索引根据属性来确定记录的位置, 因而被 称为倒排。
对于本文描述的某个单词来说, 其属性为该单词对应的理想关节点序列的 K-grams, 根 据其 K-grams建立倒排索引。 例如对于单词 border的二元倒序索引 (当 K=2时), 支设其理 想关节点序列为 border, 对应的 Bi-grams分别为 $b、 bo、 or、 rd、 de、 er, 才艮据这些 Bi-grams 构成倒排索引, 如图 4所示。 bo作为一个二元关键点指向所有包含该属性的记录(即可能包 含该二元关键点的单词节点) 以及该二元关键点在各个单词理想滑动轨迹中出现的概率, 通 过大量训练数据,根据上述公式 3.1分别计算 P ( bo|aboard )、 P ( bo|about )、 P ( bo|boardroom )、 P ( bo|boarder ) 的概率, 以链表或映射的形式存储在 Bi -grams中 bo属性之下。 其中, "bo" 就是一个二元关键点, 而 P ( bo|aboard )则是二元关键点" bo"在单词 "aboard"的理想滑动轨迹 中出现的概率。 当 K=3时, 单词 border的三元关键点分别为 $b, bor, ord, rde, der, 同样可以构 成三元倒排索引。
综上所述, 该 K元倒排索引中包含了一组从各个 K元关键点到各组单词节点的映射, 每 个单词节点中包含该单词的单词标识, 及该 K元关键点在该单词的理想滑动轨迹中出现的概 率。
这种用来存储 K-grams的倒排索引结构, 称为 K-grams倒排索引。
根据前面的所描述的方法, 对于任意单词都可以提取出其理想轨迹点序列以及所对应的 Bi-grams, 在提取任意单词的理想轨迹点序列后, 分别为其建立 Bi-grams倒排索引。 如图 4 所示, 构成全局单词理想轨迹索引表。
同时, 在本发明中, 除了可以使用 Bi-grams倒排索引之外, 还可能使用其他 K-Grams , 如 3-Grams等, 这样可以进一步提高存储效率, 节约空间, 但是识别的精确度则会在一定程 度上有所降低。
关于单词特征表的建立, 首先是提取特征:
根据前面所描述的方法提取每个单词将被使用的特征值, 包括单词长度, 理想轨迹长度 及词频。 其中单词长度即该单词包含的字符的个数; 理想轨迹长度如前面的单词理想轨迹长 度的描述; 单词词频可以自行统计, 也可以来自互联网上有代表性的语料库中统计得到。
然后是特征表存储:
前一节中的每个索引对应一个单词, 对于每个单词本身及该单词的特征都需要事先存储 在特征词库里面。 这里的词库可以使用现有小型的数据库存储, 也可以设计私有的存储方式 来优化数据的访问速度及使用空间。
最终特征词库的逻辑存储结构如图 5所示。
步骤二:
用户接口交互信息处理操作, 处理与用户的交互信息, 记录用户滑动轨迹。 将用户滑动 轨迹的坐标信息存放在特定的数据结构中。
步骤三:
滑动轨迹特征提取处理操作, 将所述的用户接口模块所记录的用户滑动轨迹转换成为待 处理的用户滑动轨迹特征集合, 包括以下步骤:
( a ) 系统对用户滑动轨迹进行轨迹预处理操作 , 包括以下步骤:
( i )对用户滑动轨迹进行大小归一化处理, 得到统一坐标系的点序列;
( ϋ )对所述的点序列进行轨迹平滑处理, 得到去除抖动引起的噪点后的点序列; 该轨迹平滑处理, 具体为:
对轨迹进行平滑处理,消除因手抖动等原因所造成的滑动轨迹数据中的噪点; 该对轨迹进行平滑处理, 具体为:
用均值滤波器的方法对轨迹进行平滑处理;
( b ) 系统对预处理后的用户滑动轨迹进行特征点提取处理操作, 包括以下步骤: ( i )选取用户滑动轨迹上的关键点, 包括以下步骤:
( A )提取用户滑动轨迹的起止点作为起止关键点;
( B )计算用户滑动轨迹的点序列中各点的斜率的变化率, 提取出轨迹中的 拐点作为一般关键点;
该计算用户滑动轨迹的点序列中各点的斜率的变化率, 具体为:
使用二阶差分计算用户滑动轨迹的点序列中各点的斜率的变化率;
( ϋ )计算用户滑动轨迹的长度, 包括以下步骤:
( A )根据用户滑动轨迹的点序列, 计算每二个连续点之间的距离;
( B )将所有的两个连续点之间的距离相加, 得到用户滑动轨迹的长度; 在实际应用当中, 对于轨迹特征提取请参阅图 6所示, 其中首先是进行轨迹预处理。 滑动轨迹数据是一个二维点的数据集合, 其具体釆样频率随手机触摸屏的参数差异而不 同。 每一个点上包含二维数据: (X, y )。 其中 x、 y分别是当前轨迹点的横坐标和纵坐标。 由于用户输入时手抖动等原因会造成滑动轨迹数据中的噪点, 所以本发明对轨迹进行一 系列预处理工作, 包括大小归一化、 点距归一化和轨迹平滑。 如下表所示: 然后是特征点提取, 对于任意一段滑动轨迹, 可以由以下参数所确定, 因此可以把其当 作特征。
( 1 ) 关键点
请参阅图 8所示, 其为单词 quickly的准确滑动轨迹, 其中的虚线圏中为关键点, 用户为 了输入单词 quickly, 要分别经过 q、 u、 i、 c、 k、 1、 y (在不考虑前缀匹配的情况下)对应的 键盘位置, 可以从单词 quickly对应的轨迹中提出关键点。 本发明中把关键点分为以下三类: • 起止关键点——起始点 q和结束点 y作为该轨迹中的起止点, 被提取为主要关键点。 • 一般关键点(拐点)——用户为了滑动 i、 c、 k、 1字母, 在图 8的滑动轨迹上显示出 了在对应字母附近明显非平滑的轨迹方向突变, 即拐点。
• 遗漏关键点——图 8中 u作为 q、 i路线上的经过点, k作为 c、 1路线上的经过点, 轨迹本身没有发生明显的非平滑变化, 因此不认为是关键点。
相应的规律是:
对应某个单词轨迹的关键点必然位于每个单词字母附近, 但是反过来不成立。
对于关键点的提取, 由上所知关键点在绝大多数情况下可以等价于拐点, 因此通过计算 拐点的斜率的变化率, 提取出轨迹中的关键点。 起止点的提取比较筒单。
通过滑动平移窗口计算离散二阶差分, 即对于某个特定大小的滑动窗口, 计算其中所有 点的斜率变化率的平均值, 假设轨迹由 (1, 1)、 (2, 2)、 (3, 3)、 (4, 4)、 (4, 9)、 (6, 6) 这 6个点组成, 则对于大小为 4的滑动窗口中点 (1, 1)、 (2, 2)、 (3, 3)、 (4, 4) 的斜率 变化率为 0, 因此没有拐点, 滑动窗口 (2, 2)、 (3, 3)、 (4, 4)、 (4, 9) 的斜率变化率为 +∞, 存在拐点, 拐点为 (4, 4)。
( 2 )轨迹长度
考虑到轨迹的非平滑, 难以计算精确的轨迹长度, 取预处理后的轨迹, 每 2个连续点之 间的距离相加, 近似计算轨迹的长度, 类似积分的思想, 可以很容易地提取出每一段用户滑 动轨迹的长度。
步骤四: 粗略分类过滤处理操作 , 从所述的特征词库模块中分类过滤出与该用户滑动轨迹特征集 合具有相似的理想滑动轨迹特征的单词文本, 并组成初选单词文本集合, 包括以下步骤:
( a )计算所述的特征词库模块中的单词与所述的用户滑动轨迹特征集合的粗略匹配 度; 该计算过程有以下三种方式:
第一种计算过程包括以下步骤:
( i )根据用户滑动轨迹特征集合,提取用户滑动轨迹的长度和用户滑动轨迹上的 关键点序列;
( ϋ )根据所述的用户滑动轨迹上的关键点序列得到相应的二元字符串集合;
( iii )将该二元字符串集合中的各个二元字符串作为查询条件在所述的特征词库 模块中进行查询, 并取出所有查询命中的二元字符串的概率和各概率所对应的单 词文本;
( iv )根据以下公式计算用户在输入滑动轨迹 W的前提下而实际希望得到单词文 本 C的概率 P (C|W):
P (C|W) =P ($ri|C) xP ( rir2|C ) x ...... xP (rn-irn|C) xP ( rn$|C ) xP ( C ); 其中 iir2r3r4...rn为滑动轨迹 W的关键点序列, $n、 nr2 rn- 1 、 rn$为滑动轨 迹 W的关键点序列的二元字符串, P (C)为单词文本 C出现的词频, $为标记首 尾的特殊字符;
( V ) 根据以下公式计算该滑动轨迹 W 和该单词文本 C 的粗略匹配度 match metricP ( C|W):
match metricP ( C|W) =
logP ( $ri|C ) + logP ( rir2|C ) + ... + logP ( rn-irn|C ) + logP ( rn$|C ) + logP ( C ); 其中 log为对数运算;
第二种计算过程包括以下步骤:
(i) 系统接收到用户所输入的部分滑动轨迹 V, 该部分滑动轨迹 V为用户应输 入的完整滑动轨迹 W的前缀轨迹;
(ii)根据所述的部分滑动轨迹 V, 提取该部分滑动轨迹的长度和该部分滑动轨 迹上的关键点序列;
( iii )根据所述的部分滑动轨迹上的关键点序列得到相应的二元字符串集合;
( iv )将该二元字符串集合中的各个二元字符串作为查询条件在所述的特征词库 模块中进行查询, 并取出所有查询命中的二元字符串的概率和各概率所对应的单 词文本;
(v)根据以下公式计算用户在输入部分滑动轨迹 V的前提下而实际希望得到单 词文本 C的概率 P ( C|V):
P ( C|V) =P ( $ri|C) xP ( rir2|C ) x ...... xP (rk1 |C) xP ( rk$|C ) xP ( C ); 其中 1^21^4... 为完整滑动轨迹 W的关键点序列, 1^21^4... 为部分滑动轨迹 V 的关键点序列, 且1^≤ $ri, rir2 rk-1 、 $为部分滑动轨迹 V的关键点序 列的二元字符串, P ( C) 为单词文本 C出现的词频, $为标记首尾的特殊字符;
( vi )根据以下公式计算该部分滑动轨迹 V 和该单词文本 C 的粗略匹配度 match metricP ( C|V ):
match metricP ( C|V ) =
logP ( $ri|C ) + logP ( rir2|C ) + ... + logP ( rk1 |C ) + logP ( rk$|C ) + logP ( C ); 其中 log为对数运算;
( vii )将该部分滑动轨迹 V和该单词文本 C的粗略匹配度 match_metricP ( C|V ) 作为该完整滑动轨迹 W和该单词文本 C的粗略匹配度 match_metricP ( C|W ); 第三种计算过程包括以下步骤:
( i ) 系统初始时将前段滑动轨迹 V设置为 0, 并将该前段滑动轨迹 V和单词文 本 C的粗略匹配度 match_metricP ( C|V)设置为 logP ( C ), 其中, P ( C) 为单 词文本 C出现的词频;
( ii ) 系统检测到用户在滑动轨迹上某点处的停留时间超过系统预设的停留时间 阈值;
( iii ) 系统接收到用户在此次滑动停留之前所输入的全部滑动轨迹 W;
(iv)根据以下公式得到本段滑动轨迹 S, 并提取该本段滑动轨迹 S的长度和该 本段滑动轨迹 S上的关键点序列:
S = W-V;
( V )根据所述的本段滑动轨迹 S上的关键点序列得到相应的二元字符串集合; ( vi )将该二元字符串集合中的各个二元字符串作为查询条件在所述的特征词库 模块中进行查询, 并取出所有查询命中的二元字符串的概率和各概率所对应的单 词文本; (vii)根据以下公式计算该本段滑动轨迹 S和该单词文本 C的增量粗略匹配度 match metricP ( C|S ):
match metricP ( C|S ) = logP ( $rk|C ) + logP ( rkrk+ i|C )
+〜 +logP (rn-irn|C) + logP ( rn$|C );
其中, log为对数运算, rkrk+1...rn为本段滑动轨迹 S的关键点序列, $rk、 rkrk+1 rn-irn, rn$为本段滑动轨迹 S的关键点序列的二元字符串, $为标记首尾的特殊字 符;
( viii )根据以下公式计算该全部滑动轨迹 W 和该单词文本 C 的粗略匹配度 match metricP ( C|W):
match metricP ( C|W) = match metricP ( C|V) + match metricP ( C|S ); ( ix )将前段滑动轨迹 V设置为该全部滑动轨迹 W, 并将该前段滑动轨迹 V和 单词文本 C的粗略匹配度 match_metricP ( C|V)设置为该全部滑动轨迹 W和该 单词文本 C的粗略匹配度 match_metricP ( C|W );
( x )将该全部滑动轨迹 W和该单词文本 C的粗略匹配度 match_metricP ( C|W ) 作为该完整滑动轨迹 T和该单词文本 C的粗略匹配度 match_metricP ( C|T )0
(b)如果该粗略匹配度大于系统预设的粗略匹配度阈值, 则将相应的单词加入所述 的初选单词文本集合中;
(c)返回上述步骤(a), 直至遍历过特征词库模块中每一个单词;
在实际使用当中, 关于粗略分类过滤的算法, 其根据用户滑动轨迹的特征从词库中快速 挑选出匹配度较高的候选词集合。对词库中的每一个词, 本发明对其计算一个粗略的匹配度, 然后把大于某粗略匹配度阈值 match thresholdl 的候选词集合输出给下一个粗略匹配过滤阶 段。
候选词匹配的理论依据如下:
设 W为用户输入某单词的滑动轨迹, C为词表中的候选词, P (W) 为用户输入该滑动 轨迹 W的概率, P (C)为该候选词 C出现的词频, 具体数值在特征词库构建阶段统计得出。
P (C|W)是用户输入滑动轨迹 W的前提下实际想要得到的单词 C的概率, 即计算在用 户输入 W轨迹下词表中使得 P (C|W)取得最大的单词 cmax
当用户完成某单词的滑动轨迹 W后, 对于计算 P (C|W)过程而言, 轨迹的概率 P (W) 是一个定值, 如图 9所示, W对应轨迹 W (qicly), 计算所有单词 P ( C|W (qicly))值, 找 到对应的使得 P( C|W( qicly ) )的最大的单词 Cmax,希望的结果是 Cmax = quickly时, P( Cquicldy|W ) 取得最大。
因为 P (W)是一个定值, 在用户输入轨迹以后不再改变
对于 Bi-grams模型来说:
P (C|W) =P ( rir2|C ) x ...... xP (rn-irn|C) xP ( C ) ......4.1 由于进行了近似假设, 因而通过计算 P ( rir2|C ) x ...... xP (rn-irn|C) xP ( C )所得到的使 得 P (C|W)最大的单词 Cmax, 不一定为真正的用户想要的输入单词 Cmax, 因此需要计算最 大的前 K个单词, 后进行精确匹配。
关于本发明的粗分类过滤, 第一种计算方式如下:
对于用户输入的某段特定轨迹 W, 提取真实轨迹的长度, 以及对应的特征点集合组成的 单词实际关键点序列,假设 W的实际关键点序列是 1"1 1^4...rn,其对应的 Bi-grams分别为 $η , rir2, rk_irk, 组成查询条件查询全局单词轨迹索引表, 分别取出所有命中的 Bi-grams对 应的单词以及概率, 计算得分。
由上述公式 4.1可知,
P (C|W) =P ( rir2|C ) x ...... xP (rn-irn|C) xP ( C )
其中 为所有命中的 Bi-grams, 取对数后可得:
match metricP ( C|W ) =
logP ($ri|C) + logP ( rir2|C ) + ... +logP (rn-irn|C) + logP ( C ) ......4.2 如图 4所示, 对应图中轨迹的特征点为 q、 i、 v、 1、 y, 其 Bi-grams分别为 $q、 qi、 iv、 vl、ly、y$,理想情况对应的单词应该为 quickly。由 qivly所组成的理想轨迹序列对应的 Bi-grams 组成查询条件, 查询全局单词轨迹索引表。
为计算 match—metric ( quickly |PqMY ),分另 'J取出 Bi-grams, $q、 qi、 iv、 vl、 ly下单词 quickly 对应的概率, P ($q|quickly)、 P ( qi| quickly )、 ...、 P ( ly| quickly ), 并带入上述公式 4.1中: match—metric ( quickly |Pqiviy ) = logP ( quickly |Pqiviy ) = log ( P ( $q| quickly ) ) + logP ( qi| quickly ) + ... + logP ( ly|quickly )
第二种计算方式是前缀匹配:
由上述公式 4.2:
match metricP ( C|W ) =
logP ( $ri|C ) + logP ( rir2|C ) + ... + logP ( rn-irn|C ) + logP ( rn$|C ) + logP ( C ) 其中 W为用户完整输入轨迹 , 实际关键点序列记做 r r ...rn, 所对应的 Bi-grams分别 为 $r、 ΓιΓ2> …、 —丄 , 假设 V为用户输入的部分轨迹, 属于 W的前缀, 实际关键点序列记 为:
rir2r3r4...rk (k<n)
新的前缀部分轨迹 V , 对应的匹配度得分 match_metric:
match metricP ( C|V ) =
logP ($ri|C) + logP ( rir2|C ) + ... +logP (¾_|0 + logP ( rk$|C ) + logP ( C ) ......4.3 对比上述公式 4.2以及 4.3, 不难发现, 公式前 K项相同, 当 n-k不大时, P (C|V)认 为可以反映出 P (C|W) 的大小, 因而可以使用部分前缀轨迹代替全部轨迹进行计算。
第三种计算方式是针对行进间预测功能的增量计算:
为了支持行进间预测功能(即用户停留出词), 要求有更高的实时性。 为满足实时计算的 要求, 减少计算开销, 系统釆用增量计算的形式。
关于行进间预测触发条件如下:
当用户在某个键上停留时间超过特定的阈值时, 系统自动计算用户本次滑动输入结果。 对于用户第一次停留产生的滑动轨迹 V, 实际关键点序列记做 rir2r3r4...rk, 釆用原始的计 算流程, 并将中间单词计算结果 P (C|V)作为下一次增量查询的依据。
对于用户行进间产生的滑动轨迹 W, 实际关键点序列记做 Γιι·2ι·3ι·4...ι·η (n>k), 易知轨迹
V为轨迹 W的一部分, 这里把 W称做 V的增量轨迹, 根据上述的 Bi-grams模型所述, 轨迹
V所产生的 Bi-grams亦为轨迹 W的 Bi-grams的子集。 由上述公式 4.2:
match metricP (C|V) = logP ( $ri|C ) + logP ( rir2|C ) + ... + logP ( rk— irk|C ) + logP ( C ); match metricP ( C|W ) = logP ( $ri|C ) + logP ( rir2|C ) + ... + logP ( rn-irn|C ) + logP ( C ) = logP (V|C) + logP (C) + logP ( rkrk+ i|C) + ... + logP ( rn— irn|C );
因此对于计算 V的增量轨迹 W对应的匹配度, match metricP ( C|W ), 只要计算增量轨 迹实际关键点序列 rk...rn (n≥k), 对应的 Bi-grams匹配度, 记为 rkrk+1 rn-irn, 计算出增 量序列匹配度:
match metricP ( C| ( W— V ) ) = logP ( rkrk+ i|C ) + ... + logP ( rn— irn|C );
而总的行进间轨迹为:
match metricP ( C|W ) = match metricP ( C| ( W— V ) ) + match metricP ( C|V );
因此对于增量轨迹, 只需要计算增量部分, 总的计算开销只相当于计算一次完整的 P ( C|W ) 的匹配度。
再请参阅图 10所示, 将第一次行进间预测的结果, 作为下一次行进间预测的输入, 计算 新的增量轨迹匹配度, 这样的结构利用了以前的计算结果, 大大的节约了计算时间, 更好的 支持行进间预测的功能。
关于候选词输出过程:
对于特征词库中的每一个单词, 本发明都可以根据以上算法计算出其匹配度 match metrico 如果该匹配度大于某一阈值 match thresholdl , 本发明将其加入输出候选词集 合, 输出给下一个粗略匹配过滤阶段。
步骤五:
粗略匹配过滤处理操作, 使用关键点特征计算该初选单词文本集合中各个单词文本的理 想滑动轨迹特征与所述的用户滑动轨迹特征集合的相似度, 根据该相似度排序并匹配过滤得 到再选单词文本集合; 该计算初选单词文本集合中各个单词文本的理想滑动轨迹特征与用户 滑动轨迹特征集合的相似度并排序、 匹配过滤得到再直接作为文本候选词结果返回至所述的 用户接口模块; 包括以下步骤:
( a )计算所述的初选单词文本集合中的单词的理想轨迹与所述的用户滑动轨迹特征 集合之间的线性匹配距离, 包括以下步骤:
( i )根据单词的理想轨迹, 提取单词理想关键点序列, 并根据所述的用户滑动轨 迹特征集合, 提取用户滑动轨迹上的关键点序列;
( ii )根据以下公式计算用户滑动轨迹上的关键点序列中的第一个关键点 n和单 词理想关键点序列中的第一个关键点 ^之间的匹配距离 match_metric:
match—metric = distance ( ri , ui ) x\v[ri] ;
其中 distance ( p , q ) q两点之间的距离, wD^;^关键点 n的权值;
( iii )判断用户滑动轨迹上的关键点序列中的下一个关键点 和单词理想关键点 序列中的第一个关键点 u」之间的距离 distance , Uj )是否小于匹配距离阈值;
( iv )如果是, 则根据以下公式计算匹配距离 match_metric:
match—metric = match—metric + distance ( r; , Uj ) xw[r;] ;
其中, w ]为关键点 的权值;
并将 i和 j各增加 1后继续步骤( vi );
( v )如果否, 则将该距离 distance ( r1 ? Uj )记录于未匹配关键点集合中; ( vi )判断是否已经遍历完所述的用户滑动轨迹上的关键点序列中所有的关键点 或者遍历完单词理想关键点序列中所有的关键点;
( vii )如果否, 则返回上述步骤(iii );
( viii )如果是, 则判断所述的未匹配关键点集合是否为空;
( ix )如果否, 则根据以下公式计算匹配距离 match_metric:
match—metric = match—metric + ^d eS (t ,- * > [ζ. ]); 其中, = distance ( r1 ? u」), S为未匹配关键点集合;
( x )判断所遍历完的是用户滑动轨迹上的关键点序列中所有的关键点还是单词 理想关键点序列中所有的关键点;
( xi )如果所遍历完的是用户滑动轨迹上的关键点序列中所有的关键点, 则根据 以下公式计算匹配距离 match_metric:
match—metric = match—metric + * τν[¾]); 其中, uk为单词理想关键点序列中未遍历到的关键点, k = j , j + 1 , ... , η, η为 单词理想关键点序列中关键点的总数, ck为关键点 uk到用户滑动轨迹的最近距离;
( xii )如果所遍历完的是单词理想关键点序列中所有的关键点, 则根据以下公式 计算匹配 3巨离 match_metric:
match—metric = match—metric + * w[r4]); 其中, rk为用户滑动轨迹上的关键点序列中未遍历到的关键点, k = i, i + 1 , ... , m, m为用户滑动轨迹上的关键点序列中关键点的总数, 为关键点 rk到单词的 理想轨迹的最近距离;
( xiii )将所述的匹配距离 match_metric作为单词的理想轨迹与所述的用户滑动轨 迹特征集合之间的线性匹配距离。
所述的的距离为欧氏距离;
为了实现和支持行进间预测功能 (即用户停留出词), 上述步骤(a )之前还可以包括以 下步骤:
( aO )根据所述的用户滑动轨迹特征集合对初选单词文本集合中的单词的理想轨迹进 行轨迹切分, 包括以下步骤:
( ai )根据单词的理想轨迹, 提取单词理想关键点序列, 并根据所述的用户滑动 轨迹特征集合, 提取用户滑动轨迹的长度和用户滑动轨迹上的关键点序列; (aii)根据以下公式计算单词的理想轨迹上每个单词理想关键点 d的路程长度 PathLen[i]:
PathLen[i] = PathLen[i _ 1] + distance ( Ci-i, Ci ); 其中 i = 2, 3, n, n为单词理想关键点的总数, PathLen[l] = 0, distance (
-i, Q) 为单词理想关键点 和 之间的距离;
( aiii )逐一判断所述的用户滑动轨迹的长度 PathLenR是否满足以下关系:
|PathLenR - PathLen[i]|≤Tlendiff;
其中 i = 2, 3, n, Tlendlff为系统预设的轨迹切分长度阈值; 该轨迹切分长度 阈值 Tlen— 通过大量训练数据得到;
(aiv)如果满足, 则将单词理想关键点 加入到切分点候选集合中;
(av)重复上述步骤(iii)至 (iv), 直至遍历单词理想关键点序列中所有的单词 理想关键点;
(avi)逐一判断所述的切分点候选集合中各个单词理想关键点 是否满足以下 关系:
distance ( Pend, Q ) < Tdlsdlff;
其中, i = 2, 3, n, Pend为用户滑动轨迹上的关键点序列中的最后一个关键 点, Tdlsdlff为系统预设的轨迹切分距离阈值; 该轨迹切分距离阈值 Tdlsdlff通过大 量训练数据得到;
( avii )如果满足, 则根据该单词理想关键点 对所述的单词的理想轨迹进行切 分,并将从该单词的理想轨迹的起点至该单词理想关键点 d之间的轨迹段作为该 单词理想子轨迹加入切分后的单词理想子轨迹集合中;
( aviii )重复上述步骤(avi)至(avii), 直至遍历切分点候选集合中所有的单词 理想关键点;
在进行轨迹切分处理后, 所述的计算初选单词文本集合中的单词的理想轨迹与用 户滑动轨迹特征集合之间的线性匹配距离, 具体为:
逐一将所述的切分后的单词理想子轨迹集合中各个单词理想子轨迹作为单词 的理想轨迹, 执行上述步骤(i) 至 (xii), 并选取所计算出的各个匹配距离 match metric 中最小的一个作为该单词的理想轨迹与所述的用户滑动轨迹特 征集合之间的线性匹配距离; ( b )如果该线性匹配距离小于系统预设的线性匹配距离阈值, 则将相应的单词加入 所述的再选单词文本集合中;
( c )返回上述步骤(a ), 直至遍历过初选单词文本集合中每一个单词。
在实际使用当中, 对于粗略匹配过滤, 在得到上一步粗略分类后得到有可能的单词集, 将其作为候选词集合,提取集合中每个候选词的理想轨迹与用户输入的轨迹上进行粗略匹配, 并得到一个匹配距离值。粗略匹配过程是一个增量算法, 当用户输入的轨迹产生了一个拐点, 或者用户在某个位置停留时间大于某个值, 或者用户完成了轨迹输入抬起了手, 本发明便开 始启动粗略匹配产生下一步精确匹配的候选词。
关于粗略匹配算法如下:
粗略匹配方法的核心思想是比较用户输入的轨迹和候选词的理想轨迹上的关键点。 对于 候选词理想轨迹上的关键点, 本发明将其与用户输入的轨迹上提取的关键点做线性匹配, 当 两点间的欧式距离小于阈值 distancethreshold时,匹配距离为两点间的欧式距离乘以该关键点 的权值。 轨迹上不同关键点有不同的权值, 本发明可以通过训练得到。 由于路径不完整等原 因, 没有匹配上的关键点, 本发明将其匹配距离赋为一个惩罚距离乘以该关键点的权值。 对 于候选词理想轨迹上的遗漏关键点, 本发明将其与用户输入的轨迹做匹配, 匹配距离为遗漏 关键点到用户输入的轨迹上的最近距离乘以该遗漏关键点的权值。 轨迹上不同遗漏关键点也 有不同的权值, 本发明同样可以通过训练得到。 设用户输入的轨迹上的关键点数目为 n, 各 关键点为 rl、 r2、 r3、 r4 rn, 对应的权值为 w[r_i]; 候选词的理想轨迹上的关键点数 目为 m,各关键点为 ul、u2、u3、u4、 、um,对应的权值为 w[u_i];匹配距离为 match_metric。 具体匹配算法实际上为一个线性贪心算法, 可以按照但不局限于以下步骤进行:
( 1 )首先对于用户输入轨迹上的第一个关键点, 一定与候选词理想轨迹的第一个点所匹 配, 即 match_metric = distance ( rl , ul ) x\v[rl]。 其中 distance ( , q ) 为二维点 p和 q的欧 式距离。
( 2 )对于用户输入轨迹上下一个待匹配的关键点为 r_i, 候选词理想轨迹上下一个待匹 酉己的关键点为 u_j ,其中 l≤i≤m, l≤j≤n。 ^口果 di = distance( ri, uj )<distancethreshold , match—metric + = distance ( ri, uj ) ] , 然后 i, j各自增 1 ; 否则将 di, 记录在未匹配上的关键点集 合 S中, 并且 i自增 1。
( 3 )反复进行上一步直到 i变成 m + 1或者 j变成 n + 1。 这时如果未匹配上的关键点集 合 S非空, 则: match—metric = match—metric + 2_,d eS (dt * [^]);
(4)如果 i≤m, 则: match—metric = match—metric + ^lk_i(ck * w[rk ]);
其中 c_k是 r_i到候选词理想轨迹上的的最近距离。 如果 j≤n, 则:
match—metric = match—metric + ]);
其中 c_k是 u_i到用户输入的轨迹上的最近距离。
为了支持不完整轨迹预测整词功能, 本发明只需要计算欲匹配的单词期望的结束字符即 可同样釆用上述的算法来进行,所以这里的关键是如何提取轨迹结束于单词哪个中间字符上。 在下面将详细介绍本技术中使用的轨迹切分算法的步骤。
为了进一步优化本发明的算法, 可以釆用以下的轨迹切分算法:
如前所述, 如图 11所示, 点线" "和实线所示为单词 quickly的单词理想轨迹, 长 虚线" "所示为实际滑动轨迹(输入 quickly时,滑动 k后停留,并期望得到结果 quickly )。 此算法需要解决的问题是将单词的理想轨迹切分成前后两部分(黑色实线和黑色虚线所示), 将前半部分轨迹(黑色实线)上的特征或轨迹本身与实际滑动轨迹进行上述的匹配过程(用 红色实线与黑色实线进行匹配)。 关键就是要解决如何找出切分点 (图中的 k) 的问题。
假设从第四节过滤出的候选词集为 CandidateWords ( Wi, W2, ... , W1? ..., WN), 对每 个候选词 Wi, 算法步骤如下:
( 1 )假设 ^\^有 n个字符组成, 表示为 W^d, C2, Q, Cn)。 计算经过每个 时经过的路程, 存储于 PathLen[i], 也就是 PathLen[i] = PathLen[i - 1] + distance (Q-i, ), i = 2, 3, n。
(2)假设实际滑动轨迹的长度为 PathLenR, 给定一个阈值 Tlendlff, 对于 i= l, ..., η, 如果:
|PathLenR - PathLen[i]| < Tien_diff
则将 加入步骤 3将要进一步处理的候选集 C_Set中。 最终得出大小为 m的 C_Set, — 般的 m最多为 3。 其中 Tlen— 可以通过训练得出。
(3)假设实际滑动轨迹的最后一个点为 Pend, 对每个 C_Set中的字符 C」(j = l, 2, ..., m ),假设 P ( Cj )为 Cj对应的坐标。再给定一个阈值 Tdlsώίϊ,如果 distance ( Pend, PCj ) < Tdls dlff, 那么 即为需要寻找的点。 其中 dlff可以通过训练得出。
上述算法中可能可以找出 1 ~3个可能的切分点,对每个点作为单词结束字符, 进行匹配 处理, 取最小的 match_metric即可。
对于候选词输出:
对于输入集合中的每一个候选词, 本发明都可以根据以上算法计算出其匹配度 match metric。 如果该匹配距离小于某一阈值 match_threshold2 , 本发明将其加入输出候选词 集合, 可以直接作为文本候选词结果返回至所述的用户接口模块。
同时, 为了能够获得更高的识别准确率, 则可以将该输出候选词集合进一步输出给下一 个精确匹配排序阶段。
步骤六:
精确匹配排序处理操作 , 精确计算出该再选单词文本集合中每个单词文本的理想滑动轨 迹特征与所述的用户滑动轨迹特征集合的精确相似度, 根据该精确相似度、 词频、 用户历史 输入信息排序并得到文本候选词结果, 将该文本候选词结果返回至所述的用户接口模块; 所 集合的精确相似度, 包括以下步骤:
( a )对所述的再选单词文本集合中每个单词的理想滑动轨迹, 得到相应的理想轨迹 点序列;
( b )对所述的用户滑动轨迹, 得到用户轨迹点序列;
( c )根据所述的理想轨迹点序列和用户轨迹点序列计算每个单词的理想滑动轨迹与 用户滑动轨迹之间的相似距离, 包括以下步骤:
( i )对于所述的用户轨迹点序列中的每一个点 S[i], 根据以下公式将理想轨迹点 序列中的所有点 ·]与该点 S[i]之间的距离进行逐一累加计算, 并得到相似距离 DTW[i, j]:
DTW[i, j] = cost + min ( DTW[i - 1 , j] , DTW[i, j - 1], DTW[i - 1 , j - 1] ); 其中, cost = distance ( s[i], t[j] ), distance ( s[i], t[j] )为 s[i]和 t[j]两点之间的距 离, DTW[0, 0] = 0, i = 1 , 2, 3 , n, n为用户轨迹点序列中点的总数, j = l , 2, 3 , m, m为理想轨迹点序列中点的总数, min ( DTW[i - 1 , j] , DTW[i, j - 1] , DTW[i - 1 , j - 1] ) 为 DTW[i _ l , j]、 DTW[i, j _ 1]、 DTW[i - 1 , j - 1] 三者中的最小值;
( ii )重复上述步骤(i ), 直至遍历所述的理想轨迹点序列中的所有点, 并得到累 加计算后的理想滑动轨迹与用户滑动轨迹之间的相似距离 DTW[n, m]; ( d )将所述的相似距离作为该单词文本的理想滑动轨迹特征与用户滑动轨迹特征集 合的精确相似度;
为了实现和支持行进间预测功能 (即用户停留出词), 上述的步骤(a )之前还可以包括 以下步骤:
( aO )根据所述的用户滑动轨迹特征集合对再选单词文本集合中的单词的理想轨迹进 行轨迹切分, 包括以下步骤:
( ai )根据单词的理想轨迹, 提取单词理想关键点序列, 并根据所述的用户滑动 轨迹特征集合, 提取用户滑动轨迹的长度和用户滑动轨迹上的关键点序列;
( aii )根据以下公式计算单词的理想轨迹上每个单词理想关键点 d的路程长度 PathLen[i]:
PathLen[i] = PathLen[i _ 1] + distance ( Ci- i , Ci );
其中 i = 2, 3 , n, n为单词理想关键点的总数, PathLen[l] = 0, distance (
- i , Q ) 为单词理想关键点 和 之间的距离;
( aiii )逐一判断所述的用户滑动轨迹的长度 PathLenR是否满足以下关系:
|PathLenR - PathLen[i] |<Tien diffi
其中 i = 2, 3 , ... , η, Tlendlff为系统预设的轨迹切分长度阈值, 该轨迹切分长度 阈值 Tlen— 通过大量训练数据得到;
( avi )如果满足, 则将单词理想关键点 加入到切分点候选集合中;
( av )重复上述步骤( aiii ) 至( avi ), 直至遍历单词理想关键点序列中所有的单 词理想关键点;
( avi )逐一判断所述的切分点候选集合中各个单词理想关键点 是否满足以下 关系:
distance ( Pend, Q ) < Tdlsdlff;
其中, i = 2, 3 , n, Pend为用户滑动轨迹上的关键点序列中的最后一个关键 点, Tdlsdlff为系统预设的轨迹切分距离阈值, 该轨迹切分距离阈值 Tdlsdlff通过大 量训练数据得到;
( avii )如果满足, 则根据该单词理想关键点 对所述的单词的理想轨迹进行切 分,并将从该单词的理想轨迹的起点至该单词理想关键点 d之间的轨迹段作为该 单词理想子轨迹加入切分后的单词理想子轨迹集合中; ( aviii )重复上述步骤(avi)至(avii), 直至遍历切分点候选集合中所有的单词 理想关键点。
在进行轨迹切分处理的情况下, 所述的根据理想轨迹点序列和用户轨迹点序列计算每个 单词的理想滑动轨迹与用户滑动轨迹之间的相似距离, 具体为:
逐一将所述的切分后的单词理想子轨迹集合中各个单词理想子轨迹作为单词的理想 轨迹, 执行上述步骤(i)至(ii), 并选取所计算出的各个相似距离 DTW[n, m]中最 小的一个作为该单词的理想滑动轨迹与用户滑动轨迹之间的相似距离。
所述的根据精确相似度、 词频、 用户历史输入信息排序并得到文本候选词结果, 包括以 下步骤:
(a)根据以下公式计算再选单词文本集合中每个单词文本与用户滑动轨迹特征集合 的 4青确匹配巨离 match_metricl: match _ metricl = DTW[n, m] * ((1 + real -Path -len ) * a) * (i + log( l- * b) ideal _ path _len-\ word _ freq ^ word len N . N
*(1 + (1 = ) * c)
matched _ word _ len
其中, ree ^pa je "为用户滑动轨迹的长度, ideal ^pa je "为单词文本前缀的理想轨 迹长度, wordjreq为单词文本前缀的词频, word—len为组成单词文本前缀的字符个 数, wafc/^t_ ort_feM为组成单词文本的字符个数, a、 b、 c分别为权重调整因子; 该权重调整因子 b、 c均通过大量训练数据得到;
(b)对所有的精确匹配距离 match_metricl进行大小排序;
( c )根据系统预设的文本候选词数量选择最小的精确匹配距离 match_metricl所对应 的单词文本, 并作为文本候选词结果。
在实际使用当中, 关于精确匹配排序的过程具体如下:
对于上一步产生的候选词集里的每一个单词的理想轨迹和实际滑动轨迹得到两条轨迹的 点序列。 TraceIdeai (P。, Pi, Pm), TraceReai ( Ρ。, Pi, ..., Ρη), 这里假设理想轨迹的点和 实际滑动轨迹的点个数分别为 Μ, Ν。 可以釆用但不局限于 DTW (DynamicTimeWarping)算 法计算每个候选单词与滑动轨迹之间的距离 (或者相似度)。 DTW算法请参阅图 12所示。
当所有候选词都算出匹配度后, 本发明再结合每个词的词频和理想轨迹长度按照以下公 式对所有候选词相似度进行调整后排序, 并返回给用户前几个最可能的结果。
match—metric = match_scorex ( ( 1 + ( real_path_len/ideal_path_len _ 1 ) xa ) x ( 1 + log ( l/word_freq ) xb ) x ( 1 + ( 1 word len/matched word len ) xc );
其中, match_score为通过实际轨迹与单词理想轨迹进行距离计算得出的分数,该值越小, 表示两者越相似(即上面算法里的 DTW[n, m] )。 实际上, 上述公式是结合单词词频, 单词 长度以及理想轨迹长度的相似度的调整公式。 a, b , c为各因素的调整权重, 可以通过数据训 练得出, real_path_len是用户输入轨迹的长度, ideal_path_len是候选词前缀的理想轨迹长度 , word_freq 是候选词前缀的词频, word_len 是候选词前缀的长度 (即字符个数), matched word len是候选词的长度。
为了在这一步能够支持前缀预测功能, 同样可以先釆用前述中阐述的轨迹切分算法得出 可能的切分点后, 执行如前所述的精确匹配算法即可, 在此不再赘述。
下面是结合本发明的整个处理方法, 并釆用行进间预测输入功能的处理流程, 本发明以 单词 quick的理想轨迹和用户划出的轨迹为例。
匹配过程 ¾口下:
( 1 )单词 quick的理想轨迹请参阅图 13 , 其中 q、 i、 c、 k对应的轨迹点为关键点 1、 3、 4、 5 , u对应的轨迹点为遗漏关键点 2。
( 2 )当用户从 q附近的点往前滑, 没有到达 u且没有明显停留的时候, 本发明这时候不 进行粗匹配和 ^青确匹配。
( 3 )请参阅图 14所示, 当用户在 y附近停留的时候, 本发明对用户轨迹做第一次粗匹 配和 ^青确匹配。
( 4 )请参阅图 15所示, 当用户在 i附近做转折并产生了关键点后, 本发明对用户轨迹 故第二次粗匹配和精确匹配(这时 wii、 week的匹配度应该大于 quick )。
( 5 )请参阅图 16所示, 当用户在 c附近做转折并产生了关键点后 (轨迹滑倒了 h ), 本 发明对用户轨迹做第三次粗匹配和精确匹配(这时 witch的匹配度应该大于 quick ) .
( 6 )请参阅图 17所示, 当用户在 k附近抬手并产生了关键点后, 本发明对用户轨迹做 第四次粗匹配和精确匹配(这时 quick的匹配度最高;)。
在本发明的上述说明中, 其中示范了如何滑动输入英文单词。 实际上, 本发明的滑动输 入文本的方法也可以支持其它语种的语言, 且不受键盘布局的影响。 该滑动输入文本的方法 支持的语言包括但不局限于西语(英语、 法语、 德语等)、 拉丁语(西班牙语、 葡萄牙语等) 和亚洲语言(阿拉伯语、 印度语、 中文、 日文、 韩文等)。 在键盘布局上, 该滑动输入文本的 方法支持最流行的 QWERTY键盘布局, 法语中常用的 AZERTY键盘布局, 以及其他键盘布 局。
下面将进一步示范如何输入法语、 西班牙语和中文。
对于西语中的法语, 和英语的区别是法语字符除了英语的 26个字母以外, 还有带重音标 志、的字符 ( accented charater ), 比^口 a、 a> έ、 έ、 έ、 έ、 ϊ、 ϊ、 ό、 ύ、 ϋ、 ύ、 9。 该-骨动输人文 本的方法支持重音字符, 并将这一系列重音字符映射在键盘上对应的基础字符 (base character) 上, 比: ¾口 a和 a映射到 a, έ、 §、 έ、 έ映射到 e, ϊ和 ϊ映射到 i, ό映射到 o, ύ、 ti、 ύ映射到 u, 9映射到 c。 将所有法语单词里面的重音字符映射自处字符上后, 用类似构建英语特征词 库的方法构建法语特征词库, 包括以下步骤:
1、 提取单词文本的理想轨迹长度和单词长度, 统计该单词文本的词频, 并存入所述的单 词特征表中的相应记录中, 所述的单词长度为该单词文本所包含的字符的个数;
2、 对单词文本进行二元切分得到二元字符串子集;
3、 计算二元字符串子集中每个二元字符串的概率;
4、根据所述的二元字符串子集中每个二元字符串的概率及相应的单词文本在单词特征表 中的单词标识建立相应的二元倒排索引;
5、根据所述的二元字符串子集所对应的全部二元倒排索引构建全局的单词理想轨迹索引 表。
单词 L'oc0an在 AZQW键盘布局下的滑动输入请参阅图 18所示, 其中符号'可以省略, 字母 έ映射到了键盘上的 e上。 用户在字母 L附近按下手指或触控笔, 依次滑过 o、 c、 e、 a, 最后在字母 n附近抬起手指或触控笔。
接着, 本发明的滑动输入文本的方法对用户滑动轨迹进行包括大小归一化、 轨迹平滑等 系列轨迹预处理操作后, 计算用户滑动轨迹的长度, 并对用户滑动轨迹进行特征点提取处理, 包括以下步骤:
1、 提取用户滑动轨迹的起止点作为起止关键点;
2、通过计算用户滑动轨迹的点序列中各点的斜率的变化率,提取出轨迹中的拐点作为一 般关键点。
3、 根据用户滑动轨迹的点序列, 计算每二个连续点之间的距离;
4、 将所有的两个连续点之间的距离相加, 得到用户滑动轨迹的长度。
然后, 本发明的滑动输入文本的方法分类过滤出与用户滑动轨迹特征集合具有相似的理 想滑动轨迹特征的单词文本并组成初选单词文本集合, 包括以下步骤: 1、根据用户滑动轨迹特征集合,提取用户滑动轨迹的长度和用户滑动轨迹上的关键点序 列;
2、 根据所述的用户滑动轨迹上的关键点序列得到相应的二元字符串集合;
3、将该二元字符串集合中的各个二元字符串作为查询条件在所述的特征词库模块中进行 查询, 并取出所有查询命中的二元字符串的概率和各概率所对应的单词文本;
4、 计算用户在输入滑动轨迹的前提下而实际希望得到单词文本的概率;
5、 计算该滑动轨迹和该单词文本的粗略匹配度;
6、如果该粗略匹配度大于系统预设的粗略匹配度阈值, 则将相应的单词加入所述的初选 单词文本集合中。
得到初选单词文本集合后, 本发明的滑动输入文本的方法计算初选单词文本集合中各个 单词文本的理想滑动轨迹特征与用户滑动轨迹特征集合的相似度并排序、 匹配过滤得到再选 单词文本集合, 包括以下步骤:
1、计算所述的初选单词文本集合中的单词的理想轨迹与所述的用户滑动轨迹特征集合之 间的线性匹配度;
2、如果该线性匹配度大于系统预设的线性匹配度阈值, 则将相应的单词加入所述的再选 单词文本集合中。
得到再选单词文本集合后, 本发明的滑动输入文本的方法中的精确计算出再选单词文本 集合中每个单词文本的理想滑动轨迹特征与用户滑动轨迹特征集合的精确相似度, 包括以下 步骤:
1、对所述的再选单词文本集合中每个单词的理想滑动轨迹,按照系统预设的釆样距离进 行重新釆样, 并得到相应的理想轨迹釆样点序列;
2、 对所述的用户滑动轨迹, 按照所述的釆样距离进行重新釆样, 并得到用户轨迹釆样点 序列;
3、根据所述的理想轨迹釆样点序列和用户轨迹釆样点序列计算每个单词的理想滑动轨迹 与用户滑动轨迹之间的相似距离;
4、将所述的相似距离作为该单词文本的理想滑动轨迹特征与用户滑动轨迹特征集合的精 确相似度。
然后, 本发明的滑动输入文本的方法根据精确相似度、 词频、 用户历史输入信息排序并 得到文本候选词结果, 把 L'oc0an和其他一些匹配的单词输出给用户。 这样, 只需要筒单地在 词库构建时将特殊字符映射成键盘字母, 即可按照专利中的方法步骤进行单词识别操作。 同时, 对于拉丁语中的西班牙语, 其和法语类似, 包含带重音标志的字符如 έ、 έ、 ί、 ό 和 此外还包括字符 ίϊ, 于是西班牙语键盘上一共有 27个字符。 跟法语类似, 该滑动输入 文本的方法支持重音字符, 并将这一系列重音字符映射在键盘上对应的基础字符后, 用类似 构建英语特征词库的方法构建西班牙语特征词库。
单词 Perd6n在 QWERTY键盘布局下的滑动输入,请参阅图 19所示,其中字母 ό映射到 了键盘上 0上。 用户在字母 Ρ附近按下手指或触控笔, 依次滑过6、 r、 d、 o, 最后在字母 n 附近抬起手指或触控笔。 然后该滑动输入文本的方法获得用户滑动轨迹后 , 经过一系列与处 理法语单词输入类似的过程, 把 Perd0n和其他一些匹配的单词输出给用户。
另一方面, 对于亚洲语言中的中文, 输入的字母组合需要再做一次映射得到字符, 用户 只需要滑动输入字母组合, 该滑动输入文本的方法会自动把字母组合映射到对应的汉字上。 对于中文中的每一个汉字和词组, 都对应一个输入字母组合。
本发明的滑动输入文本的方法中:
首先构造一个中文汉字、 词组和输入字母组合的映射对应表, 然后用类似构建英语特征 词库的方法把输入字母组合构建为中文特征词库。
中文汉字"好,,在 QWERTY键盘布局下的滑动输入再请参阅图 20所示, 用户只需要滑出 它的字母组合 hao, 该滑动输入文本的方法会自动把对应的汉字检索出来。 用户在字母 H附 近按下手指或触控笔, 滑过 a后在字母 0附近抬起手指或触控笔, 然后该滑动输入文本的方 法获得用户滑动轨迹后, 经过一系列与处理法语单词输入类似的过程, 得到 "hao"和其他一 些匹配的输入字母组合。 然后该滑动输入文本的方法把 "hao"和其他一些匹配的输入字母组 合再次映射为 "好"和其他一些匹配的汉字输出给用户。
釆用了上述的电子设备上基于屏幕软件键盘实现滑动输入文本的系统及方法, 由于其中 主要包括了六个功能模块, 用户接口模块主要负责与用户的交互, 包括记录用户的滑动轨迹 以及将引擎的返回结果显示给用户, 轨迹特征提取模块主要负责将 UI记录的用户滑动轨迹, 变成可以处理的特征集合, 包括进行轨迹平滑、 归一、 特征提取, 特征词库构建模块能够对 于字典中的任意单词提取出对应的理想轨迹特征并储存在特征词库, 粗略分类过滤模块能够 根据用户滑动轨迹的特征, 从特征词库中快速迅速过滤出与轨迹相似的有可能的数百个单词 集合, 粗略匹配过滤模块能够使用关键点特征计算上一步过滤后的结果集与滑动轨迹的相似 度, 并根据相似度排名, 过滤出有可能数个单词, 精确匹配排序模块能够精确计算出每个候 选词理论上滑动轨迹与实际用户滑动轨迹的相似度, 然后综合考虑滑动轨迹的相似度以及完 整度(前缀匹配需求), 以及词频、 用户历史输入信息等情况对候选词进行排序, 返回至用户 接口模块, 从而使得能够正确利用滑动轨迹中的各种特征, 同时速度上可以得到保证, 而且 其可以根据输入部分前序轨迹即输入单词, 并结合了联想词技术, 巧妙利用了行进间预测输 入, 实现了滑动过程中的键盘上停留片刻后及时给出建议的候选词的功能, 明显减小了滑动 距离, 有效提高了单词文本的输入速度和准确度, 明显降低用户操作复杂度, 实现过程筒单, 使用方便快捷, 工作性能稳定可靠, 适用范围较为广泛, 大大促进了电子设备触摸犀幕信息 输入方法的大规模应用, 给人们的工作和生活带来了很大的便利。
在此说明书中, 本发明已参照其特定的实施例作了描述。 但是, 很显然仍可以作出各种 修改和变换而不背离本发明的精神和范围。 因此, 说明书和附图应被认为是说明性的而非限 制性的。

Claims (17)

  1. 权利要求
    1、 一种电子设备上基于屏幕软件键盘实现滑动输入文本的系统, 其特征在于, 所述的系 统包括:
    特征词库模块, 用于存储单词文本的理想滑动轨迹特征;
    用户接口模块, 处理与用户的交互, 记录用户滑动轨迹, 并显示文本候选词结果; 滑动轨迹特征提取模块, 接收所述的用户接口模块所记录的用户滑动轨迹, 并转换成为 待处理的用户滑动轨迹特征集合;
    粗略分类过滤模块, 接收所述的滑动轨迹特征提取模块输出的用户滑动轨迹特征集合, 从所述的特征词库模块中分类过滤出与该用户滑动轨迹特征集合具有相似的理想滑动轨迹特 征的单词文本, 并组成初选单词文本集合;
    粗略匹配过滤模块, 接收所述的粗略分类过滤模块送来的初选单词文本集合, 使用关键 特征集合的相似度, 根据该相似度排序并匹配过滤得到再选单词文本集合。
  2. 2、根据权利要求 1所述的电子设备上基于屏幕软件键盘实现滑动输入文本的系统, 其特 征在于, 所述的系统还包括:
    精确匹配排序模块, 接收所述的粗略匹配过滤模块送来的再选单词文本集合, 并精确计 合的精确相似度, 根据该精确相似度和其他相关信息排序并得到文本候选词结果, 将该文本 候选词结果返回至所述的用户接口模块。
  3. 3、一种基于权利要求 1所述的系统实现电子设备上基于屏幕软件键盘进行滑动输入文本 的方法, 其特征在于, 所述的方法包括以下步骤:
    ( 1 )用户接口交互信息处理操作 , 处理与用户的交互信息, 记录用户滑动轨迹;
    ( 2 )滑动轨迹特征提取处理操作 , 将所述的用户接口模块所记录的用户滑动轨迹转换成 为待处理的用户滑动轨迹特征集合;
    ( 3 )粗略分类过滤处理操作,从所述的特征词库模块中分类过滤出与该用户滑动轨迹特 征集合具有相似的理想滑动轨迹特征的单词文本, 并组成初选单词文本集合;
    ( 4 )粗略匹配过滤处理操作,使用关键点特征计算该初选单词文本集合中各个单词文本 的理想滑动轨迹特征与所述的用户滑动轨迹特征集合的相似度, 根据该相似度排序并匹配过 滤得到再选单词文本集合, 并将该再选单词文本集合作为文本候选词结果返回至所述的用户 接口模块。
  4. 4、 根据权利要求 3所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的步骤( 4 )之后还包括对再选单词文本集合的以下处理步骤:
    ( 5 )精确匹配排序处理操作,精确计算出该再选单词文本集合中每个单词文本的理想滑 动轨迹特征与所述的用户滑动轨迹特征集合的精确相似度, 根据该精确相似度和其他相关信 息排序并得到文本候选词结果, 将该文本候选词结果返回至所述的用户接口模块。
  5. 5、 根据权利要求 3所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的单词文本的理想滑动轨迹特征包括单词理想轨迹的理想轨迹长度和单词 理想关键点序列, 所述的单词理想关键点序列为该单词理想轨迹上的关键点的有序组合。
  6. 6、 根据权利要求 5所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的关键点包括轨迹起止关键点和一般关键点, 所述的一般关键点为轨迹上 的拐点。
  7. 7、 根据权利要求 3所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的特征词库模块中包含 K元倒排索引。
  8. 8、 根据权利要求 7所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的 K元倒排索引为二元倒排索引。
  9. 9、 根据权利要求 7所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的 K元倒排索引中包含从 K元关键点到单词节点的映射, 所述单词节点包 含单词标识和所述 K元关键点在所述单词的理想滑动轨迹中出现的概率。
  10. 10、根据权利要求 3所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的特征词库模块中包含单词特征表, 所述的单词特征表中的字段包括单词 标识、 单词内容、 理想轨迹长度和单词长度。
  11. 11、根据权利要求 3所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的将用户滑动轨迹转换成为待处理的用户滑动轨迹特征集合, 包括以下步 骤:
    ( 21 ) 系统对用户滑动轨迹进行轨迹预处理操作;
    ( 22 ) 系统对预处理后的用户滑动轨迹进行特征点提取处理操作。
  12. 12、根据权利要求 3所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的粗略分类过滤处理操作中釆用增量计算的方法。 13、根据权利要求 3所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的粗略分类过滤处理操作, 包括以下步骤:
    ( 31 )计算所述的特征词库模块中的单词与所述的用户滑动轨迹特征集合的粗略匹配度; ( 32 )如果该粗略匹配度大于系统预设的粗略匹配度阈值, 则将相应的单词加入所述的 初选单词文本集合中;
    ( 33 )返回上述步骤( 31 ), 直至遍历过特征词库模块中每一个单词。
  13. 14、 根据权利要求 13 所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方 法, 其特征在于, 所述的计算特征词库模块中的单词与用户滑动轨迹特征集合的粗略匹配度, 包括以下步骤:
    ( 311 )根据用户滑动轨迹特征集合, 提取用户滑动轨迹上的关键点序列;
    ( 312 )根据所述的用户滑动轨迹上的关键点序列得到相应的 K元字符串集合;
    ( 313 )将该 K元字符串集合中的各个 K元字符串作为查询条件在所述的特征词库模块 中进行查询, 并取出所有查询命中的 K元字符串的概率和各概率所对应的单词文本;
    ( 314 )计算用户在输入滑动轨迹 W的前提下而实际希望得到单词文本 C的概率 P( C|W ); ( 315 )计算该滑动轨迹 W和该单词文本 C的粗略匹配度。
  14. 15、根据权利要求 3所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的计算特征词库模块中的单词与用户滑动轨迹特征集合的粗略匹配度, 包 含前缀匹配的方法。
  15. 16、根据权利要求 3所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的计算初选单词文本集合中各个单词文本的理想滑动轨迹特征与用户滑动 轨迹特征集合的相似度并排序、 匹配过滤得到再选单词文本集合, 包括以下步骤:
    ( 41 )计算所述的初选单词文本集合中的单词的理想轨迹与所述的用户滑动轨迹特征集 合之间的线性匹配距离;
    ( 42 )如果该线性匹配距离小于系统预设的线性匹配距离阈值, 则将相应的单词加入所 述的再选单词文本集合中;
    ( 43 )返回上述步骤(41 ), 直至遍历过初选单词文本集合中每一个单词。
  16. 17、 根据权利要求 16 所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方 法, 其特征在于, 所述的步骤(41 )之前还包括以下步骤:
    ( 40 )根据所述的用户滑动轨迹特征集合对初选单词文本集合中的单词的理想轨迹进行 轨迹切分。
  17. 18、根据权利要求 4所述的实现电子设备上基于屏幕软件键盘进行滑动输入文本的方法, 其特征在于, 所述的根据精确相似度、 词频、 用户历史输入信息排序并得到文本候选词结果, 包括以下步骤:
    ( 51 )计算再选单词文本集合中每个单词文本与用户滑动轨迹特征集合的精确匹配距离; ( 52 )对所有的精确匹配距离进行大小排序;
    ( 53 )根据系统预设的文本候选词数量选择最小的精确匹配距离所对应的单词文本, 并 作为文本候选词结果。
CN201180069878.5A 2011-04-09 2011-04-09 电子设备上基于屏幕软件键盘实现滑动输入文本的系统及方法 Active CN103502915B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/072559 WO2012139266A1 (zh) 2011-04-09 2011-04-09 电子设备上基于屏幕软件键盘实现滑动输入文本的系统及方法

Publications (2)

Publication Number Publication Date
CN103502915A true CN103502915A (zh) 2014-01-08
CN103502915B CN103502915B (zh) 2017-01-11

Family

ID=47008771

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180069878.5A Active CN103502915B (zh) 2011-04-09 2011-04-09 电子设备上基于屏幕软件键盘实现滑动输入文本的系统及方法

Country Status (4)

Country Link
US (4) US9182831B2 (zh)
EP (1) EP2698692B1 (zh)
CN (1) CN103502915B (zh)
WO (1) WO2012139266A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783668A (zh) * 2016-08-25 2018-03-09 京瓷办公信息系统株式会社 电子设备和字符输入控制方法
CN108268143A (zh) * 2018-02-13 2018-07-10 清华大学 用于输入中文字符的键盘及其设置方法和输入方法
CN109992124A (zh) * 2018-01-02 2019-07-09 北京搜狗科技发展有限公司 输入方法、装置和机器可读介质
CN110109600A (zh) * 2018-02-01 2019-08-09 上海交通大学 基于触摸屏的多人机交互要素优化输入方法及系统
CN109992124B (zh) * 2018-01-02 2024-05-31 北京搜狗科技发展有限公司 输入方法、装置和机器可读介质

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8704792B1 (en) 2012-10-19 2014-04-22 Google Inc. Density-based filtering of gesture events associated with a user interface of a computing device
US9304595B2 (en) * 2012-10-19 2016-04-05 Google Inc. Gesture-keyboard decoding using gesture path deviation
US9582572B2 (en) * 2012-12-19 2017-02-28 Intel Corporation Personalized search library based on continual concept correlation
CN105027040B (zh) 2013-01-21 2018-09-21 要点科技印度私人有限公司 文本输入系统及方法
IN2013CH00469A (zh) 2013-01-21 2015-07-31 Keypoint Technologies India Pvt Ltd
BR112015018905B1 (pt) 2013-02-07 2022-02-22 Apple Inc Método de operação de recurso de ativação por voz, mídia de armazenamento legível por computador e dispositivo eletrônico
US9348429B2 (en) * 2013-03-15 2016-05-24 Blackberry Limited Method and apparatus for word prediction using the position of a non-typing digit
CN104346067B (zh) * 2013-11-15 2019-02-05 上海触乐信息科技有限公司 连续滑动输入单词的方法和系统
CN104899214B (zh) 2014-03-06 2018-05-22 阿里巴巴集团控股有限公司 一种建立输入建议的数据处理方法和系统
US20150286402A1 (en) * 2014-04-08 2015-10-08 Qualcomm Incorporated Live non-visual feedback during predictive text keyboard operation
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
USD766224S1 (en) * 2014-12-08 2016-09-13 Michael L. Townsend Interface for a keypad, keyboard, or user activated components thereof
US10095403B2 (en) 2015-05-05 2018-10-09 International Business Machines Corporation Text input on devices with touch screen displays
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
WO2017207103A1 (en) 2016-06-02 2017-12-07 Myscript System, method and computer readable medium for input recognition linguistic resource management
US10884610B2 (en) 2016-11-04 2021-01-05 Myscript System and method for recognizing handwritten stroke input
DK201770427A1 (en) 2017-05-12 2018-12-20 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
KR102474245B1 (ko) * 2017-06-02 2022-12-05 삼성전자주식회사 스와이프 입력에 기초하여 입력 문자를 판단하는 시스템 및 방법
US11188158B2 (en) 2017-06-02 2021-11-30 Samsung Electronics Co., Ltd. System and method of determining input characters based on swipe input
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
CN110647245A (zh) * 2018-06-26 2020-01-03 深圳市美好创亿医疗科技有限公司 基于dtw算法的手写输入法
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
KR102527892B1 (ko) * 2018-11-26 2023-05-02 삼성전자주식회사 예측 단어를 제공하기 위한 전자 장치 및 그의 동작 방법
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US20220391585A1 (en) * 2021-06-04 2022-12-08 Apple Inc. Multi-modal language interpretation using unified input model
CN114860111A (zh) * 2022-05-23 2022-08-05 Oppo广东移动通信有限公司 触控轨迹的更新方法、装置、电子设备及存储介质
CN116521037B (zh) * 2023-03-31 2024-01-30 深圳市赛凌伟业科技有限公司 一种文字处理方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2489381Y (zh) * 2001-05-09 2002-05-01 英业达股份有限公司 具有触摸式面板的无线键盘
US20070040813A1 (en) * 2003-01-16 2007-02-22 Forword Input, Inc. System and method for continuous stroke word-based text input
CN100437739C (zh) * 2003-01-16 2008-11-26 克利福德·A·库什勒 基于连续笔划字词的文本输入系统和方法
CN101571771A (zh) * 2008-04-29 2009-11-04 北京黄金码科技有限公司 一种用于多触点触摸屏设备的输入方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6037930A (en) 1984-11-28 2000-03-14 The Whitaker Corporation Multimodal touch sensitive peripheral device
US5963671A (en) 1991-11-27 1999-10-05 International Business Machines Corporation Enhancement of soft keyboard operations using trigram prediction
JPH05233623A (ja) 1991-11-27 1993-09-10 Internatl Business Mach Corp <Ibm> ストローク構文入力装置
US5487616A (en) 1995-06-01 1996-01-30 Jean D. Ichbiah Method for designing an ergonomic one-finger keyboard and apparatus therefor
US6031525A (en) 1998-04-01 2000-02-29 New York University Method and apparatus for writing
JP2000155642A (ja) 1998-11-19 2000-06-06 Sharp Corp ソフトウェアキーボード
US6272575B1 (en) 1999-02-26 2001-08-07 Lucent Technologies Inc. Modular digital assistant
JP2001242998A (ja) 2000-02-29 2001-09-07 Kazuo Takeuchi 文字入力装置
JP2001282427A (ja) 2000-03-29 2001-10-12 Matsushita Electric Ind Co Ltd 携帯端末装置
US7012595B2 (en) 2001-03-30 2006-03-14 Koninklijke Philips Electronics N.V. Handheld electronic device with touch pad
US20030076302A1 (en) 2001-10-24 2003-04-24 Gateway, Inc. Joystick input device for palmtop information appliance
US7251367B2 (en) 2002-12-20 2007-07-31 International Business Machines Corporation System and method for recognizing word patterns based on a virtual keyboard layout
US7453439B1 (en) 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
SG135918A1 (en) 2003-03-03 2007-10-29 Xrgomics Pte Ltd Unambiguous text input method for touch screens and reduced keyboard systems
US7533245B2 (en) * 2003-08-01 2009-05-12 Illinois Institute Of Technology Hardware assisted pruned inverted index component
US7250938B2 (en) * 2004-01-06 2007-07-31 Lenovo (Singapore) Pte. Ltd. System and method for improved user input on personal computing devices
US7706616B2 (en) * 2004-02-27 2010-04-27 International Business Machines Corporation System and method for recognizing word patterns in a very large vocabulary based on a virtual keyboard layout
US7542029B2 (en) 2005-09-20 2009-06-02 Cliff Kushler System and method for a user interface for text editing and menu selection
WO2007035827A2 (en) * 2005-09-20 2007-03-29 Forward Input, Inc. System and method for continuous stroke word-based text input
WO2008013658A2 (en) 2006-07-03 2008-01-31 Cliff Kushler System and method for a user interface for text editing and menu selection
CN101676851B (zh) 2008-09-17 2012-04-25 中国移动通信集团公司 输入方法和输入装置
CN101943996A (zh) 2010-09-13 2011-01-12 广东国笔科技股份有限公司 一种基于触摸屏虚拟键盘的划屏输入系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN2489381Y (zh) * 2001-05-09 2002-05-01 英业达股份有限公司 具有触摸式面板的无线键盘
US20070040813A1 (en) * 2003-01-16 2007-02-22 Forword Input, Inc. System and method for continuous stroke word-based text input
CN100437739C (zh) * 2003-01-16 2008-11-26 克利福德·A·库什勒 基于连续笔划字词的文本输入系统和方法
CN101571771A (zh) * 2008-04-29 2009-11-04 北京黄金码科技有限公司 一种用于多触点触摸屏设备的输入方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107783668A (zh) * 2016-08-25 2018-03-09 京瓷办公信息系统株式会社 电子设备和字符输入控制方法
CN109992124A (zh) * 2018-01-02 2019-07-09 北京搜狗科技发展有限公司 输入方法、装置和机器可读介质
CN109992124B (zh) * 2018-01-02 2024-05-31 北京搜狗科技发展有限公司 输入方法、装置和机器可读介质
CN110109600A (zh) * 2018-02-01 2019-08-09 上海交通大学 基于触摸屏的多人机交互要素优化输入方法及系统
CN110109600B (zh) * 2018-02-01 2022-04-29 上海交通大学 基于触摸屏的多人机交互要素优化输入方法及系统
CN108268143A (zh) * 2018-02-13 2018-07-10 清华大学 用于输入中文字符的键盘及其设置方法和输入方法
CN108268143B (zh) * 2018-02-13 2021-03-26 清华大学 用于输入中文字符的键盘及其设置方法和输入方法
US11977687B2 (en) 2018-02-13 2024-05-07 Tsinghua University Virtual keyboard for inputting Chinese characters and configuring method thereof, and Chinese character input system

Also Published As

Publication number Publication date
US20160004327A1 (en) 2016-01-07
US20160004326A1 (en) 2016-01-07
US20160004328A1 (en) 2016-01-07
WO2012139266A1 (zh) 2012-10-18
US9417711B2 (en) 2016-08-16
US20140028603A1 (en) 2014-01-30
US9182831B2 (en) 2015-11-10
US9417709B2 (en) 2016-08-16
EP2698692B1 (en) 2019-10-30
EP2698692A1 (en) 2014-02-19
US9417710B2 (en) 2016-08-16
EP2698692A4 (en) 2015-07-08
CN103502915B (zh) 2017-01-11

Similar Documents

Publication Publication Date Title
CN103502915A (zh) 电子设备上基于屏幕软件健盘实现滑动输入文本的系统及方法
US10156981B2 (en) User-centric soft keyboard predictive technologies
US11693894B2 (en) Conversation oriented machine-user interaction
US7088861B2 (en) System and method for chinese input using a joystick
US8315482B2 (en) Integrated platform for user input of digital ink
EP1686493A2 (en) Dictionary learning method and device using the same, input method and user terminal device using the same
CN107145571B (zh) 一种搜索方法及装置
Sriraghavendra et al. Fréchet distance based approach for searching online handwritten documents
EP3320482B1 (en) System for recognizing multiple object input and method and product for same
CN104346067B (zh) 连续滑动输入单词的方法和系统
CN110032734B (zh) 近义词扩展及生成对抗网络模型训练方法和装置
CN1862472B (zh) 借由提交不全字和/或任意给定字的不全笔画的表意语言短语的缩写手写输入的系统和方法
WO2016095645A1 (zh) 笔画输入方法、装置和系统
Kristensson Discrete and continuous shape writing for text entry and control
Zhelezniakov et al. Evaluating new requirements to pen-centric intelligent user interface based on end-to-end mathematical expressions recognition
WO2018014570A1 (zh) 语音转化手写笔迹的方法和装置
Lottridge et al. Ally: understanding text messaging to build a better onscreen keyboard for blind people
CN104834392B (zh) 一种笔画动态组字的汉字输入方法
CN1996217A (zh) 基于手写输入方式的转换输入设备和方法
CN110956962A (zh) 车载机器人的答复信息确定方法、装置及设备
JP7095450B2 (ja) 情報処理装置、文字認識方法、および文字認識プログラム
JP2000036008A (ja) 文字認識装置及び記憶媒体
CN117111749A (zh) 一种ar/vr中基于摄像头的双手手势输入方法
Farber A Corpus-Based Frequency Analysis of One-and Two-Word Sequences in Suggested and Predicted Text Errors
Tesema Design and Implementation of Predictive Text Entry Method for Afan Oromo on Mobile Phone

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1190209

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1190209

Country of ref document: HK