一种复杂网页结构化信息精确提取方法、设备及存储介质技术

技术编号:29673800 阅读:22 留言:0更新日期:2021-08-13 21:55
本发明专利技术公开了一种复杂网页结构化信息精确提取方法、设备及存储介质,该方法包括:针对目标网页,收集一批样本网页;根据样本网页制定各个区块的查找规则和匹配规则;结合区块情况确定条目的查找规则和匹配规则;在区块内确定定位节点的查找规则和匹配规则;针对字段节点,确定从定位节点到此字段节点的查找规则和匹配规则;通过基于规则或机器学习的方法自动提取各个样本网页中的字段信息;根据提取的字段信息自动生成解析模板;对自动生成的解析模板进行校对纠正;针对任意HTML网页,根据域名、路径和文本特征选择对应的模板解析提取。本发明专利技术基于复杂网页特点,将其划分为多个区块,并利用定位节点的固有特征,提高了字段节点定位准确度。

【技术实现步骤摘要】
一种复杂网页结构化信息精确提取方法、设备及存储介质
本专利技术涉及电数字数据处理
,尤其涉及一种复杂网页结构化信息精确提取方法、设备及存储介质。
技术介绍
随着互联网和Web技术的快速发展,HTML网页成为越来越广泛使用的一种数据传输形式,然而绝大部分网页由于其内容、形式和风格的不同而在结构上有巨大差异。这给从HTML网页中提取信息带来了很大的挑战;所以从HTML中准确提取结构化信息是一项艰巨而又有意义的任务。从HTML网页中提取信息,主要可以分为两种场景:一是从HTML中提取正文及标题等内容,主要针对资讯类网页;二是从HTML中提取结构化字段信息,主要针对属性较多的内容,如商品信息、简历信息、表单信息等。针对资讯类网页信息提取,常见的方法主要有:1)按节点名称针对性提取;按节点路径频率或信息量过滤无效内容;按正则直接匹配提取内容。按节点名称针对性提取方法,如“CN111274515A基于HTML标签匹配的网页数据提取方法”,直接按要提取的字段从指定的标签节点中提取,如标题对应title节点,样式对应style节点,可提取的内容非常有限;2)按节点路径频率或信息量过滤无效内容方法,如“CN110020302A提取网页内容的方法和网页内容提取装置”,针对一类网页提取每个文本节点的模式,模式按节点TagName和3级父节点的TagName拼成,如果某个模式出现次数超过阈值,则将符合此模式的从HTML文档中删除,剩余部分即正文内容,此种方法只能提取正文,且容易出现漏删和多删的问题;r>3)按正则直接匹配提取内容,如“CN111966881A一种网页信息提取方法及系统、电子设备”,对目标网页选取一些网页样本,根据样本制定字段提取规则,人工检验后,用此规则对目标网页进行提取。此方法是使用规则对节点文本进行查找匹配,忽略了DOM结构特征,容易出现错漏;4)规则+机器学习方法过滤非正文内容,如“CN110457579A基于模板和分类器协同工作的网页去噪方法及系统”,对资讯类网页进行预处理,数量达到阈值时,根据块级节点特征生成过滤模板,对非正文节点进行过滤,再通过机器学习方法判断剩余节点是否是正文,最终得到过滤了无关内容的正文文本。此方法正确率98.64%,召回率93.46%。针对网页中结构化字段信息提取,常见方法主要有:一)根据DOM相似度匹配提取;二)基于节点索引路径或节点标签路径提取;三)使用XPath+正则提取字段信息;四)使用CssSelector+正则提取字段信息;五)基于无格式文本提取字段信息。本专利技术针对的场景是复杂网页中结构化字段信息提取。一些常规的结构化字段网页,如商品介绍或职位介绍,字段一般只有十几个,且有明确的特征,字段对应的HTML元素固定不变,可以很容易地通过CssSelector或正则等特征提取。然而一些复杂的网页,如简历信息网页,涉及的候选人字段信息多达200多个,为了在有限的页面上展示尽可能全面的信息,一般招聘网站会隐藏字段值为空的字段对应的节点,这就导致一些字段节点索引链发生变化,进而其对应的XPath或CssSelector会发生变化,所以单纯基于XPath或CssSelector的字段提取方案难以针对复杂网页实现准确提取。然而现有技术存在以下缺陷:一)根据DOM相似度匹配提取,如“CN103488665A一种提取HTML页面选定区域内容的方法”提出根据HTML网页分析制作HTML形式的模板,然后转为元素列表,使用最大相似度算法对元素列表的HTML网页中的节点进行匹配,根据匹配结果,确定模板中的变量并提取信息。此方法不够灵活,如果某个字段是可选的,在进行最大相似度匹配时可能会因为字段缺失导致匹配度不足,出现漏匹配和误匹配情况;此外,针对内容较多的HTML网页,相似度算法计算量大,效率较低。二)基于节点索引路径或节点标签路径提取,如“CN107423391B网页结构化数据的信息提取方法”,针对结构相同的几个HTML样本,预处理去除干扰信息,构成DOM树再进行剪枝重构,对字段对应的叶子节点进行特征路径标记(特征标签路径标记和特征数字路径标记),提取字段时,优先使用特征数字路径标记,如未匹配则使用特征路径标记。此方法假设字段对应的叶子节点对应的索引路径是始终不变的,然而针对一些比较复杂的结构化信息,如果有些字段值为空则此节点不会显示,就会导致后续节点的索引都出现变化;所以按特征数字路径标记的方法难以处理字段可选的情况,而特征路径标记单纯使用了节点标签名,很容易会匹配出很多节点,导致误匹配情况。三)使用XPath+正则提取字段信息,如“CN106951451A一种网页内容提取方法、装置及计算设备”,从收集的样本DOM树中选择节点生成Xpath形式的节点匹配规则,包括节点添加规则、节点删除规则、尾图节点删除规则;根据域名从存储中获取对应的节点匹配规则,对目标HTML构建空的DOM树,按节点添加规则从HTML中选取节点添加到DOM中,按节点删除规则从DOM中删除节点,按尾图节点删除规则从DOM中删除尾图节点。此方案相当于把上一个方案中农的节点索引路径和节点标签路径进行了结合(因为Xpath包含了节点标签名和节点索引),某种程度上错误相比上一个方案会少一些,但依然会存在因为节点可选导致的XPath匹配不到或误匹配的情况。四)使用CssSelector+正则提取字段信息,如“CN104217036B一种网页内容提取方法和设备”,获取网页DOM对应的解析模板,根据模板中的待提取元素、类型、位置和输出格式,找到DOM对应的元素,提取输出结果。元素的位置以CssSelector描述,类型包括字符串、日期、数字、列表。此方案使用CssSelector替换XPath,一定程度上改善了节点的匹配情况,但CssSelector无法彻底解决匹配到的节点不唯一问题,容易出现误匹配,故不适合于提取复杂字段信息。且CssSelector中一部分会用到节点索引,当网站页面发生了部分升级时,节点索引会发生变化,这时只使用CssSelector进行节点定位会出现匹配错误或未匹配的情况。且此方案中使用的CssSelector利用到了隔代选择器,在复杂网页或节点不固定网页中,隔代选择器大大增加了误匹配的概率,更容易出现提取错误。五)基于无格式文本提取字段信息,可进一步分为两种方法:基于机器学习的从文本中提取字段信息方法,以及基于词法分析、正则等规则的字段信息提取。①基于机器学习的从文本中提取字段信息方法,如“CN108629043A网页目标信息的提取方法、装置及存储介质”,从HTML中提取无格式文本,然后进行分词,经TF-IDF得到关键词,计算词向量输入到分类模型确定此HTML的主题类别;使用主题类别对应的命名实体提取模型从无格式文本中提取相关字段。此方案忽略了HTML特征,直接使用文本进行实体字段的提取,但一般命名实体提取模型支持的字段有限,无法适用于复杂的字段情况,且其效果依赖于数据规模和质量,可迁移性差,准确度不够高。②基于词法分析、正则等规则的字段信息提取本文档来自技高网...

【技术保护点】
1.一种复杂网页结构化信息精确提取方法,其特征在于,包括以下步骤:/nS1. 针对目标网页,收集一批样本网页;/nS2. 根据样本网页制定各个区块的查找规则和匹配规则;/nS3. 结合区块情况,确定条目的查找规则和匹配规则;如果是多条区块,则使用条目的查找规则和匹配规则查找匹配每个条目,否则将根节点作为此区块的唯一条目;/nS4. 在区块内,确定定位节点的查找规则和匹配规则;/nS5. 针对字段节点,确定从定位节点到此字段节点的查找规则和匹配规则;/nS6. 通过基于规则或机器学习的方法自动提取各个样本网页中的字段信息,其中规则包括正则表达式和词法分析规则;/nS7. 根据提取的字段信息自动生成解析模板;/nS8. 对自动生成的解析模板进行校对纠正;/nS9. 针对任意HTML网页,根据域名、路径和文本特征选择对应的模板解析提取。/n

【技术特征摘要】
1.一种复杂网页结构化信息精确提取方法,其特征在于,包括以下步骤:
S1.针对目标网页,收集一批样本网页;
S2.根据样本网页制定各个区块的查找规则和匹配规则;
S3.结合区块情况,确定条目的查找规则和匹配规则;如果是多条区块,则使用条目的查找规则和匹配规则查找匹配每个条目,否则将根节点作为此区块的唯一条目;
S4.在区块内,确定定位节点的查找规则和匹配规则;
S5.针对字段节点,确定从定位节点到此字段节点的查找规则和匹配规则;
S6.通过基于规则或机器学习的方法自动提取各个样本网页中的字段信息,其中规则包括正则表达式和词法分析规则;
S7.根据提取的字段信息自动生成解析模板;
S8.对自动生成的解析模板进行校对纠正;
S9.针对任意HTML网页,根据域名、路径和文本特征选择对应的模板解析提取。


2.根据权利要求1所述的一种复杂网页结构化信息精确提取方法,其特征在于,步骤S1包括:
针对要处理的目标网页,收集一批样式与DOM即文档对象模型结构相似,但数据不同的网页作为样本网页;样本网页应当是字段丰富的网页,从而覆盖各种字段变化情况。


3.根据权利要求2所述的一种复杂网页结构化信息精确提取方法,其特征在于,步骤S2中各个区块的查找规则和匹配规则是根据目标节点的DOM特征在指定的属性上记录HTML节点的CssSelector、HTML节点的属性和/或文本特征而形成的;相关属性包括:
用RegionNode节点表示区块,并增加RootSelector和StartSelector属性作为区块的查找规则,用于找到一个或多个包含目标区块节点的候选节点,这两个属性的属性值都是CssSelector;在生成某个节点的CssSelector时忽略容易变化的通用样式类名,忽略HTML元素中包含随机数字的ID;其中RootSelector属性用于定位本区块内容的最深公共父节点,当此父节点包含其他区块内容时,通过StartSelector属性指定此区块在父节点中的定位CssSelector;
在RegionNode节点中新增Feature子节点作为此区块的匹配规则,用于对RootSelector和StartSelector属性筛选出的多个节点进行过滤,最终匹配到一个或多个HTML节点作为区块根节点;Feature子节点的属性包括Selector、SearchKey、SearchPattern和AttrValueFilters;使用Selector属性对候选节点进行子节点查找,如查找到则使用SearchKey属性检查子节点的InnerText是否包含指定的文本,或使用SearchPattern属性匹配模式,或使用AttrValueFilters属性针对子节点的属性进行匹配过滤;将第一个通过Feature子节点匹配到的节点作为区块的初始目标节点,然后自动向后拓展同级或父级的后续HTML节点,在遇到下个区块的初始目标节点前停止,将初始目标节点和拓展节点作为区块的根节点。


4.根据权利要求3所述的一种复杂网页结构化信息精确提取方法,其特征在于,步骤S3包括:
在RegionNode节点下设置Record子节点,表示条目的抽象,Record子节点的RocordSelector属性作为条目的查找规则,指定一个CssSelector用于在区块内初步查找条目的候选节点,再通过RecordFeatureID属性指向一个Feature子节点作为条目的匹配规则,对RecordSelector属性查找的多个候选节点进行过滤匹配,此Feature子节点的属性名称和权利要求3中的Feature子节点相同,但属性值不同;
如果是单条区块,直接将Rocord子节点的所有属性留空,以将区块的所有根节点作为一个条目提取,并以单个字典形式返回条目的提取结果;如果是多条区块,为Rocord子节点的RocordSelector和RecordFeatureId属性设置为非空值,以匹配多个条目各自的根节点,每个条目的提取结果以字典形式返回,区块的提取结果以列表返回,列表中每一项是字典。


5.根据权利要求4所述的一种复杂网页结构化信息精确提取方法,其特征在于,步骤S4包括:
若要提取某个字段,则在Record子节点下增加KeyNode表示定位节点;设置Selector属性作为定位节点的查找规则,其属性值是基于Record子节点的相对CssSelector,用于查找包含定位HTML节点的若干个候选节点;设置SearchKey、SearchPattern和/或AttrValueFilters属性作为定位节点的匹配规则,从若干个候选节点中过滤匹配到目标定位节点,和Feature子节点中同名属性作用相同。


6.根据权利要求5所述的一种复杂网页结构化信息精确提取方法,其特征在于,步骤S5包括:
字段节点表示网页上展示某个字段内容的一个或多个节点;以ContentNode表示字段节点,其VariableKey属性表示字段节点ContentNode的名称;字段节点ContentNode是定位节点KeyNode的子节点,故针对字段节点ContentNode,设置ParentSelector、PrevSelector、NextSelector、ValueSelector属性作为从定位节点KeyNode到字段节点ContentNode的查找规则,分别表示从定位节点KeyNode出发往父节点...

【专利技术属性】
技术研发人员:安永进武伟孙江邵郑翰
申请(专利权)人:北森云计算有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1