数据解析方法、装置、计算机设备和可读存储介质与流程

文档序号:23155679发布日期:2020-12-04 13:50阅读:78来源:国知局
数据解析方法、装置、计算机设备和可读存储介质与流程

本发明涉及数据处理技术领域,尤其涉及一种数据解析方法、装置、计算机设备和可读存储介质。



背景技术:

在建筑材料信息领域,全国各省市地区每月需要发布材料信息数据的表格,涉及到全国30多个省,600多个地区的信息价格,并且发布的方式多样,有pdf、网页、纸质、电子表格等多种形式,其中,以纸质形式进行发布占比高达48%。为了实现数据的统一汇总、存储以及处理等,需要将各种形式的表格数据统一为电子数据,目前,在实现电子数据的统一时,可技术化手段较低,大部分操作方式还停留在人工录入的模式,导致在此项工作上花费的人力及时间成本较高。

因此,如何实现表格数据的自动解析,成为本领域亟需解决的技术问题。



技术实现要素:

本发明的目的是提供一种数据解析方法、装置、计算机设备和可读存储介质,用于解决现有技术中的上述技术问题。

一方面,为实现上述目的,本发明提供了一种数据解析方法。

该数据解析方法包括:获取待解析表格图片;将待解析表格图片识别为表格文件,得到初始表格文件;根据预配置的解析模板解析初始表格文件,以得到若干条数据记录;将数据记录写入标准表格文件;以及将标准表格文件与历史记录库进行匹配,以确定新增数据记录或修改数据记录;根据新增数据记录或修改数据记录更新历史记录库,得到待解析表格图片对应的数据记录库。

进一步地,待解析表格图片包括若干类表格,根据预配置的解析模板解析初始表格文件,以得到若干条数据记录的步骤包括:获取解析模板列表,其中,解析模板列表包括解析模板所解析的表格的标题;读取初始表格文件中一行内容得到行文本;判断解析模板列表中是否存在与行文本匹配的标题;若不存在,根据当前解析模板将行文本解析为一条数据记录,并将解析得到的数据记录写入标准表格文件;若存在,将匹配的标题对应的解析模板作为当前解析模板。

进一步地,数据记录包括若干字段,解析模板包括用于解析每个字段的解析规则,根据当前解析模板将行文本解析为一条数据记录的步骤包括:根据解析模板中的解析规则从行文本中提取对应的字段内容;根据从行文本中提取到的所有字段内容构建数据记录。

进一步地,数据记录包括第一字段和第二字段,根据当前解析模板将行文本解析为一条数据记录的步骤还包括:当根据第一字段对应的解析规则从行文本中提取不到字段内容时,根据相邻数据记录中的第一字段的字段内容构建数据记录,其中,相邻数据记录为根据初始表格文件中上一行内容得到的数据记录;当根据第二字段对应的解析规则从行文本中提取出第二字段的字段内容时,对提取出的第二字段的字段内容进行校验,并在校验合法时,根据从第二字段的字段内容构建数据记录。

进一步地,将标准表格文件与历史记录库进行匹配,以确定新增数据记录或修改数据记录的步骤包括:将标准表格文件中的数据记录与历史记录库中的历史记录进行匹配;当数据记录在历史记录库中没有匹配到历史记录时,确定数据记录为新增数据记录;当数据记录在历史记录库中匹配到历史记录,且被匹配到的历史记录与数据记录唯一匹配时,计算数据记录与被匹配到的历史记录的第一相似度,当第一相似度不超过预设相似度阈值时,确定数据记录为对被匹配到的历史记录的修改数据记录;以及当两条或两条以上数据记录在历史记录库中匹配到同一条历史记录时,计算各条数据记录与同一条历史记录的相似度并获取最大的第二相似度,当第二相似度不超过预设相似度阈值时,确定第二相似度对应的数据记录为对同一条历史记录的修改数据记录。

进一步地,计算数据记录与历史记录的相似度的步骤包括:根据数据记录与历史记录的价格字段中数值的差值计算第一相似因子,其中,差值越小,第一相似因子越大;根据计算数据记录与历史记录的文本相似度计算第二相似因子,其中,文本相似度越高,第二相似因子越大;以及根据第一相似因子和第二相似因子计算相似度。

进一步地,将标准表格文件中的数据记录与历史记录库中的历史记录进行匹配的步骤包括:获取标准表格文件中的第n条数据记录和第n+1条数据记录,以得到第一数据记录和第二数据记录;确定数据记录库的检索范围,其中,当n大于m时,检索范围为第n-m条历史记录至第n+m条历史记录,当n不超过m时,检索范围为第1条历史记录至第n+m条历史记录;根据第一数据记录构造第一检索词,根据第二数据记录构造第二检索词;当第一检索词在检索范围内没有命中历史记录时,确定第一数据记录在历史记录库中没有匹配到历史记录;当第一检索词在检索范围内命中历史记录,且第二检索词在检索范围内没有命中历史记录或者第一检索词和第二检索词在检索范围内命中不同的历史记录时,确定第一检索词命中的历史记录为第一数据记录匹配到的历史记录;当第一检索词和第二检索词命中相同的历史记录时,计算第一数据记录与相同的历史记录的第三相似度,计算第二数据记录与相同的历史记录的第四相似度,当第三相似度大于第四相似度时,确定相同的历史记录为第一数据记录匹配到的历史记录,当第四相似度大于第三相似度时,确定第一数据记录在历史记录库中没有匹配到历史记录。

另一方面,为实现上述目的,本发明提供了一种数据解析装置。

该数据解析装置包括:获取模块,用于获取待解析表格图片;识别模块,用于将待解析表格图片识别为表格文件,得到初始表格文件;解析模板,用于根据预配置的解析模板解析初始表格文件,以得到若干条数据记录,并将数据记录写入标准表格文件;以及更新模块,将标准表格文件与历史记录库进行匹配,以确定新增数据记录或修改数据记录,并根据新增数据记录或修改数据记录更新历史记录库,得到待解析表格图片对应的数据记录库。

又一方面,为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。

又一方面,为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。

本发明提供的数据解析方法、装置、计算机设备和可读存储介质,将待解析的非可编辑的表格转换为待解析表格图片,获取到待解析表格图片后,对该图片进行识别,识别到带解析的表格所对应的表格文件,定义为初始表格文件,然后根据预配置的解析模板对初始表格文件进行解析,得到数据记录后写入标准表格文件,最后将该标准表格文件与历史记录库进行匹配,以确定新增数据记录或修改数据记录,进而利用新增数据记录或修改数据记录更新历史记录库,将更新后的历史记录库作为待解析表格图片对应的数据记录库,实现了对待解析表格图片中表格数据的自动解析,无需人工录入,同时,将识别出的初始表格文件转化为标准表格文件后与历史记录库进行比对,在历史记录库的基础上进行更新得到最终的解析结果,能够提升数据解析的准确性。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1为本发明实施例一提供的数据解析方法的流程图;

图2为本发明实施例二提供的数据解析方法的流程图;

图3为本发明实施例三提供的数据解析装置的框图;

图4为本发明实施例四提供的计算机设备的硬件结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了实现非可编辑数据的自动解析,本发明提供了一种数据解析方法、装置、计算机设备和可读存储介质,在该数据解析方法中,将非可编辑数据的承载形式由纸质等转化为图片,作为待解析表格图片,在进行数据解析时,首先获取待解析表格图片,并对其进行识别,直接识别为表格文件,得到初始表格文件。预配置用于解析初始表格文件的解析模板,该解析模板定义了初始表格文件中包括哪些数据以及数据的获取方式,从而在得到初始表格文件后,可根据预配置的解析模板进行解析,以得到若干条数据记录,将得到的数据记录统一写入标准表格文件,此时实现了数据的初步解析,在此基础上,将标准表格文件与历史记录库进行匹配,以确定新增数据记录或修改数据记录,最后根据新增数据记录或修改数据记录更新历史记录库,得到待解析表格图片对应的数据记录库,实现了对待解析表格图片中表格数据的自动解析。

关于本发明提供的数据解析方法、装置、计算机设备和可读存储介质的具体实施方式,将在下文中详细描述。

实施例一

本发明实施例提供了一种数据解析方法,通过该方法,能够实现对非可编辑数据的自动解析,具体地,图1为本发明实施例一提供的数据解析方法的流程图,如图1所示,该实施例提供的数据解析方法包括如下的步骤s101至步骤s106。

步骤s101:获取待解析表格图片。

在一些场景中,需要统一为电子表格数据的材料包括多种形式,例如纸质、网页、pdf等,在该实施例中,可以首先通过拍照或截图等方式,将上述材料形式统一转化为图片格式,将表格转换为图片,得到待解析表格图片。

步骤s102:将待解析表格图片识别为表格文件,得到初始表格文件。

可调用ocr等文本识别技术模块,对待解析表格图片进行文字识别,并将识别后的文字按行形成表格文件,也即,在图片表格中处于同一行的文字,在初始表格文件中仍然处于同一行。将待解析表格图片中的文字全部识别后,形成初始表格文件。该初始表格文件中的数据为可编辑数据,以及可以在后续步骤中直接读取,例如可以将待解析表格图片识别为xls格式的表格文件。

步骤s103:根据预配置的解析模板解析初始表格文件,以得到若干条数据记录。

针对待解析的表格,设置解析模板,以定义数据记录中所需的各个字段应该如何从初始表格文件中获取,从而基于该解析模板,能够从初始表格文件中将相应的参数值读取出来,并形成标准的数据记录。可选地,针对不同的待解析的表格,可设置不同的解析模板。

步骤s104:将数据记录写入标准表格文件。

在该步骤中,将各条数据记录统一写入表格文件,形成标准表格文件,在该表格文件中,各数据记录具有统一的数据格式。

步骤s105:将标准表格文件与历史记录库进行匹配,以确定新增数据记录或修改数据记录。

步骤s106:根据新增数据记录或修改数据记录更新历史记录库,得到待解析表格图片对应的数据记录库。

待解析表格为在历史表格的基础上进行修改而得到的表格,历史记录库包括的是解析历史表格得到的数据记录。将标准表格文件与历史记录库进行匹配,一方面,能够确定待解析表格相对历史表格进行的修改,包括在历史表格中新增了内容项,和/或对历史表格中已有的内容项进行了修改,另一方面,相对直接将标准表格文件作为解析结果而言,能够通过历史记录库对标准表格文件中识别出的数据记录进行修正,最终利用新增数据记录或修改数据记录更新历史记录库,并将更新后的历史记录作为待解析表格图片对应的数据记录库,也即作为数据解析结果,能够弥补文本识别的准确性。

综上所述,采用该实施例提供的数据解析方法,将待解析的非可编辑的表格转换为待解析表格图片,获取到待解析表格图片后,对该图片进行识别,识别到带解析的表格所对应的表格文件,定义为初始表格文件,然后根据预配置的解析模板对初始表格文件进行解析,得到数据记录后写入标准表格文件,最后将该标准表格文件与历史记录库进行匹配,以确定新增数据记录或修改数据记录,进而利用新增数据记录或修改数据记录更新历史记录库,将更新后的历史记录库作为待解析表格图片对应的数据记录库,实现了对待解析表格图片中表格数据的自动解析,无需人工录入,同时,将识别出的初始表格文件转化为标准表格文件后与历史记录库进行比对,在历史记录库的基础上进行更新得到最终的解析结果,能够提升数据解析的准确性。

可选地,在一种实施例中,待解析表格图片包括若干类表格,根据预配置的解析模板解析初始表格文件,以得到若干条数据记录的步骤包括:获取解析模板列表,其中,解析模板列表包括解析模板所解析的表格的标题;读取初始表格文件中一行内容得到行文本;判断解析模板列表中是否存在与行文本匹配的标题;若不存在,根据当前解析模板将行文本解析为一条数据记录,并将解析得到的数据记录写入标准表格文件;若存在,将匹配的标题对应的解析模板作为当前解析模板。

具体地,当待解析表格图片中包括不同类型的表格时,需要利用不同的解析模板对对应的初始表格文件进行解析。预先针对不同类型的表格设置不同的解析模板,并预置每种解析模板与表格标题(也即表格表头)的关联关系,并利用各个解析模板所关联的表格标题(也即每个解析模板所解析的表格类型的标题)构建解析模板列表。在根据预配置的解析模板解析初始表格文件时,对初始表格文件中的内容逐行读取,读取到的一行内容定义为一个行文本。在读取到行文本时,并不能直接确定采用哪一个解析模板进行解析,此时,先利用行文本遍历解析模板列表,以判断解析模板列表中是否存在与行文本匹配的标题,如果存在,表明该行文本属于表格标题,基于表格标题位于表格首行的特点,且该行文本下面的行文本,也即在初始表格文件中读取到的下一行内容,可基于与该表格标题所对应的解析模板进行解析,因此,将该表格标题所对应的解析模板作为当前解析模板,在获取到下一行内容对应的行文本时,可采用该当前解析模板进行解析。如果解析模板列表中不存在与行文本匹配的标题,说明该行文本不属于表格标题,属于需要被解析的表格值,此时,即可利用当前解析模板进行解析。

采用该实施例提供的数据解析方法,针对包括不同类型表格的待解析表格图片,仍然可实现自动解析。

可选地,在一种实施例中,数据记录包括若干字段,解析模板包括用于解析每个字段的解析规则,根据当前解析模板将行文本解析为一条数据记录的步骤包括:根据解析模板中的解析规则从行文本中提取对应的字段内容;根据从行文本中提取到的所有字段内容构建数据记录。

具体地,数据记录的数据结构为包括多个字段,在进行解析时,需要从行文本中提取出每个字段对应的字段内容,将解析模板设置为包括解析每个字段的解析规则,从而在解析时,利用每个解析规则,即可在行文本中提取出每个字段对应的字段内容,最后根据提取出的所有字段内容即可构建数据记录。

可选地,在一种实施例中,数据记录包括第一字段和第二字段,根据当前解析模板将行文本解析为一条数据记录的步骤还包括:当根据第一字段对应的解析规则从行文本中提取不到字段内容时,根据相邻数据记录中的第一字段的字段内容构建数据记录,其中,相邻数据记录为根据初始表格文件中上一行内容得到的数据记录;当根据第二字段对应的解析规则从行文本中提取出第二字段的字段内容时,对提取出的第二字段的字段内容进行校验,并在校验合法时,根据从第二字段的字段内容构建数据记录。

具体地,对于一些字段,表格中相邻几行的内容相同时,会出现首行填写相应内容,而在后续各行设置为空,在该实施例中,将这类型的字段定义为第一字段,从而在解析过程中,当在一个行本文中提取不到这些字段的字段内容时,则采用上一行文本对应的数据记录,也即相邻数据记录中对应字段的字段内容代替来构建数据记录,提升数据解析的准确是哪个。对另一些字段,根据其特点可设置合法校验规则,以避免识别错误。在该实施例中,在提取出这类型字段的字段内容后,首先进行校验,在校验合法时利用字段内容构建数据记录。

可选地,在一种实施例中,将标准表格文件与历史记录库进行匹配,以确定新增数据记录或修改数据记录的步骤包括:将标准表格文件中的数据记录与历史记录库中的历史记录进行匹配;当数据记录在历史记录库中没有匹配到历史记录时,确定数据记录为新增数据记录;当数据记录在历史记录库中匹配到历史记录,且被匹配到的历史记录与数据记录唯一匹配时,计算数据记录与被匹配到的历史记录的第一相似度,当第一相似度不超过预设相似度阈值时,确定数据记录为对被匹配到的历史记录的修改数据记录;以及当两条或两条以上数据记录在历史记录库中匹配到同一条历史记录时,计算各条数据记录与同一条历史记录的相似度并获取最大的第二相似度,当第二相似度不超过预设相似度阈值时,确定第二相似度对应的数据记录为对同一条历史记录的修改数据记录。

具体地,将标准表格文件中的数据记录与历史记录库中的历史记录进行匹配,如果一条数据记录在历史记录库中没有匹配到历史记录,该该条数据记录属于在历史记录库的基础上新增的数据记录,因此,可直接将该数据记录作为新增的数据记录,并且在对历史记录库进行更新时,将该新增数据记录写入历史记录库。

如果一条数据记录在历史记录库中匹配到历史记录,并且该历史记录与该数据记录唯一匹配,表明两者的相似度较高,此时进一步计算两者的相似度,以判断两者是否相同,如果两者的相似度大于预设相似度阈值,表明两者实质相同,如果两者存在形式上的差异,该差异为待解析表格图片识别为表格文件过程中产生的识别错误,如果两者的相似度不超过预设相似度阈值,表明两者实质不同,此时两者的差异实质上是由于数据记录是对历史记录进行修改后的记录,因此,将该数据记录作为针对该历史记录的修改数据记录,并且在对历史记录库进行更新时,利用该修改数据记录替代对应的历史记录。

如果两条或两条以上的数据记录在历史记录库中匹配到相同的历史记录,需要计算各条数据记录与该条历史记录的相似度,将最大的相似度所对应的数据记录作为与该条历史记录最相似的数据记录,进一步根据该最大的相似度与预设相似度阈值的大小关系,来判断最大的相似度所对应的数据记录与该条历史记录是否属于相同的记录,具体方法步骤同上。

采用该实施例提供的数据解析方法,通过数据记录与历史记录的匹配以及二者相似度的计算,来确定数据记录属于新增数据记录、修改数据记录或者属于与历史记录相同的数据记录,能够弥补图片识别所产生的错误,提升数据解析的准确性。

可选地,在一种实施例中,计算数据记录与历史记录的相似度的步骤包括:根据数据记录与历史记录的价格字段中数值的差值计算第一相似因子,其中,差值越小,第一相似因子越大;根据计算数据记录与历史记录的文本相似度计算第二相似因子,其中,文本相似度越高,第二相似因子越大;以及根据第一相似因子和第二相似因子计算相似度。

具体地,对于信息价数据,数据记录包括材料名称字段、规格型号字段、单位字段、价格字段和备注字段等,且信息价数据的更新,通常包括针对已有材料对应数据记录的价格更新,以及增加新材料对应的数据记录。基于此,在计算数据记录与历史记录的相似度时,一方面,将价格字段中数值的差值作为影响第一相似因子的因素,差值越小,也即价格字段中数值越接近,该第一相似因子越大,数据记录与历史记录的相似度越大;另一方面,将各个字段的文本相似度作为影响另一个相似因子的因素,文本相似度越高,也即各个对应字段的字段内容相同的可能性越大,该第二相似因子越大,数据记录与历史记录的相似度越大。最终,可根据第一相似因子、第二相似因子以及两者的权重计算相似度。

采用该实施例提供的数据解析方法,针对信息价数据的特点,通过价格数值差异以及各字段文本差异两方面的相似因子计算数据记录与历史记录的相似度,使得计算得到的相似度大小能够更准确的反应出数据记录与历史记录的相似程度。

可选地,在一种实施例中,将标准表格文件中的数据记录与历史记录库中的历史记录进行匹配的步骤包括:获取标准表格文件中的第n条数据记录和第n+1条数据记录,以得到第一数据记录和第二数据记录;确定数据记录库的检索范围,其中,当n大于m时,检索范围为第n-m条历史记录至第n+m条历史记录,当n不超过或等于m时,检索范围为第1条历史记录至第n+m条历史记录;根据第一数据记录构造第一检索词,根据第二数据记录构造第二检索词;当第一检索词在检索范围内没有命中历史记录时,确定第一数据记录在历史记录库中没有匹配到历史记录;当第一检索词在检索范围内命中历史记录,且第二检索词在检索范围内没有命中历史记录或者第一检索词和第二检索词在检索范围内命中不同的历史记录时,确定第一检索词命中的历史记录为第一数据记录匹配到的历史记录;当第一检索词和第二检索词命中同一条历史记录时,计算第一数据记录与同一条历史记录的第三相似度,计算第二数据记录与同一条历史记录的相似度的第四相似度,当第三相似度大于第四相似度时,确定同一条历史记录为第一数据记录匹配到的历史记录,当第四相似度大于第三相似度时,确定第一数据记录在历史记录库中没有匹配到历史记录。

具体地,在将标准表格文件中的数据记录与历史记录库中的历史记录进行匹配,每次从标准表格文件中的数据记录获取两条数据记录,并依据该两条数据记录在标准表格文件中的位置顺序,确定出历史记录库的检索范围。同时,分别构造这两条数据记录所对应的检索词,利用该检索词在检索范围内进行检索,以检索出检索词能命中的历史记录。其中,在构造检索词时,可以构造多层梯度的检索词,例如,利用一个字段的字段内容构建第一层梯度的检索词,利用两个字段的字段内容构建第二层梯度的检索词,利用三个字段的字段内容构建第三层梯度的检索词,在检索时,先采用第三层梯度的检索词进行检索,如果第三层梯度的检索词能够命中历史记录,则检索完毕,如果第三层梯度的检索词不能够命中历史记录,则进一步采用第二层梯度的检索词进行检索,如果第二层梯度的检索词能够命中历史记录,则检索完毕,如果第二层梯度的检索词不能够命中历史记录,则进一步采用第一层梯度的检索词进行检索。

对于命中结果:如果第一检索词没有命中,即可确定第一数据记录在历史记录库中没有匹配到历史记录;如果第一检索词命中,且第二检索词没有命中历史记录或者第一检索词和第二检索词命中的历史记录不同,即可确定第一检索词命中的历史记录为第一数据记录匹配到的历史记录;如果两检索词命中同一条历史记录时,第一数据记录和历史记录的相似度更大,即可确定该历史记录与第一数据记录匹配,如果第二数据记录和历史记录的相似度更大,表明第一数据记录在历史记录库中没有匹配到历史记录。

采用该实施例提供的数据解析方法,每次采用两条数据记录进行匹配,并在匹配到同一条历史记录时进行相似度的比较,能够提升匹配的准确性,通过的设置,将检索范围缩小在内,增强匹配的准确性且提升匹配效率。

实施例二

该实施例二为在上述实施例一基础上提供的一种优选实施例。图2为本发明实施例二提供的数据解析方法的流程图。

在该实施例中,待解析表格为信息价的数据表格,对于信息价的更新而言,每个地区基本都是在上一期的基础上做内容修改,通过该实施例,能够动态配置模板,以对复杂的xls数据文件(也即初始表格文件)进行解析,转化为格式化的数据文件(也即标准表格文件)。解析后的数据,与上一期已有的信息价数据库匹配,确定新增的数据记录和修改的数据记录,不需要再人工校对。整个方案采用自动化过程,代替现有人工录入的过程。具体地,处理阶段主要包括将图像(也即待解析表格图片)识别为xls数据文件,对xls数据文件格式化处理,同上期的信息价数据(也即历史记录库中的历史记录)智能匹配,最终实现信息价数据加工过程的自动化,减少人工干预的过程。

整体设计如图2所示,对于待解析的纸质等形式的信息价表格数据,用户通过拍照或扫描的方式整理为电子图片,并选择信息价数据包对各个图片进行打包,上传到指定的oss系统,对于待解析的pdf等形式的信息价表格数据,可采用ocr工具直接识别为xls数据文件,并上传至指定的oss系统。上传完成后,创建任务并进行任务调度。

在任务执行时,从oss系统中获取待解析的文件,并判断该文件是否属于xls文件,如果属于,则利用预配置的解析模板将该xls文件解析为格式化的xls文件(也即标准表格文件);如果不属于,调用ocr服务,将待解析表格图片转化为xls文件,再执行将该xls文件解析为格式化的xls文件的步骤。

其中,在将xls文件解析为格式化的xls文件时,按照行读取xls文件中的数据以获取到该行的文本,得到行文本,并获取该任务对应的解析模板列表,通过行文本和解析模板列表中的标题进行匹配,该匹配步骤可以使用现有技术中计算文本最小编辑距离相似度的算法进行匹配,以匹配到最佳的标题,进而确定最佳的解析模板。在确定解析模板以后,通过该解析模板配置的解析规则,解析对应的名称、规格、单位、价格等数据。

解析完数据得到标准化的xls文件后,通过调用匹配服务,匹配上期材料,也即与历史记录库进行匹配。最终根据匹配结果,确定新增数据记录、修改数据记录(价格发生波动),将新增数据记录和修改数据记录形成待入库材料列表,可将该待入库材料列表标识为待确认材料,进一步确认,并在确认后对历史记录库进行更新,得到本期信息价数据。

其中,因为各个纸质书刊中信息价的表格类型不一致,大概统计有几千余多种,没有办法按照同一个解析模板进行统一处理,所以,需要针对不同的表格类型配置不同的解析模板,标准的信息价数据主要包括材料名称、规格型号、单位、价格、备注等字段,因此,配置的解析模板就是用于定义这些字段应该如何从xls文件中解析。在配置解析模板时,主要包括两方面内容的配置,一方面为表头配置,用于定义在解析xls时,如何匹配到对应的解析模板;另一方面为规则配置,主要用于定义在确定一种解析模板之后,如何解析出来需要的字段,也即材料名称、规格型号、单位、价格和备注。

在将xls文件解析为格式化的xls文件的过程中,读取xls文件每一行,获取该行的所有文本,得到行文本,将行文本和解析模板列表中的title进行匹配,以匹配到正确的解析模板,读取的每一个行文本都需要和解析模板列表中的title进行匹配。

确定当前的解析模板之后,通过该解析模板配置的解析规则,获取每个字段的配置属性,判断应该如何取值,获取到xls文件中对应字段的值。其中,对价格字段做特殊处理,去除所有非数值字符之后,判断该数据是否为合理的价格,如果不合理,则丢弃。对名称字段也做特殊处理,名称字段的字段内容如果为空,则会沿用上一条数据记录的名称。

在得到格式化的xls文件之后,针对ocr服务不能完全准确识别图片中的内容的特点,通过将格式化的xls文件与历史记录库进行智能匹配,来弥补这部分的准确度。考虑信息价发布材料顺序基本固定,且材料间存在特征信息(名称、规格、备注等中的部分文本),只要ocr服务能识别出重要区分度文本信息,在有限范围内就能找到最优的匹配。该实施例使用“文本相似性搜索”+“全局优化”策略,使用关键信息进行数据记录与历史记录的匹配。

数据记录与历史记录匹配的具体实现流程如下:

1.在进行匹配时,获取标准表格文件和历史记录库;

2.获取标准表格文件中的第n条与第n+1条数据记录,并设置历史记录库的检索范围,其中,n不超过100时,检索范围为(1,n+100),n大于100时,检索范围为(n-100,n+100)

3.构造3层梯度关键词组合查询语句,其中,三层梯度的关键词分别为:名称+规格+备注;名称+规格;名称。分别根据第n条与第n+1条数据记录构造3层梯度关键词组合查询语句,并利用构造的关键词在历史记录库的检索范围内进行检索,在检索时,可首先以“名称+规格+备注”进行检索,检索失败时再以“名称+规格”进行检索,继续检索失败时再以“名称”进行检索,检索到的历史记录即为数据记录命中的材料信息。

4.对比第n条和第n+1条数据记录命中的材料信息,判断是否命中同一条材料,如果命中同一条材料,再根据第n条和第n+1条数据记录与命中材料的相似度,确定第n条数据记录与该材料是否关联。

5.如果第4步确定第n条数据记录和一材料关联(确定第n条数据记录匹配的历史记录),则存储关联关系,设置n=n+1,更新滑动窗口索引位置。

6.如果4步关联的库内材料,在之前的匹配中为已配对ocr材料,则根据当前匹配情况与已关联ocr材料进行相似度比对,选择最优匹配,确保历史记录库内的每一条材料,都能匹配一条数据记录。

7.重复2-6步骤,直至全部匹配完毕,将未配对结果设置为新增标记,已配对信息价,根据数据记录与历史记录的相似度来确定二者是否相同,如相同,表明该历史记录未被修改,如果不同,表明在历史记录上进行修改得到数据记录,也即修改数据记录。最终,将历史记录库更新。

实施例三

对应于上述实施例一,本发明实施例三提供了一种数据解析装置,对应技术特征的细节和相应的技术效果可参考上述实施例一的描述,该处不再赘述。图3为本发明实施例三提供的数据解析装置的框图,如图3所示,该数据解析装置包括:获取模块201、识别模块202、解析模板203和更新模块204。

获取模块201用于获取待解析表格图片;识别模块202用于将待解析表格图片识别为表格文件,得到初始表格文件;解析模板203用于根据预配置的解析模板解析初始表格文件,以得到若干条数据记录,并将数据记录写入标准表格文件;以及更新模块204将标准表格文件与历史记录库进行匹配,以确定新增数据记录或修改数据记录,并根据新增数据记录或修改数据记录更新历史记录库,得到待解析表格图片对应的数据记录库。

进一步地,解析模板203包括第一获取单元、读取单元、判断单元、解析单元和第一确定单元,其中,第一获取单元用于获取解析模板列表,其中,解析模板列表包括解析模板所解析的表格的标题;读取单元用于读取初始表格文件中一行内容得到行文本;判断单元用于判断解析模板列表中是否存在与行文本匹配的标题;若不存在,解析单元用于根据当前解析模板将行文本解析为一条数据记录,并将解析得到的数据记录写入标准表格文件;若存在,第一确定单元用于将匹配的标题对应的解析模板作为当前解析模板。

进一步地,数据记录包括若干字段,解析模板包括用于解析每个字段的解析规则,解析单元在根据当前解析模板将行文本解析为一条数据记录时,具体执行的步骤包括:根据解析模板中的解析规则从行文本中提取对应的字段内容;根据从行文本中提取到的所有字段内容构建数据记录。

进一步地,数据记录包括第一字段和第二字段,解析单元在根据当前解析模板将行文本解析为一条数据记录时,具体执行的步骤还包括:当根据第一字段对应的解析规则从行文本中提取不到字段内容时,根据相邻数据记录中的第一字段的字段内容构建数据记录,其中,相邻数据记录为根据初始表格文件中上一行内容得到的数据记录;当根据第二字段对应的解析规则从行文本中提取出第二字段的字段内容时,对提取出的第二字段的字段内容进行校验,并在校验合法时,根据从第二字段的字段内容构建数据记录。

进一步地,更新模块204包括:匹配单元、第二确定单元、第三确定单元和第四确定单元,其中,匹配单元用于将标准表格文件中的数据记录与历史记录库中的历史记录进行匹配;第二确定单元用于当数据记录在历史记录库中没有匹配到历史记录时,确定数据记录为新增数据记录;第三确定单元用于当数据记录在历史记录库中匹配到历史记录,且被匹配到的历史记录与数据记录唯一匹配时,计算数据记录与被匹配到的历史记录的第一相似度,当第一相似度不超过预设相似度阈值时,确定数据记录为对被匹配到的历史记录的修改数据记录;以及第四确定单元用于当两条或两条以上数据记录在历史记录库中匹配到同一条历史记录时,计算各条数据记录与同一条历史记录的相似度并获取最大的第二相似度,当第二相似度不超过预设相似度阈值时,确定第二相似度对应的数据记录为对同一条历史记录的修改数据记录。

进一步地,在第三确定单元和第四确定单元中,计算数据记录与历史记录的相似度的步骤包括:根据数据记录与历史记录的价格字段中数值的差值计算第一相似因子,其中,差值越小,第一相似因子越大;根据计算数据记录与历史记录的文本相似度计算第二相似因子,其中,文本相似度越高,第二相似因子越大;以及根据第一相似因子和第二相似因子计算相似度。

进一步地,匹配单元在将标准表格文件中的数据记录与历史记录库中的历史记录进行匹配时,具体执行的步骤包括:获取标准表格文件中的第n条数据记录和第n+1条数据记录,以得到第一数据记录和第二数据记录;确定数据记录库的检索范围,其中,当n大于m时,检索范围为第n-m条历史记录至第n+m条历史记录,当n不超过m时,检索范围为第1条历史记录至第n+m条历史记录;根据第一数据记录构造第一检索词,根据第二数据记录构造第二检索词;当第一检索词在检索范围内没有命中历史记录时,确定第一数据记录在历史记录库中没有匹配到历史记录;当第一检索词在检索范围内命中历史记录,且第二检索词在检索范围内没有命中历史记录或者第一检索词和第二检索词在检索范围内命中不同的历史记录时,确定第一检索词命中的历史记录为第一数据记录匹配到的历史记录;当第一检索词和第二检索词命中相同的历史记录时,计算第一数据记录与相同的历史记录的第三相似度,计算第二数据记录与相同的历史记录的第四相似度,当第三相似度大于第四相似度时,确定相同的历史记录为第一数据记录匹配到的历史记录,当第四相似度大于第三相似度时,确定第一数据记录在历史记录库中没有匹配到历史记录。

实施例四

本实施例四还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图4所示,本实施例的计算机设备01至少包括但不限于:可通过系统总线相互通信连接的存储器011、处理器012,如图4所示。需要指出的是,图4仅示出了具有组件存储器011和处理器012的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

本实施例中,存储器011(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器011可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器011也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。当然,存储器011还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器011通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例三的数据解析装置的程序代码等。此外,存储器011还可以用于暂时地存储已经输出或者将要输出的各类数据。

处理器012在一些实施例中可以是中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器012通常用于控制计算机设备01的总体操作。本实施例中,处理器012用于运行存储器011中存储的程序代码或者处理数据,例如数据解析方法等。

实施例五

本实施例五还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储数据解析装置,被处理器执行时实现实施例一的数据解析方法。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是通过本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1