CN112395418B - 网页中的目标对象提取方法、装置、电子设备 - Google Patents
网页中的目标对象提取方法、装置、电子设备 Download PDFInfo
- Publication number
- CN112395418B CN112395418B CN202011349069.7A CN202011349069A CN112395418B CN 112395418 B CN112395418 B CN 112395418B CN 202011349069 A CN202011349069 A CN 202011349069A CN 112395418 B CN112395418 B CN 112395418B
- Authority
- CN
- China
- Prior art keywords
- data
- text
- target object
- cell
- row
- 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 58
- 230000014509 gene expression Effects 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 5
- 238000000605 extraction Methods 0.000 abstract description 13
- 238000012545 processing Methods 0.000 abstract description 6
- 208000025174 PANDAS Diseases 0.000 description 15
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 description 15
- 240000004718 Panda Species 0.000 description 15
- 235000016496 Panda oleosa Nutrition 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009193 crawling Effects 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001502 supplementing effect 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/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
- G06F40/295—Named entity recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (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
技术领域
本发明实施例涉及数据处理领域,特别涉及一种网页中的目标对象提取方法、装置、电子设备、存储介质。
背景技术
在现实中,存在大量的网页,且对于不同的网站中的网页或者相同网站中不同的网页中信息表示形式也是各种各样的,其中,有大量的网页中的信息都是以表格形式存在的。相关技术,在对网页中的表格进行提取时通过Python模块pandas将表格解析为嵌套列表。pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。
然而,相关技术中使用python模块pandas解析网页中的表格,当出现合并单元格时,会将合并单元格的数据解析成多个重复的数据,使得在读取表格的时候,读取的数据会有重复,从而在针对读取的数据进行分析,提取网页中的目标对象时,由于目标对象的上下文出现重复数据,从而导致目标对象的上下文信息判定错误,提取的目标对象不准确。
发明内容
本发明实施方式的目的在于提供一种网页中的目标对象提取方法、装置、电子设备、存储介质,在网页的表格中有合并的单元格时,能够避免重复读取单元格的数据,使得提取的目标对象更加准确。
为解决上述技术问题,本发明的实施方式提供了一种网页中的目标对象提取方法,包括以下步骤:获取网页的子表格;其中,所述子表格为所述网页中未嵌套表格的表格;根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据;其中,所述二维表数据的行数据中的各拆分单元格数据为预设字符串或文本属性值,所述拆分单元格数据的个数根据所述合并单元格属性值确定;根据所述二维表数据提取所述网页中的目标对象。
本发明的实施方式还提供了一种网页中的目标对象提取方法,包括:根据上述实施方式中的网页中的目标对象提取方法提取中标公告网页中的目标对象。
本发明的实施例还提供了一种网页中的目标对象提取装置,包括:子表格获取模块,用于获取网页的子表格,其中,所述子表格为所述网页中未嵌套表格的表格;二维表数据获取模块,用于根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据;其中,所述二维表数据的行数据中的各拆分单元格数据为预设字符串或文本属性值,所述拆分单元格数据的个数根据合并单元格属性值确定;目标对象获取模块,用于根据所述二维表数据提取所述网页中的目标对象。
本发明的实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的网页中的目标对象提取方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的网页中的目标对象提取方法。
本发明实施例相对于相关技术而言,在提取表格文本时,获取网页的子表格,根据子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据;其中,二维表数据的行数据中的拆分单元格数据为预设字符串或文本属性值,拆分单元格数据的个数根据合并单元格属性值确定,使得在解析网页中子表格数据时,对于子表格中每行的合并单元格,在转换成二维表时,该合并单元格对应的二维表中的拆分单元格的值为预设字符值或文本属性值,相较于相关技术中使用pandas解析子表格时,多个拆分单元格数据均为文本属性值,本发明实施例减少了解析后因合并单元格导致的数据的重复,也不改变实体前后的信息,从而提高了实体提取的准确度,另外,相对于相关技术中使用pandas解析表格时,对于表格中的数字,默认将该数值解析为浮点型float类型,会导致在读取数值时丢失精度,本实施例以文本属性值读取网页的表格数据,从而保证了读取的数值的精度。
另外,所述合并单元格属性值包括:列合并属性值;所述根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据,包括:遍历所述子表格的单元格,获取当前遍历的所述子表格的单元格的文本属性值和列合并属性值;根据所述子表格的单元格的文本属性值和所述列合并属性值C获取所述二维表数据的行数据中C个拆分单元格数据,其中,所述C个拆分单元格数据包括:一个文本属性值和C-1个所述预设字符串;根据所述行数据中C个拆分单元格数据获取二维表数据。该实现中,C个拆分单元格数据包括一个文本属性值和C-1个预设字符串,避免了解析合并单元格导致的数据重复,提高了网页中的目标对象提取的准确度。
另外,合并单元格属性值还包括:行合并属性值;所述根据所述行数据中C个拆分单元格数据获取二维表数据,包括:根据所述行合并属性值获取所述当前遍历的子表格的单元格所占的最大行行号;若所述二维表数据的总行数小于所述最大行行号,则向所述二维表数据增加行,使得所述二维表数据的总行数与所述最大行行号相同;根据所述当前遍历的子表格的单元格的文本属性值对增加的所述行进行初始化;根据所述行数据中C个拆分单元格数据和初始化后的所述行获取二维表数据。该实现中,对二维表数据的行进行动态初始化,以使得到的二维表数据的行与子表格的行相同,避免静态初始化二维表数据导致二维表数据的行过大或者过小。
另外,根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据之后,还包括:若所述二维表数据中存在未写单位的金额单元格,且所述二维表数据中存在与所述金额单元格对应的单位,则将所述单位拼接到所述金额单元格的金额数据的后面,得到更新后的二维表数据;所述根据所述二维表数据提取所述网页中的目标对象,包括:根据所述更新后的二维表数据提取所述网页中的目标对象。该实现中,在该单元格所在列的表头有单位或者该单元格所在行的首列有单位,则添加单位,使得提取的文本数据更加准确。
另外,根据所述二维表数据提取网页中的目标对象,包括:检测所述二维表数据的首行数据是否为表头数据;根据检测结果获取表格文本数据;根据所述表格文本数据提取网页中的目标对象。该实现中,根据是否为表头数据获取表格文本数据,考虑到表头,提高获取的文本数据的准确性。
另外,合并单元格属性值包括:列合并属性值;所述二维表数据的首行数据根据以下方式获取:遍历所述子表格的首行单元格,获取当前遍历的所述首行单元格的列合并属性值和文本属性值,根据所述首行单元格的列合并属性值和文本属性值获取所述二维表数据的首行数据。该实现中,能够得到完整的二维表的首行数据,便于对首行数据进行相应操作。
另外,根据检测结果获取表格文本数据,包括:若所述二维表的首行数据为表头数据,则通过以下方式获取表格文本数据:若所述二维表数据的行数据中存在所述预设字符串,则将所述行数据中除所述预设字符串之外的数据加入表格文本数据;若所述二维表数据的行数据中不存在所述预设字符串,则在所述行数据中的所有单元格数据前拼接所述表头数据,其中,所述拼接的表头数据与被拼接的单元格数据属于同一列;将拼接后的所述行数据加入表格文本数据。该实现中,在二维表数据有表头的情况下,行数据不存在预设字符串,就将表头数据拼接在对应行的单元格数据的后面,加入表格文本数据,否则,将除预设字符串之外的行数据加入表格文本数据,避免表头数据和表格单元格的数据文本匹配不准确的问题,提高获取的文本的准确度。
另外,根据检测结果获取表格文本数据,包括:若所述二维表的首行数据不为表头数据,则将二维表数据中除所述预设字符串之外的数据加入表格文本数据。该实现中,在二维表数据无表头的情况下,将二维表数据中除预设字符串的数据加入表格文本数据,剔除预设字符串,避免提取的文本中出现无意义的字符,提高了实体提取的准确性。
另外,所述检测所述二维表的首行数据是否为表头数据,包括:若所述子表格的首行单元格中存在表头单元格,或者,所述二维表数据的首行数据包括预设关键词且所述二维表数据的首行数据不包括金额数据,则判定所述二维表的首行数据为表头数据。该实现中,在判断表头数据时,既结合子表格的表头单元格,即HTML网页中的th标签,又结合行数据的文本内容,使得表头数据的判断更满足实际应用场景,判断结果更加精确。
另外,根据所述表格文本数据提取网页中的目标对象之前,还包括:在所述表格文本数据中加入分隔符,其中,所述分隔符用于分隔所述表格文本数据中的行数据。该实现中,对表格单元格同行的信息进行分隔,保护单元格同行的信息,便于后续处理对出现在表格中的实体进行匹配。
另外,根据所述二维表数据提取所述网页中的目标对象之前,还包括:获取网页的非表格文本数据,其中,所述非表格文本数据为除所述表格文本数据之外的文本数据;所述网页中的目标对象包括网页中的实体;所述根据所述二维表数据提取所述网页中的目标对象,包括:根据所述非表格文本数据和所述表格文本数据在所述网页中出现的先后顺序得到文本数据;将所述文本数据输入命名实体识别模型得到名称实体;使用正则表达式匹配所述文本数据的金额实体。该实现中,将名称实体用命名实体识别模型获取,金额实体使用正则表达式获取,符合不同实体提取的特点,使得提取出来的实体更加准确。
另外,根据所述二维表数据提取所述网页中的目标对象之后,还包括:使用文本分类器,对所述网页中的目标对象进行分类,得到分类结果和所述实体的分类的置信度信息;根据所述分类结果和所述置信度信息分析网页中的目标对象。该实现中,使用文本分类器获取对实体进行分类,获取分类结果和置信度信息,进行网页中的目标对象的分析,使得分析结果更加准确。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是根据本发明第一实施例中的获取网页的流程图;
图2是根据本发明第一实施例中的网页中的目标对象提取方法的流程图;
图3是根据本发明第一实施例中的获取网页的子表格的流程图;
图4是根据本发明第一实施例中的遍历子表格的流程图;
图5是根据本发明第一实施例中的遍历子表格的首行数据的流程图;
图6是根据本发明第一实施例中的获取存储有二维表数据的二维数组的流程图;
图7是根据本发明第二实施例中的网页中的目标对象提取方法的流程图;
图8是根据本发明第二实施例中的无表头情况数据解析示意图;
图9是根据本发明第二实施例中的有表头情况下数据解析示意图;
图10是根据本发明第二实施例中的实体提取的流程图;
图11是根据本发明第三实施例中的网页中的目标对象提取方法的流程图;
图12是根据本发明第四实施例中的网页中的目标对象提取装置的结构示意图;
图13是根据本发明第五实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
在相关技术提取网页中的目标对象,如实体时,会使用python模块pandas解析表格,当出现合并单元格时,读取的数据会有重复。例如,如表1所示的表格,通过pandas解析为如表2所示的表格,按行读取数据,解析后的数据为a1 a2 a3 a4 a5 b1 b1 b1 b2 b3 c1c2 c3 c4 c5,第2行1列至第2行3列的数据出现重复,当合并的单元格越多时,数据重复出现的次数也越多。
表1
表2
a1 | a2 | a3 | a4 | a5 |
b1 | b1 | b1 | b2 | b3 |
c1 | c2 | c3 | c4 | c5 |
为解决上述问题,本发明实施例提出以下网页中的目标对象提取方法。
本发明的第一实施方式涉及一种网页中的目标对象提取方法,可应用于计算机等电子设备。本实施例的网页中的目标对象提取方法在提取表格文本时,获取网页的子表格,根据子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据;其中,二维表数据的行数据中的各拆分单元格数据为预设字符串或文本属性值,拆分单元格数据的个数根据合并单元格属性值确定,使得在解析网页中子表格数据时,对于子表格中每行的合并单元格,在转换成二维表时,该合并单元格对应的二维表中的拆分单元格的值为预设字符值或文本属性值,相较于相关技术中使用pandas解析子表格时,多个拆分单元格数据均为文本属性值,本发明实施例减少了解析后因合并单元格导致的数据的重复,也不改变实体前后的信息,从而提高了实体提取的准确度,另外,相对于相关技术中使用pandas解析表格时,对于表格中的数字,默认将该数值解析为浮点型float类型,会导致在读取数值时丢失精度,本实施例以文本属性值读取网页的表格数据,从而保证了读取的数值的精度。
在对网页中的目标对象提取之前,先获取网页,如图1所示,为本发明实施例获取网页的方法。
步骤101,获取抓取来源。
示例性的,获取网站网页并整理。
步骤102,爬虫抓取。
承上例的,开发网站爬虫;爬取网页,将HTML文本保存到文件系统中并将记录写入数据库。例如:例如开发中标公告网站的网页、购物网站网页,学校网站的网页等。
步骤103,爬虫新获取的网页的HTML。通过预设xpath截取HTML的正文部分。也就是说,截取HTML的正文的部分,剔除掉HTML中与正文部分的无关内容,提高提取实体的效率,以下为获取HTML之后,网页中的目标对象提取方法的实施例。
本实施例的网页中的目标对象提取方法可以应用于学校网站的网页、购物网站的网页等但不限于此。
下面对本实施例网页中的目标对象提取方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。本发明第一实施例的网页中的目标对象提取方法如图2所示。
步骤201,获取网页的子表格。其中,子表格为所述网页中未嵌套表格的表格。
在一个例子中,计算机获取网页的子表格的流程图如图3所示。
子步骤301,从根节点开始遍历,即从截取的HTML的网页文本的正文部分的首个标签节点开始进行遍历。
子步骤302,当前节点string属性是否为空,若为空,执行步骤304,否则,执行步骤303。本实施例以BeautifulSoup为例解析HTML网页,BeautifulSoup是一个能从HTML或XML文件中提取数据的Python库。它能通过自己定义的解析器来提供导航、搜索,甚至改变解析树。它的出现,大大节省开发者的时间。节点BeautifulSoup的“.string”方法可以返回当前节点中的内容,但是当前节点包含子节点时,“.string”方法会返回空值。
子步骤303,提取当前节点的string属性加入到texts数组中。本实施例用texts数组存储解析得到的文本。
子步骤304,当前节点是否为表格,若是表格执行步骤305,否则,执行步骤306。判断该节点的标签是否为table标签。
子步骤305,当前表格是否为子表格,若是执行步骤307,否则,执行步骤306。若当前的表格节点中无表格节点,即table标签中不嵌套table标签,则当前表格为子表格。
子步骤306,跳转到下一节点。
子步骤307,获取子表格。
步骤202,根据子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据。其中,二维表数据的行数据中的各拆分单元格数据为预设字符串或文本属性值,所述拆分单元格数据的个数根据所述合并单元格属性值确定。
在一个例子中,步骤202的流程图如图4所示。
子步骤401,遍历子表格的首行单元格,得到完整的首行数据。具体地,合并单元格属性值包括:列合并属性值,遍历子表格的首行单元格,获取当前遍历的首行单元格的列合并属性值和文本属性值,根据首行单元格的列合并属性值和文本属性值获取二维表数据的首行数据。
子步骤401的流程图如图5所示。
子步骤501,获取表格标签中的第一个行标签。获取table标签中的第一个行标签,即tr标签。
子步骤502,获取第一个行标签下的单元格标签。获取第一个tr标签下的单元格标签,即th标签或td标签。第一个行标签下的单元格标签代表首行单元格。
子步骤503,创建用于存储首行数据的数组first_row_list。
子步骤504,首行的单元格标签是否遍历结束,若遍历结束,执行步骤509,否则,执行步骤505。
子步骤505,获取下一个单元格标签。
子步骤506,单元格标签中是否有colspan属性值,若是,执行步骤507,否则,执行步骤508。合并单元格属性包括列合并属性,colspan属性即为列合并属性,若单元格标签中无列合并属性,则该单元格的列合并属性值默认为1。
子步骤507,获取colspan属性值C,并向first_row_list添加多次当前标签节点的text属性值,次数为列合并属性值C,即colspan属性值C。
子步骤508,向first_row_list添加一次当前标签节点的text属性值。
子步骤509,得到完整的首行数据first_row_list。
示例性的,根据上述步骤解析表格的首行数据,左边为解析之前的首行数据,右边为解析之后的首行数据。
示例一:
示例二:
示例三:
子步骤402,根据首行数据创建二维数组,遍历子表格的单元格,得到存储二维表数据的二维数组。二维数组的列数即为首行数据的列数。
在一个例子中,遍历子表格的单元格,获取当前遍历的子表格的单元格的文本属性值和列合并属性值,根据子表格的单元格的文本属性值和列合并属性值C获取二维表数据的行数据中C个拆分单元格数据,C个拆分单元格数据包括:一个文本属性值和C-1个预设字符串,根据行数据中C个拆分单元格数据获取二维表数据。
在一个例子中,根据行合并属性值获取当前的遍历的子表格的单元格所占的最大行行号,若二维表数据的总行数小于最大行行号,则向二维表数据增加行,使得二维表数据的总行数与最大行行号相同,根据当前遍历的子表格的单元格的文本属性值对增加的行进行初始化。
示例性的,创建一个临时存放二维表数据的二维数组ret_list,并且二维数组每行的宽度为上例中得到的首行数据的宽度,即,first_row_list的宽度。从第一行开始遍历table标签下的tr标签,若二维数组总行数小于table中遍历的当前tr标签所在的行号,则向二维数组中添加一行元素,添加的一行元素值全部为None,例如,在遍历完网页中的表格的第一行之后,二维数组目前只有一行数据,在遍历第二行数据之前,向二维数组中增加一行元素值全部为None的空行。
遍历当前行tr标签下的td或者th标签,即当前行的所有单元格,处理单元格的步骤如图6所示。
子步骤601,获取单元格的文本属性值,赋值给数组ret_list的对应元素。
在一个例子中,若当前ret_list[i][j]的属性值为None,则将当前td或者th标签的text属性值,即文本属性值赋值给ret_list[i][j];否则遍历一下个元素ret_list[i][j+1]。
子步骤602,获取单元格的合并单元格属性值,即行合并属性值R和列合并属性值C。也就是说,获取当前td或者th标签的colspan值C和rowspan值R,若没有,则C和R均默认取1。
子步骤603,给当前数组元素后的连续C-1个元素赋值为预设字符串。例如预设字符串为“STAND”,给标签后的连续C-1个标签赋值为“STAND”。
子步骤604,当ret_list总行数小于当前遍历的子表格的单元格所占的最大行行号,则向ret_list添加z行全部为None空行,使得ret_list总行数与最大行行号相同,其中,最大行行号=当前行的行号+R-1;z=最大行行号-二维数组总行数=当前行的行号+R-1-二维数组总行数。具体地说,当前遍历的二维数组元素为ret_list[i][j],则当前行的行号为i,z=最大行行号-二维数组总行数=i+R-1-二维数组总行数。例如,当前遍历的二维数组元素的i值为3,即当前行的行号为3,该单元格标签的行合并属性值R为3,则当前遍历的子表格的单元格所占的最大行行号为5,即3+3-1,若此时二维数组总行数为3,则向二维数组添加两行元素全部为None的空行,若此时二维数组总行数为4,则向二维数组添加一行元素全部为None的空行。
子步骤605,将当前遍历的子表格的单元格的文本属性值赋值给新添加的元素中与当前遍历的子表格的单元格同列的元素。例如,若遍历的二维数组元素为ret_list[i][j],即,ret_list[i][j]的值为当前遍历的单元格的文本属性值,则将当前td或者th标签的text属性值赋值给ret_list[i+1][j]至ret_list[i+z][j],也就是说ret_list中当前行及所有添加行的第j个位置的值都为当前遍历的单元格的文本属性值。
以上述方式遍历完table之后得到存储有二维表数据的二维数组。
示例性的,以下结合表格数据,阐述得到存储有二维表数据的二维数组的过程,网页中对应的表格如表三所示。
表三
第一步,遍历子表格的首行单元格,得到完整的首行数据,first_row_list如下表四所示。
表四
a1 | a2 | a3 | a4 | a5 |
第二步,创建动态二维数组ret_list[i][j],j值固定为5,i值动态变化。
第三步,读取首行数据,i值为1,遍历到第二行数据时,二维数组总行数为1小于table的当前tr标签所在的行号2,向二维数组中添加一行元素,添加的一行元素值全部为None,此时,i为2,添加之后的数组中各元素如下表五所示:
表五
a1 | a2 | a3 | a4 | a5 |
None | None | None | None | None |
第四步,获取colspan值C,向当前元素的后的连续c-1个标签赋值为’STAND’,如下表六所示:表六
a1 | a2 | a3 | a4 | a5 |
b1 | STAND | STAND | None | None |
第五步,获取rowspan值R,判断ret_list的总行数2小于最大行行号,即4行,添加z行,z=2+3-1-2=2,如表七所示。
表七
a1 | a2 | a3 | a4 | a5 |
b1 | STAND | STAND | b3 | None |
None | None | None | b3 | None |
None | None | None | b3 | None |
第六步,读取下一个标签,给元素赋值,如表八所示。
表八
a1 | a2 | a3 | a4 | a5 |
b1 | STAND | STAND | b3 | b4 |
None | None | None | b3 | None |
None | None | None | b3 | None |
第七步,读取下一行标签,给元素赋值,如表九所示。
表九
第八步,若当前ret_list[i][j]的属性值不为None,则遍历一下个单元格ret_list[i][j+1],如表十所示。
表十
a1 | a2 | a3 | a4 | a5 |
b1 | STAND | STAND | b3 | b4 |
c1 | c2 | c3 | b3 | c4 |
None | None | None | b3 | None |
第九步,不断循环遍历,直至子表格最后一个标签,以此,得到了所有二维表数据,并将其存入二维数组,如表十一所示。
表十一
a1 | a2 | a3 | a4 | a5 |
b1 | STAND | STAND | b3 | b4 |
c1 | c2 | c3 | b3 | c4 |
d1 | d2 | d3 | b3 | d4 |
步骤203,根据二维表数据提取网页中的目标对象。
在一个例子中,将所述二维表数据中除预设字符串之外的数据加入表格文本数据;根据所述表格文本数据提取网页中的目标对象。
在一个例子中,还可以结合网页的非表格文本数据提取网页中的目标对象。例如,计算机获取网页的非表格文本数据,其中,非表格文本数据为除表格文本数据之外的文本数据;根据非表格文本数据和所述表格文本数据在所述网页中出现的先后顺序得到文本数据。
示例性的,如流程图3所示,当前节点string属性不为空时,提取当前节点的string属性,即获取非表格文本数据,将根据子表格获取到的二维表数据加入表格文本数据之后,按照在网页出现的先后顺序将表格文本数据和非表格文本数据加入texts数组,将texts数组中的所有文本,使用空格拼接成一段长文本,长文本即为文本数据,根据该文本数据提取网页中的目标对象,例如网页中的实体;公司名称,金额等。
本发明实施例获取网页的HTML获取子表格,根据子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据;其中,二维表数据的行数据中的拆分单元格数据为预设字符串或文本属性值,拆分单元格数据的个数根据合并单元格属性值确定,使得在解析网页中子表格数据时,对于子表格中每行的合并单元格,在转换成二维表时,该合并单元格对应的二维表中的拆分单元格的值为预设字符值或文本属性值,相较于相关技术中使用pandas解析子表格时,由于pandas的解析逻辑会直接将列合并的单元格拆分为多个文本属性值相同的单元格,从而导致无法区分最终解析得到的表格中的重复数据是原始表格本身的,还是由于列合并属性解析得到的,从而导致无法进行重复内容的过滤,进而无法判断实体上下文信息的准确性;本发明实施例中通过设置占位符,对于有列合并属性的单元格最终只解析得到一个文本数据,从而避免了由于列合并属性而导致的重复数据,确保实体上下文信息的准确性,从而提高了实体提取的准确度,另外,相对于相关技术中使用pandas解析表格时,对于表格中的数字,默认将该数值解析为浮点型float类型,会导致在读取数值时丢失精度,本实施例以文本属性值读取网页的表格数据,从而保证了读取的数值的精度。
本发明的第二实施方式涉及一种网页中的目标对象提取方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:根据子表格中的表头数据对二维表数据进行处理,得到表格文本数据。
本发明第二实施例的网页中的目标对象提取方法流程图如图7所示。
步骤700,获取网页的子表格。其中,子表格为所述网页中未嵌套表格的表格。
步骤701,根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据;其中,所述二维表数据的行数据中的各拆分单元格数据为预设字符串或文本属性值,所述拆分单元格数据的个数根据所述合并单元格属性值确定。
在一个例子中,步骤700至步骤701与实施例一的步骤201至202大致相同,不同之处在于,在获取了存储二维表数据的二维数组ret_list之后,遍历数组ret_list,将所有值为预设字符串为“STAND”的元素替换为另一预设字符串“None”;将ret_list转换为pandas.DataFrame;此时,二维表数据为DataFrame结构。DataFrame相当于一种二维的数据模型,相当于excel表格中的数据,有横竖两种坐标,横轴使用index,竖轴用columns来确定,在建立DataFrame对象的时候,需要确定三个元素:数据,横轴,竖轴DataFrame操作比较简洁,此外DataFrame还拥有比较丰富的操作api接口,能比较容易实现中小型数据集的操作。
在一个例子中,若所述二维表数据中存在未写单位的金额单元格,且所述二维表数据的中存在与所述金额单元格对应的单位,则将所述单位拼接到所述金额单元格的金额数据的后面。例如,可以进行如下操作:遍历DataFrame,如果是没有写单位的金额单元格,并且同列表头或者同行第一列包括金额单位则将单位提取出并补到金额的后面。
在二维数组ret_list转换成DataFrame,创建数组rows用于存储下述遍历的当前行内所有单元格的文本,即当前行的表格文本数据,创建数组ret用于存储当前遍历DataFrame内所有单元格的文本,即遍历过的行的表格文本数据,以下是按行遍历DataFrame的操作。
步骤702,获取二维表数据的首行数据。
承上例的,获取DataFrame的首行数据。
步骤703,检测所述二维表数据的首行数据是否为表头数据,若存在,执行704,否则,执行706。也就是说,检测所述二维表数据的首行数据是否为表头数据;根据检测结果获取表格文本数据;根据所述表格文本数据提取网页中的目标对象。
在一个例子中,若所述子表格的首行单元格中存在表头单元格,或者,所述二维表数据的首行数据包括预设关键词且所述二维表数据的首行数据不包括金额数据,则判定所述二维表的首行数据为表头数据。
示例性的,计算机判断子表格的首行单元格中是否存在表头单元格,也就是说判断首个tr标签下的子标签是否包括thead标签,即th标签,若包括,则为表头数据;若不包括thead标签,同时满足以下条件则为表头数据:二维表数据的首行数据中包括预设关键词且首行数据中不包括金额数据。预设关键词可根据用户实际需求设置,例如在中标公告网页中供应商,中标结果等可以设为预设关键词,在购物网站中商品名称等可以设为预设关键词。在判断表头数据时,既结合网页的表头标签,即th标签,又结合首行数据的文本内容,使得表头数据的判断更满足实际应用场景,判断结果更加精确。
步骤704,行数据是否存在预设字符串,若存在,执行706,否则执行705。
承上例,判断当前行的行数据是否存在None。
具体地说,若二维表数据的首行数据为表头数据,则通过以下方式获取表格文本数据:若所述二维表数据的行数据中存在所述预设字符串,则将所述行数据中除所述预设字符串之外的数据加入表格文本数据;若所述二维表数据的行数据中不存在所述预设字符串,则在所述行数据中的所有单元格数据前拼接所述表头数据,其中,所述拼接的表头数据与被拼接的单元格数据属于同一列;将拼接后的所述行数据加入表格文本数据。
步骤705,行数据中的所有单元格数据前拼接表头数据,将拼接后的行数据加入表格文本数据。其中,在单元格前添加的表头数据位于该单元格所在列。
承上例,在不包括None的情况下,将当前行内所有单元格的文本前面拼上当前列的表头文本,然后依次加入rows数组。
步骤706,将行内所有除预设字符串之外的数据加入表格文本数据。
承上例,将当前行内所有单元格的非None文本依次加入rows数组。
步骤707,在表格文本数据中加入分隔符。其中,分隔符用于分隔表格文本数据中的行数据。
承上例的,在rows数组的第一个位置添加分隔符“{{{”;在rows数组的最后一个位置添加分隔符“}}}”。为了保护表格单元格同行的信息,方便后续对表格中的数据信息进行匹配,例如对出现在中标公告网页表格中的中标供应商和中标金额进行匹配,在购物网站表格中的商品和金额进行匹配。
数组rows中储存了一行表格文本数据,将该行表格文本数据加入数组ret,即将数组rows使的一行数据赋值给数组ret。
步骤708,是否存在下一行数据,若存在,执行709,若不存在执行710。
步骤709,获取下一行的行数据,之后,执行701。
以下结合具体实例,简要阐述。
如图8所示,为在无表头的情况下得到的表格文本数据。801为初始子表格,经步骤701,转换成二维表数据802,二维表数据存储于数组ret_list中,将预设字符串由“STAND”替换为“None”后,将数组ret_list转换成DataFrame数据803,遍历DataFrame,将当前行的非None文本存储在rows数组中,并加入分隔符“{{{”“}}}”,rows数组将当前行的非None文本赋值给ret数组,遍历完成之后,得到804数组ret,即表格文本数据。
如图9所示,为在有表头的情况下得到的表格文本数据,901为初始子表格,901中第一行A11,A12,A13为表头,经步骤701,转换成二维表数据902,二维表数据存储于ret_list中,将预设字符串由“STAND”替换为“None”后,得到DataFrame数据903,遍历DataFrame的行数据,在不包括None的情况下,将当前行内所有单元格的文本前面拼上当前列的表头文本,然后依次加入rows数组,在包括None的情况下,将当前行内所有单元格的非None文本依次加入rows数组,在rows数组中加入分隔符“{{{”“}}}”,rows数组赋值给ret数组,遍历完成之后,得到904数组ret。
步骤710,根据表格文本数据提取网页中的目标对象。例如,将表格文本数据转换为文本数据,将所述文本数据输入命名实体识别模型得到名称实体;使用正则表达式匹配所述文本数据的金额实体。
在另一个例子中,还可以结合网页的非表格文本数据提取网页中的目标对象。具体地说,计算机获取网页的非表格文本数据,其中,所述非表格文本数据为除所述表格文本数据之外的文本数据;根据所述非表格文本数据和所述表格文本数据在所述网页中出现的先后顺序得到文本数据;将所述文本数据输入命名实体识别模型得到名称实体;使用正则表达式匹配所述文本数据的金额实体。
在一个例子中,使用文本分类器,对所述网页中的目标对象进行分类,得到分类结果和所述网页中的目标对象的分类的置信度信息;根据所述分类结果和所述置信度信息分析网页中的目标对象。
示例性的,根据HTML的正文获取文本数据之后使用以下步骤提取实体并进行分析,流程如图10所示。
子步骤1001,获取文本数据。
子步骤1002,根据文本数据获取实体。
示例性的,使用TENER命名实体识别模型识别公司全称实体;如果有连续出现的多个公司实体被识别,则将连续的多个公司实体合并为一个,使用正则表达式匹配金额实体。
子步骤1003,将每个实体的上下文信息转换成词向量和位置向量输入文本分类模型,对实体进行分类。
示例性的,将上一步得到的实体的上下文信息转换成词向量word embedding和位置向量position embedding输入TEXTCNN分类器,对实体进行匹配,以中标公告网页为例,中标公告网页中出现招标商、中标商、中标金额、其他进行分类,得到分类结果以及分类的置信度信息。例如,某实体分类到中标单位,即中标商的置信度信息为0.999,分类到中标金额的置信度信息为0.0002,分类到招标单位的置信度信息为0.0002,分类到其他的置信度为0.0006,则该实体。
子步骤1004,根据分类结果获取网页中的目标对象的分析结果。
示例性的,将中标商与中标金额进行配对返回置信度最高的采购商以及配对的中标商中标金额信息,获得中标分析结果,记录入库。
本实施例获取网页中的子表格,根据网页中的子表格中各单元格文本属性值和合并单元格属性值获取二维表数据,其中,二维表数据的行数据中各拆分单元格数据为预设字符串或文本属性值,在二维表数据的首行数据为表头数据的情况下,若行数据中不存在预设字符串,则在行数据中的所有单元格数据前拼接表头数据,将拼接后的行数据加入表格文本数据,否则将除预设字符串之外的单元格数据加入表格文本数据;在二维表数据的首行数据不为表头数据的情况下,将二维表数据中除预设字符串之外的单元格数据加入表格文本数据,根据首行数据是否为表头数据的判断结果,也就是说,在行数据中不存在预设字符串且有表头数据的情况下,对行数据和表头数据进行拼接,避免了表头数据和单元格的数据文本匹配不准确的问题,还使得获得的表格文本数据更加完整,本实施例去掉了占位的预设字符串,使得列合并属性值的单元格只对应表格文本数据中的一个文本数据,避免了列合并属性值导致的重复数据,确保了上下文信息的准确性。
本发明第三实施例涉及一种网页中的目标对象提取方法,与第二实施例的网页中的目标对象提取方法不同之处在于:本实施例的网页为中标公告网页,本发明第三实施例的流程图如图11所示。
步骤1100,获取中标公告网页的子表格。
步骤1101,根据所述中标公告网页的子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据。
步骤1102,获取二维表数据的首行数据。
步骤1103,检测二维表数据的首行数据是否为表头数据。
步骤1104,行数据是否存在预设字符串。
步骤1105,行数据中的所有单元格数据前拼接表头数据,将拼接后的行数据加入表格文本数据。
步骤1106,将行内所有除预设字符串之外的数据加入表格文本数据。
步骤1107,在表格文本数据中加入分隔符。
步骤1108,是否存在下一行数据。
步骤1109,获取下一行的行数据。
步骤1110,根据表格文本数据提取中标公告实体。在实际应用中,还可以结合中标公告网页的非表格文本数据提取中标公告实体。具体地,计算机获取中标公告网页的非表格文本数据,其中,所述非表格文本数据为除所述表格文本数据之外的文本数据;根据所述非表格文本数据和所述表格文本数据在所述网页中出现的先后顺序得到文本数据;将所述文本数据输入命名实体识别模型得到名称实体;使用正则表达式匹配所述文本数据的金额实体。例如,在中标公告网页中提取公司名称实体等。
步骤1100至步骤1110与第二实施例中的700至步骤710大致相同,为避免表达上的重复,此处不在赘述。
本发明实施例获取中标公告网页的HTML获取子表格,根据子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据;其中,二维表数据的行数据中的拆分单元格数据为预设字符串或文本属性值,拆分单元格数据的个数根据合并单元格属性值确定,使得在解析中标公告网页中子表格数据时,对于子表格中每行的合并单元格,在转换成二维表时,该合并单元格对应的二维表中的拆分单元格的值为预设字符值或文本属性值,相较于相关技术中使用pandas解析子表格时,由于pandas的解析逻辑会直接将列合并的单元格拆分为多个文本属性值相同的单元格,从而导致无法区分最终解析得到的表格中的重复数据是原始表格本身的,还是由于列合并属性解析得到的,从而导致无法进行重复内容的过滤,进而无法判断实体上下文信息的准确性;本发明实施例中通过设置占位符,对于有列合并属性的单元格最终只解析得到一个文本数据,从而避免了由于列合并属性而导致的重复数据,确保实体上下文信息的准确性,从而提高了实体提取的准确度,另外,相对于相关技术中使用pandas解析表格时,对于表格中的数字,默认将该数值解析为浮点型float类型,会导致在读取数值时丢失精度,本实施例以文本属性值读取中标公告网页的表格数据,从而保证了读取的数值的精度。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第四实施方式涉及一种网页中的目标对象提取装置,如图12所示所示,包括:子表格获取模块1201,用于获取网页的子表格,其中,所述子表格为所述网页中未嵌套表格的表格;二维表数据获取模块1202,用于根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据;其中,所述二维表数据的行数据中的各拆分单元格数据为预设字符串或文本属性值,所述拆分单元格数据的个数根据合并单元格属性值确定;目标对象获取模块1203,用于根据所述二维表数据提取网页中的目标对象。
在一个例子中,二维表数据获取模块1202进一步用于遍历所述子表格的单元格,获取当前遍历的所述子表格的单元格的文本属性值和列合并属性值;根据所述子表格的单元格的文本属性值和所述列合并属性值C获取所述二维表数据的行数据中C个拆分单元格数据,其中,所述C个拆分单元格数据包括:一个文本属性值和C-1个所述预设字符串;根据所述行数据中C个拆分单元格数据获取二维表数据。
在一个例子中,二维表数据获取模块1202进一步用于根据所述行合并属性值获取所述当前遍历的子表格的单元格所占的最大行行号;若所述二维表数据的总行数小于所述最大行行号,则向所述二维表数据增加行,使得所述二维表数据的总行数与所述最大行行号相同;根据所述当前遍历的子表格的单元格的文本属性值对增加的所述行进行初始化;根据所述行数据中C个拆分单元格数据和初始化后的所述行获取二维表数据。
在一个例子中,二维表数据获取模块1202进一步用于判断二维表数据是否存在未写单位的金额单元格,若所述二维表数据中存在未写单位的金额单元格,且所述二维表数据的中存在与所述金额单元格对应的单位,则将所述单位拼接到所述金额单元格的金额数据的后面,得到更新后的二维表数据;根据更新后的二维表数据提取网页中的目标对象。
在一个例子中,目标对象获取模块1203进一步用于检测所述二维表数据的首行数据是否为表头数据;根据检测结果获取表格文本数据;根据所述表格文本数据提取网页中的目标对象。
在一个例子中,二维表数据获取模块1202进一步用于遍历所述子表格的首行单元格,获取当前遍历的所述首行单元格的列合并属性值和文本属性值,根据所述首行单元格的列合并属性值和文本属性值获取所述二维表数据的首行数据。
在一个例子中,目标对象获取模块1203进一步用于若所述二维表数据的首行数据为表头数据,则通过以下方式获取表格文本数据:若所述二维表数据的行数据中存在所述预设字符串,则将所述行数据中除所述预设字符串之外的数据加入表格文本数据;若所述二维表数据的行数据中不存在所述预设字符串,则在所述行数据中的所有单元格数据前拼接所述表头数据,其中,所述拼接的表头数据与被拼接的单元格数据属于同一列;将拼接后的所述行数据加入表格文本数据。
在一个例子中,目标对象获取模块1203进一步用于若所述二维表数据的首行数据不为表头数据,则将所述二维表数据中除预设字符串之外的数据加入表格文本数据;根据所述表格文本数据提取网页中的目标对象。
在一个例子中,目标对象获取模块1203进一步用于若所述子表格的首行单元格中存在表头单元格,或者,所述二维表数据的首行数据包括预设关键词且所述二维表数据的首行数据不包括金额数据,则判定所述二维表的首行数据为表头数据。
在一个例子中,目标对象获取模块1203进一步用于在所述表格文本数据中加入分隔符,其中,所述分隔符用于分隔所述表格文本数据中的行数据。
在一个例子中,目标对象获取模块1203进一步用于获取网页的非表格文本数据,其中,所述非表格文本数据为除所述表格文本数据之外的文本数据;根据所述非表格文本数据和所述表格文本数据在所述网页中出现的先后顺序得到文本数据;将所述文本数据输入命名实体识别模型得到名称实体;使用正则表达式匹配所述文本数据的金额实体。
在一个例子中,目标对象获取模块1203进一步用于使用文本分类器,对所述网页中的目标对象进行分类,得到分类结果和所述网页中的目标对象的分类的置信度信息;根据所述分类结果和所述置信度信息分析网页中的目标对象。
不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本发明第五实施方式涉及一种电子设备,如图13所示,包括至少一个处理器1302;以及,与所述至少一个处理器通信连接的存储器1301;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的网页中的目标对象提取方法。
其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (15)
1.一种网页中的目标对象提取方法,其特征在于,包括:
获取网页的子表格;其中,所述子表格为所述网页中未嵌套表格的表格;
根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据;其中,所述二维表数据的行数据中的各拆分单元格数据为预设字符串或文本属性值,所述拆分单元格数据的个数根据所述合并单元格属性值确定;
根据所述二维表数据提取所述网页中的目标对象;
其中,所述合并单元格属性值包括:列合并属性值;所述根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据,包括:
遍历所述子表格的单元格,获取当前遍历的所述子表格的单元格的文本属性值和列合并属性值;
根据所述子表格的单元格的文本属性值和所述列合并属性值C获取所述二维表数据的行数据中C个拆分单元格数据,其中,所述C个拆分单元格数据包括:一个文本属性值和C-1个所述预设字符串;
根据所述行数据中C个拆分单元格数据获取二维表数据;
所述根据所述二维表数据提取所述网页中的目标对象,包括:
获取表格文本数据,其中,所述表格文本数据包括所述二维表数据中除所述预设字符串之外的数据;
根据所述表格文本数据提取网页中的目标对象。
2.根据权利要求1所述的网页中的目标对象提取方法,其特征在于,所述合并单元格属性值还包括:行合并属性值;所述根据所述行数据中C个拆分单元格数据获取二维表数据,包括:
根据所述行合并属性值获取所述当前遍历的子表格的单元格所占的最大行行号;
若所述二维表数据的总行数小于所述最大行行号,则向所述二维表数据增加行,使得所述二维表数据的总行数与所述最大行行号相同;
根据所述当前遍历的子表格的单元格的文本属性值对增加的所述行进行初始化;
根据所述行数据中C个拆分单元格数据和初始化后的所述行获取二维表数据。
3.根据权利要求1所述的网页中的目标对象提取方法,所述根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据之后,还包括:
若所述二维表数据中存在未写单位的金额单元格,且所述二维表数据中存在与所述金额单元格对应的单位,则将所述单位拼接到所述金额单元格的金额数据的后面,得到更新后的二维表数据;
所述根据所述二维表数据提取所述网页中的目标对象,包括:
根据所述更新后的二维表数据提取所述网页中的目标对象。
4.根据权利要求1述的网页中的目标对象提取方法,其特征在于,所述获取表格文本数据,包括:
检测所述二维表数据的首行数据是否为表头数据;
根据检测结果获取所述表格文本数据。
5.根据权利要求4所述的网页中的目标对象提取方法,其特征在于,所述合并单元格属性值包括:列合并属性值;所述二维表数据的首行数据根据以下方式获取:
遍历所述子表格的首行单元格,获取当前遍历的所述首行单元格的列合并属性值和文本属性值,根据所述首行单元格的列合并属性值和文本属性值获取所述二维表数据的首行数据。
6.根据权利要求4所述的网页中的目标对象提取方法,其特征在于,所述根据检测结果获取所述表格文本数据,包括:
若所述二维表数据的首行数据为表头数据,则通过以下方式获取所述表格文本数据:
若所述二维表数据的行数据中存在所述预设字符串,则将所述行数据中除所述预设字符串之外的数据加入表格文本数据;
若所述二维表数据的行数据中不存在所述预设字符串,则在所述行数据中的所有单元格数据前拼接所述表头数据,其中,所述拼接的表头数据与被拼接的单元格数据属于同一列;
将拼接后的所述行数据加入表格文本数据。
7.根据权利要求4所述的网页中的目标对象提取方法,其特征在于,所述根据检测结果获取表格文本数据,包括:
若所述二维表数据的首行数据不为表头数据,则将所述二维表数据中除所述预设字符串之外的数据加入表格文本数据。
8.根据权利要求4所述的网页中的目标对象提取方法,其特征在于,所述检测所述二维表的首行数据是否为表头数据,包括:
若所述子表格的首行单元格中存在表头单元格,或者,所述二维表数据的首行数据包括预设关键词且所述二维表数据的首行数据不包括金额数据,则判定所述二维表的首行数据为表头数据。
9.根据权利要求4至8中任一项所述的网页中的目标对象提取方法,其特征在于,所述根据所述表格文本数据提取所述网页中的目标对象之前,还包括:
在所述表格文本数据中加入分隔符,其中,所述分隔符用于分隔所述表格文本数据中的行数据。
10.根据权利要求4至8中任一项所述的网页中的目标对象提取方法,其特征在于,所述根据所述二维表数据提取所述网页中的目标对象之前,还包括:
获取网页的非表格文本数据,其中,所述非表格文本数据为除所述表格文本数据之外的文本数据;
所述网页中的目标对象包括网页中的实体;所述根据所述二维表数据提取所述网页中的目标对象,包括:
根据所述非表格文本数据和所述表格文本数据在所述网页中出现的先后顺序得到文本数据;
将所述文本数据输入命名实体识别模型得到名称实体;
使用正则表达式匹配所述文本数据的金额实体。
11.根据权利要求1至8中任一项所述的网页中的目标对象提取方法,其特征在于,所述根据所述二维表数据提取所述网页中的目标对象之后,还包括:
使用文本分类器,对所述网页中的目标对象进行分类,得到分类结果和所述网页中的目标对象的分类的置信度信息;
根据所述分类结果和所述置信度信息分析所述网页中的目标对象。
12.一种网页中的目标对象提取方法,其特征在于,根据权利要求1至11中任一项所述的网页中的目标对象提取方法提取中标公告网页中的目标对象。
13.一种网页中的目标对象提取装置,其特征在于,包括:
子表格获取模块,用于获取网页的子表格,其中,所述子表格为所述网页中未嵌套表格的表格;
二维表数据获取模块,用于根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据;其中,所述二维表数据的行数据中的各拆分单元格数据为预设字符串或文本属性值,所述拆分单元格数据的个数根据所述合并单元格属性值确定;
其中,所述合并单元格属性值包括:列合并属性值;所述根据所述子表格中各单元格的文本属性值和合并单元格属性值获取二维表数据,包括:遍历所述子表格的单元格,获取当前遍历的所述子表格的单元格的文本属性值和列合并属性值;根据所述子表格的单元格的文本属性值和所述列合并属性值C获取所述二维表数据的行数据中C个拆分单元格数据,其中,所述C个拆分单元格数据包括:一个文本属性值和C-1个所述预设字符串;根据所述行数据中C个拆分单元格数据获取二维表数据;
目标对象获取模块,用于根据所述二维表数据提取所述网页中的目标对象;
其中,所述根据所述二维表数据提取所述网页中的目标对象,包括:获取表格文本数据,其中,所述表格文本数据包括所述二维表数据中除所述预设字符串之外的数据;根据所述表格文本数据提取网页中的目标对象。
14.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至11中任一项所述的网页中的目标对象提取方法或权利要求12中所述的网页中的目标对象提取方法。
15.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的网页中的目标对象提取方法或权利要求12中所述的网页中的目标对象提取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011349069.7A CN112395418B (zh) | 2020-11-26 | 2020-11-26 | 网页中的目标对象提取方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011349069.7A CN112395418B (zh) | 2020-11-26 | 2020-11-26 | 网页中的目标对象提取方法、装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112395418A CN112395418A (zh) | 2021-02-23 |
CN112395418B true CN112395418B (zh) | 2021-09-03 |
Family
ID=74605284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011349069.7A Active CN112395418B (zh) | 2020-11-26 | 2020-11-26 | 网页中的目标对象提取方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395418B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254627B (zh) * | 2021-04-16 | 2023-07-25 | 国网河北省电力有限公司经济技术研究院 | 数据读取方法、装置及终端 |
CN114463762B (zh) * | 2021-07-16 | 2022-10-25 | 荣耀终端有限公司 | 一种数据的处理方法和装置 |
CN114462393A (zh) * | 2022-04-12 | 2022-05-10 | 安徽数智建造研究院有限公司 | 网页文本信息提取方法及装置、终端设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156239A (zh) * | 2015-04-27 | 2016-11-23 | 中国移动通信集团公司 | 一种表格抽取方法和装置 |
CN110188107A (zh) * | 2019-06-05 | 2019-08-30 | 北京神州泰岳软件股份有限公司 | 一种从表格中抽取信息的方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10713545B2 (en) * | 2018-10-26 | 2020-07-14 | Merck Sharp & Dohme Corp. | Image processing of webpages |
-
2020
- 2020-11-26 CN CN202011349069.7A patent/CN112395418B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106156239A (zh) * | 2015-04-27 | 2016-11-23 | 中国移动通信集团公司 | 一种表格抽取方法和装置 |
CN110188107A (zh) * | 2019-06-05 | 2019-08-30 | 北京神州泰岳软件股份有限公司 | 一种从表格中抽取信息的方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于web的复杂表格实践;刘浩;《数学技术与应用》;20190925;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112395418A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112395418B (zh) | 网页中的目标对象提取方法、装置、电子设备 | |
CN106156239B (zh) | 一种表格抽取方法和装置 | |
US10360294B2 (en) | Methods and systems for efficient and accurate text extraction from unstructured documents | |
US7899826B2 (en) | Semantic reconstruction | |
US8577887B2 (en) | Content grouping systems and methods | |
CN102314497B (zh) | 一种用于识别标记语言文件主体内容的方法和设备 | |
CN112434691A (zh) | 基于智能解析识别的hs编码匹配、展示方法、系统及存储介质 | |
CN115203309B (zh) | 网页中标数据结构化方法及装置 | |
CN113918686A (zh) | 智能问答模型构建方法、装置、计算机设备及存储介质 | |
CN109684473A (zh) | 一种自动简报生成方法及系统 | |
CN114444465A (zh) | 信息抽取方法、装置、设备及存储介质 | |
US11361565B2 (en) | Natural language processing (NLP) pipeline for automated attribute extraction | |
US11494431B2 (en) | Generating accurate and natural captions for figures | |
CN113779218B (zh) | 问答对构建方法、装置、计算机设备和存储介质 | |
CN113642291B (zh) | 上市公司报告的逻辑结构树构建方法、系统、存储介质及终端 | |
JP6763967B2 (ja) | データ変換装置とデータ変換方法 | |
CN112818687B (zh) | 一种用于构建标题识别模型的方法、装置、电子设备以及存储介质 | |
US8719693B2 (en) | Method for storing localized XML document values | |
CN114218373A (zh) | 一种大容量文本内容检索方法和系统 | |
CN114637505A (zh) | 一种页面内容提取方法和装置 | |
CN111708891A (zh) | 一种多源食材数据之间的食材实体链接方法和装置 | |
Guo | Research on logical structure annotation in English streaming document based on deep learning | |
CN108241680B (zh) | 获取网页的阅读量的方法和装置 | |
CN118350371A (zh) | 一种面向专利文本的标记对抽取方法及系统 | |
CN116933762A (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 | ||
EE01 | Entry into force of recordation of patent licensing contract | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20210223 Assignee: Shanghai Chenghong Investment Consulting Co.,Ltd. Assignor: Shanghai Jining Computer Technology Co.,Ltd. Contract record no.: X2023310000008 Denomination of invention: Object extraction methods, devices and electronic devices in web pages Granted publication date: 20210903 License type: Common License Record date: 20230112 |