CN115004262A - 手写中的结构分解 - Google Patents
手写中的结构分解 Download PDFInfo
- Publication number
- CN115004262A CN115004262A CN202180011062.0A CN202180011062A CN115004262A CN 115004262 A CN115004262 A CN 115004262A CN 202180011062 A CN202180011062 A CN 202180011062A CN 115004262 A CN115004262 A CN 115004262A
- Authority
- CN
- China
- Prior art keywords
- text
- item
- line
- list
- data model
- 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
- 238000000354 decomposition reaction Methods 0.000 title description 12
- 238000000034 method Methods 0.000 claims abstract description 153
- 238000000547 structure data Methods 0.000 claims abstract description 108
- 238000007373 indentation Methods 0.000 claims abstract description 92
- 230000008569 process Effects 0.000 claims abstract description 78
- 238000001514 detection method Methods 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims description 41
- 230000004048 modification Effects 0.000 claims description 22
- 238000012986 modification Methods 0.000 claims description 22
- 230000008859 change Effects 0.000 claims description 17
- 238000007726 management method Methods 0.000 claims description 9
- 230000004075 alteration Effects 0.000 claims description 3
- 101150032953 ins1 gene Proteins 0.000 description 20
- 238000004590 computer program Methods 0.000 description 12
- 238000007792 addition Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 239000000470 constituent Substances 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012958 reprocessing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- NIXOWILDQLNWCW-UHFFFAOYSA-N acrylic acid group Chemical group C(C=C)(=O)O NIXOWILDQLNWCW-UHFFFAOYSA-N 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000012634 optical imaging Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
- G06V30/36—Matching; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/32—Digital ink
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
- G06V30/416—Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Character Discrimination (AREA)
- User Interface Of Digital Computer (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种用于处理手写(IN)中的列表的方法,所述方法包括:初始地将多个文本行(LN)中的每个文本行分类为不是列表的一部分的不同文本项(TI);以及分类过程,所述分类过程包括在每个文本行(LN)中进行模式检测,以用于将以预定列表符号(BT)开始的每个文本行分类为作为列表的一部分的不同的列表项(LI);确定每个文本项(TI)相对于参考位置(30)的项缩进(22);以及针对每个列表项(LI)确定表示所述列表项中所包括的文本的缩进的文本缩进(24);以及合并步骤,所述合并步骤用于如果满足预定义条件,则合并为同一文本项(TI)的一部分或者合并为同一列表项(LI)的一部分。然后,可以基于所述合并过程的结果生成文本结构数据模型,从而将每个文本行(LN)定义为文本项(TI)或列表项(LI)的一部分。
Description
技术领域
本公开一般涉及手写辨识和手写处理领域,并且特别地涉及能够辨识手写中的列表的计算装置。
背景技术
多年来,已经开发了各种计算装置用于手写输入和辨识,即,由用户手绘或手写的输入元素,诸如文本内容(例如,字母数字字符)或非文本内容(例如,形状、绘图)。为此,已知的计算装置通常配备有触敏表面等,以使用户能够以可在显示屏上显示的数字墨水笔划的形式输入手写内容。
用户手写输入可以使用在线手写辨识系统来解释,该系统允许在用户输入手写时进行实时辨识。手写辨识例如可以使用基于云的解决方案等来执行。另选地,离线系统也是已知的。一旦被辨识,计算装置可以执行任何适当的处理任务,诸如将输入笔划转换成例如排版版本或实现编辑功能。
为了向用户提供良好的体验,包括手写的显示、操纵(诸如文本回流等)、编辑等,关键是辨识来自用户的手写输入并且尽可能准确地确定其结构分解(诸如句子、段落、列表等的结构元素)。
文本分类器是已知的,并且用于辨识手写文本,诸如手写字符、位数、符号、变音符号等。然而,手写输入可具有各种性质,这有时使得手写辨识的任务变得棘手。结构分解在文本中也可以根据每种情况而显著变化。在手写文档中,读者可以直观地感知手写的全局结构,但是对于手写辨识系统来说,识别文本结构分解可能是特别具有挑战性的。例如,与文字处理器相反,常规手写辨识系统不能依赖于特殊的用户指令(例如,行分隔符、段落分隔符、垂直和水平制表键)来检测手写文本中的列表。
因此,需要一种用于确定手写的文本结构分解(即结构排列)的有效和可靠的解决方案。特别地,缺乏用于检测手写中的段落的有效解决方案。也缺乏用于检测手写中的列表的有效解决方案。特别地,需要一种以准确和可靠的方式区分手写中的列表元素和非列表元素的解决方案,例如以改进对手写的操纵或编辑。
发明内容
下面描述的本发明的示例提供了用于处理手写中的列表的计算装置、方法和对应的计算机程序。
根据特定方面,本发明提供了一种由计算装置实现的用于处理手写中的列表的方法,所述方法包括:
-通过对电子文档中的多个数字墨水笔划执行文本手写辨识来辨识文本,所述文本包括多个连续的文本行;
-初始将每个所辨识的文本行分类为不是列表的一部分的不同文本项;
-分类过程,所述分类过程包括以下步骤:
a)在每个文本行中进行模式检测,以确定所述文本行是否以指示所述文本行是列表的一部分的预定列表符号开始,并且将以预定列表符号开始的每个文本行分类为作为列表的一部分的不同列表项;
b)响应于步骤a),确定每个文本项相对于参考位置的项缩进,并且为每个列表项确定表示所述列表项中所包括的文本相对于所述参考位置的缩进的文本缩进;
c)响应于步骤b),进行合并过程,所述合并过程包括:
ο如果由第一文本行后面接着第二文本行形成的每对连续文本行的所述第一文本行和所述第二文本行是具有相同项缩进的文本项,并且如果在所述第一文本行的结尾没有足够的可用空间来容纳开始所述第二文本行的第一个字词,则将所述文本中的所述对连续文本行合并为同一文本项的一部分;以及
ο如果第一文本行是列表项,并且第二文本行是具有与所述第一文本行的文本缩进相匹配的项缩进的文本项,并且如果在所述第一文本行的结尾没有足够的可用空间来容纳开始所述第二文本行的第一个字词,则将由所述第一文本行后面接着所述第二文本行形成的每对连续文本行合并为同一列表项的一部分;
基于所述合并过程的结果,生成文本结构数据模型,所述文本结构数据模型将每个文本行定义为文本项或列表项的一部分。
本发明提供了一种用于确定手写的文本结构分解(即结构排列)的有效和可靠的解决方案。由于本发明,可以检测手写中的列表项。特别地,本发明允许以准确和可靠的方式区分(或辨别)手写中的列表元素和非列表元素,例如以改进对手写的操纵或编辑。还可以检测手写中的段落。
在一个特定实施方案中,该方法包括:获取并显示多个数字墨水笔划作为用户输入;
其中所述辨识包括对所获取的笔划执行所述文本手写辨识,并且从所辨识的文本中识别所述多个连续文本行。
在一个特定实施方案中,所述模式检测包括,对于每个文本行,将开始所述文本行的第一符号与预定列表符号的集合进行比较,以确定是否存在匹配。
在一个特定实施方案中,该预定列表符号是数字或项目符号。
在一个特定实施方案中,位置参考是电子文档内的预定位置。
在一个特定实施方案中,所述合并过程包括:如果第一文本行是文本项并且第二文本行是列表项,则将由所述第一文本行后面接着所述第二文本行形成的每对连续文本行保持为单独的项。
在一个特定实施方案中,所述文本结构数据模型将所辨识的文本分解为至少一个文本项和/或至少一个列表项,每个项与至少一个文本行和属于所述至少一个文本行的每个笔划相关联。
在一个特定实施方案中,该方法包括响应于用户指令,基于所述文本结构数据模型编辑所辨识的文本,所述编辑包括以下中的至少一者:
-修改所辨识的文本的至少一个项的内容;以及
-回流过程,所述回流过程引起所辨识的文本的至少一个项的数字墨水的回流,
其中所述计算装置使用所述文本结构数据模型的信息来控制所述编辑。
在一个特定实施方案中,在回流过程期间,响应于用户拆分命令而先前已经从前一个项分离的文本项或列表项仅响应于将两个项接合在一起的用户接合命令而被合并到所述前一个项中。
在一个特定实施方案中,该方法包括:
-显示所辨识的文本;
-在所述生成所述文本结构数据模型之后,获取引起对正在显示的所辨识的文本的更改的用户指令;以及
-更新过程,其中更新所述文本结构数据模型以反映由所述用户指令引起的所述更改。
在一个特定实施方案中,由所述用户指令引起的所述更改包括将至少一个新笔划添加到所述电子文档中和/或移除或修改至少一个现有笔划,
其中所述更新过程包括通过从所述文本结构数据模型删除任何已移除的笔划并且通过将任何新笔划分配给所述文本结构数据模型的现有项或新项,即现有或新文本项或者现有或新列表项,来更新所述文本结构数据模型。
在一个特定实施方案中,所述生成所述文本结构数据模型包括:
-对于每个文本项,定义开始区,所述开始区从所述文本项中的第一个可见字符开始,并且向前延伸以包围一个或多个完整字词,直到到达预定义数量的连续可见字符,或者如果所述开始区到达所述文本项的结尾,则到达不足预定义数量的连续可见字符之处;以及
-对于每个列表项,定义项目符号区,所述项目符号区从相关联的预定义列表符号开始,并且向前延伸以包围一个或多个完整字词,直到到达预定义数量的连续可见字符,或者如果所述项目符号区到达所述列表项的结尾,则到达不足预定义数量的连续可见字符之处;
其中所述更新过程包括:
针对每个项确定由所述用户指令引起的所述更改是否修改其开始区或项目符号区和/或是否在所述开始区或项目符号区之前添加至少一个字符,并且在肯定的情况下,基于所述更改而更新所述开始区或项目符号区,并且基于所述更新后的开始区或项目符号区重复所述步骤a)、b)和c),以更新所述文本结构数据模型。
在一个特定实施方案中,该更新过程包括:
-响应于所述用户指令,检测在文本项或列表项的文本行内添加的至少一个笔划;
-确定所述文本行是否以指示所述文本行是列表的一部分的预定列表符号开始;以及
-在肯定的情况下,拆分对应的文本项或列表项以创建新的列表项,并且更新所述文本结构数据模型以反映所述拆分。
在一个特定实施方案中,所述生成所述文本结构数据模型包括:
-对于每个文本项和每个列表项,定义相应的开始区,所述开始区从所述项的在其第一行之后的每个文本行中的第一个可见字符开始,并且向前延伸以包围一个或多个完整字词,直到到达预定义数量的连续可见字符,或者如果所述开始区到达所述文本行的结尾,则到达不足预定义数量的连续可见字符之处;以及
其中所述更新过程包括:
-响应于所述用户指令,对于每个文本项和每个列表项,检查在其第一文本行之后的每个文本行,以查找在所述文本行的所述开始区内或所述开始区之前添加的任何新笔划;
-对于每个被肯定检查的文本行,确定所述文本行是否以指示所述文本行是列表的一部分的预定列表符号开始;以及
-在肯定的情况下,拆分所述对应的文本项或列表项以创建以所述预定列表符号开始的新列表项,并且更新所述文本结构数据模型以反映所述拆分。
在一个特定实施方案中,所述生成所述文本结构数据模型包括针对每个文本项和列表项定义结尾区,所述结尾区通过包围一个或多个完整字词从所述项的最后一个可见字符向后延伸,直到到达预定义数量的连续可见字符,或者如果所述结尾区到达所述项的开始,则到达不足预定义数量的连续可见字符之处;
其中所述更新过程包括:
-针对每个项,确定由所述用户指令引起的所述更改是否修改其结尾区和/或是否在所述结尾区之后添加至少一个笔划,并且在肯定的情况下,基于所述更改而更新所述结尾区,并且基于所述更新后的结尾区重复所述步骤c)以更新所述文本结构数据模型。
在一个特定实施方案中,响应于作为用户指令接收的用于将现有项拆分成两个不同项的拆分命令:
-如果所述拆分命令在文本行的开始或结尾处指定拆分位置,则在所述拆分位置插入空行;以及
-如果所述拆分命令在文本行内指定拆分位置,则所述更新过程包括:
ο在所述拆分位置处将所述文本行拆分成分别属于通过拆分所述现有项获得的第一项和第二项的第一文本行和第二文本行;
ο确定所述第二文本行是否以指示所述第二文本行是列表的一部分的预定列表符号开始;以及
ο在肯定的情况下,将所述第二项分类为列表项,否则将所述第二项分类为文本项。
在一个特定实施方案中,仅响应于将两个不同项接合在一起的用户指令,将两个连续项合并成同一项。
根据另一方面,本发明涉及一种其上记录有计算机可读程序代码(或计算机程序)的非暂时性计算机可读介质,该计算机可读程序代码(或计算机程序)包括用于执行如本文档中所定义的本发明的方法的步骤的指令。
本发明的计算机程序可以用任何编程语言来表达,并且可以是源代码、目标代码或源代码和目标代码之间的任何中间代码的形式,例如,诸如以部分编译的形式或以任何其他适当的形式。
本发明还提供了一种如上所述的计算机程序。
前面提到的非暂时性计算机可读介质可以是能够存储计算机程序的任何实体或装置。例如,记录介质可以包括存储装置,诸如ROM存储器(在微电子电路中实现的CD-ROM或ROM),或者磁性存储装置,诸如软盘或硬盘。
本发明的非暂时性计算机可读介质可以对应于可传输介质(诸如电信号或光信号),该可传输介质可以经由电缆或光缆传送,或者通过无线电或任何其他适当的装置来传送。根据本公开的计算机程序尤其可以从互联网或类似网络下载。
另选地,非暂时性计算机可读介质可以对应于其中加载计算机程序的集成电路,该电路适于执行本发明的方法或者在本发明的方法的执行中使用。
在一个特定实施方案中,本发明涉及一种其中嵌入有计算机可读程序代码的非暂时性计算机可读介质,所述计算机可读程序代码适于被执行以在计算装置上实现如在本文档中定义的方法,该计算装置包括用于执行所述方法的步骤的处理器。
本发明还涉及一种适于实现本公开中定义的方法的计算装置。更特别地,本发明提供了一种用于处理手写中的列表的计算装置,所述计算装置包括:
-辨识模块,所述辨识模块被配置为通过对电子文档中的多个数字墨水笔划执行文本手写辨识来辨识文本,所述文本包括多个连续的文本行,每个文本行能够是作为列表的一部分的列表项或者不是列表的一部分的文本项;
-分类器模块,所述分类器模块被配置为初始将每个所辨识的文本行分类为不同的文本项,并且执行包括以下步骤的分类过程:
a)在每个文本行中进行模式检测,以确定所述文本行是否以指示所述文本行是列表的一部分的预定列表符号开始,并且将以预定列表符号开始的每个文本行分类为列表项;
b)响应于步骤a),确定每个文本项相对于参考位置的项缩进,并且为每个列表项确定表示所述列表项中所包括的文本相对于所述参考位置的缩进的文本缩进;
c)响应于步骤b),进行合并过程,所述合并过程包括:
ο如果由第一文本行后面接着第二文本行形成的每对连续文本行的所述第一文本行和所述第二文本行是具有相同项缩进的文本项,并且如果在所述第一文本行的结尾没有足够的可用空间来容纳开始所述第二文本行的第一个字词,则将所述文本中的所述对连续文本行合并为同一文本项的一部分;以及
ο如果第一文本行是列表项,并且第二文本行是具有与所述第一文本行的文本缩进相匹配的项缩进的文本项,并且如果在所述第一文本行的结尾没有足够的可用空间来容纳开始所述第二文本行的第一个字词,则将由所述第一文本行后面接着所述第二文本行形成的每对连续文本行合并为同一列表项的一部分;
-模型管理模块,所述模型管理模块被配置为基于所述合并过程的结果生成文本结构数据模型,所述文本结构数据模型将每个文本行定义为文本项或列表项的一部分。
以上结合本发明的方法定义的各种实施方案以类似的方式应用于本公开的计算装置、计算机程序和非暂时性计算机可读介质。
对于在本公开中定义的本发明的方法的每个步骤,计算装置可以包括被配置为执行所述步骤的对应模块。
在一个特定实施方案中,本公开可以使用软件和/或硬件部件来实现。在该上下文中,术语“模块”在本公开中可以指软件部件,以及硬件部件或多个软件和/或硬件部件。
附图说明
本公开的其他特性和优点将从下面参考附图进行的描述中显现,附图显示了不具有限制性特征的实施方案。在附图中:
-图1示出了包括列表内容和非列表内容的手写文本的示例;
-图2是根据本发明的特定实施方案的计算装置的框图;
-图3是表示根据本发明的特定实施方案的由计算装置实现的模块的框图;
-图4描绘了根据本发明的特定实施方案的手写文本中的缩进的确定;
-图5描绘了根据本发明的特定实施方案的用于处理手写中的列表内容和非列表内容的方法的步骤;
-图6、图7和图8表示根据本发明的特定实施方案的方法的不同步骤处的手写输入;
-图9是表示在根据本发明的特定实施方案的方法的不同步骤处获得的结果的表;
-图10描绘了根据本公开的特定实施方案的用于处理手写中的列表内容和非列表内容的方法的步骤;
-图11A、图11B、图11C和图12至图14表示根据本发明的特定实施方案的方法所处理的手写输入;以及
-图15描绘了根据本发明的特定实施方案的用于处理手写中的列表内容和非列表内容的方法的步骤。
图中的部件不一定是按比例的,而是着重示出本发明的原理。
为了说明的简单和清楚,除非另外指示,否则在所有附图中使用相同的附图标记来表示相同或类似的部分。
具体实施方式
在以下详细描述中,通过示例阐述了许多具体细节以便提供对相关教导内容的透彻理解。然而,所属领域的技术人员应了解,可在没有这些细节的情况下实践本发明教导内容。在其他实例中,以相对较高的水平描述众所周知的方法、程序和/或部件,而不进行详细描述,以便避免不必要地混淆本教导内容的方面。
示例性实施方案的以下描述参考附图。以下详细描述不限制本发明。相反,本发明的范围由所附权利要求限定。在如图所示的各种实施方案中,讨论了计算装置、对应的方法和对应的计算机程序。
术语“手绘”和“手写”在本文中可互换使用,以定义用户通过使用他们的手(或手指)或输入装置(手持式触笔或数字笔、鼠标......)在输入表面上或用输入表面创建数字内容(手写输入)。术语“手”等在这里用于提供输入技术的简明描述,然而,用于类似输入的用户身体的其他部分的使用包括在该定义中,诸如脚、嘴和眼睛。
手写由用户输入的数字墨水笔划形成。笔划(也称为墨水笔划或墨水段)的特征在于至少笔划起始位置(对应于“落笔”事件)、笔划结束位置(对应于“提笔”事件)以及连接笔划起始位置和笔划结束位置的路径。
笔划段是笔划的一部分。墨水选择是至少两个不同的(非重叠的)墨水笔划或墨水段的并集。可以比较墨水选择的相等性、交集等。
本公开中的术语“文本”被理解为包含任何书面语言的所有字符等(例如,字母数字字符)及其字符串,并且更一般地,包含在书面文本中使用的任何符号。因此,文本包括例如来自任何脚本的基本字符和变音符号,诸如拉丁文脚本、西里尔文脚本、中文脚本等等。文本可以包括一个或多个这种符号,并且可以以各种方式排列,诸如以文本行、多个文本行的段落等。
术语“列表”在本公开中被理解为包含排列成列表的一个或多个列表项的任何集合(或序列)。每个列表项包括文本,并且由称为列表符号的特殊印刷符号(或字形)引入,该特殊印刷符号可以是或包括项目符号(或项目符号点)、字符、编号(或数字)。项目符号可以采用多种形状中的任何一种,诸如圆形、正方形、菱形或箭头。诸如“*”(星号)、“-”(连字符)、“.”等的此类常规符号可以用作项目符号。在下面的描述中,这些特殊的印刷符号通常被称为“列表符号”。列表符号可以包括上述项目符号、字符、数字等中的一者或任一者的组合。列表可以是有序列表(列表符号包括对列表项进行排序的数字)或者无序列表(列表符号在列表项之间没有定义任何顺序)。
在本公开中,列表项因此是指列表的项,而文本项是指非列表项,即不是列表的一部分的文本项。列表项和文本项可以各自包括一个或多个文本行。包括多个文本行的文本项可以被视为形成段落。
此外,下面描述的且在附图中所示的示例处于从左到右书写的语言环境中,因此对位置的任何引用都可以适用于具有不同方向格式的书面语言。
图1描绘了包括排列成3个文本行110、112和114的文本的手写100的示例。手写输入100由形成字符的数字墨水笔划102形成。每个笔划102可以形成完整字符、字符的一部分或多个字符。例如,字符“i”顶部的点本身就构成了笔划。在当前情况下,由笔划102形成以下文本:“This is a list:”(文本行110)、“·item 1”(文本行112)和“·item 2”(文本行114)。第一文本行110构成文本项(即非列表项),而文本行112和114构成由列表符号120“·”(在这种情况下为圆形项目符号点)引入的列表项。
本文描述的各种技术一般涉及处理在便携式计算装置和非便携式计算装置上的手写,更特别地为了辨识并编辑数学和文本的目的。虽然下面描述的各种实施方案涉及使用所谓的在线辨识技术来辨识数字墨水手写输入,但是应当理解,可以应用用于辨识的其他形式的输入,诸如涉及用于执行辨识的远程装置或服务器的离线辨识。
本文描述的系统和方法可利用对经由诸如触敏屏幕的输入表面(如稍后所讨论的)输入到计算装置的用户的自然手写风格的辨识。
如下面更详细描述的,本发明的一个方面涉及确定手写的文本结构分解,并且特别地涉及检测和处理手写中的列表内容和非列表内容。该方法特别地涉及在手写输入中检测列表符号的模式检测过程和根据文本行相对于彼此如何排列而将某些文本行合并在一起的合并过程。
更特别地,本发明涉及一种由计算装置实现的用于处理列表内容和非列表内容的方法,该方法包括:对形成文本行的多个数字墨水笔划进行文本手写辨识;初始将每个所辨识的文本行分类为不是列表的一部分的不同文本项;以及用于将每个文本行分类为列表项或文本(非列表)项的分类过程。如下面进一步描述的,分类过程可包括:模式检测,该模式检测用于检测以预定列表符号(项目符号、数字等)开始的每个文本行,并将每个检测到的文本行分类为作为列表的一部分的不同列表项;确定每个文本项的项缩进和表示每个列表项的文本的缩进的文本缩进;以及合并步骤,该合并步骤包括合并满足预定条件的每对连续文本行(如下面进一步描述的)。计算装置还可以基于所述合并过程的结果生成文本结构数据模型,该文本结构数据模型将每个文本行定义为文本项或列表项的一部分。
如以下特定示例所示,文本结构数据模型定义由文本行形成的手写文本的结构分解。
图2示出了根据本发明的特定实施方案的计算装置DV1的框图。计算装置(或数字装置)DV1可以是台式计算机、膝上型计算机、平板计算机、电子书阅读器、移动电话、智能电话、可穿戴计算机、数字手表、交互式白板、全球定位系统(GPS)单元、企业数字助理(EDA)、个人数字助理(PDA)、游戏控制台等。计算装置DV1可以包括至少一个处理元件、某种形式的存储器以及输入和输出(I/O)装置的部件。这些部件通过输入和输出(诸如连接器、线路、总线、链接网络或本领域技术人员已知的其他装置)彼此通信。
更具体地,计算装置DV1包括用于手写(或手绘)文本IN的输入表面4,该手写(或手绘)文本IN可以包括文本项和/或列表项,如下文进一步描述的。输入表面4适于检测在所述输入表面上(或使用述输入表面)输入的多个数字墨水笔划SK。
输入表面4可以采用任何适当的技术,诸如电阻、表面声波、电容、红外栅格、红外丙烯酸投影、光学成像、色散信号技术、声脉冲辨识或本领域技术人员已知的任何其他适当的技术,以接收触敏表面或接近敏感表面形式的用户输入。输入表面4可以是由位置检测系统监测的非触敏表面。
计算装置100还包括至少一个显示单元(或显示装置)2,以用于输出来自计算装置DV1的数据,诸如手写IN。显示单元2可以是采用任何适当技术(LCD、等离子......)的屏幕等。显示单元2适于显示用户输入的数字墨水笔划SK。
输入表面4可以与显示单元2位于同一位置或者与其远程连接。在特定示例中,显示单元2和输入表面4是触摸屏的部分。
如图2所描绘的,计算装置DV1还包括处理器6和存储器8。计算装置DV1还可以包括一个或多个易失性存储元件(RAM)作为存储器8的一部分或与存储器分离。
处理器6是用于执行软件(特别是存储在存储器8中的软件)的硬件装置。处理器8可以是任何定制的或通用的处理器、中央处理单元(CPU)、基于半导体的微处理器(以微芯片或芯片组的形式)、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑装置或者它们的任何组合,并且更一般地,是本领域普通技术人员已知的被设计为执行软件指令的任何适当的处理器部件。
根据本公开的特定实施方案,存储器8是非暂时性(或非易失性)计算机可读介质(或记录介质)。存储器8可以包括非易失性存储元件(例如,ROM、EPROM、闪存PROM、EEPROM、硬盘驱动器、磁带或光带、存储器寄存器、CD-ROM、WORM、DVD等)的任意组合。
存储器8可以远离计算装置DV1,诸如在可由计算装置DV1远程访问的服务器或基于云的系统处。非易失性存储器8耦合到处理器6,使得处理器6能够从存储器8读取信息以及向存储器写入信息。作为替代,存储器8集成到计算装置8中。
存储器8包括操作系统(OS)10和手写应用程序(或计算机程序)12。操作系统10控制应用程序12的执行。该应用程序构成(或包括)根据本发明的特定实施方案的计算机程序(或计算机可读程序代码),该计算机程序包括用于实现根据本发明的特定实施方案的方法的指令。
在本实施方案中,应用程序12包括用于处理以适当方式获取的手写IN的指令。在本示例中,将要处理的手写IN可以是用户使用计算装置100的输入表面4手写的数字墨水笔划SK,如下面进一步讨论的。在一种变型中,手头的手写IN由计算装置DV1获取,但不是通过输入表面4输入的。
如图2所描绘的,非易失性存储器8适于存储由计算装置2获取的各种数据,包括预定义列表符号BT的集合和文本结构数据模型(也称为模型)ML。该集合可以包括表征列表项的开始的一个或多个预定义列表符号BT。文本结构数据模型ML包括定义手写的结构的信息,诸如可以是列表项LI或文本(即非列表)项TI的文本行的类型。这些特征的性质和使用将在下文中更详细地描述。
如图3所示,根据特定实施方案,当运行存储在存储器108(图2)中的应用程序12时,处理器6可以实现模块,即:辨识模块MD2、分类器模块MD4、模型管理模块12,以及在一些实施方案中的后处理模块MD14。
辨识模块MD2可被配置为通过对电子文档中的多个数字墨水笔划SK执行文本手写辨识来辨识文本,所述文本包括多个连续的文本行LN。
分类器模块MD4可被配置为初始将每个所辨识的文本行LN分类为不同的文本项TI,并且执行分类过程,该分类过程包括:
a)在每个文本行LN中进行模式检测,以确定所述文本行LN是否以指示所述文本行LN是列表的一部分的预定列表符号BT开始,并且将以预定列表符号开始的每个文本行LN分类为作为列表的一部分的不同列表项;
b)确定每个文本项TI相对于参考位置的项缩进,并且为每个列表项LI确定表示所述列表项LI中所包括的文本相对于参考位置的缩进的缩进;
c)合并步骤,该合并步骤包括:
ο如果由第一文本行LN后面接着第二文本行LN形成的每对连续文本行LN的第一文本行和第二文本行是具有相同项缩进的文本项,并且如果在第一文本行的结尾没有足够的可用空间来容纳开始第二文本行的第一个字词,则将所述对连续文本行LN合并为同一文本项TI的一部分;以及
ο如果第一文本行是列表项,并且第二文本行是具有与第一文本行的文本缩进相匹配的项缩进的文本项,并且如果在第一文本行的结尾没有足够的可用空间来容纳开始第二文本行的第一个字词,则将由第一文本行LN后面接着第二文本行LN形成的每对连续文本行LN合并为同一列表项LI的一部分。
在本示例中,分类器模块MD4包括被配置为执行步骤a)的模式检测模块MD6、执行步骤b)的确定模块MD8和执行步骤c)的合并模块MD10。
模型管理模块MD12可以被配置为基于合并步骤的结果生成文本结构数据模型ML,该文本结构数据模型ML将每个文本行LN定义为文本项或列表项的一部分。
后处理模块MD14可被配置为基于文本结构数据模型对由辨识模块MD2辨识的文本执行编辑,所述编辑包括以下中的至少一者:修改所辨识的文本的至少一个项的内容;以及回流过程,所述回流过程引起所辨识的文本的至少一个项的数字墨水的回流,后处理模块MD14可响应于用户指令来执行对所辨识文本的此类编辑。
应用程序12包括配置处理器6以实现上述模块MD2-MD14的指令,以便执行本发明的方法的步骤,如稍后在特定实施方案中所述。
在下文参考附图描述的特定实施方案中,计算装置DV1的模块MD2-MD14的配置和操作将更加明显。应当理解,如图3所示的模块MD2-MD14仅代表本发明的一个示例性实施方案,其他实现方式也是可能的。
对于本发明的方法的每个步骤,计算装置DV1可以包括被配置为执行所述步骤的对应模块。
如下面在特定实施方案中进一步描述的,本发明的方法可涉及确定手写文本IN的文本行LN的缩进。缩进定义文档中给定文本行开始的横向位置。缩进可以由文本行LN之前的空白空间形成。在许多书面语言中,首行缩进例如是指将段落的第一行缩进。
图4描绘了其中手写文本IN(为了方便起见以排版样式表示)由电子文档中的数字墨水笔划SK形成的示例。手写文本IN包括4个文本行LNa、LNb、LNc和LNd(统称为LN),每个文本行都包括文本。在本示例中,相对于文档中的(横向)参考位置30来确定缩进。
缩进22a、22b、22c和22d(统称为22)构成相应文本行LNa、LNb、LNc和LNd的缩进,并且被称为“项缩进”。换句话讲,项缩进是项(列表项或文本项)相对于参考位置30的缩进。
文本行LNa和LNb可以被计算装置DV1检测为同一文本项TI的一部分,因为它们具有相同(或基本相同)的项缩进22a、22b。另一方面,文本行LNc和LNd可以被计算装置DV1检测为同一列表项LI的一部分,因为文本行LNc以预定义列表符号BT“*”开始,并且因为文本行LNc、LNd具有相同(或基本相同)的项缩进22c、22d。
可以设想计算缩进的各种方式。在本示例中,文本项和列表项两者都具有相应的缩进值(标记为“i”),该缩进值表示文本项和列表项相对于左页边30的横向位置。在本示例中,计算装置DV1执行基于列的计算,以基于将给定项的起点与参考位置30分开的预定义列C1的数量来确定代表每个项的缩进的值i。缩进值i可通过确定文本项的字词左边或列表项的列表符号左边的第一列边界来计算。这些列C1的尺寸可以与文本行高度成比例,并且两者都是可定制的。换句话讲,这些列C1的宽度(或尺寸)C可以被选择成与文本行LN的高度成比例。
在图4所示的示例中,由箭头34表示的列指示缩进计算的公差区。文本行LNa和LNb的项缩进22具有值1,而文本行LNc和LNd的项缩进22具有值2。
可以针对由文本行22a和22b形成的整个文本项TI计算项缩进22(例如,值1)。类似地,可以针对由文本行22c和22d形成的整个列表项LI计算项缩进22(例如,值2)。
在特定示例中,计算缩进i,使得:
其中Δ是项距参考位置30的距离,C是预定义列C1的宽度,并且t是定义为宽度C的百分比(%)的公差。
如图4所示,以列表符号BT“*”开始并因此是列表项IT的一部分的文本行LNc的特征还在于文本缩进24,该文本缩进表示文本行LNc中所包括的文本相对于参考位置30的缩进。换句话讲,以预定义列表符号BT开始的每个列表项的特征在于项缩进22和文本缩进24,文本缩进由列表项的第一字符相对于参考位置30的横向位置来定义。
在本示例中,缩进值i不是距页边的距离,而是基于固定宽度列C1的增量值。可以设想用于确定文本项的项缩进和用于确定列表项的文本缩进的其他实现方式。如下面进一步解释的,缩进值i用于确定列表和子列表的范围。
现在参考图5至图15描述根据本发明的特定实施方案的由图2至图3所示的计算装置DV1实现的方法。更具体地,计算装置DV1通过执行存储在存储器8中的应用程序12来实现该方法。
考虑一个示例场景,其中计算装置DV1获取手写IN(手写文本)并实现手写辨识应用程序12来确定所获取的手写IN的文本结构数据模型ML,并且更具体地,辨识所述手写IN中的列表项LI和文本项TI。
更具体地,在获取步骤S2(图5)中,计算装置DV1获取数字墨水形式的手写IN。所获取的手写输入IN由多个数字墨水笔划SK形成。这些笔划SK构成手写IN的数字表示。考虑所获取的笔划SK的集合形成在电子文档40中基本上沿着相同取向延伸的多个文本行LN。这些连续文本行LN可以根据每种情况以各种方式排列。
每个文本行LN由一个或多个笔划SK形成,所述一个或多个笔划SK形成一个或多个字符(或符号)CH,所述一个或多个字符形成一个或多个字词WD。
在特定示例中,文本行中的文本可以混合手写和排版文本,其中在排版文本中,每个字形被视为笔划。
为了说明起见,使用伪(虚构)语言的手写而不是实际语言中的手写。本发明允许确定任何手写文本的文本结构,包括伪语言。
图6中仅示出了轮廓以标记每个文本行LN之间的项边界。在本示例中,手写输入IN形成22个连续文本行LN1到LN24(统称为LN)。每个文本行LN包括文本,即形成多个字符CH的多个笔划,这些字符CH形成字词WD。在该示例中,手写输入还包括不包含任何文本的两个连续空行L0(在文本行LN8和LN9之间)。图6中所示的手写输入IN当然仅仅是作为示例提供的,以便在特定实施方案中说明本发明的概念。
计算装置DV1因此在显示器2上显示(S2)所获取的笔划ST,如图6所示。
如已指示的,每个输入笔划SK的特征在于至少笔划起始位置、笔划结束位置和连接笔划起始位置和笔划结束位置的路径。因此,被定位在例如字符“i”(文本行LN1中的字词“fel is”中)顶部的点自身构成单个笔划SK。
在当前情况下,假设所述多个数字墨水笔划ST是由用户使用计算装置DV1的输入表面4在电子文档40中输入的。用户可以用手或手指或者用某种输入器具(诸如适于与输入表面4一起使用的数字笔或触笔)来输入输入笔划SK。用户还可以通过在输入表面4上方做出手势(如果使用被配置为感测输入表面4附近的运动的装置),或者利用计算装置DV1的外围装置(诸如鼠标或操纵杆等)来输入输入笔划SK。
然而,应当理解,计算装置DV1可以以任何其他适当的方式获取手写IN。
在本示例中,计算装置DV1在笔划SK由用户利用输入表面4输入时获取笔划SK以执行在线手写辨识。然而,应当注意,本发明可以以类似的方式应用于离线手写辨识,即,通过在手写图像上执行本发明的概念,从而形成手写的静态表示。因此,不需要关于笔划如何随时间相对于彼此输入的时间信息。
在文本手写辨识步骤S4中,计算装置DV1通过对在S2获取的笔划SK执行文本手写辨识来辨识文本。特别地,计算装置DV1在S4中从所辨识的文本中识别多个文本行LN1-LN24。文本手写辨识S2可以使用本领域技术人员已知的任何技术(例如使用顺序分类器)以任何适当的方式来执行。
通过执行该文本手写辨识S4,作为文本辨识结果的一部分,计算装置DV1可以辨识由笔划SK形成的字符CH、由字符CH形成的字词WD以及由字词WD形成的文本行LN。
在特定示例中,在S4中获得的文本辨识结果可以为被处理的笔划SK提供多于一个的文本解释。可以针对文本IN、字词WD和字符CH产生具有相关联的置信度得分的不同结果候选。每个文本候选(文本、字词、字符)可以与构成笔划SK相关联。文本手写辨识模块S4可以选择具有最佳置信度得分的文本候选。由于文本手写辨识对于技术人员来说是已知的,因此在这方面不再提供进一步的细节。
每个字符(或符号)CH由一个或多个输入笔划SK或至少由笔划SK的一部分形成。
另外,每个文本行LN可以是列表项LI的一部分,也可以不是列表项的一部分(即文本项TI)。该方法的目的是从由手写IN形成的多个文本行LN中识别列表项LI和文本(非列表)项TI。作为该方法的结果识别的每个列表项LI和每个文本项TI可以包括一个或多个文本行LN。
在初始分类步骤S6期间,计算装置DV1初始将每个所辨识的文本行LN分类为不同的文本项TI,因此该不同的文本项不是列表的一部分。因此,所有文本行LN1-LN24被分类为不同的文本项TI(图5至图6)。在该初始分类步骤S6期间,计算装置DV1还将两行L0分类为空行。该初始分类的结果可以由模型管理模块MD12(图3)存储(S6)在非易失性存储器8中的文本结构数据模型ML中。
图9中所示的表示出了在该方法的各个步骤期间在计算装置DV1继续对文本行LN分类时文本结构数据模型ML的对应状态。字母“T”代表“文本项”,字母L代表“列表项”,并且字母“D”代表空行。阶段t0对应于作为初始分类步骤S6的结果的分类的当前状态。
在该初始阶段t0,文本结构数据模型ML可以包括基于在文本手写辨识S4中产生的文本辨识结果获得的初始结构信息。特别地,文本结构数据模型ML可以与其构成笔划SK相关联地定义每个字符CH,与其构成字符CH相关联地定义每个字词WD,以及与其构成字词WD相关联地定义每个文本行LN,如在文本手写辨识S4中所确定的。在该初始阶段t0,作为初始分类S6的结果,每个文本行LN根据文本结构数据模型ML被分类为文本项TI。
模型ML可以包括定义每个文本行LN的第一个和最后一个笔划SK的信息。空行L0(在这种情况下,其被辨识为两个连续的空行)可以在S6中被分类,并且由文本结构数据模型ML定义为同一分隔线项D的一部分,该分隔线项D分隔两个不同的项(各自为文本项TI或列表项LI)。换句话讲,该分隔线项D可以标记手写文本IN内的文本/列表项的结尾和另一个文本/列表项的开始。
在该方法继续向前时,文本结构数据模型ML由模型管理模块MD12(图3)更新,以反映该方法的各个步骤的分类结果。
计算装置DV1然后继续分类过程S8(图5和图7),该分类过程S8依次包括模式检测步骤S10、缩进确定步骤S12和合并步骤(或合并过程)S14,以检测包含在所辨识的手写文本IN中的每个文本项TI和/或列表项LI。在该方法继续向前时,文本结构数据模型ML由模型管理模块MD12(图3)更新,以反映模式检测步骤S10和合并步骤S14的结果。
更具体地,在模式检测步骤S10期间,计算装置DV1在每个文本行LN中执行模式检测以确定所述文本行LN是否以指示所述文本行LN是列表的一部分的预定列表符号BT开始,并且然后将以预定列表符号开始的每个文本行LN重新分类为作为列表(图7)的一部分的不同列表项LI。由于所有文本行LN1-LN24初始都被假设为文本项TI,因此计算装置DV1将由预定列表符号BT引入的每个文本行LN重新分类为不同的列表项LI。因此,从(或基于)在S6获得的初始分类开始,以预定列表符号BT开始的每个文本行LN被重新分类为不同的列表项LI,而任何其他文本行LN保持其初始分类作为不同的文本项。
在本示例中,基于存储在非易失性存储器8中的预定列表符号BT的集合来执行模式检测S10。在S10中,计算装置DV1检查每个文本行LN的开始,并且将一个或多个开始笔划(例如,预定义数量的开始笔划SK或文本行LN开始处的第一个字符CH)与预定列表符号BT的集合进行比较。例如,对于每个文本行LN,模式检测模块MD6将开始所述文本行LN的第一符号与预定列表符号BT的集合进行比较,以确定是否存在匹配。如果存在匹配,则模式检测模块MD6推断文本行LN以列表符号BT(项目符号等)开始,并且因此将文本行LN分类为其自身的列表项LI。
S10中未被检测为以预定列表符号BT开始的每个文本行LN在此阶段被假定为文本项TI。如前所指示,每个文本行LN初始被分类(S6)为不同的文本项TI。因此,在S10中检测到的不具有预定列表符号BT的每个文本行LN保持其作为文本项的初始分类。
如前所述,列表符号BT可以采取各种形式,只要其被定义为引入列表项。在特定示例中,模式检测模块MDMD6使用正则表达式匹配来执行模式检测。预定义列表符号的范围可以包括以下统一码字符:连字符减号、数字符号、星号等。除了单字符项目符号之外,罗马数字、阿拉伯数字和由句点分隔和/或以右括号结束的字母也可以被辨识为列表符号BT。这里是预定列表符号BT的几个示例:“1)”、“b.”、“1.a”、“vi”和“IV”。
例如,在图7中,计算装置DV1检测到文本行LN9、LN13和LN15以列表符号BT(分别为“1.”、“·”和“1.2.3.4.5”)开始,并且因此将这些文本行重新分类为不同的列表项LI。
如图9所示,作为对所有文本行LN执行的模式检测S10的结果,阶段t1对应于分类的当前状态。
响应于模式检测步骤S10,计算装置DV1继续缩进确定步骤S12(图5和图7)。在缩进确定步骤S12中,计算装置DV1然后确定每个文本项TI相对于电子文档40中的参考位置22的项缩进22,并且为每个列表项LI确定表示列表项LI中包括的文本相对于参考位置30的缩进的文本缩进24。在这个阶段确定哪些文本行LN被认为是列表项LI以及哪些文本行LN被认为是文本项TI是基于先前模式检测步骤S10的结果(即,例如基于在文本结构数据模型ML中定义的当前分类状态)。
在本示例中(图7),计算装置DV1因此确定(S12):
-文本项LN1-LN8、LN10-LN12、LN14和LN16-LN24的项缩进22;以及
-列表项LN9、LN13和LN15的文本缩进24。
目前,假设项缩进22和文本缩进24是如先前参考图4所解释的那样确定的,但可以设想其他缩进计算技术。图9中的表示出了由计算装置DV1针对在S12中确定的每个上述缩进计算的值i。如前所述(图4),这些值i表示相对于电子文档40中的横向参考位置30的缩进。在本示例中,针对每个缩进(文本项TI的项缩进或列表项LI的文本缩进)获得的值i的范围从0到1。这些值当然取决于用于执行缩进计算的基于列的策略。
响应于缩进确定步骤S12,计算装置DV1继续合并步骤S14(图5和图7至图8)。在合并步骤S14中,计算装置DV1然后分析在该阶段在手写IN中辨识的每个文本项TI和列表项LI,以基于在先前缩进确定步骤S12中确定的缩进来确定哪些项(如果有)应当被一起合并到相同的项中。为此,计算装置DV1依次检查每对PR(图7)连续文本行LN,以确定是否满足预定合并条件CD,并且如果满足,则将对PR的两个文本行LN合并为同一项(列表项LI或文本项TI)的一部分。这是通过基于预定义规则执行逐行(或逐对)分析来评估是否需要合并两个连续文本行LN来实现的。
更具体地,在合并步骤S14期间,计算装置DV1:
-如果由第一文本行LN后面接着第二文本行LN形成的每对PR连续文本行LN的第一文本行和第二文本行是具有相同项缩进22的文本项TI,并且如果在第一文本行LN的结尾没有足够的可用空间来容纳开始第二文本行LN的第一个字词WD(条件CD1),则将所述对PR连续文本行LN合并为同一文本项TI的一部分;以及
-如果第一文本行是列表项LI,并且第二文本行是具有与第一文本行的文本缩进24相匹配的项缩进22的文本项TI,并且如果在第一文本行的结尾没有足够的可用空间来容纳开始第二文本行的第一个字词(条件CD2),则将由第一文本行LN后面接着第二文本行LN形成的每对PR连续文本行LN合并为同一列表项LI的一部分。
从上文可以看出,在S14中,对每对PR连续文本行LN应用两个测试,以分别确定是否满足这两个条件中的任一者:
-条件CD1:该对PR文本项TI的第一文本行LN和第二文本行LN是否具有相同的项缩进22,并且在第一文本行LN的结尾是否没有足够的可用空间来容纳开始第二文本行LN的第一个字词WD?
-条件CD2:该对PR的第一文本行是否是列表项LI,并且第二文本行是否是具有与第一文本行的文本缩进24相匹配的项缩进22的文本项TI?
因此,每个条件CD1和CD2包括两个子条件,为了满足对应的条件,必须满足这两个子条件。
在本示例中,合并模块MD10因此依次检查每对PR连续文本行LN,以确定是否满足条件CD1和CD2中的任一者。为此,合并模块MD10查阅文本结构数据模型ML来确定每个文本行LN的当前项类型(文本项TI或列表项LI),并且检查条件CD1或条件CD2是否在任一对PR中得到满足。
作为示例,合并模块MD10检查(S14,图5)由连续行LN3和LN4(图7至图8)形成的对PR。合并模块MD10检测到该对PR的第一文本行LN3和第二文本行LN4两者都是文本项TI,并且因此验证这两个文本行是否具有彼此匹配的项缩进22(即,在本示例中具有相同的值i)。由于两个项缩进22匹配(对于两个文本行NLN3、LN4,i=0),所以合并模块MD10确定在第一行LN3的结尾是否有足够的可用空间(没有文本)来容纳开始第二文本行LN2的第一个字词“Vivamus”。目前,合并模块MD10因此将第一文本行LN3结束后的可用空间42与第一个字词“Vivamus”的大小(所占据的面积)进行比较。在本示例中,区域42中没有足够的地方来容纳或放置整个字词“Vivamus”。因此,合并模块MD10将文本行LN3和LN4合并为同一文本项IT的一部分。
该预定义条件CD1被定义为考虑用户的自然手写。如果用户在文本行LN的结尾处留出相对较大的可用空间,并且在下一个文本行LN上开始手写,很可能该下一个文本行开始不同于前一个项的新项(文本项或列表项)。
作为另一示例,合并模块MD10检查(S14,图5)由连续线LN9和LN10(图7至图8)形成的对PR。合并模块MD10检测到该对PR的第一文本行LN9是列表项LI,而第二文本行LN10是文本项TI,并且因此验证第一行LN9的文本缩进24是否与第二文本行LN10的项缩进24匹配,并且还验证在第一文本行LN9的结尾是否没有足够的可用空间来容纳开始第二文本行LN10的第一个字词。在本示例中,由于这两个缩进匹配(对于LN9和LN10两者,缩进值i=1)且在第一文本行LN9的结尾没有足够的可用空间来容纳开始第二文本行LN10的第一个字词“vulputate”,所以合并模块MD10将两个文本行LN9和LN10合并为同一列表项LI的一部分。
在本示例中,合并模块MD10认为文本行LN8和LN9彼此不连续,因为它们被由空行L0形成的分隔线项分开。
在本示例中,在合并步骤S14中,如果第一项是文本项且第二项是列表项(根据文本结构数据模型ML的当前状态),则合并模块MD10将由第一文本行后面接着第二文本行形成的每对PR连续文本行LN保持为单独项。
通过将这两个测试(分别基于条件CD1和CD2)应用于连续文本行LN的每个连续对,模型管理模块MD12(图3)逐渐更新文本结构数据模型ML的结构信息,如图9所示的表的阶段t2所表示。通过如上所述在合并步骤S14中将连续文本行LN合并在一起,从手写文本IN中辨识文本项TI和列表项LI。在本示例中,作为合并步骤S14的结果,文本结构数据模型ML定义以下不同的项:
-由文本行LN1-LN8形成的文本项TI;
-由两个空行L0形成的分隔线项D;
-由文本行LN9-LN12形成的列表项LI;
-由文本行LN13-LN14形成的列表项LI;
-由文本行LN15-LN20形成的列表项LI;以及
-由文本行LN21-LN24形成的文本项TI。
在一种变型中,计算装置DV1可以辨识出段落的第一行相对于该段落的每个其他文本行LN缩进。因此,如上所述,由合并模块MD10应用的用于识别多个文本行LN并将所述多个文本行LN合并到对应于同一段落的同一文本项中的条件CD1可适于考虑该段落的第一行相对于该同一段落的一个或多个其他文本行具有不同的(即,更高的)缩进值。
在生成步骤S16中,模型管理模块MD12基于合并步骤S14的结果生成文本结构数据模型ML。在本实施方案中,通过将文本手写辨识S4的结果存储在文本结构数据模型ML中,并且通过基于在初始分类步骤S4、模式检测S10和合并步骤S14中获得的结果连续更新该模型ML,逐渐地执行这种生成。在一种变型中,基于先前步骤S4、S6、S10和S14的结果,在合并步骤S14之后生成文本结构数据模型ML。
本发明提供了一种用于确定手写的文本结构分解(即结构排列)的有效和可靠的解决方案。由于本发明,可以检测手写中的列表项。特别地,本发明允许以准确和可靠的方式区分(或辨别)手写中的列表元素和非列表元素,例如以改进对手写的操纵或编辑(如下文进一步描述的)。还可以检测手写中的段落。
更特别地,通过初始假设每个所辨识的文本行是不同的文本项,并且通过执行依次涉及模式检测、缩进确定和合并过程的分类过程,可以实现有效的分类。执行模式检测,使得以项目符号开始的每个文本行被从不同的文本项重新分类到不同的列表项,从而可以执行文本项和列表项之间的第一可靠区分。接下来,确定特定缩进,即文本项的项缩进和列表项的文本缩进。基于这些特定的缩进,可以有效地执行合并过程,以改进在分类过程的步骤a)中获得的分类结果。
在合并过程期间,然后根据手头的每对的文本行的项性质(列表/文本项)执行两种不同类型的合并。其允许将文本项合并在一起作为同一文本项的一部分(第一合并),以及将列表项后面接着文本项合并为同一列表项的一部分(第二合并)。在这两种情况下,继续合并的决定是基于在该对的第一文本行的结尾是否有足够的可用空间来容纳该对的第二文本行的第一个字词。这两种合并考虑了人类的自然手写,以便以最佳的准确性确定何时应当将文本行视为同一文本项或列表项的一部分。
通常,文本结构数据模型ML可以将所辨识的文本IN分解成至少一个文本项TI和/或至少一个列表项LI,每个项与至少一个文本行LN和属于所述至少一个文本行LN的每个笔划SK相关联。模型ML可以将每个墨水笔划SK与至少一个字符CH相关联。另外,每个字符CH属于单个结构项(即文本项TI、列表项LI或可能的分隔线项D,如果考虑分隔线项的话)。
可以设想文本结构数据模型ML的各种形式、内容和结构。
在本示例中,每个文本项TI、列表项LI和分隔线项D包含整行。
模型ML还可以包括对应于一个或多个空行的至少一个分隔线项。每个分隔线项D可以分隔所辨识的文本IN的两个其他项。
在本示例中,文本结构数据模型ML因此将所辨识的文本IN分解成多个文本项TI和多个列表项LI,可能包括分隔线项D。
文本结构数据模型ML可以识别所辨识的文本IN中包括的每个文本项TI和每个列表项LI。模型ML可以包括每个所辨识项的以下结构信息(或其任意组合):项类型(文本项TI、列表项LI、以及可能的分隔线项D)、笔划SK、字符CH、行、开始和结尾位置。所有项(文本/列表项和分隔线)可以由它们在文本中的开始和结尾光标位置来表示。
在文本结构数据模型ML中,每个可见项(即文本项和列表项,但不是分隔线项)也可以被分配它们包含的所有字符CH的墨水选择。
如下面参考图10进一步描述的,计算装置DV1可以基于稍后的用户指令(在步骤S2-S14之后接收的)更新文本结构数据模型ML,这些指令导致在S2中获取的手写文本IN的更改。
一旦在S16中生成了文本结构数据模型ML(图5),计算装置DV1就可以使用其来编辑手写文本IN。可以设想编辑S18的各种类型和实现方式。
在特定示例中,后处理模块MD14基于文本结构数据模型ML对所辨识的文本IN执行编辑S18。该编辑S18可以包括以下中的至少一者:
-修改或更改(S20)所辨识的文本IN的至少一个文本和/或列表项的内容;以及
-回流过程(S22),该回流过程使得所辨识的文本IN中的至少一个文本和/或列表项的数字墨水回流。
因此,在S18中执行的编辑可包括影响手写IN的不同种类的修改。编辑S18可包括一个或多个墨水修改更改,根据该修改更改,通过修改、添加或删除来更改手写IN的至少一个墨水笔划SK。在特定示例中,由用户指令引起的更改包括将至少一个新笔划SK添加到电子文档40中和/或移除或修改至少一个现有笔划SK(墨水修改更改)。编辑S18还可包括一个或多个重新格式化更改(没有添加、修改或移除墨水),所述一个或多个重新格式化更改要求手写IN的一个或多个现有项(文本和/或列表项)的回流。在这种情况下,回流过程因此引起手写IN的至少一个项的数字墨水的回流。
响应于编辑S18,计算装置DV1可以再次对所编辑的手写文本执行文本手写辨识,以产生新的文本辨识结果来更新文本结构数据模型ML。
相反,文本回流指定一种过程,通过该过程,文本被移动以适合特定的显示区域(例如,页面、屏幕、窗口)。文本回流对于本领域技术人员来说是众所周知的,因为其允许提高可读性,从而便于读者理解。每当应用程序12需要文本回流时,文本回流可以由计算装置DV1触发。
分类过程S8以及特别是在步骤S14(图5)中执行的合并过程允许在发生任何更改时对列表处理的快速和动态响应。这是因为分类过程S8允许手写文本IN的每个文本行LN被分类为文本项或列表项的一部分。在该特定示例中,文本结构数据模型ML将每个文本行LN定义为文本项TI或列表项LI的一部分。因此,当在S18中进行编辑时,计算装置DV1可以仅处理受影响的文本行LN以重新评估它们的分类(作为列表项或文本项的一部分),例如通过执行如前所述的步骤S4到S16或者通过任何其他适当的方式(图5)。在没有合并过程S14的情况下,每次对手写文本IN执行编辑时,所有文本行LN都需要重新评估,这将导致时间和处理成本过高。
因此,合并过程S14允许快速重新处理手写文本IN,因为只有受影响的文本行LN(通过任何编辑,即墨水修改更改和/或重新格式化更改)被重新处理,这允许列表/文本分类的更快和更一致的结果。
在编辑S18期间,计算装置DV1使用文本结构数据模型ML的信息来控制文本被编辑(修改、回流等)的方式,从而提升用户体验。例如,可以通过自动对齐同一列表项LI的每个文本行LN来改进文本的回流。自动内容编辑(诸如添加项目符号、改变项目符号等)也可以应用于列表项。由于本发明,因此可以基于文本的结构分解来调适对文本的操纵,特别是对列表内容和非列表内容执行经调适的编辑。
计算装置DV1还可以更新文本结构数据模型ML,以反映对文本IN执行的编辑S18。
编辑S18可以响应于通过任何适当方式(例如,经由输入表面4或计算装置DV1的任何用户接口)输入到计算机装置DV1的用户指令来执行。然而,其他示例也是可能的,其中对手写IN的编辑(S16)由计算装置DV1自动执行,即在没有用于编辑手写IN的任何用户指令的情况下由计算机装置DV1触发。
例如,用户可以使用键盘输入特殊指令来编辑手写文本IN(例如,制表、回车)。用户也可以输入预定义的手势。
在特定示例中,可以输入拆分手势(例如,向下)来拆分行,这可以等同于激活键盘回车键。当拆分指令命令对文本行执行拆分时,该文本行被拆分成两个不同的文本行,并且该文本行所属的项(文本项或列表项)也被拆分成两个不同的项。相同字词WD的两个连续字符之间的拆分手势可导致将该字词WD拆分成两个字词,而两个连续字词WD之间的拆分手势可导致将该行断开为两个不同的行。
同样,可以输入接合手势(例如,向上)以根据情况接合两行或两个字词。
可以设想各种其他用户指令来修改或编辑手写文本。
在特定示例中,在回流过程S22(图5)期间,响应于用户拆分命令而先前已经从前一个项分离的文本项或列表项仅响应于将两个项结合在一起的用户结合命令而被合并到所述前一个项中。
在一个特定实施方案中,文本结构数据模型ML可以将文本项类型分类成两个子类型,即显式(或第一)文本项和隐式(第二)文本项。换句话讲,模型ML可以将每个文本项TI定义为显式文本项或隐式文本项。响应于输入到计算装置DV1的预定用户指令(诸如拆分指令、拆分指令等)而创建的文本项TI被定义为显式文本项。相反,在尚未接收到预定用户指令来确认该分类的情况下被计算装置DV1假定为文本项TI并且因此被如此分类的项被定义为隐式文本项。
例如,每个文本行LN在初始分类S2(图5)中被分类为隐式文本项TI,而响应于拆分手势(或中断指令)而创建的文本项被分类为显式文本项。
因此,在文本结构数据模型ML中将文本项定义为显式文本项或隐式文本项允许通过维护与用户意图一致的全局文本结构来进一步改进如何操纵文本。
此外,如前所指示,计算装置DV1可以在生成步骤S16之后响应于获取引起对所辨识的文本IN(即在文本手写辨识S4中所辨识的文本IN)的更改的用户指令,更新文本结构数据模型ML。
图10描绘了一个特定实施方案,根据该实施方案,计算装置DV1在生成步骤S16之后获取(S30)引起对正在显示的所辨识的文本IN进行编辑或更改的用户指令INS1。
在当前情况下,对所辨识的文本IN的更改意味着手写IN的至少一个墨水笔划SK通过修改、添加或删除(墨水修改更改)而被更改。换句话讲,由用户指令INS1引起的更改包括将至少一个新笔划SK添加到电子文档40中和/或移除或修改至少一个现有笔划SK。
在辨识步骤S32中,计算装置DV1通过以类似于步骤S4(图5)的方式执行文本手写辨识来辨识被更改的手写文本IN,从而产生代表现在被更改的所辨识的文本的新辨识结果。
在更新过程S34中,计算装置DV1基于在S32中获得的新辨识结果来更新文本结构数据模型ML。在特定示例中,响应于用户指令INS1,计算装置DV1在显示器上编辑手写文本IN的内容,并且相应地更新文本结构数据模型ML。模型ML的这种更新可包括例如将至少一个项的定义从文本项TI切换到列表项LI和/或将至少一个项从列表项LI切换到文本项TI。
更新过程S34可包括通过从文本结构数据模型ML中删除任何已移除的笔划SK并且通过将任何新笔划SK分配给文本结构数据模型ML的现有项或新项(文本项或列表项)来更新文本结构数据模型ML。换句话讲,添加的新墨水或移除的墨水可以简单地触发文本结构数据模型ML中的簿记(bookkeeping),以将任何添加的笔划、字符和字词分配给对应的文本行和文本行所属的项(文本项TI或列表项LI)。对于每个新项,任何新的墨水笔划SK、新字符CH等被分配给该新项。如果由于更改而没有墨水保留在现有项中,则删除整个项。
步骤S30-S34可以重复多次,以保持文本结构数据模型ML是最新的,从而该文本结构数据模型ML总是代表手写输入IN的当前状态。因此,可以在每次新的用户输入时(即,在每次获取新的文本输入时)递增地执行结构分解分析。
在图10所示的实施方案中,触发新的文本手写辨识S32,以辨识由用户指令INS1更改的文本IN。在一种变型中,用户指令INS1引起操纵(如前所述的文本回流或任何重新格式化更改),而实际上不更改文本的内容(现有笔划没有通过添加、修改和/或更改而更改)。在这种情况下,该方法可以从获取步骤S30前进到更新过程S34,而不执行新的文本手写辨识S32(图10)。
如前所述,文本结构数据模型ML将每个文本行LN定义为文本项TI或列表项LI的一部分。因此,当响应于用户指令INS1在S34中进行编辑时,计算装置DV1可以仅处理受影响的文本行LN以重新评估它们的分类(作为列表项或文本项的一部分)。受影响的文本行LN的重新处理可以以各种方式实现,诸如通过重复如前所述的分类过程S8(图5)或者通过任何其他特定的更新技术(如下所述)。在没有合并步骤S14的情况下,每次对手写文本IN执行编辑时,所有文本行LN都需要重新评估,这将导致时间和处理成本过高。因此,在该方法的步骤S14(图5)中执行的合并过程允许在对手写进行任何更改或编辑时对列表处理的快速和动态响应。
特别地,通过使用如上所述的更新过程S34(图10),本发明允许当用户对数字墨水执行可能修改先前分类的列表项或文本项的一部分的更改时进行动态项和缩进确定。
现在在下文中描述实现更新过程S34(图10)的特定示例。
如图11A所示,当在S34(图10)中检测到由用户指令INS1引起的更改导致一个或多个新墨水笔划SK(其不是先前文本手写辨识(S4或S32)的文本辨识结果的一部分)被添加到所辨识的文本IN中时,计算装置DV1在文本结构数据模型ML中将每个新笔划SK分配给该新笔划出现的文本行LN。对于出现在新文本行LN上的新墨水笔划SK,计算装置DV1可以创建包围整个文本行LN的新文本项(例如,新的隐式文本项)。
在图11A所示的示例中,作为文本手写辨识S32(图10)的结果,检测到字词“mauris”被添加到现有项IT1(在此情况下是文本项TI)并且为新字词“Ligula”创建新项IT2(在此情况下是文本项TI)。在该示例中,步骤S10、S12和S14(如先前参考图5所述)被应用于项IT1和IT2,并且因此这些项IT1、IT2没有合并,因为在项IT1的结尾处有足够的空间来容纳第二项IT2的第一个字词“l igula”。
在图11B所示的示例中,在S30(图10)中获取拆分指令(例如,拆分手势或回车键输入)作为用户指令INS1。在手写文本IN的文本项IT2中的字词“amet”和“1)”之间的位置获取拆分指令INS1,从而导致这些字词之间的换行符。在检测到字词“1”构成有效列表符号BT时,计算装置DV1通过将文本项IT2拆分成两项(即以字词“amet”结尾的文本项IT3和以列表符号“1”开始的列表项IT4),来更新文本结构数据模型ML。
在图11C所示的示例中,计算装置DV1检测到在光标在列表的结尾处时回车命令被按下,从而通过自动创建新的列表符号“4”来创建列表内的新列表项。
在图12至图15所示的特定实施方案中,计算装置DV1在文本结构数据模型ML中为每个文本项TI和每个列表项LI定义检测区(在图5的生成步骤S16期间;以及在图10的更新过程S34期间)。这些检测区可包括以下各者(或其任意组合):
-开始区Z1,该开始区在每个文本项TI的开始处定义开始部分;
-项目符号区Z2,该项目符号区在每个列表项LI的开始处定义开始部分;以及
-结尾区Z3,该结尾区在每个项(列表项LI和文本项TI)的结尾处定义结尾部分。
这些检测区Z1、Z2和/或Z3可以用于在所辨识的文本被更改时促进文本结构数据模型ML的更新,从而节省时间和资源成本,并且因此进一步改进用户体验。
更具体地,图12示出了由图6至图8的示例中的计算装置DV1辨识和处理的手写文本IN。假设已经如前所述执行了步骤S2-S16(图5)。因此,在生成的步骤S16中已经生成了表示合并步骤S14(图8至图9)的结果的文本结构数据模型ML。如图12所示,假设已经在文本结构数据模型ML中定义了以下项:
-分类为文本项IT的项IT10和IT12;
-分类为列表项LT的项IT14、IT16和IT18;以及
-分类为文本项TI的项IT20。
在本示例中,在生成步骤S16中,计算装置DV1:
-对于每个文本项TI,定义开始区Z1,该开始区在所述文本项TI中的第一个可见字符CH处开始,并且向前延伸以包围一个或多个完整字词WD,直到到达预定义数量(例如,5个)的连续可见字符CH,或者如果所述开始区Z1到达所述文本项TI的结尾,则到达不足预定义数量的连续可见字符CH之处;以及
-对于每个列表项LI,定义项目符号区Z2,该项目符号区从所述列表项LI的预定义列表符号BT处开始,并且向前延伸以包围一个或多个完整字词WD,直到到达预定义数量(例如,5个)的连续可见字符,或者如果所述项目符号区Z2到达所述列表项LI的结尾,则到达不足预定义数量的连续可见字符之处。
换句话讲,文本结构数据模型ML针对每个文本项TI(分别针对每个列表项LI)定义开始区Z1(和分别的项目符号区Z2)。
在本示例中,开始区和项目符号区限于单行。
仍然在该示例中,认为每个列表项LI的项目符号区Z2包含在列表符号之后(与列表符号连续)的至少一个可见字符(如果存在任何这样的可见字符)。
如图12的当前示例所示,计算装置DV1在文本结构数据模型ML中定义了以下检测区:
-项IT10:开始区Z1“Etiam”;
-项IT12:开始区Z1“Vivamus”;
-项IT14:项目符号区Z2“1.vestibulum”;
-项IT16:项目符号区Z2“·Fusce”等。
在更新过程S34(图10)期间,计算装置DV1可以执行所谓的开始区更新,由此计算装置测试每个文本项TI的开始区Z1和每个列表项LI的项目符号区Z2以进行修改。也就是说,计算装置DV1针对每个开始区Z1和项目符号区Z2检查该区的至少一个墨水段SK是否已经被删除,或者至少一个墨水段SK是否已经被插入该区中或添加到该区的左侧。更特别地,在更新过程S34期间,计算装置DV1可以针对每个列表项和文本项确定由用户指令INS1引起的更改是否修改其开始区Z1或项目符号区Z2(条件CD3)和/或是否在所述开始区Z1或项目符号区Z2之前添加至少一个字符CH(或笔划SK)(条件CD4)。在肯定的情况下(即,如果满足条件CD3和CD4中的至少一者),计算装置DV1在S34中基于由用户指令INS1引起的更改来更新开始区Z1或项目符号区Z2,并且基于更新后的开始区Z1或更新后的项目符号区Z2,作为更新过程S34的一部分,重复模式检测S10、缩进确定S12和合并步骤S14(图5),以更新文本结构数据模型ML。否则(即,如果条件CD3和CD4都不满足),计算装置DV1不更新开始区Z1或项目符号区Z2,不执行步骤S10-S14,并且简单地更新模型ML(簿记),使得模型ML表示手写文本IN的当前状态。
换句话讲,在S34(图10)中更新文本结构数据模型的方式根据开始区Z1和项目符号区Z2是否受到由用户指令INS1引起的更改的影响而进行调适,从而改进更新过程的效率。特别地,这些区允许检测列表项LI的列表符号中的改变,并且还允许检测在现有文本项的开始处新列表符号的创建,如下面进一步描述的。
图13描绘了一个示例,其中响应于在S30(图10)中获取的用户指令INS1,对文本项IT30、IT32、IT34、IT36和IT38的开始区Z1或项目符号区Z2进行各种更改(标记为AL)。一旦文本手写辨识S32完成,计算装置DV1就执行更新过程S34。作为更新过程34的一部分,计算装置DV1测试开始区Z1和文本符号区Z2以进行修改。在当前情况下,更改如下:
-文本项IT30的开始区Z1的一部分被删除;
-文本项IT32的开始区Z1的第一个字符已被覆写;
-新字符“2”被插入列表项IT34的项目符号区Z2中;
-列表项IT36的项目符号区Z3中的列表符号BY已被擦除;以及
-在文本项IT38的开始区Z1的左侧添加了新字符“1)”。
在上述每种情况下,计算装置D1在S34中检测到开始区Z1或项目符号区Z2受到更改AL的影响,并且因此更新这些区,并且作为更新过程S34的一部分,对修改后的项执行模式检测S10、缩进确定S12和合并步骤S14。因此,项IT30和IT32仍然是文本项TI,项IT34仍然是列表项LI(具有新的列表符号“1.2”),列表项IT36被重新分类为文本项(因为其不再具有在前面的列表符号),并且文本项IT38被重新分类为列表项LI,因为其现在以列表符号“1)”开始。
在上面的示例中,在每个文本项和列表项的开始处检查开始区Z1和项目符号区Z2,以更新文本结构数据模型ML。然而,如图14所示,可以在文本项和列表项的第一文本行之后的每个文本行LN的开始区Z1中执行类似的过程,即所谓的项目符号检测。
更特别地,在图5的生成步骤S16期间,计算装置DV1可以在文本结构数据模型ML中为每个文本项TI和每个列表项LI定义相应的开始区Z1,该开始区Z1从所述项的在其第一文本行LN之后的每个文本行LN中的第一个可见字符CH开始,并且向前延伸以包围一个或多个完整字词,直到到达预定义数量(例如,5个)的连续可见字符CH,或者如果所述开始区Z1到达所述文本行TI的结尾,则到达不足预定义数量的连续可见字符CH之处。
在更新过程S34(图10)期间,响应于在S30中获取的用户指令INS1,计算装置DV1针对每个文本项TI和每个列表项LI,检查在其第一文本行之后的每个文本行LN,以查找在所述文本行LN的开始区Z1内或开始区Z1之前添加的任何新笔划SK。对于每个被肯定检查的文本行LN(在其开始区Z1内和/或之前添加新笔划SK),计算装置DV1确定所述文本行LN是否以指示所述文本行LN是列表的一部分的预定列表符号BT开始(通过执行如图5的S10中的模式检测)。在肯定的情况下,计算装置DV1拆分对应的文本项TI或列表项LI,以创建以预定列表符号BT开始的新列表项LI,并且更新文本结构数据模型ML以反映这种拆分。与先前参考图13描述的更新过程S34中执行的开始区更新相反,该项目符号检测过程仅对添加的墨水段SK感兴趣。
例如,图14示出了手写文本IN,在此基础上,计算装置DV1已经执行了如前所述的步骤S2-S16(图5)。假设已经在文本结构数据模型ML中定义文本项IT50,该项包括连续的文本行LN40-LN45。通过在项IT50的在其第一文本行之后的每个文本行LN(即,在文本行LN41-LN45中)的开始区Z1中执行上述项目符号检测,计算装置DV1没有检测到列表符号BT开始文本行LN41,因为字词已经被移除,但是在该文本行LN41的开始区Z1之前或之内没有新的墨水笔划被添加。另一方面,计算装置DV1检测到已经在文本行LN44和LN45的开始区Z1之前或之内添加了新笔划SK(即,在文本行LN44和LN45的开始处分别添加了字符“con”和“-”)。因此,计算装置DV1通过执行模式匹配(如在图5的模式检测S10中)来检查文本行LN44和LN45以查找任何列表符号BT。如图14(右部)所示,计算装置DV1在文本行LN45的开始处检测到列表符号BT“-”的存在,并且因此通过创建以列表符号“-”开始的新列表项IT54并通过更新文本项IT50(现在称为IT52)使得其现在以字词“neculae.”结尾,将文本项IT50拆分成两个项IT52和IT54。在S34中相应地更新文本结构数据模型ML,以反映这些变化。
在特定示例中,响应于检测到至少一个墨水笔划SK的添加,可在文本项或列表项的任何部分中执行项目符号检测。在本示例中,在更新过程S34(图10)期间,计算装置DV1执行以下操作:响应于在S30中获取的用户指令INS1,检测在文本项或列表项的文本行LN内添加的至少一个笔划SK;确定所述文本行LN是否以指示所述文本行LN是列表的一部分的预定列表符号BT开始(通过执行如图5的S10中的模式检测);并且在肯定的情况下,拆分对应的文本项或列表项以创建新的列表项IT,并且更新文本结构数据模型ML以反映这种拆分。
在上面的示例中,当接收到用户指令INS1时,开始区Z1用于改进更新过程的效率。可以基于每个文本项和列表项的结尾区Z3来执行类似的更新过程。
在图12所示的特定示例中,当在S16(图5)中生成文本结构数据模型ML时,计算装置DV1为每个文本项和列表项定义结尾区Z3,该结尾区Z3通过包围一个或多个完整字词WD从所述项的最后一个可见字符CH向后延伸,直到到达预定义数量(例如,5个)的连续可见字符CH,或者如果所述结尾区Z3到达所述项的开始,则到达不足预定义数量的连续可见字符CH之处。
如图12的当前示例所示,计算装置DV1在文本结构数据模型ML中定义了以下检测区:
-项IT10:结尾区Z3“Nam.”;
-项IT12:结尾区Z3“donec.”;
-项IT14:结尾区Z3“auctor.”;
-项IT16:结尾区Z3“velit.”;等。
在更新过程S34(图10)期间,计算装置DV1可以执行所谓的项目合并,由此计算装置DV1针对每个项IT10-IT20确定由用户指令INS1引起的更改是否修改其结尾区Z3和/或在结尾区Z3之后是否添加至少一个笔划SK,并且在肯定的情况下,计算装置DV1基于更改而更新所述结尾区Z3,并且基于更新后的结尾区Z3重复如前所述的所述合并步骤S14(图5),以更新文本结构数据模型ML。
计算装置DV1可以被配置为在执行更新过程S34(图10)时仅使用开始区Z1和项目符号区Z2,或者另选地仅使用结尾区Z3。
使用开始区Z1、项目符号区Z2和结尾区Z3使得计算装置DV1能够集中于在文本行LN的关键部分中发生的改变,从而限制更新结构数据模型ML所需的计算量。
该系统可以集中于每个项的开始和结尾,并且相应地调适如何更新文本结构数据模型,从而改进效率并节省时间和资源。
现在参考图15描述根据特定实施方案的更新过程S34(图10)。假设在获取引起对文本IN的更改的用户指令INS1时对手写文本IN(例如,如图8所示)执行更新过程S34。
在步骤S40中,计算装置DV1更新每个列表项LI和文本项TI,以移除对任何已删除的墨水段SK(即,已经被删除的任何字符CH和字词WD)的引用。如果某个项中没有剩余墨水,则该项将被删除。
在步骤S42中,任何新墨水段SK(即任何新的字符CH和字词WD)被添加到文本结构数据模型ML中。对于每个项,出现在该项的文本行LN中的任何新墨水段SK被分配给所述项。对于出现在新文本行LN中的新墨水段INK,创建包围整个文本行的新文本项(例如,新的隐式文本项)。
在步骤S44中,测试每个文本项TI的开始区Z1和每个列表项LI的项目符号区Z2以进行修改,并且通过执行如先前参考图12至图13所述的开始区更新来更新文本结构数据模型ML。
在步骤S46中,测试每个文本项和列表项的在其第一文本行之后的文本行的所添加的墨水段,并且通过执行如先前参考图14所述的项目符号检测来更新文本结构数据模型ML。
在步骤S48中,测试每个文本项和列表项的结尾区Z3以进行修改,并且通过执行如先前参考图5和图10所述的项合并来更新文本结构数据模型ML。
通过依次执行步骤S40-S48,可以有效地更新文本结构数据模型ML,使得文本结构数据模型ML总是代表手写输入的当前状态。
在特定示例中,响应于作为用户指令INS1(图10)接收的用于将现有项拆分成两个不同项的拆分命令(例如,拆分手势):
-如果所述拆分命令在文本行的开始或结尾处指定拆分位置,则在所述拆分位置插入空行;以及
-如果所述拆分命令在文本行内指定拆分位置,则所述更新过程包括:
ο在所述拆分位置处将所述文本行拆分成分别属于通过拆分所述现有项获得的第一项和第二项的第一文本行和第二文本行;
ο确定所述第二文本行是否以指示所述第二文本行是列表的一部分的预定列表符号开始;以及
ο在肯定的情况下,将所述第二项分类为列表项,否则将所述第二项分类为文本项。
在特定示例中,仅响应于将两个不同项接合在一起的用户指令INS1,在更新过程S34(图10)期间将两个连续项合并成同一项。如果两个项是连续的,则仅响应于显式接合指令,所述两个项在更新过程S34期间被合并。
应当注意,在一些替代实现方式中,各框中注明的功能可以不按附图中注明的顺序出现。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,或者这些框可以以替代的顺序执行,这取决于所涉及的功能。
虽然没有明确地描述,但是本实施方案可以以其任何组合或子组合来采用。
虽然已经在特定实施方案中描述了本公开,但应清楚,在本领域技术人员的能力范围内并且在不运用创造性技能的情况下,容易出现对本公开的多种修改和实施方案。因此,本发明的范围由所附权利要求的范围限定。
Claims (15)
1.一种由计算装置(100)实现的用于处理手写中的列表的方法,其包括:
-通过对电子文档中的多个数字墨水笔划执行文本手写辨识来辨识文本,所述文本包括多个连续的文本行;
-初始将每个所辨识的文本行分类为不是列表的一部分的不同文本项;
-分类过程,所述分类过程包括以下步骤:
a)在每个文本行中进行模式检测,以确定所述文本行是否以指示所述文本行是列表的一部分的预定列表符号开始,并且将以预定列表符号开始的每个文本行分类为作为列表的一部分的不同列表项;
b)响应于步骤a),确定每个文本项相对于参考位置的项缩进,并且为每个列表项确定表示所述列表项中所包括的文本相对于所述参考位置的缩进的文本缩进;
c)响应于步骤b),进行合并过程,所述合并过程包括:
○如果由第一文本行后面接着第二文本行形成的每对连续文本行的所述第一文本行和所述第二文本行是具有相同项缩进的文本项,并且如果在所述第一文本行的结尾没有足够的可用空间来容纳开始所述第二文本行的第一个字词,则将所述文本中的所述对连续文本行合并为同一文本项的一部分;以及
○如果第一文本行是列表项,并且第二文本行是具有与所述第一文本行的文本缩进相匹配的项缩进的文本项,并且如果在所述第一文本行的结尾没有足够的可用空间来容纳开始所述第二文本行的第一个字词,则将由所述第一文本行后面接着所述第二文本行形成的每对连续文本行合并为同一列表项的一部分;
-基于所述合并过程的结果,生成文本结构数据模型,所述文本结构数据模型将每个文本行定义为文本项或列表项的一部分。
2.如权利要求1所述的方法,其包括:
-获取并显示多个数字墨水笔划作为用户输入;
其中所述辨识包括对所获取的笔划执行所述文本手写辨识,并且从所辨识的文本中识别所述多个连续文本行。
3.如权利要求1或2所述的方法,其中所述模式检测包括,对于每个文本行,将开始所述文本行的第一符号与预定列表符号的集合进行比较,以确定是否存在匹配。
4.如权利要求1至3中任一项所述的方法,其中所述合并过程包括:如果第一文本行是文本项并且第二文本行是列表项,则将由所述第一文本行后面接着所述第二文本行形成的每对连续文本行保持为单独的项。
5.如权利要求1至4中任一项所述的方法,其中所述文本结构数据模型将所辨识的文本分解为至少一个文本项和/或至少一个列表项,每个项与至少一个文本行和属于所述至少一个文本行的每个笔划相关联。
6.如权利要求1至5中任一项所述的方法,其包括响应于用户指令,基于所述文本结构数据模型编辑所辨识的文本,所述编辑包括以下中的至少一者:
-修改所辨识的文本的至少一个项的内容;以及
-回流过程,所述回流过程引起所辨识的文本的至少一个项的数字墨水的回流,
其中所述计算装置使用所述文本结构数据模型的信息来控制所述编辑。
7.如权利要求1至6中任一项所述的方法,其包括:
-显示所辨识的文本;
-在所述生成所述文本结构数据模型之后,获取引起对正在显示的所辨识的文本的更改的用户指令;以及
-更新过程,其中更新所述文本结构数据模型以反映由所述用户指令引起的所述更改。
8.如权利要求7所述的方法,其中由所述用户指令引起的所述更改包括将至少一个新笔划添加到所述电子文档中和/或移除或修改至少一个现有笔划,
其中所述更新过程包括通过从所述文本结构数据模型删除任何已移除的笔划并且通过将任何新笔划分配给所述文本结构数据模型的现有项或新项,即现有或新文本项或者现有或新列表项,来更新所述文本结构数据模型。
9.如权利要求7或8所述的方法,其中所述生成所述文本结构数据模型包括:
-对于每个文本项,定义开始区,所述开始区从所述文本项中的第一个可见字符开始,并且向前延伸以包围一个或多个完整字词,直到到达预定义数量的连续可见字符,或者如果所述开始区到达所述文本项的结尾,则到达不足预定义数量的连续可见字符之处;以及
-对于每个列表项,定义项目符号区,所述项目符号区从相关联的预定义列表符号开始,并且向前延伸以包围一个或多个完整字词,直到到达预定义数量的连续可见字符,或者如果所述项目符号区到达所述列表项的结尾,则到达不足预定义数量的连续可见字符之处;
其中所述更新过程包括:
-针对每个项确定由所述用户指令引起的所述更改是否修改其开始区或项目符号区和/或是否在所述开始区或项目符号区之前添加至少一个字符,并且在肯定的情况下,基于所述更改而更新所述开始区或项目符号区,并且基于所述更新后的开始区或项目符号区重复所述步骤a)、b)和c),以更新所述文本结构数据模型。
10.如权利要求7至9中任一项所述的方法,其中所述更新过程包括:
-响应于所述用户指令,检测在文本项或列表项的文本行内添加的至少一个笔划;
-确定所述文本行是否以指示所述文本行是列表的一部分的预定列表符号开始;以及
-在肯定的情况下,拆分对应的文本项或列表项以创建新的列表项,并且更新所述文本结构数据模型以反映所述拆分。
11.如权利要求7至10中任一项所述的方法,其中所述生成所述文本结构数据模型包括:
-对于每个文本项和每个列表项,定义相应的开始区,所述开始区从所述项的在其第一行之后的每个文本行中的第一个可见字符开始,并且向前延伸以包围一个或多个完整字词,直到到达预定义数量的连续可见字符,或者如果所述开始区到达所述文本行的结尾,则到达不足预定义数量的连续可见字符之处;以及
其中所述更新过程包括:
-响应于所述用户指令,对于每个文本项和每个列表项,检查在其第一文本行之后的每个文本行,以查找在所述文本行的所述开始区内或所述开始区之前添加的任何新笔划;
-对于每个被肯定检查的文本行,确定所述文本行是否以指示所述文本行是列表的一部分的预定列表符号开始;以及
-在肯定的情况下,拆分所述对应的文本项或列表项以创建以所述预定列表符号开始的新列表项,并且更新所述文本结构数据模型以反映所述拆分。
12.如权利要求7至11中任一项所述的方法,其中所述生成所述文本结构数据模型包括针对每个文本项和列表项定义结尾区,所述结尾区通过包围一个或多个完整字词从所述项的最后一个可见字符向后延伸,直到到达预定义数量的连续可见字符,或者如果所述结尾区到达所述项的开始,则到达不足预定义数量的连续可见字符之处;
其中所述更新过程包括:
-针对每个项,确定由所述用户指令引起的所述更改是否修改其结尾区和/或是否在所述结尾区之后添加至少一个笔划,并且在肯定的情况下,基于所述更改而更新所述结尾区,并且基于所述更新后的结尾区重复所述步骤c)以更新所述文本结构数据模型。
13.如权利要求7至12中任一项所述的方法,其中响应于作为用户指令接收的用于将现有项拆分成两个不同项的拆分命令:
-如果所述拆分命令在文本行的开始或结尾处指定拆分位置,则在所述拆分位置插入空行;以及
-如果所述拆分命令在文本行内指定拆分位置,则所述更新过程包括:
○在所述拆分位置处将所述文本行拆分成分别属于通过拆分所述现有项获得的第一项和第二项的第一文本行和第二文本行;
○确定所述第二文本行是否以指示所述第二文本行是列表的一部分的预定列表符号开始;以及
○在肯定的情况下,将所述第二项分类为列表项,否则将所述第二项分类为文本项。
14.如权利要求1至13中任一项所述的方法,其中仅响应于将两个不同项接合在一起的用户指令,将两个连续项合并成同一项。
15.一种用于处理手写中的列表的计算装置,其包括:
-辨识模块,所述辨识模块被配置为通过对电子文档中的多个数字墨水笔划执行文本手写辨识来辨识文本,所述文本包括多个连续的文本行,每个文本行能够是作为列表的一部分的列表项或者不是列表的一部分的文本项;
-分类器模块,所述分类器模块被配置为初始将每个所辨识的文本行分类为不同的文本项,并且执行包括以下步骤的分类过程:
a)在每个文本行中进行模式检测,以确定所述文本行是否以指示所述文本行是列表的一部分的预定列表符号开始,并且将以预定列表符号开始的每个文本行分类为列表项;
b)响应于步骤a),确定每个文本项相对于参考位置的项缩进,并且为每个列表项确定表示所述列表项中所包括的文本相对于所述参考位置的缩进的文本缩进;
c)响应于步骤b),进行合并过程,所述合并过程包括:
○如果由第一文本行后面接着第二文本行形成的每对连续文本行的所述第一文本行和所述第二文本行是具有相同项缩进的文本项,并且如果在所述第一文本行的结尾没有足够的可用空间来容纳开始所述第二文本行的第一个字词,则将所述文本中的所述对连续文本行合并为同一文本项的一部分;以及
○如果第一文本行是列表项,并且第二文本行是具有与所述第一文本行的文本缩进相匹配的项缩进的文本项,并且如果在所述第一文本行的结尾没有足够的可用空间来容纳开始所述第二文本行的第一个字词,则将由所述第一文本行后面接着所述第二文本行形成的每对连续文本行合并为同一列表项的一部分;
-模型管理模块,所述模型管理模块被配置为基于所述合并过程的结果生成文本结构数据模型,所述文本结构数据模型将每个文本行定义为文本项或列表项的一部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP20305120.6A EP3862918B1 (en) | 2020-02-07 | 2020-02-07 | Structural decomposition in handwriting |
EP20305120.6 | 2020-02-07 | ||
PCT/EP2021/052432 WO2021156253A1 (en) | 2020-02-07 | 2021-02-02 | Structural decomposition in handwriting |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115004262A true CN115004262A (zh) | 2022-09-02 |
CN115004262B CN115004262B (zh) | 2024-04-02 |
Family
ID=69784360
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180011062.0A Active CN115004262B (zh) | 2020-02-07 | 2021-02-02 | 处理手写中列表的方法和计算装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230054848A1 (zh) |
EP (2) | EP3862918B1 (zh) |
JP (1) | JP7448132B2 (zh) |
KR (1) | KR20220137645A (zh) |
CN (1) | CN115004262B (zh) |
WO (1) | WO2021156253A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023233204A1 (en) * | 2022-06-03 | 2023-12-07 | Apple Inc. | Automatic text recognition with layout preservation |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2007414A1 (en) * | 1989-04-26 | 1990-10-26 | Clayton James Bennett Iii | Method for manipulating elements within a structured document using active intent interpretations |
CN1335571A (zh) * | 2000-06-23 | 2002-02-13 | 微软公司 | 一种从一个由随机输入方法产生的候选列表中进行过滤和选择的方法和系统 |
EP1519280A2 (en) * | 2003-09-24 | 2005-03-30 | Microsoft Corporation | System and method for detecting a list in digital ink input |
CN101385023A (zh) * | 2006-02-09 | 2009-03-11 | 微软公司 | 矢量图形文档中的列表检测 |
US20120290288A1 (en) * | 2011-05-09 | 2012-11-15 | Xerox Corporation | Parsing of text using linguistic and non-linguistic list properties |
CN110162634A (zh) * | 2019-05-21 | 2019-08-23 | 北京鸿联九五信息产业有限公司 | 一种基于机器学习的文本处理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5701839B2 (ja) | 2012-10-26 | 2015-04-15 | 株式会社東芝 | 電子機器および方法 |
US9842251B2 (en) | 2016-01-29 | 2017-12-12 | Konica Minolta Laboratory U.S.A., Inc. | Bulleted lists |
-
2020
- 2020-02-07 EP EP20305120.6A patent/EP3862918B1/en active Active
-
2021
- 2021-02-02 JP JP2022544683A patent/JP7448132B2/ja active Active
- 2021-02-02 US US17/797,558 patent/US20230054848A1/en active Pending
- 2021-02-02 WO PCT/EP2021/052432 patent/WO2021156253A1/en unknown
- 2021-02-02 CN CN202180011062.0A patent/CN115004262B/zh active Active
- 2021-02-02 KR KR1020227026635A patent/KR20220137645A/ko not_active Application Discontinuation
- 2021-02-02 EP EP21702036.1A patent/EP4100868A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2007414A1 (en) * | 1989-04-26 | 1990-10-26 | Clayton James Bennett Iii | Method for manipulating elements within a structured document using active intent interpretations |
CN1335571A (zh) * | 2000-06-23 | 2002-02-13 | 微软公司 | 一种从一个由随机输入方法产生的候选列表中进行过滤和选择的方法和系统 |
EP1519280A2 (en) * | 2003-09-24 | 2005-03-30 | Microsoft Corporation | System and method for detecting a list in digital ink input |
CN101385023A (zh) * | 2006-02-09 | 2009-03-11 | 微软公司 | 矢量图形文档中的列表检测 |
US20120290288A1 (en) * | 2011-05-09 | 2012-11-15 | Xerox Corporation | Parsing of text using linguistic and non-linguistic list properties |
CN110162634A (zh) * | 2019-05-21 | 2019-08-23 | 北京鸿联九五信息产业有限公司 | 一种基于机器学习的文本处理方法 |
Non-Patent Citations (2)
Title |
---|
张小恒;华庆一;: "手势与手写文档中文本行的提取", 计算机应用与软件, no. 06 * |
敖翔;戴国忠;王宏安;: "基于感知的多方向在线手写笔迹文本行提取", 计算机辅助设计与图形学学报, no. 01 * |
Also Published As
Publication number | Publication date |
---|---|
EP4100868A1 (en) | 2022-12-14 |
JP7448132B2 (ja) | 2024-03-12 |
EP3862918A1 (en) | 2021-08-11 |
KR20220137645A (ko) | 2022-10-12 |
EP3862918B1 (en) | 2023-11-01 |
US20230054848A1 (en) | 2023-02-23 |
WO2021156253A1 (en) | 2021-08-12 |
JP2023512189A (ja) | 2023-03-24 |
CN115004262B (zh) | 2024-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210406578A1 (en) | Handwriting-based predictive population of partial virtual keyboards | |
CN114365075B (zh) | 用于选择图形对象的方法和对应装置 | |
US20140184610A1 (en) | Shaping device and shaping method | |
KR102576276B1 (ko) | 자유 핸드라이팅 모드에서 텍스트 핸드라이팅 입력의 처리 | |
CN114341954B (zh) | 文本行提取 | |
US11429259B2 (en) | System and method for selecting and editing handwriting input elements | |
US20150139547A1 (en) | Feature calculation device and method and computer program product | |
CN115004262B (zh) | 处理手写中列表的方法和计算装置 | |
US9250802B2 (en) | Shaping device | |
US20230096728A1 (en) | System and method for text line and text block extraction | |
Nguyen et al. | Semi-incremental recognition of on-line handwritten Japanese text | |
KR20180030966A (ko) | 중첩된 필기 인식 기술을 위한 시스템 및 방법 | |
KR102677199B1 (ko) | 그래픽 객체를 선택하기 위한 방법 및 대응하는 디바이스 | |
CN103677311A (zh) | 便于修改的手写输入设备快速输入法 | |
EP3796145B1 (en) | A method and correspond device for selecting graphical objects |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |