CN111353289A - 文档比对方法、装置、存储介质、电子设备 - Google Patents
文档比对方法、装置、存储介质、电子设备 Download PDFInfo
- Publication number
- CN111353289A CN111353289A CN202010102751.XA CN202010102751A CN111353289A CN 111353289 A CN111353289 A CN 111353289A CN 202010102751 A CN202010102751 A CN 202010102751A CN 111353289 A CN111353289 A CN 111353289A
- Authority
- CN
- China
- Prior art keywords
- character
- document
- attribute information
- text
- line
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/31—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种文档比对方法、装置、存储介质、电子设备,所述方法包括:获取第一文档和第二文档中的文字内容;确定所述第一文档的文字内容和所述第二文档的文字内容之间的共通数据块,得到属于所述第一文档的第一共通数据块序列以及属于所述第二文档的第二共通数据块序列;根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息,并根据所述第二文档中文字属性信息的索引,确定所述第二共通数据块序列的文字属性信息;对比所述第一共通数据块序列的文字属性信息与所述第二共通数据块序列的文字属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异信息。
Description
技术领域
本公开涉及文档内容处理领域,具体地,涉及一种文档比对方法、装置、存储介质、电子设备。
背景技术
在日常应用中,文档的比较是一个存在于很多场景的需求,例如对两篇文章进行对比,对两个脚本文件中的代码进行对比等等。通常,文档的比较是为了寻找出不同文档之间的相关性和差异,从而简化后续的处理流程,降低工作量。
相关技术中,在确定多个文档内容之间的差异过程中所使用的方法对内存资源还有着较高的需求,同时需要的时间也较长,增加了电力消耗。
发明内容
本公开的目的是提供一种文档比对方法、装置、存储介质、电子设备,以解决相关技术问题。
为了实现上述目的,本公开实施例的第一方面,提供一种文档比对方法,包括:
获取第一文档和第二文档中的文字内容;
确定所述第一文档的文字内容和所述第二文档的文字内容之间的共通数据块,得到属于所述第一文档的第一共通数据块序列以及属于所述第二文档的第二共通数据块序列;
根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息,并根据所述第二文档中文字属性信息的索引,确定所述第二共通数据块序列的文字属性信息;
对比所述第一共通数据块序列的文字属性信息与所述第二共通数据块序列的文字属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异信息。
可选地,所述第一文档中文字属性信息的索引是通过如下方式建立的:
将所述第一文档的文字内容按照预设粒度层级进行划分;
针对所述预设粒度层级中的每一层粒度,对属于同一层粒度的文字内容的文字属性信息依次进行编号;
针对最小粒度的文字内容的文字属性信息,根据该文字属性信息对应的各层粒度的编号,以及所述第一文档中从首字符到该文字内容的累计字符数生成该文字属性信息的索引。
可选地,所述预设粒度层级包括:段落粒度层、行粒度层、子行粒度层;
所述针对所述预设粒度层级中的每一层粒度,对属于同一层粒度的文字内容的文字属性信息依次进行编号,包括:
针对按段落粒度层划分文字内容得到的各段落文字块,对各所述段落文字块的文字属性信息依次进行编号;
针对按行粒度层划分文字内容得到的各行文字块,对各所述行文字块的文字属性信息依次进行编号;
针对按子行粒度层划分文字内容得到的各子行文字块,对各所述子行文字块的文字属性信息依次进行编号。
可选地,所述针对最小粒度的文字内容的文字属性信息,根据该文字属性信息对应的各层粒度的编号,以及所述第一文档中从首字符到该文字内容的累计字符数生成该文字属性信息的索引,包括:
针对每一子行文字块,将该子行文字块对应的编号、该子行文字块所属的行文字块对应的编号、所述行文字块所属的段落文字块对应的编号、以及所述第一文档中从首字符到该子行文字块的累计字符数组成一个元组作为该子行文字块的索引。
可选地,所述根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息,包括:
根据所述第一共通数据块序列中的每一文字内容在所述第一文档的累计字符数,确定所述第一共通数据块序列中的每一文字内容所属的子行文字块;
针对每一所述第一共通数据块序列中的每一文字内容所属的子行文字块,根据该子行文字块的索引确定该子行文字块的文字属性信息,并将该文字属性信息作为该文字内容的文字属性信息,其中,每一子行文字块内的文字内容的文字属性信息相同。
第二方面,本公开提供一种文档比对装置,包括:
获取模块,用于获取第一文档和第二文档中的文字内容;
第一确定模块,用于确定所述第一文档的文字内容和所述第二文档的文字内容之间的共通数据块,得到属于所述第一文档的第一共通数据块序列以及属于所述第二文档的第二共通数据块序列;
第二确定模块,用于根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息,并根据所述第二文档中文字属性信息的索引,确定所述第二共通数据块序列的文字属性信息;
比较模块,用于对比所述第一共通数据块序列的文字属性信息与所述第二共通数据块序列的文字属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异信息。
可选地,还包括:
创建模块,用于建立所述第一文档中文字属性信息的索引;
所述创建模块包括:
划分子模块,用于将所述第一文档的文字内容按照预设粒度层级进行划分;
编号子模块,用于针对所述预设粒度层级中的每一层粒度,对属于同一层粒度的文字内容的文字属性信息依次进行编号;
生成子模块,用于针对最小粒度的文字内容的文字属性信息,根据该文字属性信息对应的各层粒度的编号,以及所述第一文档中从首字符到该文字内容的累计字符数生成该文字属性信息的索引。
可选地,所述预设粒度层级包括:段落粒度层、行粒度层、子行粒度层;
所述编号子模块,包括:
第一编号子单元,用于针对按段落粒度层划分文字内容得到的各段落文字块,对各所述段落文字块的文字属性信息依次进行编号;
第二编号子单元,用于针对按行粒度层划分文字内容得到的各行文字块,对各所述行文字块的文字属性信息依次进行编号;
第三编号子单元,用于针对按子行粒度层划分文字内容得到的各子行文字块,对各所述子行文字块的文字属性信息依次进行编号。
可选地,所述生成子模块用于:
针对每一子行文字块,将该子行文字块对应的编号、该子行文字块所属的行文字块对应的编号、所述行文字块所属的段落文字块对应的编号、以及所述第一文档中从首字符到该子行文字块的累计字符数组成一个元组作为该子行文字块的索引。
可选地,所述第二确定模块,包括:
确定子模块,用于根据所述第一共通数据块序列中的每一文字内容在所述第一文档的累计字符数,确定所述第一共通数据块序列中的每一文字内容所属的子行文字块;
执行子模块,用于针对每一所述第一共通数据块序列中的每一文字内容所属的子行文字块,根据该子行文字块的索引确定该子行文字块的文字属性信息,并将该文字属性信息作为该文字内容的文字属性信息,其中,每一子行文字块内的文字内容的文字属性信息相同。
第三方面,本公开提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中任一项所述方法的步骤。
第四方面,本公开提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面中任一项所述方法的步骤。
上述技术方案至少可以包括如下技术效果:
在需要对第一文档和第二文档进行比较时,可以从所述第一文档和第二文档中获取对应的文字内容,并通过求取共通数据块,得到第一共通数据块序列和第二共通数据块序列。由于在求取共通数据块时未附带所述第一文档和第二文档的属性信息,因此能够提升文档比对速度,减小内存消耗。此外,还可以根据对应的索引关系确定所述第一共通数据块序列和第二共通数据块序列的属性信息,最终能够通过对比所述第一共通数据块序列和第二共通数据块序列的属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异。也就是说,上述方案可以对第一文档和第二文档之间的共通数据进行差异对比,且由于在求取共通数据块时未附带对应文档的属性信息,而是在求取共通数据块之后通过索引查找对应文档的属性信息,因此能够减少比对过程的冗余数据,起到提升比对速度,同时降低内存消耗的效果。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是本公开一示例性实施例所示出的一种文档比对方法的流程图。
图2是本公开一示例性实施例所示出的一种文字属性信息的索引的建立流程图。
图3是本公开一示例性实施例所示出的一种文字内容的示意图。
图4是本公开一示例性实施例所示出的一种文档比对装置的框图。
图5是本公开一示例性实施例所示出的一种电子设备的框图。
具体实施方式
以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。
在介绍本公开所提供的文档比对方法之前,首先对本公开各实施例的应用场景进行介绍,本公开的各实施例可以应用于各种文档或是文件内容的比较场合,例如对两篇文章进行对比,或是对两个脚本文件中的代码内容进行对比等等。
在一些比较场景中,用户所关注的往往是文字内容上的差异,而非文字内容所对应的附加信息的差异(例如文字的方向、坐标、颜色等等),但如果在比较过程中丢弃文字内容的附加信息,那么又无法满足相关的需要比较上述附加信息的场景。在一些场景中,可以在文档比较过程中附带所述附加信息,但由于需要比对的文档往往包括较多的内容,如果在比较过程的各处理环节均附带上文字内容的附加信息,则又会增加比对过程的内存消耗,同时降低比对速度,导致比对时间进一步增加。
为此,本公开提供一种文档比对方法,参照图1所示出的一种文档比对方法的流程示意图,所述方法包括:
S11,获取第一文档和第二文档中的文字内容;
S12,确定所述第一文档的文字内容和所述第二文档的文字内容之间的共通数据块,得到属于所述第一文档的第一共通数据块序列以及属于所述第二文档的第二共通数据块序列;
S13,根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息,并根据所述第二文档中文字属性信息的索引,确定所述第二共通数据块序列的文字属性信息;
S14,对比所述第一共通数据块序列的文字属性信息与所述第二共通数据块序列的文字属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异信息。
具体来说,在步骤S11中,所述文字内容可以对应于第一文档和第二文档中的字符,其不包括相应字符的字符格式信息。在具体实施时,可以分别对第一文档和第二文档进行抽取,得到所述文字内容。
这样,在步骤S12中,可以通过最长公共子序列算法确定第一文档的文字内容和所述第二文档的文字内容之间的共通数据块。应当理解,共通数据块是指同时包括在两个待比较文档中的文字内容序列。其中,第一文档中的所述共通数据块组成第一共通数据块序列,第二文档中的所述共通数据块组成第二共通数据块序列。由于上述步骤在求取共通数据块时所针对的是文字内容,即未附带所述第一文档和第二文档的属性信息,因此能够提升文档比对速度,减小内存消耗。
此外,还可以建立所述文字内容与文字内容的属性信息之间的对应关系,其中,所述文字内容的属性信息例如可以包括大小、颜色、方向、字体等等。举例来讲,可以从待比较的第一文档中抽取得到对应所述第一文档的文字内容,并通过遍历所述第一文档,从而获取到所述第一文档中文字内容的属性信息。
在一实施例中,还可以对所述第一文档的文字内容和第一文档中文字内容的属性信息分别进行存储,通过设置相应的指针,得到文字内容与文字内容的属性信息之间的关联关系。类似的,在另一实施例中,所述关联关系也可以通过文字内容与文字内容的属性信息之间的索引来实现。
因此,在步骤S13中,可以根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息。又或者,可以根据所述第二文档中文字属性信息的索引,确定所述第二共通数据块序列的文字属性信息。
进一步的,可以通过对比所述第一共通数据块序列的文字属性信息与所述第二共通数据块序列的文字属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异信息。
也就是说,采用上述技术方案,在需要对第一文档和第二文档进行比较时,可以从所述第一文档和第二文档中获取对应的文字内容,并通过求取共通数据块,得到第一共通数据块序列和第二共通数据块序列。由于在求取共通数据块时未附带所述第一文档和第二文档的属性信息,因此能够提升文档比对速度,减小内存消耗。此外,还可以根据对应的索引关系确定所述第一共通数据块序列和第二共通数据块序列的属性信息,最终能够通过对比所述第一共通数据块序列和第二共通数据块序列的属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异。也就是说,上述方案可以对第一文档和第二文档之间的共通数据进行差异对比,且由于在求取共通数据块时未附带对应文档的属性信息,而是在求取共通数据块之后通过索引查找对应文档的属性信息,因此能够减少比对过程的冗余数据,起到提升比对速度,同时降低内存消耗的效果。
针对所述文字属性信息的索引,如图2所示,在一种可能的实施方式中,所述索引是通过如下方式建立的:
S21,将所述第一文档的文字内容按照预设粒度层级进行划分。
其中,所述预设粒度层级可以包括页、段落、行等等,在一实施例中,所述预设粒度层级还可以包括子行这一粒度。所述子行是行的下一层级粒度,其可以包括同一行的多个字符。例如,参照图3所示出的一种文字内容的示意图,所述文字内容可以包括3段,因此所述文字内容可以按照段、行以及子行三个粒度进行划分,其中,第0段的第0行可以包括“尽管艾奥始终一面对着木星围绕这个巨大的行星旋转,但是较大的卫星”、“欧罗巴”、“和”“伽倪墨得”这四个子行。
这样,在步骤S22中,可以针对所述预设粒度层级中的每一层粒度,对属于同一层粒度的文字内容的文字属性信息依次进行编号。
举例来说,针对“页”这一粒度,可以按照相应的顺序,例如先后顺序进行排序,得到各个页的编号。类似的,也可以针对“段落”、“行”、“子行”、甚至字符进行编号排序。
S23,针对最小粒度的文字内容的文字属性信息,根据该文字属性信息对应的各层粒度的编号,以及所述第一文档中从首字符到该文字内容的累计字符数生成该文字属性信息的索引。
以图3为例,针对第0段的第0行的文字内容“尽管艾奥始终一面对着木星围绕这个巨大的行星旋转,但是较大的卫星”其索引可以由所述文字内容在所述文档中所处的段落编号、行编号、子行编号、以及累计字符数构成,在图3中,其索引为{0,0,0,31}。应当理解的,当所述文档的索引粒度层级不限于所述段落、行、子行时,所述索引中也可以包括其他对应的粒度层级编号,本公开对此不作限定。
在一实施例中,所述预设粒度层级包括:段落粒度层、行粒度层、子行粒度层。这样,所述步骤S22,包括:
针对按段落粒度层划分文字内容得到的各段落文字块,对各所述段落文字块的文字属性信息依次进行编号;
针对按行粒度层划分文字内容得到的各行文字块,对各所述行文字块的文字属性信息依次进行编号;
针对按子行粒度层划分文字内容得到的各子行文字块,对各所述子行文字块的文字属性信息依次进行编号。
在另一实施例中,针对每一最小层级的粒度内容,还可以将该粒度内容所属的各粒度层的编号进行组合,生成一个元祖作为该最小层级的粒度内容的索引。仍以图3为例,所述文字内容的最小粒度层级为子行,则所述步骤S23,包括:
针对每一子行文字块,将该子行文字块对应的编号、该子行文字块所属的行文字块对应的编号、所述行文字块所属的段落文字块对应的编号、以及所述第一文档中从首字符到该子行文字块的累计字符数组成一个元组作为该子行文字块的索引。
例如,针对子行文字块“欧罗巴”,其属于所述文字内容的第0段、第0行、第1个子行、累计字符数为34,因此,所述子行文字块“欧罗巴”的索引可以包括{0,0,1,34}。此外,在一实施例中,还可以将每一所述子行所对应的元祖合并放置在一数组中,以便于查找。
在一些实施例中,针对各粒度层级,在各子行文字块的索引中可以仅保留一份该粒度层级的标识信息,从而能够进一步的节省数据占用的空间。例如,可以将子行文字块{0,0,0,31}和{0,0,1,34}表示为{0,0,(0,31),(1,34)},即{段落编号,行编号,(子行文字块1,当前子行文字块的累计字符数),……,(子行文字块N,当前子行文字块的累计字符数)},其中N为子行文字块的编号,为正整数。
此外值得说明的是,上述实施例中,为了描述的方便和简洁,以第一文档为例介绍了所述索引的建立流程以及索引的形式。但本领域技术人员应当知晓,在具体实施时也可以通过上述实施例中所描述的相关方法来对第二文档建立索引,此外,上述针对文字内容的属性信息的编号方法也可以用于对第一文档和/或第二文档中的文字内容进行编号,本公开在此不做赘述。
参照图1,在一种可能的实施方式中,所述根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息,包括:
根据所述第一共通数据块序列中的每一文字内容在所述第一文档的累计字符数,确定所述第一共通数据块序列中的每一文字内容所属的子行文字块;
针对每一所述第一共通数据块序列中的每一文字内容所属的子行文字块,根据该子行文字块的索引确定该子行文字块的文字属性信息,并将该文字属性信息作为该文字内容的文字属性信息。其中,每一子行文字块内的文字内容的文字属性信息相同,从而能够减少存储的冗余数据,降低资源占用。
具体来说,第一共通数据块序列可以由第一文档中的文字内容组成,这些文字内容可以是具有连续编号的文字内容(例如第一文档中的第[79,293)个字符),也可以是离散的单个字符(例如第一文档中的第6个字符、第9个字符等等)。在具体实施时,可以对所述第一共通数据块序列进行遍历,以确定所述第一共通数据块所包括的文字内容,其中,将连续编号的字符序列作为一个文字内容。
这样,针对每一文字内容,可以通过查找该文字内容在所述第一文档中的累计字符数来确定该文字内容所属的子行文字块。举例来讲,在一实施例中,可以通过二分查找来分别确定所述文字内容的第一个字符和最后一个字符在所述第一文档中的位置,进而确定所述文字内容所属的子行文字快,并通过对应子行文字块的索引来查找该文字内容的属性信息。类似的,针对仅包括单个字符的文字内容,也可以通过二分查找的方式确定该文字内容在所述第一文档的位置,进而确定该文字内容所属的子行文字快,并依据该子行文字块的索引确定所述文字内容的属性信息。
值得注意的是,由连续编号的字符组成的文字内容可能对应着多个不同的子行文字块,在具体实施时,可以依据子行文字块的索引依次查找所述文字内容中的各个部分的属性信息。以图3为例,所述文字内容[79,293),对应着{0,2,0,90}至{2,2,2,300}之间的多个子行文字块(其中,文字内容[79,90]对应{0,2,0,90},文字内容(281,293)对应{2,2,2,300})。因此在确定文字内容[79,293)的属性信息时,针对文字内容[79,293)对应的每一子行文字块,可以通过该子行文字块的索引来确定该子行文字块的属性信息,并结合各所述子行文字块的属性信息来最终确定文字内容[79,293)的属性信息。
类似的,也可以通过上述方法确定第二共通数据块序列的属性信息,并通过对比所述第一共通数据块序列的文字属性信息与所述第二共通数据块序列的文字属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异信息。
也就是说,上述方案可以对第一文档和第二文档之间的共通数据进行差异对比,且由于在求取共通数据块时未附带对应文档的属性信息,而是在求取共通数据块之后通过索引查找对应文档的属性信息,因此能够减少比对过程的冗余数据,起到提升比对速度,同时降低内存消耗的效果。
此外值得注意的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
本公开还提供一种文档比对装置,参照图4所示的一种文档比对装置的框图,所述装置400包括:
获取模块401,用于获取第一文档和第二文档中的文字内容;
第一确定模块402,用于确定所述第一文档的文字内容和所述第二文档的文字内容之间的共通数据块,得到属于所述第一文档的第一共通数据块序列以及属于所述第二文档的第二共通数据块序列;
第二确定模块403,用于根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息,并根据所述第二文档中文字属性信息的索引,确定所述第二共通数据块序列的文字属性信息;
比较模块404,用于对比所述第一共通数据块序列的文字属性信息与所述第二共通数据块序列的文字属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异信息。
采用上述技术方案,在需要对第一文档和第二文档进行比较时,可以从所述第一文档和第二文档中获取对应的文字内容,并通过求取共通数据块,得到第一共通数据块序列和第二共通数据块序列。由于在求取共通数据块时未附带所述第一文档和第二文档的属性信息,因此能够提升文档比对速度,减小内存消耗。此外,还可以根据对应的索引关系确定所述第一共通数据块序列和第二共通数据块序列的属性信息,最终能够通过对比所述第一共通数据块序列和第二共通数据块序列的属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异。也就是说,上述方案可以对第一文档和第二文档之间的共通数据进行差异对比,且由于在求取共通数据块时未附带对应文档的属性信息,而是在求取共通数据块之后通过索引查找对应文档的属性信息,因此能够减少比对过程的冗余数据,起到提升比对速度,同时降低内存消耗的效果。
可选地,所述装置400还包括:
创建模块,用于建立所述第一文档中文字属性信息的索引;
所述创建模块包括:
划分子模块,用于将所述第一文档的文字内容按照预设粒度层级进行划分;
编号子模块,用于针对所述预设粒度层级中的每一层粒度,对属于同一层粒度的文字内容的文字属性信息依次进行编号;
生成子模块,用于针对最小粒度的文字内容的文字属性信息,根据该文字属性信息对应的各层粒度的编号,以及所述第一文档中从首字符到该文字内容的累计字符数生成该文字属性信息的索引。
可选地,所述预设粒度层级包括:段落粒度层、行粒度层、子行粒度层;
所述编号子模块,包括:
第一编号子单元,用于针对按段落粒度层划分文字内容得到的各段落文字块,对各所述段落文字块的文字属性信息依次进行编号;
第二编号子单元,用于针对按行粒度层划分文字内容得到的各行文字块,对各所述行文字块的文字属性信息依次进行编号;
第三编号子单元,用于针对按子行粒度层划分文字内容得到的各子行文字块,对各所述子行文字块的文字属性信息依次进行编号。
可选地,所述生成子模块用于:
针对每一子行文字块,将该子行文字块对应的编号、该子行文字块所属的行文字块对应的编号、所述行文字块所属的段落文字块对应的编号、以及所述第一文档中从首字符到该子行文字块的累计字符数组成一个元组作为该子行文字块的索引。
可选地,所述第二确定模块,包括:
确定子模块,用于根据所述第一共通数据块序列中的每一文字内容在所述第一文档的累计字符数,确定所述第一共通数据块序列中的每一文字内容所属的子行文字块;
执行子模块,用于针对每一所述第一共通数据块序列中的每一文字内容所属的子行文字块,根据该子行文字块的索引确定该子行文字块的文字属性信息,并将该文字属性信息作为该文字内容的文字属性信息,其中,每一子行文字块内的文字内容的文字属性信息相同。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
此外值得注意的是,为描述的方便和简洁,说明书中所描述的实施例均属于优选实施例,其所涉及的部分并不一定是本发明所必须的,例如,所述第一确定模块402以及第二确定模块403,在具体实施时可以是相互独立的装置也可以是同一个装置。又例如,所述第一编号子模块、第二编号子模块与第三编号子模块在具体实施时可以是独立的装置也可以是同一个装置,本公开对此不作限定。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例中所述的文档比对方法的步骤。
本公开还提供一种电子设备,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现上述任一实施例中所述的文档比对方法的步骤。
图5是根据一示例性实施例示出的一种电子设备500的框图。例如,电子设备500可以被提供为一后台服务器。参照图5,电子设备500包括处理器522,其数量可以为一个或多个,以及存储器532,用于存储可由处理器522执行的计算机程序。存储器532中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器522可以被配置为执行该计算机程序,以执行上述的文档比对方法。
另外,电子设备500还可以包括电源组件526和通信组件550,该电源组件526可以被配置为执行电子设备500的电源管理,该通信组件550可以被配置为实现电子设备500的通信,例如,有线或无线通信。此外,该电子设备500还可以包括输入/输出(I/O)接口558。电子设备500可以操作基于存储在存储器532的操作系统,例如Windows ServerTM,Mac OSXTM,UnixTM,LinuxTM等等。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的文档比对方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器532,上述程序指令可由电子设备500的处理器522执行以完成上述的文档比对方法。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的文档比对方法的代码部分。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (10)
1.一种文档比对方法,其特征在于,包括:
获取第一文档和第二文档中的文字内容;
确定所述第一文档的文字内容和所述第二文档的文字内容之间的共通数据块,得到属于所述第一文档的第一共通数据块序列以及属于所述第二文档的第二共通数据块序列;
根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息,并根据所述第二文档中文字属性信息的索引,确定所述第二共通数据块序列的文字属性信息;
对比所述第一共通数据块序列的文字属性信息与所述第二共通数据块序列的文字属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异信息。
2.根据权利要求1所述的方法,其特征在于,所述第一文档中文字属性信息的索引是通过如下方式建立的:
将所述第一文档的文字内容按照预设粒度层级进行划分;
针对所述预设粒度层级中的每一层粒度,对属于同一层粒度的文字内容的文字属性信息依次进行编号;
针对最小粒度的文字内容的文字属性信息,根据该文字属性信息对应的各层粒度的编号,以及所述第一文档中从首字符到该文字内容的累计字符数生成该文字属性信息的索引。
3.根据权利要求2所述的方法,其特征在于,所述预设粒度层级包括:段落粒度层、行粒度层、子行粒度层;
所述针对所述预设粒度层级中的每一层粒度,对属于同一层粒度的文字内容的文字属性信息依次进行编号,包括:
针对按段落粒度层划分文字内容得到的各段落文字块,对各所述段落文字块的文字属性信息依次进行编号;
针对按行粒度层划分文字内容得到的各行文字块,对各所述行文字块的文字属性信息依次进行编号;
针对按子行粒度层划分文字内容得到的各子行文字块,对各所述子行文字块的文字属性信息依次进行编号。
4.根据权利要求3所述的方法,其特征在于,所述针对最小粒度的文字内容的文字属性信息,根据该文字属性信息对应的各层粒度的编号,以及所述第一文档中从首字符到该文字内容的累计字符数生成该文字属性信息的索引,包括:
针对每一子行文字块,将该子行文字块对应的编号、该子行文字块所属的行文字块对应的编号、所述行文字块所属的段落文字块对应的编号、以及所述第一文档中从首字符到该子行文字块的累计字符数组成一个元组作为该子行文字块的索引。
5.根据权利要求4所述的方法,其特征在于,所述根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息,包括:
根据所述第一共通数据块序列中的每一文字内容在所述第一文档的累计字符数,确定所述第一共通数据块序列中的每一文字内容所属的子行文字块;
针对每一所述第一共通数据块序列中的每一文字内容所属的子行文字块,根据该子行文字块的索引确定该子行文字块的文字属性信息,并将该文字属性信息作为该文字内容的文字属性信息,其中,每一子行文字块内的文字内容的文字属性信息相同。
6.一种文档比对装置,其特征在于,包括:
获取模块,用于获取第一文档和第二文档中的文字内容;
第一确定模块,用于确定所述第一文档的文字内容和所述第二文档的文字内容之间的共通数据块,得到属于所述第一文档的第一共通数据块序列以及属于所述第二文档的第二共通数据块序列;
第二确定模块,用于根据所述第一文档中文字属性信息的索引,确定所述第一共通数据块序列的文字属性信息,并根据所述第二文档中文字属性信息的索引,确定所述第二共通数据块序列的文字属性信息;
比较模块,用于对比所述第一共通数据块序列的文字属性信息与所述第二共通数据块序列的文字属性信息,得到所述第一文档和所述第二文档之间的所述共通数据块的属性差异信息。
7.根据权利要求6所述的装置,其特征在于,还包括:
创建模块,用于建立所述第一文档中文字属性信息的索引;
所述创建模块包括:
划分子模块,用于将所述第一文档的文字内容按照预设粒度层级进行划分;
编号子模块,用于针对所述预设粒度层级中的每一层粒度,对属于同一层粒度的文字内容的文字属性信息依次进行编号;
生成子模块,用于针对最小粒度的文字内容的文字属性信息,根据该文字属性信息对应的各层粒度的编号,以及所述第一文档中从首字符到该文字内容的累计字符数生成该文字属性信息的索引。
8.根据权利要求7所述的装置,其特征在于,所述预设粒度层级包括:段落粒度层、行粒度层、子行粒度层;
所述编号子模块,包括:
第一编号子单元,用于针对按段落粒度层划分文字内容得到的各段落文字块,对各所述段落文字块的文字属性信息依次进行编号;
第二编号子单元,用于针对按行粒度层划分文字内容得到的各行文字块,对各所述行文字块的文字属性信息依次进行编号;
第三编号子单元,用于针对按子行粒度层划分文字内容得到的各子行文字块,对各所述子行文字块的文字属性信息依次进行编号。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-5中任一项所述方法的步骤。
10.一种电子设备,其特征在于,包括:
存储器,其上存储有计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1-5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102751.XA CN111353289B (zh) | 2020-02-19 | 2020-02-19 | 文档比对方法、装置、存储介质、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010102751.XA CN111353289B (zh) | 2020-02-19 | 2020-02-19 | 文档比对方法、装置、存储介质、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111353289A true CN111353289A (zh) | 2020-06-30 |
CN111353289B CN111353289B (zh) | 2023-07-25 |
Family
ID=71197090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010102751.XA Active CN111353289B (zh) | 2020-02-19 | 2020-02-19 | 文档比对方法、装置、存储介质、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111353289B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738224A (zh) * | 2020-07-28 | 2020-10-02 | 浙江明度智控科技有限公司 | 一种针对药品文档内容的智能分析方法、系统和存储介质 |
CN111859895A (zh) * | 2020-07-28 | 2020-10-30 | 浙江明度智控科技有限公司 | 一种对批量文档内表格进行比对的方法、系统和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110252033A1 (en) * | 2010-04-09 | 2011-10-13 | International Business Machines Corporation | System and method for multithreaded text indexing for next generation multi-core architectures |
CN108255435A (zh) * | 2018-01-19 | 2018-07-06 | 中山大学 | 一种利用分层树结构控制访问的数据存储系统 |
CN109684437A (zh) * | 2018-11-16 | 2019-04-26 | 东软集团股份有限公司 | 用于文件比较的内容对齐方法、装置、存储介质和设备 |
CN109710896A (zh) * | 2018-11-30 | 2019-05-03 | 东软集团股份有限公司 | 文字属性差异标记方法,装置,存储介质及电子设备 |
CN109815452A (zh) * | 2018-12-25 | 2019-05-28 | 东软集团股份有限公司 | 文本比较方法、装置、存储介质及电子设备 |
-
2020
- 2020-02-19 CN CN202010102751.XA patent/CN111353289B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110252033A1 (en) * | 2010-04-09 | 2011-10-13 | International Business Machines Corporation | System and method for multithreaded text indexing for next generation multi-core architectures |
CN108255435A (zh) * | 2018-01-19 | 2018-07-06 | 中山大学 | 一种利用分层树结构控制访问的数据存储系统 |
CN109684437A (zh) * | 2018-11-16 | 2019-04-26 | 东软集团股份有限公司 | 用于文件比较的内容对齐方法、装置、存储介质和设备 |
CN109710896A (zh) * | 2018-11-30 | 2019-05-03 | 东软集团股份有限公司 | 文字属性差异标记方法,装置,存储介质及电子设备 |
CN109815452A (zh) * | 2018-12-25 | 2019-05-28 | 东软集团股份有限公司 | 文本比较方法、装置、存储介质及电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111738224A (zh) * | 2020-07-28 | 2020-10-02 | 浙江明度智控科技有限公司 | 一种针对药品文档内容的智能分析方法、系统和存储介质 |
CN111859895A (zh) * | 2020-07-28 | 2020-10-30 | 浙江明度智控科技有限公司 | 一种对批量文档内表格进行比对的方法、系统和存储介质 |
CN111738224B (zh) * | 2020-07-28 | 2020-12-08 | 浙江明度智控科技有限公司 | 一种针对药品文档内容的智能分析方法、系统和存储介质 |
CN111859895B (zh) * | 2020-07-28 | 2023-11-03 | 明度智云(浙江)科技有限公司 | 一种对批量文档内表格进行比对的方法、系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111353289B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109299110B (zh) | 数据查询方法、装置、存储介质和电子设备 | |
CN108959257B (zh) | 一种自然语言解析方法、装置、服务器及存储介质 | |
CN110019647B (zh) | 一种关键词搜索方法、装置和搜索引擎 | |
CN103455475B (zh) | 排版方法、设备及系统 | |
CN106503268B (zh) | 数据对比方法、装置和系统 | |
CN111353289A (zh) | 文档比对方法、装置、存储介质、电子设备 | |
CN107566090B (zh) | 一种定长/变长的文本报文处理方法及装置 | |
CN105740405B (zh) | 存储数据的方法和装置 | |
CN111144402A (zh) | Ocr识别准确率的计算方法、装置、设备以及存储介质 | |
US20160203152A1 (en) | Enhanced compression, encoding, and naming for resource strings | |
CN109829073B (zh) | 一种图像搜索的方法及装置 | |
US10467001B2 (en) | Enhanced compression, encoding, and naming for resource strings | |
CN106202224B (zh) | 搜索处理方法及装置 | |
CN114138231B (zh) | 执行矩阵乘法运算的方法、电路及soc | |
US8407255B1 (en) | Method and apparatus for exploiting master-detail data relationships to enhance searching operations | |
CN113126980A (zh) | 页面生成方法、装置及电子设备 | |
CN112380238A (zh) | 数据库数据查询方法、装置、电子设备及存储介质 | |
CN111291137A (zh) | 基于实体关系的搜索方法和系统 | |
CN110598068A (zh) | 全局标识生成方法和装置 | |
CN116346777A (zh) | 一种字典树域名匹配方法、装置、设备及存储介质 | |
CN116451688A (zh) | 汉语分词方法、装置、服务器及存储介质 | |
CN115730589A (zh) | 一种基于词向量的新闻传播路径生成方法以及相关装置 | |
CN112199922B (zh) | 编码方法、装置、设备及计算机可读存储介质 | |
CN114611120A (zh) | 数据加密方法、装置、设备及介质 | |
CN109840080B (zh) | 字符属性比较方法、装置、存储介质及电子设备 |
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 |