CN111027304B - 文字块排序方法、装置、存储介质及电子设备 - Google Patents
文字块排序方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN111027304B CN111027304B CN201911129195.9A CN201911129195A CN111027304B CN 111027304 B CN111027304 B CN 111027304B CN 201911129195 A CN201911129195 A CN 201911129195A CN 111027304 B CN111027304 B CN 111027304B
- Authority
- CN
- China
- Prior art keywords
- block
- character block
- character
- text
- target
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012163 sequencing technique Methods 0.000 claims abstract description 26
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 4
- 229910052739 hydrogen Inorganic materials 0.000 description 23
- 238000010586 diagram Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Images
Landscapes
- Character Input (AREA)
Abstract
本公开涉及一种文字块排序方法、装置、存储介质及电子设备。该方法包括:获取目标文字块序列;针对目标文字块序列中的相邻文字块对,根据相邻文字块对中各文字块在第一方向上的位置大小,确定目标文字块序列的分界文字块;根据分界文字块,将目标文字块序列划分为多个子序列;若多个子序列中存在包括多个文字块的目标子序列,则根据文字块在文档中的第二方向的位置大小,对该目标子序列中的各文字块进行排序;若多个子序列中不存在包括多个文字块的子序列,即所述目标文字块序列被划分为所有单个文字块作为的子序列时,得到所述目标文字块序列的文字块排序结果。采用本公开的技术方法,与传统方法相比,可以降低对文字块进行排序时的复杂度。
Description
技术领域
本公开涉及文字比较领域,具体地,涉及一种文字块排序方法、装置、存储介质及电子设备。
背景技术
在日常工作中,文字比较功能经常被使用到,例如,论文查重时比较两个文档之间的差异性,又例如比较两个计算机程序代码的差异性。
在对两个文档的内容进行比较时,通常将文档按照行或者句进行划分,得到多个文字块,再以文字块为单位进行文字比较。而该方式实现的前提条件是需要对文字块进行排序。目前,常使用图算法对文字块进行排序,首先,把每个文字块看成顶点,顶点之间的关系看成边,借助距离作为权值生成图,再结合深度遍历算法或者其他特定的算法对文字块进行排序,但是这些算法在实现时具有较高的复杂度,会占用较多的内存资源,并且耗费时间。
发明内容
本公开的目的是提供一种文字块排序方法、装置、存储介质及电子设备,以减少对文档中的文字块进行排序时的资源耗费。
为了实现上述目的,根据本公开实施例的第一方面,提供一种文字块排序方法,包括:
获取目标文字块序列,所述目标文字块序列包括多个文字块,所述多个文字块在所述目标文字块序列中,是以文字块在文档中的第一方向的位置大小进行的排序,所述第一方向为纵向或者横向;
针对所述目标文字块序列中的相邻文字块对,根据所述相邻文字块对中各文字块在所述第一方向上的位置大小,确定所述目标文字块序列的分界文字块,所述分界文字块是与相邻文字块对中的另一文字块在所述文档的所述第一方向上不存在相同坐标范围的文字块;
根据所述分界文字块,将所述目标文字块序列划分为多个子序列;
若所述多个子序列中存在包括多个文字块的目标子序列,则根据文字块在所述文档中的第二方向的位置大小,对该目标子序列中的各文字块进行排序,所述第二方向是纵向和横向中的与所述第一方向不同的方向;
将每一所述目标子序列作为新的所述目标文字块序列,并将所述目标子序列的所述第二方向作为新的所述目标文字块序列的第一方向,以重复执行上述针对目标文字块序列进行的确定分界文字块以及划分子序列,以及针对包括多个文字块的目标子序列中的各文字块进行排序的步骤,直到所述目标文字块序列被划分为所有单个文字块作为的子序列时,得到所述目标文字块序列的文字块排序结果。
可选地,所述获取目标文字块序列,包括:
获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;或者,
根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列。
可选地,所述获取目标文字块序列,包括:
获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;
所述方法还包括:若所述初始文字块序列不存在所述分界文字块,则根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到新的目标文字块序列。
可选地,所述针对所述目标文字块序列中的相邻文字块对,根据所述相邻文字块对中各文字块在所述第一方向上的位置大小,确定所述目标文字块序列的分界文字块,包括:
对于任意所述相邻文字块对中的第一文字块和第二文字块,判断该第一文字块在所述第一方向上的最小坐标是否小于该第二文字块在所述第一方向上的最大坐标,以及判断该第二文字块在所述第一方向上的最小坐标是否小于所述第一文字块在所述第一方向上的最大坐标;
若该第一文字块在所述第一方向上的最小坐标大于该第二文字块在所述第一方向上的最大坐标,或者,该第二文字块在所述第一方向上的最小坐标大于所述第一文字块在所述第一方向上的最大坐标,则将所述第一文字块或者所述第二文字块作为所述分界文字块。
根据本公开实施例的第二方面,提供一种文字块排序装置,包括:
获取模块,用于获取目标文字块序列,所述目标文字块序列包括多个文字块,所述多个文字块在所述目标文字块序列中,是以文字块在文档中的第一方向的位置大小进行的排序,所述第一方向为纵向或者横向;
确定模块,用于针对所述目标文字块序列中的相邻文字块对,根据所述相邻文字块对中各文字块在所述第一方向上的位置大小,确定所述目标文字块序列的分界文字块,所述分界文字块是与相邻文字块对中的另一文字块在所述文档的所述第一方向上不存在相同坐标范围的文字块;
划分模块,用于根据所述分界文字块,将所述目标文字块序列划分为多个子序列;
排序模块,用于若所述多个子序列中存在包括多个文字块的目标子序列,则根据文字块在所述文档中的第二方向的位置大小,对该目标子序列中的各文字块进行排序,所述第二方向是纵向和横向中的与所述第一方向不同的方向;
执行模块,用于将每一所述目标子序列作为新的所述目标文字块序列,并将所述目标子序列的所述第二方向作为新的所述目标文字块序列的第一方向,以重复执行上述针对目标文字块序列进行的确定分界文字块以及划分子序列,以及针对包括多个文字块的目标子序列中的各文字块进行排序的步骤,直到所述目标文字块序列被划分为所有单个文字块作为的子序列时,得到所述目标文字块序列的文字块排序结果。
可选地,所述获取模块包括:
获取子模块,用于获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
第一排序子模块,用于根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;
第二排序子模块,用于根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列。
可选地,所述获取模块包括:
获取子模块,用于获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
第一排序子模块,用于根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;
执行子模块,用于若所述初始文字块序列不存在所述分界文字块,则根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到新的目标文字块序列。
可选地,所述确定模块包括:
判断子模块,用于对于任意所述相邻文字块对中的第一文字块和第二文字块,判断该第一文字块在所述第一方向上的最小坐标是否小于该第二文字块在所述第一方向上的最大坐标,以及判断该第二文字块在所述第一方向上的最小坐标是否小于所述第一文字块在所述第一方向上的最大坐标;
确定子模块,用于若该第一文字块在所述第一方向上的最小坐标大于该第二文字块在所述第一方向上的最大坐标,或者,该第二文字块在所述第一方向上的最小坐标大于所述第一文字块在所述第一方向上的最大坐标,则将所述第一文字块或者所述第二文字块作为所述分界文字块。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本公开实施例第一方面所述方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现本公开实施例第一方面所述方法的步骤。
采用本公开提供的技术方案,至少能够达到如下技术效果:
在文档的横向或纵向上对目标文字块序列进行排序,然后根据相邻文字块的位置大小关系找到分界文字块,根据分界文字块对目标文字块序列进行划分,再从另一方向上对含有多个文字块的目标子序列进行排序以及划分,如此进行多次的递归、迭代,直到目标文字块序列被划分为所有单个文字块作为的子序列时,得到最终的文字块排序结果。这种方法与传统的图算法相比,传统的图算法,首先要生成图,然后在图上进行文字块遍历,而在遍历过程中至少需要一个额外的数组来记录已遍历过的文字块,以防止重复遍历,并且在遍历结束前,生成的图不能被删除。而本方法由于没有使用图,因此不需要构建和存储图,那么可以减少内存空间的占用,以及减少因构图所造成的时间耗费,此外,本方法也不需要遍历各个文字块,因此也不需要额外的数组来记录已遍历的文字块,从而可以进一步减少内存空间的占用。如此,采用本方法,与传统的图算法相比,可以降低算法实现时的复杂度,减少空间和时间资源的耗费。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开实施例提供的一种文字块排序方法的流程图。
图2是本公开实施例提供的一种以块为单位的文档示意图。
图3是本公开实施例提供的另一种以块为单位的文档示意图。
图4是本公开实施例提供的一种文字块排序装置的框图。
图5是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
值得说明的是,本公开实施例中的术语“第一”、“第二”等是用于区别类似的对象,不必理解为特定的顺序或先后次序。
本公开实施例提供一种文字块的排序方法,如图1所示,该方法包括:
在步骤S101中,获取目标文字块序列,所述目标文字块序列包括多个文字块,所述多个文字块在所述目标文字块序列中,是以文字块在文档中的第一方向的位置大小进行的排序,所述第一方向为纵向或者横向。
当对两个文档中的文字以文字块为单位进行比较异同时,需要预先知道文字块的相对顺序,这种顺序不一定是传统认知上的先后顺序或阅读顺序,而可以是文本比对时所需的同一逻辑顺序。因此,可以通过将待对比的文档以文字块为单位进行分割,得到多个文字块,然后对该多个文字块进行统一的逻辑排序,最后对两个文档排序后的文字块序列进行比对,从而得出文档比对结果。
其中,值得说明的是,文字块可以是由一个或多个相邻的文字组成的一个语言整体。也可以将特殊文档中的每一单元格作为一个文字块,例如特殊的表格文档中,将表格中的每一单元格作为一个文字块。
第一方向是指在文档中的预定义的横向或纵向方向,例如,如图2所示,图2中的每一方块代表一个文字块,每一方块中的字母代表该文字块的索引,索引仅用于区分各文字块,同样地,也可以用其他标记符号作为图2中每一方块的索引,图中的虚线用于辅助比较各文字块在Y轴方向上的大小。在图2中,以0为原点,建立该文档的坐标系,其中若X轴方向表征横向方向,Y轴方向表征纵向方向,那么在图2中,第一方向可以是X轴方向,也可以是Y轴方向。
在步骤S102中,针对所述目标文字块序列中的相邻文字块对,根据所述相邻文字块对中各文字块在所述第一方向上的位置大小,确定所述目标文字块序列的分界文字块,所述分界文字块是与相邻文字块对中的另一文字块在所述文档的所述第一方向上不存在相同坐标范围的文字块。
其中,相邻文字块对为目标文字块序列中的任意两个相邻的文字块。例如,如图2所示,假设图2所示的文档的目标文字块序列为:A、B、G、L、H、E、D、M、J、I、N、C、K、F,那么其中A、B为一对相邻文字块对,G、L为一对相邻文字块对,L、H为一对相邻文字块对,H、E为一对相邻文字块对。
根据相邻文字块对中各文字块在第一方向上的位置大小,确定所述目标文字块序列的分界文字块,该分界文字块是与相邻文字块对中的另一文字块在该文档的第一方向上不存在相同坐标范围的文字块。即是说,针对每一对相邻文字块,将该相邻文字块对中的两个文字块进行位置大小比较,并且是在第一方向上进行位置大小的比较。若该对相邻文字块中的两个文字块在第一方向上不存在相同坐标范围,则将该对相邻文字块中的任意一个文字块作为分界文字块。示例地,若第一方向为纵向即Y轴方向,以上述的相邻文字块对G、L为例,由文字块G和文字块L在Y轴方向上的位置大小关系可知,文字块G和文字块L在Y轴方向上不存在相同的Y坐标区间,那么可以将文字块G或文字块L作为分界文字块。再示例地,若第一方向为Y轴方向,以上述文字块对A、B为例,由文字块A和文字块B在Y轴方向上的位置大小关系可知,文字块A和文字块B在Y轴方向上具有相同的Y坐标区间,那么此时,文字块A和文字块B都不能作为分界文字块。
在步骤S103中,根据所述分界文字块,将所述目标文字块序列划分为多个子序列。
具体地,以分界文字块为界限,将目标文字块序列分为多个子序列。其中值得说明的是,可以将分界文字块作为子序列的第一个文字块,也可以将分界文字块作为子序列中的最后一个文字块。示例地,若目标文字块序列为A、B、G、L、H、E、D、M、J、I、N、C、K、F,若Y轴方向为第一方向,根据各文字块在Y轴方向上的位置大小,假设只得出文字块L为分界文字块,那么根据分界文字块L将该文字块序列划分为两个子序列,分别得到子序列A、B、G和子序列L、H、E、D、M、J、I、N、C、K、F;也可以根据分界文字块L将该文字块序列划分为子序列A、B、G、L和子序列H、E、D、M、J、I、N、C、K、F。
在步骤S104中,若所述多个子序列中存在包括多个文字块的目标子序列,则根据文字块在所述文档中的第二方向的位置大小,对该目标子序列中的各文字块进行排序,所述第二方向是纵向和横向中的与所述第一方向不同的方向。
根据分界文字块将目标文字块序列划分为多个子序列,若划分得到的多个子序列中存在包括多个文字块的子序列,则将该子序列作为目标子序列,然后根据文字块在文档中的第二方向的位置大小,对该目标子序列中的各文字块进行排序。示例地,如上述步骤S103中,若分界文字块L将目标文字块序列划分为子序列A、B、G和子序列L、H、E、D、M、J、I、N、C、K、F,此时,得到的两个子序列中都包含多个文字块。那么可以将该两个子序列都分别作为目标子序列,然后根据文字块在文档中的第二方向上的位置大小,分别对这两个目标子序列进行排序。由于在步骤S103中,假设的是Y轴方向为第一方向,那么此时,第二方向是纵向和横向中的与第一方向不同的方向,即此时第二方向为X轴方向。
在步骤S105中,将每一所述目标子序列作为新的所述目标文字块序列,并将所述目标子序列的所述第二方向作为新的所述目标文字块序列的第一方向,以重复执行上述针对目标文字块序列进行的确定分界文字块以及划分子序列,以及针对包括多个文字块的目标子序列中的各文字块进行排序的步骤,直到所述目标文字块序列被划分为所有单个文字块作为的子序列时,得到所述目标文字块序列的文字块排序结果。
具体地,在步骤S104中,得到按照第二方向排序后的目标子序列之后,将第二方向作为新的第一方向,例如在上述步骤S104中的第二方向为X轴方向,此时将X轴方向作为第一方向,以重复执行上述步骤S102、S103以及S104,直到目标文字块序列被划分为所有单个文字块作为的子序列时,得到目标文字块序列的文字块排序结果。
采用上述文字块排序方法,在文档的横向或纵向上对目标文字块序列进行排序,然后根据相邻文字块的位置大小关系找到分界文字块,根据分界文字块对目标文字块序列进行划分,再从另一方向上对含有多个文字块的目标子序列进行排序以及划分,如此进行多次的递归、迭代,直到目标文字块序列被划分为所有单个文字块作为的子序列时,得到最终的文字块排序结果。这种方法与传统的图算法相比,传统的图算法,首先要生成图,然后在图上进行文字块遍历,而在遍历过程中至少需要一个额外的数组来记录已遍历过的文字块,以防止重复遍历,并且在遍历结束前,生成的图不能被删除。而上述方法由于没有使用图,因此不需要构建和存储图,那么可以减少内存空间的占用,以及减少因构图所造成的时间耗费,此外,本方法也不需要遍历各个文字块,因此也不需要额外的数组来记录已遍历的文字块,从而可以进一步减少内存空间的占用。如此,采用本方法,与传统的图算法相比,可以降低算法实现时的复杂度,减少空间和时间资源的耗费。
另外,还需说明的是,传统的图算法,在理想的情况下,文字块遍历的时间复杂度为O(N),文字块排序的时间复杂度为O(NlogN)。而在文档版面很复杂的情况下,例如若存在一个或多个跨越多行的文字块,则与该文字块直接或间接关联的文字块都需要列出来,进行二次分析,并重新计算与该文字块关联的其他文字块,而找出该文字块的时间复杂度为O(N),分析并重新计算与该文字块关联的其他文字块的时间复杂度不少于O(N),因此总的遍历时间复杂度不低于O(N*N)。而本方案采用的方法,执行的操作可分为两类,文字块排序和筛选分界文字块,其中,文字块排序的时间复杂度为O(NlogN),筛选分界文字块的时间复杂度为O(N),总的时间复杂度为O(NlogN)。即使在文档版面很复杂的情况下,需要进行多次迭代或者递归,时间复杂度也不会超过O(N*N)。因此,本方案的方法与传统的图算法相比,时间复杂度更低。
为了使本领域技术人员更加理解本公开实施例提供的技术方案,下面对上述步骤进行详细说明。
下面说明如何根据文字块在文档中的第一方向的位置大小,对文字块进行排序,以得到目标文字块序列。
可选地,获取目标文字块序列,可以包括以下步骤:
获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标。
其中,位置信息包括第一坐标信息和第二坐标信息,第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,第二坐标信息是文字块距离坐标原点的最远点的横坐标和纵坐标。示例地,如图2所示,文字块A距离坐标原点0最近的点为该方块上左上角的顶点(x1,y1),文字块A距离坐标原点0最远的点为方块上右下角的顶点(x2,y2)。那么文字块A的第一坐标信息为(x1,y1),第二坐标信息为(x2,y2)。
在一种可能的实现方式中,也可以选择文字块A对应的方块上的右上角的顶点为第一坐标信息,选择文字块A对应的方块上的左下角的顶点为第二坐标信息。
在另一种可能的实现方式中,也可以选择每一文字块在横向(或纵向)上坐标值最小的边上的任意一点的横向(或纵向)坐标信息为第一坐标信息的横向(或纵向)坐标信息,选择每一文字块在横向(或纵向)上坐标值最大的边上的任意一点的横向(或纵向)坐标信息为第二坐标信息的横向(或纵向)坐标信息。例如,如图2中文字块C所示,可以选择边1上的任意一点的X坐标值为第一坐标信息的横坐标信息,可以选择边2上的任意一点的Y坐标值为第一坐标信息的纵坐标信息;同样地,可以选择边3上的任意一点的X坐标值为第二坐标信息的横坐标信息,可以选择边4上的任意一点的Y坐标值为第二坐标信息的纵坐标信息。
根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;或者
根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列。
具体地,若以Y轴方向为第一方向,则将每一文字块上的点的最小纵坐标值和最大纵坐标值的和值作为排序的条件,将各文字块按照各文字块对应的该和值的大小进行排序,可以按照从大到小的顺序进行排序,也可以按照从小到大的顺序进行排序。示例地,如图2所示,假设图2所示的文档最初的文字块排序为任意的乱序,假设文字块序列是A、B、G、L、H、E、D、M、J、I、N、C、K、F,此时,以Y轴方向为第一方向,按照从小到大的方式进行排序。由图2可知,方块B的第一坐标信息中的纵坐标值和第二坐标信息中的纵坐标值的和值为B(y1+y2),方块A的第一坐标信息中的纵坐标值和第二坐标信息中的纵坐标值的和值为A(y1+y2),由于和值B(y1+y2)小于和值A(y1+y2),那么便将文字块B排在文字块A之前,如此,针对所有的文字块,在Y轴方向上对该和值的大小进行排序,得到排序后的初始文字块序列为B、A、C、D、F、E、I、H、K、G、J、M、L、N,并将该序列作为目标文字块序列。
在另一种可能的实现方式中,若以X轴方向为第一方向,则将每一文字块的最小横坐标值和最大横坐标值的和值作为排序的条件,将各文字块按照各文字块对应的该和值的大小进行排序,可以按照从大到小的顺序进行排序,也可以按照从小到大的顺序进行排序。示例地,如图3所示,假设图3所示的文档的最初的文字块排序为任意的乱序,假设文字块序列是A、B、G、L、H、E、D、M、J、I、N、C、K、F,此时,以X轴方向为第一方向,按照从小到大的方式进行排序,由图3可知,方块G的第一坐标信息中的横坐标值和第二坐标信息中的横坐标值的和值为G(x1+x2),方块L的第一坐标信息中的横坐标值和第二坐标信息中的横坐标值的和值为L(x1+x2)。由于和值G(x1+x2)小于和值L(x1+x2),那么便将文字块L排在文字块G之后,如此,针对所有的文字块,在X轴方向上进行排序,排序后得到初始文字块序列为G、L、A、D、H、E、B、J、M、I、N、C、K、F,并将该序列作为目标文字块序列。
其中值得说明的是,若两个文字块的第一坐标信息中的横向(或纵向)坐标值与第二坐标信息中的横向(或纵向)坐标值的和值没有大小区别,即该两和值相等时,对该两个文字块之间的排序位置不作要求。例如,若文字块J和文字块M在X轴方向上,文字块J的第一坐标信息中的横向坐标值与第二坐标信息中的横向坐标值的和值等于文字块M的第一坐标信息中的横向坐标值与第二坐标信息中的横向坐标值的和值,那么,在从大到小或从小到大排序时,可以排列成J、M,也可以排成M、J。
下面说明根据相邻文字块对中各文字块在第一方向上的位置大小,如何确定目标文字块序列的分界文字块。
可选地,所述针对所述目标文字块序列中的相邻文字块对,根据所述相邻文字块对中各文字块在所述第一方向上的位置大小,确定所述目标文字块序列的分界文字块,可以包括以下步骤:
对于任意所述相邻文字块对中的第一文字块和第二文字块,判断该第一文字块在所述第一方向上的最小坐标是否小于该第二文字块在所述第一方向上的最大坐标,以及判断该第二文字块在所述第一方向上的最小坐标是否小于所述第一文字块在所述第一方向上的最大坐标;
若该第一文字块在所述第一方向上的最小坐标大于该第二文字块在所述第一方向上的最大坐标,或者,该第二文字块在所述第一方向上的最小坐标大于所述第一文字块在所述第一方向上的最大坐标,则将所述第一文字块或者所述第二文字块作为所述分界文字块。
示例地,以上述以Y轴方向为第一方向对所有文字块进行从小到大排序,得到的目标文字块序列B、A、C、D、F、E、I、H、K、G、J、M、L、N为例,该目标文字块序列中的所有相邻文字块对为:(B、A),(A、C),(C、D),(D、F),(F、E),(E、I),(I、H),(H、K),(K、G),(G、J),(J、M),(M、L),(L、N)。
其中值得说明的是第一文字块可以是每一相邻文字块对中的前一个文字块或后一个文字块,同样地,第二文字块也可以是每一相邻文字块对中的前一个文字块或后一个文字块。例如,相邻文字块对B、A,其中若第一文字块是B,则第二文字块是A;也可以是第一文字块为A,第二文字块为B。
针对上述目标文字块序列中的每一相邻文字块对中的第一文字块和第二文字块,判断该第一文字块在Y轴方向上的最小Y坐标值是否小于该第二文字块在Y轴方向上的最大Y坐标值,以及判断该第二文字块在Y轴方向上的最小Y坐标值是否小于第一文字块在Y轴方向上的最大Y坐标。
示例地,针对目标文字块序列B、A、C、D、F、E、I、H、K、G、J、M、L、N,对于其中的相邻文字块对B、A,若第一文字块为每一相邻文字块对中的前一文字块,第二文字块为每一相邻文字块对中的后一文字块,则将文字块B作为第一文字块,文字块A作为第二文字块。然后判断文字块B在Y轴方向上的最小坐标B(y1)是否小于文字块A在Y轴方向上的最大坐标A(y2),并判断文字块A在Y轴方向上的最小坐标A(y1)是否小于文字块B在Y轴方向上的最大坐标B(y2)。即是判断B(y1)是否小于A(y2),并且,A(y1)是否小于B(y2)。
针对上述相邻文字块对B、A,若满足第一文字块B在Y轴方向上的最小坐标B(y1)大于第二文字块A在Y轴方向上的最大坐标A(y2),或者,第二文字块A在Y轴方向上的最小坐标A(y1)大于第一文字块B在Y轴方向上的最大坐标B(y2),则满足第一文字块B和第二文字块A在Y轴方向上不存在相同的Y坐标区间。则将第一文字块B或者第二文字块A作为分界文字块。通过图2可知,B(y1)小于A(y2),且,A(y1)小于B(y2)。即是说相邻文字块对B、A不符合上述的确定分界文字块的条件,则此时,文字块B、A都不作为分界文字块。
再示例地,以上述目标文字块序列中的相邻文字块C、D为例,通过图2可知,D(y1)大于C(y2),符合上述的确定分界文字块的条件,则可以将文字块C或D作为分界文字块。
如此,针对目标文字块序列中的所有相邻文字块对,进行如上述的分界文字块的判断方法,可以筛选出该目标文字块序列中的所有分界文字块。
下面说明在一种可能的情况下,若目标文字块序列中不存在分界文字块时,如何进行下一步操作。
可选地,获取目标文字块序列,还可以包括以下步骤:
获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;
所述方法还包括:若所述初始文字块序列不存在所述分界文字块,则根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到新的目标文字块序列。
示例地,若某一文档中的目标文字块序列,以Y轴方向为第一方向,进行排序,然后在排序后的目标文字块序列中,按照上述的确定分界文字块的方法,查找该排序后的目标文字块序列中的分界文字块。在一种可能的情况下,若按照上述的确定分界文字块的方法,无法找出分界文字块,那么此时,将该排序后的目标文字块序列,按照X轴方向进行排序,得到重新排序后的目标文字块序列,此时,再按照上述的确定分界文字块的方法,在重新排序后的目标文字块序列中查找分界分子块,若仍然无法找出分界文字块,那么说明该文档可能不适用于本方案所述的文字块排序方法。
在另一种可能的情况下,若文档的排版很规范,可能在第一次对文档中的文字块进行排序后,就得到最终的文字块排序结果。
值得说明的是,在日常工作中,大部分的文档都是按照横向和纵向的二维排版方式进行排版的。对于此排版的文档,本方案都适用。而对于排版很特别,例如特殊的美学或艺术排版,本方案中的上述确定分界文字块的方法可能不适用。
下面对本方案所述的方法,进行详细的示例说明。
以图2和图3为例,其中图2和图3所示的文档为同一文档,图2和图3中的x1表征每一文字块在X轴方向上的最小X坐标值,x2表征每一文字块在X轴方向上的最大X坐标值,y1表征每一文字块在y轴方向上的最小Y坐标值,y2表征每一文字块在Y轴方向上的最大Y坐标值。
假设,图2中的文档的文字块序列为A、B、G、L、H、E、D、M、J、I、N、C、K、F。该序列也可以是其他任意的乱序。
第一步,以第一方向为纵向为例,即在Y轴方向上,对每一文字块的位置大小进行排序,具体地,根据每一文字块的y1+y2的和值大小进行排序,此处统一按照从小到大的排序方法对每一文字块的和值进行排序(也可以从大到小的进行排序),通过图2中的虚线辅助,可以比较出该文档中,各文字块在Y轴方向上的相对位置大小,得到初始文字块序列为B、A、C、D、F、E、I、H、K、G、J、M、L、N。然后将该序列作为目标文字块序列。
第二步,针对目标文字块序列B、A、C、D、F、E、I、H、K、G、J、M、L、N,确定其中的分界文字块。根据上述步骤S102中的方法,可得出所有的相邻文字块对中,相邻文字块对C、D和相邻文字块对E、I以及相邻文字块对J、M不符合上述的确定分界文字块的条件,此处,统一取相邻文字块对中的后一文字块为分界文字块,从而得到所有的分界文字块为D、I、M。
第三步,根据得到的分界文字块D、I、M,对目标文字块序列B、A、C、D、F、E、I、H、K、G、J、M、L、N进行划分,此处统一将分界文字块作为子序列中的第一个文字块,可以得到四个子序列,分别为:子序列B、A、C;子序列D、F、E;子序列I、H、K、G、J;子序列M、L、N。也就是说此时将目标文字块序列B、A、C、D、F、E、I、H、K、G、J、M、L、N划分为由四个子序列组成的文字块序列:(B、A、C),(D、F、E),(I、H、K、G、J),(M、L、N)。
第四步,由于得到的四个子序列都是包含多个文字块的序列,因此,将该四个子序列分别作为目标子序列,并针对每一目标子序列,在第二方向上即X轴方向上,根据每一目标子序列中的各文字块的(x1+x2)的和值,按照从小到大的排序方法对每一文字块的该和值进行排序,以得到新的四个目标子序列分别为:目标子序列A、B、C;目标子序列D、E、F;目标子序列G、H、J、I、K;目标子序列L、M、N。
第五步,将第二方向作为新的第一方向,即将X轴方向作为新的第一方向,得到新的第一方向为X轴方向。将四个目标子序列分别作为新的目标文字块序列,针对该新的目标文字块序列,分别确定其中的分界文字块。通过图3中的虚线辅助可知,目标文字块序列A、B、C中相邻文字块对A、B和相邻文字块对B、C不符合上述的确定分界文字块的条件,因此可得出,目标文字块序列A、B、C的分界文字块为B、C。同理可得出目标文字块序列D、E、F的分界文字块为E、F。目标文字块序列G、H、J、I、K的分界文字块为H、K。目标文字块序列L、M、N的分界文字块为M、N。
第六步,根据分界文字块对目标文字块序列进行划分。将目标文字块序列A、B、C划分为三个子序列,分别为:子序列A,子序列B,子序列C。同理将目标文字块序列D、E、F划分为子序列D,子序列E,子序列F。将目标文字块序列G、H、J、I、K划分为子序列G,子序列H、J、I以及子序列K。将目标文字块序列L、M、N划分为子序列L,子序列M,子序列N。此时得到的文字块序列是由多个子序列组成的序列:A,B,C,D,E,F,G,(H、J、I),K,L,M,N。
第七步,在上一步骤中,得到的子序列中,除了子序列H、J、I为包含多个文字块的目标子序列以外,其他子序列都为只包含一个文字块的子序列。则此时,只将目标子序列H、J、I作为新的目标文字块序列,并按照第二方向进行排序,此时的第二方向为与上述新的第一方向为X轴方向不同的方向,即此时第二方向为Y轴方向。将目标文字块序列H、J、I按照Y轴方上的位置大小关系,进行从小到大的排序,得到排序后的目标文字块序列I、H、J。
第八步,通过确定目标文字块序列I、H、J中的分界文字块,可以得出相邻文字块对H、J不符合上述的确定分界文字块的条件,从而得到分界文字块为J。
第九步,根据分界文字块J将目标文字块序列I、H、J划分为子序列I、H和子序列J。此时,在第六步中得到的文字块序列A,B,C,D,E,F,G,(H、J、I),K,L,M,N被进一步划分为由多个子序列组成的文字块序列,即:A,B,C,D,E,F,G,(I、H),,K,L,M,N。由于此时只有子序列I、H为包含多个文字块的目标子序列,因此将该目标子序列I、H作为新的目标文字块序列,并按照与上述步骤Y轴方向不同的第二方向即X轴方向继续对目标文字块序列I、H进行排序,得到排序后的目标文字块序列H、I。在X轴方向上,相邻文字块对H、I显然不符合上述的确定分界文字块的条件,因此,可得出文字块I为分界文字块。其中还需说明的是,由于排序后的目标文字块序列H、I中只存在两个文字块,因此,可以不用查找分界文字块,直接将该子序列划分成子序列H和子序列I即可。
第十步,根据分界文字块I将目标文字块序列H、I划分为子序列H和子序列I。
第十一步,此时,第九步中得到的由多个子序列组成的文字块序列A,B,C,D,E,F,G,(I、H),J,K,L,M,N被进一步划分为:A,B,C,D,E,F,G,H,I,J,K,L,M,N。此时,所有的子序列为所有单个文字块作为的子序列,那么该序列为最终的文字块的排序结果。
值得说明的是,本方案也可以在第一步时以X轴方向为第一方向,对上述目标文字块序列B、A、C、D、F、E、I、H、K、G、J、M、L、N进行排序。根据如上同理的排序方法,最终可得到文字块的排序结果为:A,D,G,L,B,E,H,I,J,M,C,F,K,N。
本公开实施例还提供一种文字块排序装置,如图4所示,该装置400包括:
获取模块401,用于获取目标文字块序列,所述目标文字块序列包括多个文字块,所述多个文字块在所述目标文字块序列中,是以文字块在文档中的第一方向的位置大小进行的排序,所述第一方向为纵向或者横向;
确定模块402,用于针对所述目标文字块序列中的相邻文字块对,根据所述相邻文字块对中各文字块在所述第一方向上的位置大小,确定所述目标文字块序列的分界文字块,所述分界文字块是与相邻文字块对中的另一文字块在所述文档的所述第一方向上不存在相同坐标范围的文字块;
划分模块403,用于根据所述分界文字块,将所述目标文字块序列划分为多个子序列;
排序模块404,用于若所述多个子序列中存在包括多个文字块的目标子序列,则根据文字块在所述文档中的第二方向的位置大小,对该目标子序列中的各文字块进行排序,所述第二方向是纵向和横向中的与所述第一方向不同的方向;
执行模块405,用于将每一所述目标子序列作为新的所述目标文字块序列,并将所述目标子序列的所述第二方向作为新的所述目标文字块序列的第一方向,以重复执行上述针对目标文字块序列进行的确定分界文字块以及划分子序列,以及针对包括多个文字块的目标子序列中的各文字块进行排序的步骤,直到所述目标文字块序列被划分为所有单个文字块作为的子序列时,得到所述目标文字块序列的文字块排序结果。
采用上述装置,在文档的横向或纵向上对目标文字块序列进行排序,然后根据相邻文字块的位置大小关系找到分界文字块,根据分界文字块对目标文字块序列进行划分,再从另一方向上对含有多个文字块的目标子序列进行排序以及划分,如此进行多次的递归、迭代,直到目标文字块序列被划分为所有单个文字块作为的子序列时,得到最终的文字块排序结果。这种装置使用的文字块排序方法与传统的图算法相比,传统的图算法,首先要生成图,然后在图上进行文字块遍历,而在遍历过程中至少需要一个额外的数组来记录已遍历过的文字块,以防止重复遍历,并且在遍历结束前,生成的图不能被删除。而本公开所述的装置中由于没有使用图,因此不需要构建和存储图,那么可以减少内存空间的占用,以及减少因构图所造成的时间耗费,此外,采用这种装置对文字块进行排序时也不需要遍历各个文字块,因此也不需要额外的数组来记录已遍历的文字块,从而可以进一步减少内存空间的占用。如此,采用该装置,可以降低文字块排序算法实现时的复杂度,减少空间和时间资源的耗费。
可选地,所述获取模块401包括:
获取子模块,用于获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
第一排序子模块,用于根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;
第二排序子模块,用于根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列。
可选地,所述获取模块401包括:
获取子模块,用于获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
第一排序子模块,用于根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;
执行子模块,用于若所述初始文字块序列不存在所述分界文字块,则根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到新的目标文字块序列。
可选地,所述确定模块402包括:
判断子模块,用于对于任意所述相邻文字块对中的第一文字块和第二文字块,判断该第一文字块在所述第一方向上的最小坐标是否小于该第二文字块在所述第一方向上的最大坐标,以及判断该第二文字块在所述第一方向上的最小坐标是否小于所述第一文字块在所述第一方向上的最大坐标;
确定子模块,用于若该第一文字块在所述第一方向上的最小坐标大于该第二文字块在所述第一方向上的最大坐标,或者,该第二文字块在所述第一方向上的最小坐标大于所述第一文字块在所述第一方向上的最大坐标,则将所述第一文字块或者所述第二文字块作为所述分界文字块。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法实施例提供的一种文字块排序方法的步骤。
图5是根据一示例性实施例示出的一种电子设备1900的框图。参照图5,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的文字块排序方法。
另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(I/O)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如WindowsServerTM,MacOS XTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的文字块排序方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的文字块排序方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的文字块排序方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (8)
1.一种文字块排序方法,其特征在于,包括:
获取目标文字块序列,所述目标文字块序列包括多个文字块,所述多个文字块在所述目标文字块序列中,是以文字块在文档中的第一方向的位置大小进行的排序,所述第一方向为纵向或者横向;
针对所述目标文字块序列中的相邻文字块对,根据所述相邻文字块对中各文字块在所述第一方向上的位置大小,确定所述目标文字块序列的分界文字块,所述分界文字块是与相邻文字块对中的另一文字块在所述文档的所述第一方向上不存在相同坐标范围的文字块;
根据所述分界文字块,将所述目标文字块序列划分为多个子序列;
若所述多个子序列中存在包括多个文字块的目标子序列,则根据文字块在所述文档中的第二方向的位置大小,对该目标子序列中的各文字块进行排序,所述第二方向是纵向和横向中的与所述第一方向不同的方向;
将每一所述目标子序列作为新的所述目标文字块序列,并将所述目标子序列的所述第二方向作为新的所述目标文字块序列的第一方向,以重复执行上述针对目标文字块序列进行的确定分界文字块以及划分子序列,以及针对包括多个文字块的目标子序列中的各文字块进行排序的步骤,直到所述目标文字块序列被划分为所有单个文字块作为的子序列时,得到所述目标文字块序列的文字块排序结果;
所述针对所述目标文字块序列中的相邻文字块对,根据所述相邻文字块对中各文字块在所述第一方向上的位置大小,确定所述目标文字块序列的分界文字块,包括:
对于任意所述相邻文字块对中的第一文字块和第二文字块,判断该第一文字块在所述第一方向上的最小坐标是否小于该第二文字块在所述第一方向上的最大坐标,以及判断该第二文字块在所述第一方向上的最小坐标是否小于所述第一文字块在所述第一方向上的最大坐标;
若该第一文字块在所述第一方向上的最小坐标大于该第二文字块在所述第一方向上的最大坐标,或者,该第二文字块在所述第一方向上的最小坐标大于所述第一文字块在所述第一方向上的最大坐标,则将所述第一文字块或者所述第二文字块作为所述分界文字块。
2.根据权利要求1所述的方法,其特征在于,所述获取目标文字块序列,包括:
获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;或者,
根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列。
3.根据权利要求2所述的方法,其特征在于,所述获取目标文字块序列,包括:
获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;
所述方法还包括:若所述初始文字块序列不存在所述分界文字块,则根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到新的目标文字块序列。
4.一种文字块排序装置,其特征在于,包括:
获取模块,用于获取目标文字块序列,所述目标文字块序列包括多个文字块,所述多个文字块在所述目标文字块序列中,是以文字块在文档中的第一方向的位置大小进行的排序,所述第一方向为纵向或者横向;
确定模块,用于针对所述目标文字块序列中的相邻文字块对,根据所述相邻文字块对中各文字块在所述第一方向上的位置大小,确定所述目标文字块序列的分界文字块,所述分界文字块是与相邻文字块对中的另一文字块在所述文档的所述第一方向上不存在相同坐标范围的文字块;
划分模块,用于根据所述分界文字块,将所述目标文字块序列划分为多个子序列;
排序模块,用于若所述多个子序列中存在包括多个文字块的目标子序列,则根据文字块在所述文档中的第二方向的位置大小,对该目标子序列中的各文字块进行排序,所述第二方向是纵向和横向中的与所述第一方向不同的方向;
执行模块,用于将每一所述目标子序列作为新的所述目标文字块序列,并将所述目标子序列的所述第二方向作为新的所述目标文字块序列的第一方向,以重复执行上述针对目标文字块序列进行的确定分界文字块以及划分子序列,以及针对包括多个文字块的目标子序列中的各文字块进行排序的步骤,直到所述目标文字块序列被划分为所有单个文字块作为的子序列时,得到所述目标文字块序列的文字块排序结果;
所述确定模块包括:
判断子模块,用于对于任意所述相邻文字块对中的第一文字块和第二文字块,判断该第一文字块在所述第一方向上的最小坐标是否小于该第二文字块在所述第一方向上的最大坐标,以及判断该第二文字块在所述第一方向上的最小坐标是否小于所述第一文字块在所述第一方向上的最大坐标;
确定子模块,用于若该第一文字块在所述第一方向上的最小坐标大于该第二文字块在所述第一方向上的最大坐标,或者,该第二文字块在所述第一方向上的最小坐标大于所述第一文字块在所述第一方向上的最大坐标,则将所述第一文字块或者所述第二文字块作为所述分界文字块。
5.根据权利要求4所述的装置,其特征在于,所述获取模块包括:
获取子模块,用于获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
第一排序子模块,用于根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;
第二排序子模块,用于根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列。
6.根据权利要求5所述的装置,其特征在于,所述获取模块包括:
获取子模块,用于获取所述文档中各文字块的位置信息,所述位置信息包括第一坐标信息和第二坐标信息,所述第一坐标信息包括文字块距离坐标原点的最近点的横坐标和纵坐标,所述第二坐标信息是文字块距离所述坐标原点的最远点的横坐标和纵坐标;
第一排序子模块,用于根据文字块在所述第一坐标信息中的纵坐标与在所述第二坐标信息中的纵坐标之和的大小,对所述文档中的各文字块进行预排序,得到初始文字块序列,并将所述初始文字块序列作为所述目标文字块序列;
执行子模块,用于若所述初始文字块序列不存在所述分界文字块,则根据文字块在所述第一坐标信息中的横坐标与在所述第二坐标信息中的横坐标之和的大小,对所述文档中的各文字块进行预排序,得到新的目标文字块序列。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至3中任一项所述方法的步骤。
8.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1至3中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911129195.9A CN111027304B (zh) | 2019-11-18 | 2019-11-18 | 文字块排序方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911129195.9A CN111027304B (zh) | 2019-11-18 | 2019-11-18 | 文字块排序方法、装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111027304A CN111027304A (zh) | 2020-04-17 |
CN111027304B true CN111027304B (zh) | 2023-04-14 |
Family
ID=70200376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911129195.9A Active CN111027304B (zh) | 2019-11-18 | 2019-11-18 | 文字块排序方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111027304B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815452A (zh) * | 2018-12-25 | 2019-05-28 | 东软集团股份有限公司 | 文本比较方法、装置、存储介质及电子设备 |
CN109815453A (zh) * | 2018-12-25 | 2019-05-28 | 东软集团股份有限公司 | 文档分块方法、装置、存储介质及电子设备 |
CN109871517A (zh) * | 2018-12-25 | 2019-06-11 | 东软集团股份有限公司 | 文字块排序方法、装置、存储介质及电子设备 |
-
2019
- 2019-11-18 CN CN201911129195.9A patent/CN111027304B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109815452A (zh) * | 2018-12-25 | 2019-05-28 | 东软集团股份有限公司 | 文本比较方法、装置、存储介质及电子设备 |
CN109815453A (zh) * | 2018-12-25 | 2019-05-28 | 东软集团股份有限公司 | 文档分块方法、装置、存储介质及电子设备 |
CN109871517A (zh) * | 2018-12-25 | 2019-06-11 | 东软集团股份有限公司 | 文字块排序方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111027304A (zh) | 2020-04-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hofri | Probabilistic analysis of algorithms: on computing methodologies for computer algorithms performance evaluation | |
Binev et al. | Fast high-dimensional approximation with sparse occupancy trees | |
US9798808B2 (en) | Data visualization system | |
CN110750704B (zh) | 一种查询自动补全的方法和装置 | |
CN106295670B (zh) | 数据处理方法及数据处理装置 | |
JP6822581B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN111832396B (zh) | 文档布局的解析方法、装置、电子设备和存储介质 | |
CN110705602A (zh) | 大规模数据聚类方法、装置及计算机可读存储介质 | |
JP2019512127A (ja) | 文字列距離計算方法及び装置 | |
Mosavi | Application of data mining in multiobjective optimization problems | |
US8583719B2 (en) | Method and apparatus for arithmetic operation by simultaneous linear equations of sparse symmetric positive definite matrix | |
CN108932533A (zh) | 识别模型构建方法及装置、字符识别方法及装置 | |
CN107402942B (zh) | 索引方法及装置 | |
CN104573683A (zh) | 字符串识别方法和装置 | |
CN111027304B (zh) | 文字块排序方法、装置、存储介质及电子设备 | |
EP3786816A1 (en) | Local search with global view for large scale combinatorial optimization | |
CN109871517B (zh) | 文字块排序方法、装置、存储介质及电子设备 | |
CN109657060B (zh) | 安全生产事故案例推送方法及系统 | |
CN110807286A (zh) | 一种结构网格识别方法 | |
CN114882515A (zh) | 基于神经网络模型的表格类型判定方法、设备及介质 | |
JP2017107472A (ja) | 文字列検索方法および装置 | |
CN111881916B (zh) | 一种文字定位方法、装置及设备 | |
CN105144139A (zh) | 生成特征集 | |
CN109271132B (zh) | 一种基于机器学习模型的排序方法 | |
KR20220137645A (ko) | 핸드라이팅에서의 구조 분해 |
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 |