CN115203309A - 网页中标数据结构化方法及装置 - Google Patents
网页中标数据结构化方法及装置 Download PDFInfo
- Publication number
- CN115203309A CN115203309A CN202211118991.4A CN202211118991A CN115203309A CN 115203309 A CN115203309 A CN 115203309A CN 202211118991 A CN202211118991 A CN 202211118991A CN 115203309 A CN115203309 A CN 115203309A
- Authority
- CN
- China
- Prior art keywords
- data
- bid
- preset
- array
- value
- 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
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000004458 analytical method Methods 0.000 claims abstract description 125
- 238000013507 mapping Methods 0.000 claims abstract description 73
- 239000011159 matrix material Substances 0.000 claims description 65
- 230000011218 segmentation Effects 0.000 claims description 28
- 238000012216 screening Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 17
- 230000001502 supplementing effect Effects 0.000 claims description 9
- 238000007405 data analysis Methods 0.000 claims description 5
- 238000005070 sampling Methods 0.000 claims description 4
- 239000013589 supplement Substances 0.000 claims description 4
- 239000000047 product Substances 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 238000003491 array Methods 0.000 description 4
- 210000001072 colon Anatomy 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000012552 review Methods 0.000 description 3
- 235000014347 soups Nutrition 0.000 description 3
- 208000025174 PANDAS Diseases 0.000 description 2
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 description 2
- 240000004718 Panda Species 0.000 description 2
- 235000016496 Panda oleosa Nutrition 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种网页中标数据结构化方法及装置,方法包括:获取网页中标数据;循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中。本发明通过解析预测模型判断采用表格解析模型或键值解析模型对获取的网页中标数据中进行解析,以提高解析效率;另外,结合结构化映射模板,进行解析,以基于较高的准确率和召回率将网页非结构化形式的中标数据转化为结构化数据,从而将最小单元结构化数据存储至关系型数据库中,实现非结构化网页的结构化,提高数据的可读性,节省人工整理成本,便于后期快速对数据进行分析和统计。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种网页中标数据结构化方法及装置。
背景技术
中标信息常用于分析、统计科学仪器行业的各种仪器,是相关部门对器械进行掌握和决策的基础,具有有非常重要的意义,其中,中标信息包括各种仪器购买情况、分布情况、供应商分布情况以及购买单位情况等。中标信息大多分布于中央、地方、科研机构以及高校等多种类型的采购网站中。由于不同网站可能存在中标数据格式不一致的情形,同一网站中的中标数据可能存在多个表格互相嵌套、同一表格存在多个表头、表格中存在合并单元格以及不存在表格等情形,以致无法统一对中标数据进行分析和统计。
目前,中标信息抽取的方式通常采用两种服务模式,第一种是采用无需标注和模型训练的基础服务,第二种是采用需要标注和模型训练的服务,两种服务均是以api格式将指定字段的值和百分比以Json形式输出。
然而,第一种服务中仅指出中标概况的字段,未对中标标的物的品牌、型号、数量以及单价等属性进行解析,以致无法准确统计标的物分布、供应商服务、标的物数量、金额等情况;第二种服务的返回结果只指定了字段值和字段值的预测百分比,没有建立各字段值之间的关系,从而缺失实体关联,不利于后期的数据统计和盘点。
发明内容
本发明提供一种网页中标数据结构化方法及装置,用以解决现有技术中不同路径下的中标数据无法统一进行分析和统计的缺陷,基于较高的准确率和召回率将网页非结构化形式的中标数据转化为结构化数据,从而便于后期快速对数据进行分析和统计。
本发明提供一种网页中标数据结构化方法,包括:获取网页中标数据;循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中。
根据本发明提供的一种网页中标数据结构化方法,基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,包括:循环读取网页中标数据中的文本信息和文本信息对应的节点位置,并基于文本信息和文本信息对应的节点位置构建第一数组;循环每个文本信息,并利用文本信息在预先建立的结构化映射模板中进行查询,并根据查询结果更新第一数组;基于预设列名,将第一数组分别转化为具有二维表格型数据结构的第二数组,预设列名包括字段名称列、预设值列和路径文本列;读取第二数组中字段名称为非0的行,组成第三数组,并根据文本所在节点位置至最近父节点的路径文本和文本最近的行与行在其父表格内的行号,对第三数组进行分组;根据分组结果,基于字段名称列包含至少两个维度的字段名称和预设值列为第一预设值,对各分组进行筛选,若得到筛选结果,则基于与对应分组的路径文本列相同且大于对应分组父表行号列内行号,对各分组进行筛选,得到二次筛选结果;若二次筛选结果预设列值为第二预设值,得到数组集合,则选择表格解析模型对相应网页中标数据进行解析,否则,选择键值解析模型对相应网页中标数据进行解析。
根据本发明提供的一种网页中标数据结构化方法,根据查询结果更新第一数组,包括:基于得到查询结果,选择文本信息中等级类型最高的字段名称添加至第一数组;否则,对第一数组中的文本信息添加第一预设值,并分别利用每行文本信息在预先建立的标的物特征表中进行相似度查询;基于得到相似度查询结果,对第一数组中的文本信息的预设列添加第二预设值,否则,对第一数组中的文本信息的预设列添加第一预设值。
根据本发明提供的一种网页中标数据结构化方法,确定选择表格解析模型对相应网页中标数据进行解析,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中,包括:基于XML路径语言,提取网页中标数据中的表格数据;循环每个表格数据,并根据XML路径语言轴解析出表格提示文本信息,表格提示文本信息对应非表格标签的文本信息,且表格提示文本信息与对应表格数据距离最近且同级;将表格提示文本信息与预先基于关系型数据库获取的标的物提示语进行相似度匹配;基于相似度匹配成功,选择对应表格数据,并结合结构化映射模板,对表格数据进行解析。
根据本发明提供的一种网页中标数据结构化方法,基于相似度匹配成功,选择对应表格数据,并结合结构化映射模板,对表格数据进行解析,包括:Sa,基于相似度匹配成功,选择对应表格数据,并基于XML路径语言,对表格数据进行解析,得到对应行数据;Sb,循环每个行数据,并基于解析提取源代码数据工具,解析得到对应各行数据每个单元格的文本信息;Sc,根据行数据和对应各行数据每个单元格的文本信息,并基于Numpy,构建第一序列化矩阵;Sd,将第一序列化矩阵各行的每个元素分别与结构化映射模板进行比较,并基于存在元素符合结构化映射模板,将对应元素所在行数据作为表头,并根据表头对相应所选表格数据进行划分,得到子表格数据;Se,基于Numpy,将子表格数据进行序列化,得到第二序列化矩阵;Sf,循环第二序列化矩阵,基于各第二序列化矩阵首行的各个元素以及预设查询规则,对结构化映射模板的字段名称进行查询,以基于查询结果,更新预设数组和第一字符串;Sg,查询更新后的预设数组中元素值符合第三预设值的索引,并删除索引对应的第二序列化矩阵中的列,判断能否得到第三序列化矩阵;Sh,基于得到第三序列化矩阵,循环第三序列化矩阵,将更新后的第一字符串作为insert字段的字段名,以及基于预设分隔符将非首行的每行数据的所有元素串联成第二字符串,并将字段名和第二字符串一一对应,得到解析结果,并将解析结果存储至关系型数据库中。
根据本发明提供的一种网页中标数据结构化方法,根据行数据和对应各行数据每个单元格的文本信息,并基于Numpy,构建第一序列化矩阵,包括:根据行数据和对应各行数据每个单元格的文本信息,构建二维数组;根据二维数组,并基于Numpy,得到第一序列化矩阵;
在构建二维数组之后,还包括:判断单元格的行属性是否大于第一预设阈值,以及判断单元格的列属性是否大于第二预设阈值;基于行属性大于第一预设阈值,或列属性大于第二预设阈值,选择对应单元格按第四预设值进行补充,以更新二维数组;在构建二维数组之后,还包括:从所有行数据中选择除最大长度以外的其他行数据,将其他行数据用空值元素补充,得到长度与最大长度相同的其他填充行数据;基于其他填充行数据和最大长度对应的行数据,更新二维数组。
根据本发明提供的一种网页中标数据结构化方法,在查询更新后的数组中元素值符合第三预设值的索引,并删除索引对应的第二序列化矩阵中的列之后,若无法得到第三序列化矩阵,则将第二序列化矩阵进行转置,并重新执行Sf、Sg和Sh;在得到解析结果之后,还包括:基于解析结果,将对应解析出标的物信息字段的值标记为第一值;否则,记为第二值;基于解析结果,将对应解析出供应商信息字段的值标记为第三值;否则,记为第四值。
根据本发明提供的一种网页中标数据结构化方法,确定选择键值解析模型对网页中标数据进行解析,并将解析结果存储至关系型数据库中,包括:基于XML路径语言,提取网页中标数据中的文本信息,得到文本列表;将文本列表转换为预设类型列表,以得到具有二维表格型数据结构的第四数组;结合结构化映射模板,对第四数组进行解析,并将解析结果存储至关系型数据库中。
根据本发明提供的一种网页中标数据结构化方法,结合结构化映射模板,对第四数组进行解析,并将解析结果存储至关系型数据库中,包括:循环第四数组,将第四数组中特定列中的每行文本值分别在结构化映射模板中的字段标准进行相似度匹配,并基于匹配成功且字段名称符合预设名称,将当前行的下一行的字段名称作为字段值与预先建立的标的物特征表进行相似度匹配;若得到匹配结果,则判断预先建立的字段标准表中是否包含预设名称,并基于包含预设名称,将字段标准表中的每个元素串联成字符串并添加至预先建立的关系型数据库中,以及将预先建立的字段值表中的各元素值串联并添加至关系型数据库中;将字段标准表和预先建立的字段值表置空,并利用预设名称更新字段标准表,以及利用预设名称对应行的下一行字段名称更新字段值表。
根据本发明提供的一种网页中标数据结构化方法,在循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型之前,还包括:收集全网中标信息;基于预设样本数量对全网中标信息进行抽样,建立初始模板;利用结巴,对抽样的全网中标信息进行分词,得到分词结果;将分词结果与初始模板中的词进行词性比较和相似度比较,并基于词性比较或相似度比较不同,将对应分词结果补充至初始模板,得到结构化映射模板。
本发明还提供一种网页中标数据结构化装置,包括:数据获取模块,获取网页中标数据;数据解析模块,循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如上述任一种网页中标数据结构化方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种网页中标数据结构化方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如上述任一种网页中标数据结构化方法的步骤。
本发明提供的网页中标数据结构化方法及装置,通过预先建立的解析预测模型判断采用表格解析模型或键值解析模型对获取的网页中标数据中进行解析,从而提高解析效率;另外,结合预先构建的结构化映射模板,进行解析,以基于较高的准确率和召回率将网页非结构化形式的中标数据转化为结构化数据,从而将最小单元结构化数据存储至关系型数据库中,实现非结构化网页的结构化,提高数据的可读性,节省人工整理成本,便于后期快速对数据进行分析和统计。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的网页中标数据结构化方法的流程示意图之一;
图2是本发明提供的网页中标数据结构化方法的流程示意图之二;
图3是本发明提供的解析预测模型确定选择表格解析模型或键值解析模型的流程示意图;
图4是本发明提供的表格解析模型对网页中标数据进行解析的流程示意图;
图5是本发明提供的键值解析模型对网页中标数据进行解析的流程示意图;
图6是本发明提供的网页中标数据结构化装置的结构示意图;
图7是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明一种网页中标数据结构化方法的流程示意图,该方法包括:
S11,获取网页中标数据;
S12,循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中。
需要说明的是,本说明书中的S1N不代表网页中标数据结构化方法的先后顺序,下面具体结合图2-图5描述本发明的网页中标数据结构化方法。
步骤S11,获取网页中标数据。
需要说明的是,获取的网页中标数据为非结构化数据,可以来源于各种采购网站,从而便于后续将其转换为结构化数据,并存储至结构化关系型数据库中,进而便于后续检索查询,关系型数据库可以为MySQL数据库等。
在一个可选实施例中,在循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型之前,还包括:构建结构化映射模板。具体而言,收集全网中标信息;基于预设样本数量对全网中标信息进行抽样,建立初始模板;利用结巴,对抽样的全网中标信息进行分词,得到分词结果;将分词结果与初始模板中的词进行词性比较和相似度比较,并基于词性比较或相似度比较不同,将对应分词结果补充至初始模板,得到结构化映射模板。
需要说明的是,收集的全网中标信息为结构化数据,可以来源于关系型数据库,比如MySQL数据库等。另外,相似度可以采用预先相似度,此处不作进一步描述。
在本实施例中,结构化映射模板包括提取结构化字段的标准(field_name)、字段名称(field_value)、表分类(table_sort)、等级类型(level_type)和搜索类型(search_type)其中,field_name包括供应商、货物名称、商品名称、标的、品牌、型号、数量、单件、总价、序号、品目、设备名称、包号、预算、编号、产品名称、成交结果、服务名称、货物服务名称、标包、地址、信用代码、金额、供应商、分项名称、标项名称、名称、采购内容、成交候选人名称、成交金额、成交内容、总价、货物、使用单位、产品类别、企业、成交价格、采购类别、成交单位、规格、标段内容、中标单位、中标金额、中标价格、包段名称、标段名称、货物类、采购设备、分包内容、采购项、采购品目、产品描述、采购物品、项目名称、申购主题、物料和中标厂商等等;table_sort包括标的物信息(info)和标的物供应商(provider)。
在一个可选实施例中,在对初始模板进行扩充之后,还可以对扩充后的模板进行审核,以判断补充至初始模板中的分词结果是否均符合预设特点,若符合,则审核通过。需要说明的是,预设特点可以根据选择的中标信息的行业进行确定,比如收集的全网中标数据为仪器仪表行业,则预设特点为仪器标的物和仪器供应商,即判断上述补充至初始模板中的分词结果是否符合仪器标的物和仪器供应商的特点。
在一个可选实施例中,在循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型之前,还包括:收集全网标的物名称;提取标的物名称的最后一个字符,并利用聚集算法,汇总形成标的物特征表。需要说明的是,在收集标的物名称时需要根据标的物类型进行相应收集,比如标的物为仪器仪表时,对应收集仪器厂商发布的仪器信息名称。
步骤S12,循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中,参考图2。
在本实施例中,参考图3,基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,包括:
首先,循环读取网页中标数据中的文本信息和文本信息对应的节点位置,并基于文本信息和文本信息对应的节点位置构建第一数组。
其次,循环每个文本信息,并利用文本信息在预先建立的结构化映射模板中进行查询,根据查询结果更新第一数组。具体而言,根据查询结果更新第一数组,包括:基于得到查询结果,选择文本信息中等级类型最高的字段名称添加至第一数组;否则,对第一数组中的文本信息添加第一预设值,并分别利用每行文本信息在预先建立的标的物特征表中进行相似度查询;基于得到相似度查询结果,对第一数组中的文本信息的预设列添加第二预设值,否则,对第一数组中的文本信息的预设列添加第一预设值。需要说明的是,第一预设值可以为0,第二预设值可以为不同于第一预设值的任一值,比如为1。
随后,基于预设列名,将第一数组分别转化为具有二维表格型数据结构(dataFrame)的第二数组。需要说明的是,预设列名包括文本名称(text_name)列、路径文本列、父表行号列、位置路径列、字段名称列和预设值列,其中:路径文本列是根据文本所在节点位置至最近父节点的路径文本(text_route_table)确定的列名,父表行号列是根据文本最近的行与该行在其父表格内的行号(text_route_tr_Location)确定的列名,位置路径列是根据文本所在位置的整个路径文本(text_route)确定的列名,字段名称列是根据文本在结构化映射模板中匹配得到的字段名称(text_field_value)确定的列名,预设值列是根据文本在标的物特征表中匹配添加的第二预设值或不匹配添加的第一预设值(is_bid_info)确定的列名。
其次,读取第二数组中字段名称为非0的行,组成第三数组,并根据文本所在节点位置至最近父节点的路径文本(text_route_table)和文本最近的行与该行在其父表格内的行号(text_route_tr_Location),对第三数组进行分组。
最后,根据分组结果,基于字段名称列包含至少两个维度的字段名称和预设值列为第一预设值,对各分组进行筛选,若得到筛选结果,则基于与对应分组的路径文本列相同且大于对应分组父表行号列内行号,对各分组进行筛选,得到二次筛选结果;若二次筛选结果预设列值为第二预设值,得到数组集合,则选择表格解析模型对相应网页中标数据进行解析,否则,选择键值解析模型对相应网页中标数据进行解析。需要补充的是,若无法得到筛选结果,则选择键值解析模型对网页中标数据进行解析。
另外,参考图4,确定选择表格解析模型对相应网页中标数据进行解析,并将解析结果存储至关系型数据库中,包括:基于XML路径语言(xpath),提取网页中标数据中的表格数据;循环每个表格数据,并根据XML路径语言(xpath)轴解析出表格提示文本信息,表格提示文本信息对应非表格标签的文本信息,且表格提示文本信息与对应表格数据距离最近且同级;将表格提示文本信息与预先基于关系型数据库获取的标的物提示语进行相似度匹配;基于相似度匹配成功,选择对应表格数据,并结合结构化映射模板,对表格数据进行解析;基于相似度匹配失败,不对对应表格数据进行解析,即不进行结构化。
需要说明的是,在基于可扩展标记语言(Extensible Markup Language,简称:XML)路径语言提取网页中标数据中的表格数据时,提取出每个网页对应的网页中标数据里面的所有表格,包括单一表格、表格套表格的情况,以表格最小化为原则,提取出所有的表格数据。另外,表格提示文本信息用于说明表格的作用。
更进一步地说,基于相似度匹配成功,选择对应表格数据,并结合结构化映射模板,对表格数据进行解析,包括:
步骤Sa,基于相似度匹配成功,选择对应表格数据,并基于XML路径语言(xpath),对表格数据进行解析,得到对应行数据tr。
步骤Sb,循环每个行数据,并基于解析提取源代码数据工具(比如BeautifulSoup),解析得到对应各行数据每个单元格td的文本信息。需要说明的是,通过采用BeautifulSoup进行解析,还能格式化td的标签,以保证td标签的正确性,弥补标签漏关闭的情况。另外,tr为一维,td为二维。
步骤Sc,根据行数据和对应各行数据每个单元格的文本信息,并基于Numpy,构建第一序列化矩阵。具体包括:根据行数据和对应各行数据每个单元格的文本信息,构建二维数组;根据二维数组,并基于Numpy,得到第一序列化矩阵。需要说明的是,NumPy(NumericalPython)是Python的一种开源的数值计算扩展,用于存储和处理大型矩阵。
在一个可选实施例中,在构建二维数组之后,还包括:判断单元格的行属性(rowspan)是否大于第一预设阈值,以及判断单元格的列属性(colspan)是否大于第二预设阈值;基于行属性大于第一预设阈值,或列属性大于第二预设阈值,选择对应单元格按第四预设值进行补充,以更新二维数组。需要说明的是,在更新二维数组时,以所选表格数据单元格最小化为原则,对rowspan大于第一预设阈值或colspan大于第二预设阈值的非最小化单元格进行补充。第一预设阈值和第二预设阈值可以为1,即表示对应单元格由多行单元格合并而成或对应单元格由多列单元格合并而成,具体几行几列可根据rowspan、colspan确定。第四预设值可以为空值。
在一个可选实施例中,由于单元格的rowspan和/或colspan可能存在录入错误,以使生成的二维数组不是有效二维数组,因此为了避免上述情况的发生,在构建二维数组之后,还包括:从所有行数据中选择除最大长度以外的其他行数据,将其他行数据用空值元素补充,得到长度与最大长度相同的其他填充行数据;基于其他填充行数据和最大长度对应的行数据,更新二维数组。
步骤Sd,将第一序列化矩阵各行的每个元素分别与结构化映射模板字段标准进行比较,并基于存在元素符合结构化映射模板中的标的物信息或中标公司信息,将对应元素所在行数据作为表头,并根据表头对相应所选表格数据进行划分,得到子表格数据。需要说明的是,若一个表格数据中存在多个表头,则将原始表格数据拆分成多个子表格数据,拆分标准以原始表格数据的表头为第一行、下一表头的前一行作为结束行。
步骤Se,基于Numpy,将子表格数据进行序列化,得到第二序列化矩阵。
在一个可选实施例中,将第一序列化矩阵各行的每个元素分别与结构化映射模板字段标准进行比较,若不存在元素符合结构化映射模板中的标的物信息或中标公司信息,表明不存在符合中标信息的表头,则得到非中标表格数据;基于Numpy,将非中标表格数据进行序列化得到第四序列化矩阵。需要说明的是,在得到第四序列化矩阵后,对第四序列化矩阵执行的操作可参照下文步骤Sf中对第二序列化矩阵的操作,此处不作赘述。
步骤Sf,循环第二序列化矩阵,基于各第二序列化矩阵首行的各个元素以及预设查询规则,对结构化映射模板的字段名称进行查询,以基于查询结果,更新预设数组和第一字符串。在本实施例中,在循环第二序列化矩阵之前,设置数组和第一字符串,再对每个第二序列化矩阵进行循环。
查询包括:针对单个第二序列化矩阵,将其第一行的每个元素分别带入结构化映射模板的字段标准(field_name)进行查询。预设查询原则是根据结构化映射模板的等级类型(Level-type)级别从高到低只取1个记录值;若无法查询到,则向预设数组中加入一个值为0的元素,第一字符串不赋值,以保证每个字段的唯一性;若能够查询到,则将第二序列化矩阵中能够进行匹配的匹配词与数组再次进行匹配。具体而言:
若预设数组中不存在与上述匹配词对应的字段名称(field_value),则向预设数组中加入该field_value对应值的元素,同时将field_value对应值以逗号形式存入第一字符串。
若预设数组中存在与上述匹配词对应的字段名称(field_value),则提取预设数组对应列中字段名称符合预设字段名的所有名称,并将提取的对应列的所有名称至预先建立的标的物特征表中进行匹配;将匹配结果分为当前列标的物计数和在先列标的物计数,若当前列标的物计数大于在先列标的物计数,则将预设数组在先列中等于当前列字段名称的元素替换为“0”,同时删除第一字符串中的对应在先列字段名称,以及将当前列字段名称添加至预设数组和第一字符串中。
若预设数组中存在与上述匹配词对应的字段名称(field_value),但不存在符合预设字段名的字段名称,则将预设数组中的所有字段名称至结构化映射模板中进行查询,并将查询得到的对应等级类型按列分为当前列等级类型和在先列等级类型,若当前列等级类型大于在先列等级类型,则将在先列中等于当前列字段名称的元素替换为“0”,同时删除第一字符串中的对应在先列字段名称,以及将当前列字段名称添加至预设数组和第一字符串中。
步骤Sg,查询更新后的预设数组中元素值符合第三预设值的索引,并删除索引对应的第二序列化矩阵中的列,判断能否得到第三序列化矩阵。在本实施例中,第三预设值可以设置为0。
在一个可选实施例中,由于表格数据中存在表格值含有运费、合计等非标的物信息,因此,在得到第三序列化矩阵后,还包括:对第三序列化矩阵的每行信息进行循环,将非表头的列名值为goods_name的信息用like形式在标的物特征表里面进行查询,如果能够查询匹配出结果,则表面包含标的物信息,并标识该条信息是标的物信息;将非表头的列名值为goods_provider的信息通过词性判断,如果词性判断为公司、机构等词性,则认为是标的物供应商,并标识该条信息是标的物供应商信息。
在一个可选实施例中,在查询更新后的数组中元素值符合第三预设值的索引,并删除索引对应的第二序列化矩阵中的列之后,若无法得到第三序列化矩阵,则说明对应表格数据可能是以列头作为表头,此时需要将第二序列化矩阵进行转置,并重新执行步骤Sf、Sg和Sh。
步骤Sh,基于得到第三序列化矩阵,循环第三序列化矩阵,将更新后的第一字符串作为insert字段的字段名,以及基于预设分隔符将非首行的每行数据的所有元素串联成第二字符串,并将字段名和第二字符串一一对应,得到解析结果,并将解析结果存储至关系型数据库中。
在得到解析结果之后,还包括:基于解析结果,将对应解析出标的物信息字段的值标记为第一值;否则,记为第二值;基于解析结果,将对应解析出供应商信息字段的值标记为第三值;否则,记为第四值。需要说明的是,第一值和第三值可以设置为同一数值,比如可以为1,用于表明解析结果中存在标的物信息或供应商信息;第二值和第四值可以为同一数值,比如可以为0,用于表明解析结果中不存在对应标的物信息或供应商信息;或者,第一值、第二值、第三值和第四值均不相同,用以分别表示解析结果中是否存在标的物信息或供应商信息。
另外,在将解析结果存储至关系型数据库时,需要将解析结果的每个字段名和字段值一一对应插入关系型数据库中。另外关系型数据库可以预先建立好的MySQL数据库。
在一个可选实施例中,参考图5,确定选择键值解析模型对网页中标数据进行解析,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中,包括:基于XML路径语言,提取网页中标数据中的文本信息,得到文本列表;将文本列表转换为预设类型列表,以得到具有二维表格型数据结构的第四数组;结合结构化映射模板,对第四数组进行解析。
在本实施例中,得到文本列表,包括:循环读取上述解析预测模型确定的需要使用键值解析模型解析的网页中标数据;基于XML路径语言,读取网页中标数据中排除html所有标签的文本信息,形成文本列表。另外,在Python中引入数据分析支持库Pandas,以将文本列表转换成pandas的预设类型(series)列表,并转化为具有二维表格型数据结构(dataFrame)的第四数组。
在一个可选实施例中,在得到具有二维表格型数据结构的第四数组之后,还包括:基于dataFrame的loc方法,对第四数组进行筛选,以删除干扰词行。需要说明的是,干扰词行包括空值所在行和含义日期、地址、合同编号、联系等词所在的行。需要说明的是,第四数组包括字符串列和文本列,其中,字符串列用于存储每行文本未进行符号拆分前的字符串(origal_text),文本列用于存储每行文本进行符号拆分后形成的新的文本(new_text)。需要说明的是,符号拆分可以利用冒号等预设符号进行拆分。
在一个可选实施例中,在得到具有二维表格型数据结构的第四数组之后,还包括:基于第四数据中每行文本含有的符号,对各行文本分别进行拆分;将拆分后的每个文本按原文本的位置顺序扩展至文本列中。需要说明的是,符号可以为冒号、顿号、分号和逗号等。
另外,结合结构化映射模板,对第四数组进行解析,并将解析结果存储至所述关系型数据库中,包括:循环第四数组,将第四数组特定列中每行文本分别在结构化映射模板中的字段标准进行相似度匹配,并基于匹配成功且字段名称符合预设名称,将当前行的下一行的字段名称作为字段值与预先建立的标的物特征表进行相似度匹配;若得到匹配结果,则判断预先建立的字段标准表中是否包含预设名称,并基于包含预设名称,将字段标准表中的每个元素串联成字符串并添加至预先建立的关系型数据库中,以及将预先建立的字段值表中的各元素值串联并添加至关系型数据库中;将字段标准表和预先建立的字段值表置空,并利用预设名称更新字段标准表,以及利用预设名称对应行的下一行字段名称更新字段值表。
需要说明的是,特定列为第四数组的文本列;预设名称包括标的物名称(goodsname)、标的物类型(goods_model)、标的物数量(goods_num)、标的物供应商(goods_provider)和标的物价格(goods_price);另外,在将字段标准表中的每个元素串联成字符串时,可以利用逗号等预先设置的符号将元素串联起来。
当预设名称为goods_model时,更新字段标准表和更新字段值表时,为了确保字段值的正确性,将当前行的下一行的字段名称作为字段值与预设型号规则进行匹配,如果字段值符合预设型号规则,则利用goods_model更新字段标准表,以及利用goods_model对应行的下一行字段名称更新字段值表。应当注意,预设型号规则为包含汉字、字母、数字中的一种,且首字母非数字并以及非时间串。
当预设名称为goods_num时,更新字段标准表和更新字段值表时,为了确保字段值的正确性,将当前行的下一行的字段名称作为字段值与预设数量规则进行比较,如果字段值符合预设数量规则,则利用goods_num更新字段标准表,以及利用goods_num对应行的下一行字段名称更新字段值表。应当注意,预设数量规则为数字或者汉字数字。
当预设名称为goods_ provider时,更新字段标准表和更新字段值表时,为确保字段值的准确性,基于结巴分词和paddle深度学习框架结合,对当前行的下一行的字段名称作为的字段值进行词性检测,若检测的词性符合预设词性,则利用goods_ provider更新字段标准表,以及利用goods_ provider对应行的下一行字段名称更新字段值表。需要说明的是,预设词性包括机构、团体和公司。
当预设名称为goods_price时,更新字段标准表和更新字段值表时,为确保字段值的准确性,将当前行的下一行的字段名称作为字段值与预设单价规则进行比较,如果字段值符合预设单价规则,则利用goods_price更新字段标准表,以及利用goods_price对应行的下一行字段名称更新字段值表。应当注意,预设单价规则为含有逗号的财务数字或者普通数字或者含有数字+单位(人民币、美元、欧元)。
在一个可选实施例中,在得到匹配结果,并判断预先建立的字段标准表中是否包含预设名称时,还包括:基于匹配成功,且字段标准表中不包含预设名称,利用结巴和paddle对第四数组对应的网页中标数据的标题进行分词,并将分词结果存储为具有二维表格型数据结构的第五数组,第五数组包括分词单词(words_text)列和分词词性(words_nature)列;筛选分词词性列中含有符合预设其他专有名词词性的词,并对其临近的形容词和主谓宾词进行扩展,并利用扩展结果再次更新字段值表和字段标准表;将再次更新后的字段标准表中的各元素串联成字符串添加至关系型数据库中,以及将再次更新后的字段值表中的各元素值串联并添加至关系型数据库中。
需要说明的是,在上述对其临近的形容词和主谓宾词进行扩展时,扩展词中不包括前置分词有“团体机构/单位的词性”、“省份城市词性”、“采购、购买”等词。另外,将再次更新后的字段标准表中的各元素串联成字符串时采用都好串联,将再次更新后的字段值表中的各元素值串联时,将每个元素值的起始位置添加单引号并利用逗号串联。
在一个可选实施例中,若根据上述方式还未得到字符串添加至关系型数据库,则结合预设分词词性模板,对第四数组进行提取,得到标的物名称,并在字段标准表中扩展字段名称goods_name,在字段值表中扩展对应标的物名称的值;将扩展后的字段标准表中的各元素用逗号串联成字符串并添加至关系型数据库中,将扩展后的字段值表中每个元素起始位置添加单引号,并利用逗号串联,以添加至关系型数据库中。需要说明的是,预设分词词性模板包括:[机构/单位]+[地区]+[采购]某某[项目][的][中标/成交][结果/公告]、[机构/单位]+[地区]+关于 某某[项目][的]采购[中标/中标][结果/公告]。应当注意,预设分词词性模板的具体内容可根据词性对应选择上述中括号内的内容。
综上所述,本发明实施例通过预先建立的解析预测模型判断采用表格解析模型或键值解析模型对获取的网页中标数据中进行解析,从而提高解析效率;另外,结合预先构建的结构化映射模板,进行解析,以基于较高的准确率和召回率将网页非结构化形式的中标数据转化为结构化数据,从而将最小单元结构化数据存储至关系型数据库中,实现非结构化网页的结构化,提高数据的可读性,节省人工整理成本,便于后期快速对数据进行分析和统计。
下面对本发明提供的网页中标数据结构化装置进行描述,下文描述的网页中标数据结构化装置与上文描述的网页中标数据结构化方法可相互对应参照。
图6示出了一种网页中标数据结构化装置的结构示意图,该装置,包括:
数据获取模块61,获取网页中标数据;
数据解析模块62,循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中。
在本实施例中,该装置,还包括:模板构建模块,构建结构化映射模板。具体而言,模板构建模块包括:信息收集单元,收集全网中标信息;模板构建单元,基于预设样本数量对全网中标信息进行抽样,建立初始模板;分词单元,利用结巴,对抽样的全网中标信息进行分词,得到分词结果;模板扩充单元,将分词结果与初始模板中的词进行词性比较和相似度比较,并基于词性比较或相似度比较不同,将对应分词结果补充至初始模板,得到结构化映射模板。
在一个可选实施例中,模板构建模块,还包括审核单元,对扩充后的模板进行审核,以判断补充至初始模板中的分词结果是否均符合预设特点,若符合,则审核通过。
在一个可选实施例中,该装置还包括:名称收集模块,收集全网标的物名称;数据汇总模块,提取标的物名称的最后一个字符,并利用聚集算法,汇总形成标的物特征表。需要说明的是,在收集标的物名称时需要根据标的物类型进行相应收集,比如标的物为仪器仪表时,对应收集仪器厂商发布的仪器信息名称。
数据解析模块62,包括:第一组构建单元,循环读取网页中标数据中的文本信息和文本信息对应的节点位置,并基于文本信息和文本信息对应的节点位置构建第一数组;第一数组更新单元,循环每个文本信息,并利用文本信息在预先建立的结构化映射模板中进行查询,根据查询结果更新第一数组;数组转化单元,基于预设列名,将第一数组分别转化为具有二维表格型数据结构(dataFrame)的第二数组;分组单元,读取第二数组中字段名称为非0的行,组成第三数组,并根据文本所在节点位置至最近父节点的路径文本(text_route_table)和文本最近的行与该行在其父表格内的行号(text_route_tr_Location),对第三数组进行分组;模型选择单元,根据分组结果,基于字段名称列包含至少两个维度的字段名称和预设值列为第一预设值,对各分组进行筛选,若得到筛选结果,则基于与对应分组的路径文本列相同且大于对应分组父表行号列内行号,对各分组进行筛选,得到二次筛选结果;若二次筛选结果预设列值为第二预设值,得到数组集合,则选择表格解析模型对相应网页中标数据进行解析,否则,选择键值解析模型对相应网页中标数据进行解析。
更进一步的说,第一数组更新单元,包括:第一更新子单元,基于得到查询结果,选择文本信息中等级类型最高的字段名称添加至第一数组;否则,对第一数组中的文本信息添加第一预设值,并分别利用每行文本信息在预先建立的标的物特征表中进行相似度查询;基于得到相似度查询结果,对第一数组中的文本信息的预设列添加第二预设值,否则,对第一数组中的文本信息的预设列添加第一预设值。
在一个可选实施例中,数据解析模块62,还包括:数据提权单元,基于XML路径语言,提取网页中标数据中的表格数据;文本解析单元,循环每个表格数据,并根据XML路径语言轴解析出表格提示文本信息,表格提示文本信息对应非表格标签的文本信息,且表格提示文本信息与对应表格数据距离最近且同级;相似度匹配单元,将表格提示文本信息与预先基于关系型数据库获取的标的物提示语进行相似度匹配;执行单元,基于相似度匹配成功,选择对应表格数据,并结合预先构建的结构化映射模板,对表格数据进行解析,基于相似度匹配失败,不对对应表格数据进行解析,即不进行结构化。
执行单元,包括:第一解析子单元,基于相似度匹配成功,选择对应表格数据,并基于XML路径语言(xpath),对表格数据进行解析,得到对应行数据tr;第二解析子单元,循环每个行数据,并基于解析提取源代码数据工具(比如BeautifulSoup),解析得到对应各行数据每个单元格td的文本信息;第一序列化子单元,根据行数据和对应各行数据每个单元格的文本信息,并基于Numpy,构建第一序列化矩阵;表格划分子单元,将第一序列化矩阵各行的每个元素分别与结构化映射模板字段标准进行比较,并基于存在元素符合结构化映射模板中的标的物信息或中标公司信息,将对应元素所在行数据作为表头,并根据表头对相应所选表格数据进行划分,得到子表格数据;第二序列化子单元,基于Numpy,将子表格数据进行序列化,得到第二序列化矩阵;第二更新子单元,循环第二序列化矩阵,基于各第二序列化矩阵首行的各个元素以及预设查询规则,对结构化映射模板的字段名称进行查询,以基于查询结果,更新预设数组和第一字符串;第一判断子单元,查询更新后的预设数组中元素值符合第三预设值的索引,并删除索引对应的第二序列化矩阵中的列,判断能否得到第三序列化矩阵;解析结果获取单元,基于得到第三序列化矩阵,循环第三序列化矩阵,将更新后的第一字符串作为insert字段的字段名,以及基于预设分隔符将非首行的每行数据的所有元素串联成第二字符串,并将字段名和第二字符串一一对应,得到解析结果,并将解析结果存储至关系型数据库中。
更进一步地说,第一序列化子单元,包括:数组构建孙单元,根据行数据和对应各行数据每个单元格的文本信息,构建二维数组;第一序列化孙单元,根据二维数组,并基于Numpy,得到第一序列化矩阵。
在一个可选实施例中,执行单元,还包括:属性判断子单元,在构建二维数组之后,判断单元格的行属性(rowspan)是否大于第一预设阈值,以及判断单元格的列属性(colspan)是否大于第二预设阈值;数组更新子单元,基于行属性大于第一预设阈值,或列属性大于第二预设阈值,选择对应单元格按第四预设值进行补充,以更新二维数组。
在一个可选实施例中,执行单元,还包括:元素补充子单元,在构建二维数组之后,从所有行数据中选择除最大长度以外的其他行数据,将其他行数据用空值元素补充,得到长度与最大长度相同的其他填充行数据;数组更新子单元,基于其他填充行数据和最大长度对应的行数据,更新二维数组。
在本实施例中,第二更新子单元,包括:查询孙单元,循环第二序列化矩阵,基于各第二序列化矩阵首行的各个元素以及预设查询规则,对结构化映射模板的字段名称进行查询;第一更新孙单元,基于查询结果,更新预先设置的数组和第一字符串。
具体而言,查询孙单元,包括:查询曾孙单元,针对单个第二序列化矩阵,将其第一行的每个元素分别带入结构化映射模板的field_name进行查询,预设查询原则是根据结构化映射模板的等级类型(Level-type)级别从高到低只取1个记录值;匹配曾孙单元,若无法查询到,则向预设数组中加入一个值为0的元素,第一字符串不赋值,以保证每个字段的唯一性;若能够查询到,则将第二序列化矩阵中能够进行匹配的匹配词与数组再次进行匹配。具体而言,若能够查询到,则:
若预设数组中不存在与上述匹配词对应的字段名称(field_value),则向预设数组中加入该field_value对应值的元素,同时将field_value对应值以逗号形式存入第一字符串。
若预设数组中存在与上述匹配词对应的字段名称(field_value),则提取预设数组对应列中字段名称符合预设字段名的所有名称,并将提取的对应列的所有名称至预先建立的标的物特征表中进行匹配;将匹配结果分为当前列标的物计数和在先列标的物计数,若当前列标的物计数大于在先列标的物计数,则将预设数组在先列中等于当前列字段名称的元素替换为“0”,同时删除第一字符串中的对应在先列字段名称,以及将当前列字段名称添加至预设数组和第一字符串中。
若预设数组中存在与上述匹配词对应的字段名称(field_value),但不存在符合预设字段名的字段名称,则将预设数组中的所有字段名称至结构化映射模板中进行查询,并将查询得到的对应等级类型按列分为当前列等级类型和在先列等级类型,若当前列等级类型大于在先列等级类型,则将在先列中等于当前列字段名称的元素替换为“0”,同时删除第一字符串中的对应在先列字段名称,以及将当前列字段名称添加至预设数组和第一字符串中。
另外,在一个可选实施例中,由于表格数据中存在表格值含有运费、合计等非标的物信息,因此,执行单元,还包括:查询子单元,在得到第三序列化矩阵后,对第三序列化矩阵的每行信息进行循环,将非表头的列名值为goods_name的信息用like形式在标的物特征表里面进行查询,如果能够查询匹配出结果,则表面包含标的物信息,并标识该条信息是标的物信息;词性判断子单元,将非表头的列名值为goods_provider的信息通过词性判断,如果词性判断为公司、机构等词性,则认为是标的物供应商,并标识该条信息是标的物供应商信息。
在一个可选实施例中,执行单元还包括:转置子单元,在查询更新后的数组中元素值符合第三预设值的索引,并删除索引对应的第二序列化矩阵中的列之后,若无法得到第三序列化矩阵,则说明对应表格数据可能是以列头作为表头,此时需要将第二序列化矩阵进行转置,并重新执行Sf、Sg和Sh。
在一个可选实施例中,执行单元还包括:第一标记子单元,在得到解析结果之后,基于解析结果,将对应解析出标的物信息字段的值标记为第一值;否则,记为第二值;第二标记子单元,基于解析结果,将对应解析出供应商信息字段的值标记为第三值;否则,记为第四值。
在一个可选实施例中,数据解析模块62,包括:列表获取单元,基于XML路径语言,提取网页中标数据中的文本信息,得到文本列表;数组获取单元,将文本列表转换为预设类型列表,以得到具有二维表格型数据结构的第四数组;解析单元,结合结构化映射模板,对第四数组进行解析。
更进一步地说,列表获取单元,包括:数据读取子单元,循环读取上述解析预测模型确定的需要使用键值解析模型解析的网页中标数据;文本列表获取子单元,基于XML路径语言,读取网页中标数据中排除html所有标签的文本信息,形成文本列表。
数据解析模块62,还包括:数据筛选单元,基于dataFrame的loc方法,对第四数组进行筛选,以删除干扰词行。需要说明的是,干扰词行包括空值所在行和含义日期、地址、合同编号、联系等词所在的行。
在本实施例中,第四数组包括字符串列和文本列,其中,字符串列用于存储每行文本未进行符号拆分前的字符串(origal_text),文本列用于存储每行文本进行符号拆分后形成的新的文本(new_text)。需要说明的是,符号拆分可以利用冒号等预设符号进行拆分。
数据解析模块62,还包括:拆分单元,基于第四数据中每行文本含有的符号,对各行文本分别进行拆分;扩展单元,将拆分后的每个文本按原文本的位置顺序扩展至文本列中。需要说明的是,符号可以为冒号、顿号、分号和逗号等。
另外,解析单元,包括:第一匹配子单元,循环第四数组,将第四数组特定列中每行文本分别在结构化映射模板中的字段标准进行相似度匹配;第二匹配子单元,基于匹配成功且字段名称符合预设名称,将当前行的下一行的字段名称作为字段值与预先建立的标的物特征表进行相似度匹配;存储子单元,基于得到匹配结果,则判断预先建立的字段标准表中是否包含预设名称,并基于包含预设名称,将字段标准表中的每个元素串联成字符串并添加至预先建立的关系型数据库中,以及将预先建立的字段值表中的各元素值串联并添加至关系型数据库中;第三更新子单元,将字段标准表和预先建立的字段值表置空,并利用预设名称更新字段标准表,以及利用预设名称对应行的下一行字段名称更新字段值表。
需要说明的是,特定列为第四数组的文本列;预设名称包括标的物名称(goodsname)、标的物类型(goods_model)、标的物数量(goods_num)、标的物供应商(goods_provider)和标的物价格(goods_price);另外,在将字段标准表中的每个元素串联成字符串时,可以利用逗号等预先设置的符号将元素串联起来。
当预设名称为goods_model时,第三更新子单元,包括:匹配孙单元,将当前行的下一行的字段名称作为字段值与预设型号规则进行匹配;第二更新孙单元,基于字段值符合预设型号规则,则利用goods_model更新字段标准表,以及利用goods_model对应行的下一行字段名称更新字段值表。
当预设名称为goods_num时,第三更新子单元,包括:比较孙单元,将当前行的下一行的字段名称作为字段值与预设数量规则进行比较;第二更新孙单元,基于字段值符合预设数量规则,则利用goods_num更新字段标准表,以及利用goods_num对应行的下一行字段名称更新字段值表。
当预设名称为goods_ provider时,第三更新子单元,包括:词性检测孙单元,基于结巴分词和paddle深度学习框架结合,对当前行的下一行的字段名称作为的字段值进行词性检测;第二更新孙单元,基于检测的词性符合预设词性,则利用goods_ provider更新字段标准表,以及利用goods_ provider对应行的下一行字段名称更新字段值表。
当预设名称为goods_price时,第三更新子单元,包括:比较孙单元,将当前行的下一行的字段名称作为字段值与预设单价规则进行比较;第二更新孙单元,基于字段值符合预设单价规则,则利用goods_price更新字段标准表,以及利用goods_price对应行的下一行字段名称更新字段值表。
在一个可选实施例中,解析单元,还包括:分词子单元,基于匹配成功,且字段标准表中不包含预设名称,利用结巴和paddle对第四数组对应的网页中标数据的标题进行分词,并将分词结果存储为具有二维表格型数据结构的第五数组,第五数组包括分词单词(words_text)列和分词词性(words_nature)列;词性扩展子单元,筛选分词词性列中含有符合预设其他专有名词词性的词,并对其临近的形容词和主谓宾词进行扩展,并利用扩展结果再次更新字段值表和字段标准表;存储子单元,将再次更新后的字段标准表中的各元素串联成字符串添加至关系型数据库中,以及将再次更新后的字段值表中的各元素值串联并添加至关系型数据库中。
在一个可选实施例中,解析单元,还包括:提取子单元,结合预设分词词性模板,对第四数组进行提取,得到标的物名称;字段扩展子单元,在字段标准表中扩展字段名称goods_name,在字段值表中扩展对应标的物名称的值;存储子单元,将扩展后的字段标准表中的各元素用逗号串联成字符串并添加至关系型数据库中,将扩展后的字段值表中每个元素起始位置添加单引号,并利用逗号串联,以添加至关系型数据库中。
综上所述,本发明实施例数据解析模块基于预先建立的解析预测模型判断采用表格解析模型或键值解析模型对获取的网页中标数据中进行解析,从而提高解析效率;另外,结合预先构建的结构化映射模板,进行解析,以基于较高的准确率和召回率将网页非结构化形式的中标数据转化为结构化数据,从而将最小单元结构化数据存储至关系型数据库中,实现非结构化网页的结构化,提高数据的可读性,节省人工整理成本,便于后期快速对数据进行分析和统计。
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)71、通信接口(Communications Interface)72、存储器(memory)73和通信总线74,其中,处理器71,通信接口72,存储器73通过通信总线74完成相互间的通信。处理器71可以调用存储器73中的逻辑指令,以执行网页中标数据结构化方法,该方法包括:获取网页中标数据;循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中。
此外,上述的存储器73中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的网页中标数据结构化方法,该方法包括:获取网页中标数据;循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的网页中标数据结构化方法,该方法包括:获取网页中标数据;循环读取网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对网页中标数据进行解析,并将解析结果存储至关系型数据库中。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (13)
1.一种网页中标数据结构化方法,其特征在于,包括:
获取网页中标数据;
循环读取所述网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对所述网页中标数据进行解析,并将解析结果存储至关系型数据库中。
2.根据权利要求1所述的网页中标数据结构化方法,其特征在于,基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,包括:
循环读取所述网页中标数据中的文本信息和所述文本信息对应的节点位置,并基于所述文本信息和所述文本信息对应的节点位置构建第一数组;
循环每个所述文本信息,并利用所述文本信息在预先建立的结构化映射模板中进行查询,并根据查询结果更新所述第一数组;
基于预设列名,将所述第一数组分别转化为具有二维表格型数据结构的第二数组,所述预设列名包括字段名称列、预设值列和路径文本列;
读取所述第二数组中字段名称为非0的行,组成第三数组,并根据文本所在节点位置至最近父节点的路径文本和所述文本最近的行与所述行在其父表格内的行号,对所述第三数组进行分组;
根据分组结果,基于字段名称列包含至少两个维度的字段名称和预设值列为第一预设值,对各分组进行筛选,若得到筛选结果,则基于与对应分组的路径文本列相同且大于所述对应分组父表行号列内行号,对各分组进行筛选,得到二次筛选结果;
若所述二次筛选结果预设列值为第二预设值,得到数组集合,则选择表格解析模型对相应网页中标数据进行解析,否则,选择键值解析模型对相应网页中标数据进行解析。
3.根据权利要求2所述的网页中标数据结构化方法,其特征在于,所述根据查询结果更新所述第一数组,包括:
基于得到查询结果,选择所述文本信息中等级类型最高的字段名称添加至所述第一数组;否则,对所述第一数组中的文本信息添加第一预设值,并分别利用每行文本信息在预先建立的标的物特征表中进行相似度查询;
基于得到相似度查询结果,对所述第一数组中的文本信息的预设列添加第二预设值,否则,对所述第一数组中的文本信息的预设列添加所述第一预设值。
4.根据权利要求1所述的网页中标数据结构化方法,其特征在于,确定选择所述表格解析模型对相应网页中标数据进行解析,以对所述网页中标数据进行解析,并将解析结果存储至关系型数据库中,包括:
基于XML路径语言,提取所述网页中标数据中的表格数据;
循环每个表格数据,并根据XML路径语言轴解析出表格提示文本信息,所述表格提示文本信息对应非表格标签的文本信息,且所述表格提示文本信息与对应表格数据距离最近且同级;
将所述表格提示文本信息与预先基于关系型数据库获取的标的物提示语进行相似度匹配;
基于相似度匹配成功,选择对应表格数据,并结合所述结构化映射模板,对所述表格数据进行解析。
5.根据权利要求4所述的网页中标数据结构化方法,其特征在于,所述基于相似度匹配成功,选择对应表格数据,并结合所述结构化映射模板,对所述表格数据进行解析,包括:
Sa,基于相似度匹配成功,选择对应表格数据,并基于XML路径语言,对所述表格数据进行解析,得到对应行数据;
Sb,循环每个行数据,并基于解析提取源代码数据工具,解析得到对应各所述行数据每个单元格的文本信息;
Sc,根据所述行数据和对应各所述行数据每个单元格的文本信息,并基于Numpy,构建第一序列化矩阵;
Sd,将所述第一序列化矩阵各行的每个元素分别与所述结构化映射模板进行比较,并基于存在元素符合所述结构化映射模板,将对应元素所在行数据作为表头,并根据所述表头对相应所选表格数据进行划分,得到子表格数据;
Se,基于所述Numpy,将所述子表格数据进行序列化,得到第二序列化矩阵;
Sf,循环所述第二序列化矩阵,基于各所述第二序列化矩阵首行的各个元素以及预设查询规则,对所述结构化映射模板的字段名称进行查询,以基于查询结果,更新预设数组和第一字符串;
Sg,查询更新后的预设数组中元素值符合第三预设值的索引,并删除所述索引对应的第二序列化矩阵中的列,判断能否得到第三序列化矩阵;
Sh,基于得到所述第三序列化矩阵,循环所述第三序列化矩阵,将更新后的第一字符串作为insert字段的字段名,以及基于预设分隔符将非首行的每行数据的所有元素串联成第二字符串,并将所述字段名和所述第二字符串一一对应,得到解析结果,并将解析结果存储至关系型数据库中。
6.根据权利要求5所述的网页中标数据结构化方法,其特征在于,所述根据所述行数据和对应各所述行数据每个单元格的文本信息,并基于Numpy,构建第一序列化矩阵,包括:
根据所述行数据和对应各所述行数据每个单元格的文本信息,构建二维数组;
根据所述二维数组,并基于Numpy,得到第一序列化矩阵;
在构建所述二维数组之后,还包括:
判断所述单元格的行属性是否大于第一预设阈值,以及判断所述单元格的列属性是否大于第二预设阈值;
基于所述行属性大于所述第一预设阈值,或所述列属性大于所述第二预设阈值,选择对应单元格按第四预设值进行补充,以更新所述二维数组;
在构建所述二维数组之后,还包括:
从所有所述行数据中选择除最大长度以外的其他行数据,将所述其他行数据用空值元素补充,得到长度与所述最大长度相同的其他填充行数据;
基于所述其他填充行数据和所述最大长度对应的行数据,更新所述二维数组。
7.根据权利要求5所述的网页中标数据结构化方法,其特征在于,在查询更新后的数组中元素值符合第三预设值的索引,并删除所述索引对应的第二序列化矩阵中的列之后,若无法得到所述第三序列化矩阵,则将所述第二序列化矩阵进行转置,并重新执行Sf、Sg和Sh;
在得到所述解析结果之后,还包括:
基于所述解析结果,将对应解析出标的物信息字段的值标记为第一值;否则,记为第二值;
基于所述解析结果,将对应解析出供应商信息字段的值标记为第三值;否则,记为第四值。
8.根据权利要求1所述的网页中标数据结构化方法,其特征在于,确定选择所述键值解析模型对所述网页中标数据进行解析,并将解析结果存储至所述关系型数据库中,包括:
基于XML路径语言,提取所述网页中标数据中的文本信息,得到文本列表;
将所述文本列表转换为预设类型列表,以得到具有二维表格型数据结构的第四数组;
结合所述结构化映射模板,对所述第四数组进行解析,并将解析结果存储至所述关系型数据库中。
9.根据权利要求8所述的网页中标数据结构化方法,其特征在于,所述结合所述结构化映射模板,对所述第四数组进行解析,并将解析结果存储至所述关系型数据库中,包括:
循环所述第四数组,将所述第四数组中特定列中的每行文本值分别在所述结构化映射模板中的字段标准进行相似度匹配,并基于匹配成功且字段名称符合预设名称,将当前行的下一行的字段名称作为字段值与预先建立的标的物特征表进行相似度匹配;
若得到匹配结果,则判断预先建立的字段标准表中是否包含所述预设名称,并基于包含所述预设名称,将所述字段标准表中的每个元素串联成字符串并添加至预先建立的关系型数据库中,以及将预先建立的字段值表中的各元素值串联并添加至所述关系型数据库中;
将所述字段标准表和预先建立的字段值表置空,并利用所述预设名称更新所述字段标准表,以及利用所述预设名称对应行的下一行字段名称更新所述字段值表。
10.根据权利要求1所述的网页中标数据结构化方法,其特征在于,在所述循环读取所述网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型之前,还包括:
收集全网中标信息;
基于预设样本数量对所述全网中标信息进行抽样,建立初始模板;
利用结巴,对所述抽样的全网中标信息进行分词,得到分词结果;
将所述分词结果与所述初始模板中的词进行词性比较和相似度比较,并基于词性比较或相似度比较不同,将对应分词结果补充至所述初始模板,得到结构化映射模板。
11.一种网页中标数据结构化装置,其特征在于,包括:
数据获取模块,获取网页中标数据;
数据解析模块,循环读取所述网页中标数据,并基于预先建立的解析预测模型和结构化映射模板,确定选择表格解析模型或键值解析模型,以对所述网页中标数据进行解析,并将解析结果存储至关系型数据库中。
12.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至9任一项所述网页中标数据结构化方法的步骤。
13.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9任一项所述网页中标数据结构化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211118991.4A CN115203309B (zh) | 2022-09-15 | 2022-09-15 | 网页中标数据结构化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211118991.4A CN115203309B (zh) | 2022-09-15 | 2022-09-15 | 网页中标数据结构化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115203309A true CN115203309A (zh) | 2022-10-18 |
CN115203309B CN115203309B (zh) | 2022-11-29 |
Family
ID=83572265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211118991.4A Active CN115203309B (zh) | 2022-09-15 | 2022-09-15 | 网页中标数据结构化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115203309B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115860697A (zh) * | 2023-02-18 | 2023-03-28 | 南通九维软件科技有限公司 | 一种基于智能识别的自动化数据管理系统 |
CN116383290A (zh) * | 2023-03-22 | 2023-07-04 | 中国华能集团有限公司北京招标分公司 | 一种数据泛化解析方法 |
CN116628128A (zh) * | 2023-07-13 | 2023-08-22 | 湖南九立供应链有限公司 | 一种供应链数据标准化方法、装置、设备及其存储介质 |
CN116955366A (zh) * | 2023-09-21 | 2023-10-27 | 宝略科技(浙江)有限公司 | 一种数据导入处理方法、系统、装置及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108427721A (zh) * | 2018-02-08 | 2018-08-21 | 湖南慧集网络科技有限责任公司 | 一种基于数据库的招标信息的标准化方法及系统 |
CN109408825A (zh) * | 2018-11-06 | 2019-03-01 | 杭州费尔斯通科技有限公司 | 一种基于命名实体识别的中标数据提取方法 |
US20190102375A1 (en) * | 2017-09-29 | 2019-04-04 | Tata Consultancy Services Limited | Automated cognitive processing of source agnostic data |
CN110502516A (zh) * | 2019-08-22 | 2019-11-26 | 深圳前海环融联易信息科技服务有限公司 | 表格数据解析方法、装置、计算机设备及存储介质 |
CN112036124A (zh) * | 2020-08-28 | 2020-12-04 | 中国平安财产保险股份有限公司 | 表格转换方法、装置、计算机设备和存储介质 |
CN114117309A (zh) * | 2021-12-02 | 2022-03-01 | 深圳市万物云科技有限公司 | 一种网页实体提取方法、装置、计算机设备及存储介质 |
CN114444465A (zh) * | 2022-02-09 | 2022-05-06 | 北京百度网讯科技有限公司 | 信息抽取方法、装置、设备及存储介质 |
CN114942971A (zh) * | 2022-07-22 | 2022-08-26 | 北京拓普丰联信息科技股份有限公司 | 一种结构化数据的抽取方法及装置 |
-
2022
- 2022-09-15 CN CN202211118991.4A patent/CN115203309B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190102375A1 (en) * | 2017-09-29 | 2019-04-04 | Tata Consultancy Services Limited | Automated cognitive processing of source agnostic data |
CN108427721A (zh) * | 2018-02-08 | 2018-08-21 | 湖南慧集网络科技有限责任公司 | 一种基于数据库的招标信息的标准化方法及系统 |
CN109408825A (zh) * | 2018-11-06 | 2019-03-01 | 杭州费尔斯通科技有限公司 | 一种基于命名实体识别的中标数据提取方法 |
CN110502516A (zh) * | 2019-08-22 | 2019-11-26 | 深圳前海环融联易信息科技服务有限公司 | 表格数据解析方法、装置、计算机设备及存储介质 |
CN112036124A (zh) * | 2020-08-28 | 2020-12-04 | 中国平安财产保险股份有限公司 | 表格转换方法、装置、计算机设备和存储介质 |
CN114117309A (zh) * | 2021-12-02 | 2022-03-01 | 深圳市万物云科技有限公司 | 一种网页实体提取方法、装置、计算机设备及存储介质 |
CN114444465A (zh) * | 2022-02-09 | 2022-05-06 | 北京百度网讯科技有限公司 | 信息抽取方法、装置、设备及存储介质 |
CN114942971A (zh) * | 2022-07-22 | 2022-08-26 | 北京拓普丰联信息科技股份有限公司 | 一种结构化数据的抽取方法及装置 |
Non-Patent Citations (1)
Title |
---|
马冬雪等: "领域本体驱动的招投标网页解析方法", 《计算机应用》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115860697A (zh) * | 2023-02-18 | 2023-03-28 | 南通九维软件科技有限公司 | 一种基于智能识别的自动化数据管理系统 |
CN115860697B (zh) * | 2023-02-18 | 2023-08-18 | 南通九维软件科技有限公司 | 一种基于智能识别的自动化数据管理系统 |
CN116383290A (zh) * | 2023-03-22 | 2023-07-04 | 中国华能集团有限公司北京招标分公司 | 一种数据泛化解析方法 |
CN116383290B (zh) * | 2023-03-22 | 2023-10-31 | 中国华能集团有限公司北京招标分公司 | 一种数据泛化解析方法 |
CN116628128A (zh) * | 2023-07-13 | 2023-08-22 | 湖南九立供应链有限公司 | 一种供应链数据标准化方法、装置、设备及其存储介质 |
CN116628128B (zh) * | 2023-07-13 | 2023-10-03 | 湖南九立供应链有限公司 | 一种供应链数据标准化方法、装置、设备及其存储介质 |
CN116955366A (zh) * | 2023-09-21 | 2023-10-27 | 宝略科技(浙江)有限公司 | 一种数据导入处理方法、系统、装置及存储介质 |
CN116955366B (zh) * | 2023-09-21 | 2023-12-22 | 宝略科技(浙江)有限公司 | 一种数据导入处理方法、系统、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115203309B (zh) | 2022-11-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115203309B (zh) | 网页中标数据结构化方法及装置 | |
CN108391446B (zh) | 基于机器学习算法对针对数据分类器的训练语料库的自动提取 | |
US8190556B2 (en) | Intellegent data search engine | |
CN110580308B (zh) | 信息审核方法及装置、电子设备、存储介质 | |
Khusro et al. | On methods and tools of table detection, extraction and annotation in PDF documents | |
US20070239742A1 (en) | Determining data elements in heterogeneous schema definitions for possible mapping | |
US20090125529A1 (en) | Extracting information based on document structure and characteristics of attributes | |
US20100169311A1 (en) | Approaches for the unsupervised creation of structural templates for electronic documents | |
US20130086035A1 (en) | Method and apparatus for generating extended page snippet of search result | |
CN112395418B (zh) | 网页中的目标对象提取方法、装置、电子设备 | |
CN112732945B (zh) | 标准知识图谱构建、标准查询方法及装置 | |
CN105320778A (zh) | 一种适用于电子商务中文网站商品标签化的方法 | |
CN113704667B (zh) | 一种招标公告的自动提取处理方法和装置 | |
CN109165373B (zh) | 一种数据处理方法及装置 | |
CN114495143A (zh) | 一种文本对象识别方法、装置、电子设备及存储介质 | |
AU2021410731A9 (en) | System and method for parsing regulatory and other documents for machine scoring | |
CN111339457A (zh) | 用于从网页抽取信息的方法和设备及存储介质 | |
CN111753536A (zh) | 一种专利申请文本的自动撰写方法和装置 | |
CN112199960B (zh) | 一种标准知识元粒度解析系统 | |
CN113642291B (zh) | 上市公司报告的逻辑结构树构建方法、系统、存储介质及终端 | |
CN113779218B (zh) | 问答对构建方法、装置、计算机设备和存储介质 | |
CN114218373A (zh) | 一种大容量文本内容检索方法和系统 | |
CN109657010B (zh) | 文档处理方法、装置和存储介质 | |
CN112989142A (zh) | 一种可配置化标签的处理系统、方法和装置 | |
CN105279287A (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 |