CN109657180B - 一种智能化网页内容自动模糊抽取系统 - Google Patents
一种智能化网页内容自动模糊抽取系统 Download PDFInfo
- Publication number
- CN109657180B CN109657180B CN201811511109.6A CN201811511109A CN109657180B CN 109657180 B CN109657180 B CN 109657180B CN 201811511109 A CN201811511109 A CN 201811511109A CN 109657180 B CN109657180 B CN 109657180B
- Authority
- CN
- China
- Prior art keywords
- topic
- node
- xpath
- content
- business
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种智能化网页内容模糊抽取系统,包括模块A:HTML网页语料库的预处理;模块B:HTML网页内容的快速多重索引的自动生成;模块C:候选业务主题的生成;模块D:候选业务主题的模糊验证;模块E:候选业务主题与对应的XPath关联;模块F:HTML网页内容的抽取。这种方法具有两个优势:(1)不依赖网页内容抽取模板。(2)对网页中的业务主题进行自动模糊识别,准确判断它们的含义。上述两个特点,确保了本发明的网页内容自动抽取的准确率和召回率。
Description
技术领域
本发明涉及网页内容的自动分析和抽取领域,特别是涉及一种智能化网页内容自动模糊抽取系统及方法。
背景技术
HTML网页信息抽取技术主要是指从HTML(hyper-text markup language)或者HTML5(hyper-text markup language 5)等语言编写的网页中抽取所需的重要内容,并将抽取的内容转化为某种预先设定的格式,这些内容对商家分析、商品和服务分析、政府监管等重大应用极其关键。
随着互联网、移动互联网的迅速普及,各种基于互联网的应用不断发展,各种业态的网站不断出现。为了吸引用户,商家的网站也设计出别具一格的、各种风格的网页。
这些网页设计上的业务主题多样性、页面形式多样性,给网页内容自动分析和内容抽取造成了极大的挑战,同时也使得与网页分析相关的应用难以取得满意的效果。
因此,本发明面临的关键技术难题是:如何自动处理HTML网页多样性的问题,并且完成网页内容的准确抽取?
为了认识上述技术难题,下面给出一些具体的分析。每一个网页内容都表达一定的业务主题,不同行业(或者不同业务)的业务主题也千差万别,无法进行统一规定。即使是同一行业(或者同一业务)的两个商家,他们在给业务主题命名时,名称也是五花八门。例如,为了满足小微企业、中低收入阶层投融资需求,为大众创业、万众创新打开了大门,近几年我国互联网金融发展迅速,出现了几千个互联网金融网站。在这些网站上,关于“融资目标”这一业务主题的命名,可以是“融资需求”、“筹款目标”、“融资额度”等等。这些词在形式上是不同的,但是它们反映的主题就是“融资目标”。另外,一个网页(特别是首页)通常伴随着较多的噪声或干扰内容,如广告信息、导航信息、版权信息等等。尽管这些内容在网页中具有一定的作用,但是这些内容对于其它重要内容的抽取却毫无用处,也严重干扰了网页内容抽取的准确率。
传统上,网页内容抽取是基于人工预设模板的抽取,即基于预先设计的抽取模板,抽取系统自动抽取网页内容。由于网页形式的多样性,人工建立的模板不仅耗费大量的人工,而且也难以覆盖快速发展的网站需求,因此基于人工预设模板的抽取方法非常低效。
发明内容
本发明所要解决的技术问题:针对以上问题,本发明提出一种具有自动模糊抽取能力的网页内容自动抽取系统及方法。这种方法具有两个优势:(1)不依赖网页内容抽取模板。(2)对网页中的业务主题进行自动模糊识别,准确判断它们的含义。上述两个特点,确保了本发明的网页内容自动抽取的准确率和召回率。本发明借助人工智能分析技术,利用对风格各异的网站网页进行自动识别,提出了一种精准高效的网页内容模糊抽取系统及方法,为其它的网页应用(统计分析、商家发现、商机发现、政府监管等)提供必要的结构化信息。
技术方案:为了解决以上问题,本发明的采用了如下技术方案,一种智能化网页内容模糊抽取系统及方法,包括:一种智能化网页内容模糊抽取系统,其特征在于,包括以下模块:
模块A:HTML网页语料库的预处理;
模块B:HTML网页内容的快速多重索引的自动生成;
模块C:候选业务主题的生成;
模块D:候选业务主题的模糊验证;
模块E:候选业务主题与对应的XPath关联;
模块F:HTML网页内容的抽取。
所述的模块A的实施步骤如下:对一个含有HTML网页的语料库Σ={P1,P2,...,Pn},对每个网页Pi的DOM树(记为DOMi),对DOMi中的每个节点node,执行以下步骤:
步骤A-1:对node中的符号串“ ;”用空格替代,对node中的符号串“&;”用“&”替代,node中的符号串“<;”用“<”替代,对node中的符号串“>;”用“>”替代;
步骤A-2:如果node含有<script>(用于网页控制)、<style>(用于网页布局)、<br>(即换行节点,等效于换行符)<img>(即图片节点)、<input>(即输入框节点,用于用户输入信息)或者button(即按钮节点,用于用户点击),或者 node中有display:none属性或者href属性,那么从DOMi中删除node节点;
步骤A-3:如果node的子节点不含有标签,那么自动增加一个特殊的标签 <mytag>。
所述模块B的实施步骤如下:引入两个索引map<string,integer>map_count和map<string,list<string>>map_xpath_reverse。
对网页语料库中的每一个HTML网页Pi,做以下步骤:
步骤B-1:以标签对网页Pi进行分割,形成形如<标签1><内容文本1><标签2>< 内容文本2>...<标签n><内容文本n></标签1>的DOM树结构,将切分后的<内容文本i>(1≤i≤n)在map_count中找出对应的键部分:如果(<内容文本i>,value)属于map_count,即存在(<内容文本i>,value)属于map_count,那么value=value+1;否则将(<内容文本i>,1)添加到map_count中。
步骤B-2:以深度优先的方式遍历HTMP页面Pi,把每个遍历到的节点的XPath 路径放入到map_xpath_reverse中的XPath部分,将XPath对应的节点的内容文本加入到map_xpath_reverse中的XPath的内容文本部分。
所述模块C的实施步骤如下:引入一个数据结构list<stirng>topic_list,用于存放候选的业务主题;从头开始遍历map_count,对map_count中的每一对 (key,value),执行以下步骤:
步骤C-1:如果key是一个数词、数量词、百分数、时间词,或者key包含标点符号,那么key不是一个业务主题;
步骤C-2:如果TCW(即topic-component words的缩写)不为空,而且key包含TCW中的一个主题命名要素,同时value>5,那么key是一个业务主题,将key放入topic_list中。
所述模块D的实现方法如下所述:引入一个单字统计表map<string,integer>char_count,其中string部分称为char_count的键部分,integer部分称为 char_count的键值部分,执行以下步骤:
步骤D-1:从头至尾遍历topic_list的每一项topic,设topic由汉字U1、 U2、...、Uj、...、Uk构成;对每个Uj(其中1≤j≤k),如果char_count的键部分含有Uj,即存在(Uj,value)属于char_count,那么value=value+1;如果没有char_count的键部分含有Uj,那么将(Uj,1)存放到char_count中;
步骤D-2:从头至尾遍历topic_list的每一项topic,设topic由汉字V1、 V2、...、Vj、...、Vm构成;如果
那么在topic_list中仍保留topic(即topic是一个业务主题);否则从 topic_list中删除topic(即topic不是一个业务主题)。
所述模块E的实施方法如下:引入一个数据结构list<string,list<string>>topic_xpath,用于存放topic_l ist中的候选业务主题及其与XPath的关联;从头开始遍历map_xpath_reverse,对map_xpath_reverse中的每对(XPath,XPath的内容文本),执行以下步骤:对XPath的内容文本部分中的每一项topic,如果topic 出现在topic_l ist中,那么执行以下:如果topic不属于topic_xpath的XPath部分,那么将(topic,XPath)存放到topic_xpath中,否则将XPath加入到已存在于topic_xpath中的topic对应的XPath部分中。
所述模块F的具体实施子步骤如下:对DOM树语料库Γ={DOM1,DOM2,...,DOMn}中的每一个DOMi,对DOMi中的每个节点node,执行以下步骤:
步骤F-1:如果node存在两个子节点node1和node2(其中node1的位置在node2 之前),并且node1对应的内容文本存在于topic_list中,那么node1是业务主题节点,node2的内容文本为业务主题值,因此将二元组(node1的内容文本,node2 的内容文本)存入结果集合Ω中;
步骤F-2:如果node存在两个子节点node1和node2(其中node1的位置在node2 之前),并且node2对应的内容文本存在于topic_list中,那么node2的内容文本为业务主题,node1的内容文本为上述业务主题的业务主题值,因此将二元组 (node2的内容文本,node1的内容文本)存入结果集合Ω中;
步骤F-3:如果node存在两个子节点node1和node2(其中node1的位置在node2 之前),并且node1有一组子节点node11、node12、...、node1k,如果node11、 node12、...、node1k的内容文本都存在于topic_list中,那么node11的内容文本、node12的内容文本、...、node1k的内容文本为业务主题,node2的子节点 node21、node22、...、node2k的内容文本分别为上述业务主题的业务主题值,因此将(node11的内容文本,node21的内容文本)、(node12的内容文本,node22 的内容文本)、...、(node1k的内容文本,node2k的内容文本)存入结果集合Ω中;
步骤F-4:如果node存在两个子节点node1和node2(其中node1的位置在node2 之前),并且node2有一组子节点node21、node22、...、node2k,如果node21、 node22、...、node2k的内容文本都存在于topic_list中,那么node21的内容文本、node22的内容文本、...、node2k的内容文本为业务主题,node1的子节点 node11、node12、...、node1k的内容文本分别为上述业务主题的业务主题值,因此将(node21的内容文本,node11的内容文本)、(node22的内容文本,node12 的内容文本)、...、(node2k的内容文本,node1k的内容文本)存入结果集合Ω中;
最终,输出从网页语料库抽取出的结果集合Ω。
有益效果:本发明提出了一种智能化网页内容模糊抽取的系统及方法。我们对多达13个网站进行了大规模测试。实验中,本发明的系统针对不同的网站、不同的网页做了详尽的实验分析。根据人工逐一地检测,正确率高达93.69%,召回率达到 91.08%。因此,本发明取得了较好的网页内容抽取性能,为其它的网页应用奠定了坚实的基础。
附图说明
图1是一种智能化网页内容自动模糊抽取系统的工作流程图;
图2是一型DOM节点的两种形式,如图2(a)和图2(b)所示;
图3是一型DOM节点的两种形式的示例,其中图3(a)给出的是对应图2(a) 的示例,图3(b)给出的是对应图2(b)的示例;
图4是二型DOM节点的两种形式,如图4(a)和图4(b)所示;
图5是二型DOM节点的两种形式的示例,其中图5(a)给出的是对应图4(a),的示例,图5(b)给出的是对应图4(b)的示例。
具体实施方式
为了能够更清楚的说明本发明,以下定义并解释如下的术语:
(1)HTML网页、DOM树、DOM节点、DOM节点的属性:HTML网页简称网页,是互联网和移动互联网上的HTML网页和H5网页的统称。根据国际规范,HTML网页由一个棵DOM(DocumentObject Model,即文档对象化模型)树构成,每个节点称为一个DOM节点,也称HTML节点,或简称节点。其中,每个DOM节点有一对标签以及其中的内容文本构成,形如<标签[属性]>内容文本</标签>。其中,内容文本为该DOM节点的内容部分;属性规定了内容文本的一些特性。例如,在DOM节点<div style="display:none">内容文本</div>中,style="display:none"就是一个表示不显示的属性,简记为display:none属性。又如,在节点<a href="http://bj. edai.com">易贷网</a>中,有一个href="http://bj.edai.com"属性,简记为href 属性。
(2)业务主题、业务主题节点、业务主题值、业务主题值节点:在不致混淆的情况下,业务主题也简称为主题。每个网页内容都蕴含着一定的业务主题,一个业务主题反映了业务的某一个方面。每个业务主题也可以细化为一些更小的业务主题,称为业务子主题(简称子主题)。在HTML网页中,业务主题一般出现在一个DOM树上的节点上:在DOM树上,有些节点代表业务主题(这些节点称为业务主题节点),有些节点代表业务主题值(这些节点称为业务主题值节点)。下面举例说明。图3(a)给出了一个金融网站的节点,<div>与</div>构成了一个 <div>节点,它包含了两个节点,即<span>年化利率</span>以及 <span>9.8%</span>。在本发明中,<span>年化利率</span>称为业务主题节点,这是因为年化利率是金融领域的一个业务主题;而<span>9.8%</span>称为业务主题值节点,9.8%对应着年化利率的值,称为业务主题值节点。
(3)业务主题的命名要素:在网页设计中,设计人员对每个业务主题进行命名时,往往选择意义明确的词语来表达业务主题。例如,在车贷类金融网站上,经常看到“贷款金额”这一的业务主题,它含有两个命名要素:“贷款”、“金额”,分别需要向社会大众筹集的资金额度。表1给出了一些常见的业务主题的命名要素。
表1:车贷类金融网站中的常见业务主题的命名要素
又如,对“年化利率”这一的业务主题,它含有两个命名要素:“年化”、“利率”,它们清晰地告诉用户投资收益这一条用户关注的信息。
为了便于快速地定位和抽取HTML中的业务主题,本发明允许用户事先给出一个业务主题的命名要素集合,简记TCW(即topic-component words的缩写)。例如TCW={金额,融资,收益,放款,利息,借款,借贷,余额,利率,本息,投资,奖励,本金,购买,限额,...}。当然,用户也可以不提供任何业务主题的命名要素,此时 TCW为一个空集合。
(4)数词、数量词、百分数、时间词:本发明中需要识别四种内容文本的基本类型。数词是由阿拉伯数字和小圆点“.”构成的字符串,例如100、23.1等。数量词是由数词和量词构成的字符串,例如200元、500克等。百分数是由数词和百分号“%”构成的字符串,例如9.8%、50%等。时间词是由形如以下的7种形式构成的字符串:数词+年+数词+月+数词+日、数词-数词-数词、数词/数词/数词、数词+年+数词+月、数词+年、数词-数词、数词/数词,例如2018年10月12日、 2018-10-12、2018/10/12等均是时间词。
(5)业务主题-业务主题值的两种类型的DOM节点:业务主题-业务主题值的DOM 节点格式主要分为两种类型:
第一种类型DOM节点:简称一型DOM节点。业务主题节点、业务主题值节点在同一个父节点之下,如以下所示:
如图3(a)所述,<span>年化利率</span>是业务主题节点,<span>9.8%</span>是业务主题值节点。如图3(b)所述,<span>截至时刻</span>也是一个业务主题节点,它对应的业务主题值节点是<span>2018年10月20日23:00</span>。对上述两个HTML节点,本发明的输出结果是{(年化利率,9.8%),(截至时刻,2018 年10月20日23:00)},这个输出结果更容易被其他应用所使用。
第二种类型DOM节点:简称二型DOM节点。多个业务主题节点在同一个节点 node1之下层,对应的业务主题值在另一个节点node2之下层,并且node1节点和 node2节点在同一个父节点node之下层,如下图4(a)和图4(b)所示。如图4(a) 所述,node11、node12、node13、...为node1的子节点,分别对应topic1、topic2、 topic3、...等业务主题,并且子节点node11的位置在子节点node12之前,子节点node12的位置在node13之前,等等。node21、node22、node23、...为node2的子节点,它们分别对应topic1、topic2、topic3、...等业务主题值。如图4(b) 所述,与4图(a)所示的次序不一样,node2的子节点node21、node22、node23、... 分别对应topic1、topic2、topic3、...等业务主题,并且子节点node21的位置在子节点node22之前,子节点node22的位置在node23之前,等等。node1的子节点node11、node12、node13、...分别对应于topic1、topic2、topic3、...等业务主题值。
(6)XPath:即为XML(extensible markup language)路径语言,它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,有不同类型的节点,包括节点节点、属性节点和文本节点,提供在数据结构树中找寻节点的能力。预处理之后的HTML网页和XML格式一致,此时可以使用XPath来定位HTML 节点位置。
(7)Java中的若干术语:本发明中的数据结构map、string、list、integer 源自Java变成语言,在此基础上本发明引入了一些新的数据结构,如map_count、 topic_list、map_xpath_reverse、char_count。
下面结合附图对本发明作进一步详细说明。本发明提出的一种智能化网页内容模糊抽取系统分为六个大的模块,每个大的模块的具体实施又由一些步骤完成。下面给出模块功能、核心步骤的详细解释。
模块A:HTML网页语料库的预处理
在网页语料库中,每个HTML网页都带有一些无关的、而且会干扰内容抽取的节点,因此需要进行预处理。HTML网页的预处理又分成3个步骤:HTML编码反转义处理、去除无用标签、增加文本节点标签。
模块A的实施步骤如下:对一个含有HTML网页的语料库Σ={P1,P2,...,Pn},对每个网页Pi的DOM树(记为DOMi),对DOMi中的每个节点node,执行以下步骤:
步骤A-1:对node中的符号串“ ;”用空格替代,对node中的符号串“&;”用“&”替代,node中的符号串“<;”用“<”替代,对node中的符号串“>;”用“>”替代。
步骤A-2:如果node含有<script>(用于网页控制)、<style>(用于网页布局)、<br>(即换行节点,等效于换行符)<img>(即图片节点)、<input>(即输入框节点,用于用户输入信息)或者button(即按钮节点,用于用户点击),或者 node中有display:none属性或者href属性,那么从DOMi中删除node节点。
步骤A-3:如果node的子节点不含有标签,那么自动增加一个特殊的标签 <mytag>。
需要对步骤A-3补充说明:由于网站页面设计时,HTML编写不规范,可能会导致HTML网页的某些节点没有标签,这会降低后续的内容抽取处理效率。例如,在以下节点中,可投金额没有任何标签。
步骤A-3的功能就是给可投金额添加一个特殊标签<mytag>,使原来的节点变成如下的节点:
模块B:HTML网页内容的快速多重索引的自动生成
为了本发明后续模块的快速分析,需要对每个HTML网页建立快速的多重索引:map<string,integer>map_count、map<string,list<string>>map_xpath_reverse,其中map_count的string部分也称为键部分,integer部分也称为键值部分。map_xpath_reverse的string部分也称为XPath路径部分,list<string>部分也称为XPath 的内容文字部分。
模块B的具体实现步骤如下:对每一个HTML网页Pi,做以下步骤:
步骤B-1:以标签对网页Pi进行分割,形成形如<标签1><内容文本1><标签2>< 内容文本2>...<标签n><内容文本n></标签1>的DOM树结构,将切分后的<内容文本i>(1≤i≤n)在map_count中找出对应的键部分:如果<内容文本i>存在于map_count 中,即存在(<内容文本i>,value)属于map_count,那么value=value+1;否则将(< 内容文本i>,1)添加到map_count中。
步骤B-2:以深度优先的方式遍历HTMP页面Pi,把每个遍历到的节点的XPath 路径放入到map_xpath_reverse中的XPath路径部分,将XPath对应的节点的内容文本加入到map_xpath_reverse中的XPath的内容文本部分。
为便于理解map_xpath_reverse的结构,下面给出了一个实验中的 map_xpath_reverse的部分结果。
模块C:候选业务主题的生成
每个网站的网页都包含一些特定的业务主题。例如,在众筹类型网站的网页中,通常包含以下业务主题:“融资金额”、“企业名称”、“投资进度”、“项目截止时间”、“年化收益率”等等。但是,各个网站对应同一个字段的关键词可能有多种变化。例如,对于主题“年化收益率”,可能出现“年化收益”、“往期年化收益”、“预期年化”、“年出借利率”,等等。
模块C的实施步骤如下:
引入一个数据结构存list<stirng>topic_list,用于存放候选的业务主题。从头开始遍历map_count,对map_count中的每一对(key,value),执行以下步骤:
步骤C-1:如果key是一个数词、数量词、百分数、时间词,或者key包含标点符号,那么key不是一个业务主题。
步骤C-2:如果TCW不为空,而且key包含TCW中的一个主题命名要素,同时 value>α,那么key是一个业务主题,将key放入topic_list中。其中,α为一个阈值,通过大量实验发现,α=5时,本发明取得最佳的效果。
模块D:候选业务主题的模糊验证
业务主题的模糊验证是本发明的核心方法之一,也是本发明的难点之一。业务主题节点的识别精度直接影响业务内容抽取的质量。经过大量的研究以及大量的实验,本发明提出了一套业务主题节点的模糊验证方法。
模块D的实现方法如下所述:
引入一个单字统计表map<string,integer>char_count,其中string部分称为char_count的键部分,integer部分称为char_count的键值部分。执行以下步骤:
步骤D-1:从头至尾遍历topic_list的每一项topic,设topic由单字U1、 U2、...、Uj、...、Uk构成。对每个Uj(其中1≤j≤k),如果char_count的键部分将含有Uj,即存在(Uj,value)属于char_count,那么Uj对应的键值value增加 1,即value=value+1;如果没有char_count的键部分含有Uj,那么将(Uj,1) 存放到char_count中。
步骤D-2:从头至尾遍历topic_list的每一项topic,设topic由汉字V1、 V2、...、Vj、...、Vm构成。如果那么在topic_list 中仍保留topic(即topic是一个业务主题);否则从topic_list中删除topic(即 topic不是一个业务主题)。其中,β是一个参数,通过试验发现,β=2时,本发明取得最佳效果。
模块E:候选业务主题与对应的XPath关联
在模块E中,本发明需要使用一个新的数据结构l ist<string,list<string>>topic_xpath,用于存放topic_l ist中的候选业务主题及其与XPath的关联。为了便于理解,下面给出了一个topic_xpath示例:
在上例中,年化利率与它在一个DOM节点中的XPath//body[1]/div[5]/div[2]/div[1]/div[2]/p[1]/span[1]关联起来。当然,年化利率也可能与其它的DOM节点的 XPath进行关联,即形成年化利率与XPath一对多的关联。
模块E的实施方法如下:引入一个数据结构list<string,list<string>> topic_xpath,用于存放topic_list中的候选业务主题及其与XPath的关联。从头开始遍历map_xpath_reverse,对map_xpath_reverse中的每对(XPath,XPath的内容文本),执行以下步骤:对XPath的内容文本部分中的每一项topic,如果topic 出现在topic_list中,那么执行以下:如果topic不属于topic_xpath的XPath部分,那么将(topic,XPath)存放到topic_xpath中,否则将XPath加入到已存在于topic_xpath中的topic对应的XPath部分中。
模块F:HTML网页内容的抽取
对一个含有HTML网页的语料库Σ={P1,P2,...,Pn}中。前面步骤已经产生了每个网页Pi的DOM树,记为DOMi。下面介绍模块F的具体执行步骤,其中步骤F-1 和步骤F-2抽取一型DOM节点的内容(即业务主题、业务主题值),而步骤F-3 和步骤F-4抽取二型DOM节点的内容(即业务主题、业务主题值)。
步骤F的具体实施子步骤如下:对DOM树语料库Γ={DOM1,DOM2,...,DOMn} 中的每一个DOMi,对DOMi中的每个节点node,执行以下步骤:
步骤F-1:如果node存在两个子节点node1和node2(其中node1的位置在node2 之前),并且node1对应的内容文本存在于topic_list中,那么node1是业务主题节点,node2的内容文本为业务主题值,因此将二元组(node1的内容文本,node2 的内容文本)存入结果集合Ω中。
步骤F-2:如果node存在两个子节点node1和node2(其中node1的位置在node2 之前),并且node2对应的内容文本存在于topic_list中,那么node2的内容文本为业务主题,node1的内容文本为上述业务主题的业务主题值,因此将二元组 (node2的内容文本,node1的内容文本)存入结果集合Ω中。
步骤F-3:如果node存在两个子节点node1和node2(其中node1的位置在node2 之前),并且node1有一组子节点node11、node12、...、node1k,如果node11、 node12、...、node1k的内容文本都存在于topic_list中,那么node11的内容文本、node12的内容文本、...、node1k的内容文本为业务主题,node2的子节点 node21、node22、...、node2k的内容文本分别为上述业务主题的业务主题值,因此将(node11的内容文本,node21的内容文本)、(node12的内容文本,node22 的内容文本)、...、(node1k的内容文本,node2k的内容文本)存入结果集合Ω中。
步骤F-4:如果node存在两个子节点node1和node2(其中node1的位置在node2 之前),并且node2有一组子节点node21、node22、...、node2k,如果node21、 node22、...、node2k的内容文本都存在于topic_list中,那么node21的内容文本、node22的内容文本、...、node2k的内容文本为业务主题,node1的子节点 node11、node12、...、node1k的内容文本分别为上述业务主题的业务主题值,因此将(node21的内容文本,node11的内容文本)、(node22的内容文本,node12 的内容文本)、...、(node2k的内容文本,node1k的内容文本)存入结果集合Ω中。
最终,输出从网页语料库抽取出的结果集合Ω。
本发明的实验效果
本发明提出了一种智能化网页内容模糊抽取的系统和方法。我们对多达13个网站进行了大规模测试。实验中,本发明的系统针对不同的网站、不同的网页对抽取结果集合Ω做了详尽的实验分析。同时对算法中的参数α和β进行实验,结果发现α=5、β=2,本发明取得最佳的效果。实验结果参见表2。
根据对实验结果的人工逐条检测,本发明的系统抽取的网页内容取得了平均正确率93.69%,平均召回率达到91.08%。因此,本发明取得了理想的网页内容抽取性能,为其他的网页应用(如统计分析、商家发现、商机发现、政府监管)等奠定了坚实的基础。
表2:实验结果表
网站名称 | 召回率 | 准确率 |
创贷网 | 9/11(82%) | 9/12(75%) |
春雨金服 | 11/11(100%) | 11/14(79%) |
鼎诚创投 | 16/20(80%) | 16/21(76%) |
蜂融网 | 10/11(91%) | 10/10(100%) |
河北长汇 | 11/14(79%) | 11/16(69%) |
恒信易贷 | 12/13(92%) | 13/14(93%) |
红杉资产 | 8/12(67%) | 8/14(57%) |
金牌理财 | 9/11(82%) | 9/9(100%) |
金融社 | 14/14(100%) | 14/14(100%) |
人文贷 | 12/14(86%) | 12/14(86%) |
春天金融 | 10/10(100%) | 10/11(91%) |
方泽金服 | 9/9(100) | 9/11(82%) |
718金融 | 7/10(70%) | 7/7(100%) |
天邦 | 16/18(89%) | 16/21(76%) |
平均 | 93.69% | 91.08% |
Claims (1)
1.一种智能化网页内容模糊抽取系统,其特征在于,包括以下模块:
模块A:HTML网页语料库的预处理
所述的模块A的实施步骤如下:对一个含有HTML网页的语料库S={P1, P2, ..., Pn},对每个网页Pi的DOM树,记为DOMi,对DOMi中的每个节点node,执行以下步骤:
步骤A-1:对node中的符号串“ ”用空格替代,对node中的符号串“&”用“&”替代,node中的符号串“<”用“<”替代,对node中的符号串“>”用“>”替代;
步骤A-2:如果node含有用于网页控制的<script>、用于网页布局的<style>、换行节点的<br>、图片<img>、输入框节<input>或者按钮<button>,或者node中有display:none属性或者href属性,那么从DOMi中删除node节点;
步骤A-3:如果node的子节点不含有标签,那么自动增加一个特殊的标签<mytag>;
模块B:HTML网页内容的快速多重索引的自动生成
所述模块B的实施步骤如下:引入两个索引 map<string, integer>map_count和map<string, list<string>>map_xpath_reverse;对网页语料库中的每一个HTML网页Pi,做以下步骤:
步骤B-1:以标签对网页Pi进行分割,形成形如<标签1><内容文本1><标签2><内容文本2>...<标签n><内容文本n></标签1>的DOM树结构,将切分后的<内容文本i>(1≤i≤n)在map_count中找出对应的键部分:如果(<内容文本i>, value)属于map_count,即存在(<内容文本i>, value)属于map_count,那么value=value+1;否则将(<内容文本i>, 1)添加到map_count中;
步骤B-2:以深度优先的方式遍历HTML页面Pi,把每个遍历到的节点的XPath路径放入到map_xpath_reverse中的XPath部分,将XPath对应的节点的内容文本加入到map_xpath_reverse中的XPath的内容文本部分;
模块C:候选业务主题的生成
所述模块C的实施步骤如下:引入一个数据结构list<stirng>topic_list,用于存放候选的业务主题;从头开始遍历map_count,对map_count中的每一对(key,value),执行以下步骤:
步骤C-1:如果key是一个数词、数量词、百分数、时间词,或者key包含标点符号,那么key不是一个业务主题;
步骤C-2:如果TCW(topic-component words的缩写)不为空,而且key包含TCW中的一个主题命名要素,同时value>5,那么key是一个业务主题,将key放入topic_list中;
模块D:候选业务主题的模糊验证
所述模块D的实现方法如下所述:引入一个单字统计表map<string, integer>char_count,其中string部分称为char_count的键部分,integer部分称为char_count的键值部分,执行以下步骤:
步骤D-1:从头至尾遍历topic_list的每一项topic,设topic由汉字U1、U2、...、Uj、...、Uk构成;对每个Uj,其中1≤j≤k,如果char_count的键部分含有Uj,即存在(Uj,value)属于char_count,那么value=value+1;如果没有char_count的键部分含有Uj,那么将(Uj, 1)存放到char_count中;
步骤D-2:从头至尾遍历topic_list的每一项topic,设topic由汉字V1、V2、...、Vj、...、Vm构成;如果
那么在topic_list中仍保留topic,即topic是一个业务主题;否则从topic_list中删除topic,即topic不是一个业务主题;
模块E:候选业务主题与对应的XPath关联
所述模块E的实施方法如下:引入一个数据结构list<string, list<string>>topic_xpath,用于存放topic_list中的候选业务主题及其与XPath的关联;从头开始遍历map_xpath_reverse,对map_xpath_reverse中的每对(XPath,XPath的内容文本),执行以下步骤:对XPath的内容文本部分中的每一项topic,如果topic出现在topic_list中,那么执行以下:如果topic不属于topic_xpath的XPath部分,那么将(topic,XPath)存放到topic_xpath中,否则将XPath加入到已存在于topic_xpath中的topic对应的XPath部分中;
模块F:HTML网页内容的抽取
所述模块F的具体实施子步骤如下:对DOM树语料库G={DOM1, DOM2, ..., DOMn}中的每一个DOMi,对DOMi中的每个节点node,执行以下步骤:
步骤F-1:如果node存在两个子节点node1和node2,其中node1的位置在node2之前,并且node1对应的内容文本存在于topic_list中,那么node1是业务主题节点,node2的内容文本为业务主题值,因此将二元组(node1的内容文本,node2的内容文本)存入结果集合W中;
步骤F-2:如果node存在两个子节点node1和node2,其中node1的位置在node2之前,并且node2对应的内容文本存在于topic_list中,那么node2的内容文本为业务主题,node1的内容文本为上述业务主题的业务主题值,因此将二元组(node2的内容文本,node1的内容文本)存入结果集合W中;
步骤F-3:如果node存在两个子节点node1和node2,其中node1的位置在node2之前,并且node1有一组子节点node11、node12、...、node1k,如果node11、node12、...、node1k的内容文本都存在于topic_list中,那么node11的内容文本、node12的内容文本、...、node1k的内容文本为业务主题,node2的子节点node21、node22、...、node2k的内容文本分别为上述业务主题的业务主题值,因此将(node11的内容文本,node21的内容文本)、(node12的内容文本,node22的内容文本)、...、(node1k的内容文本,node2k的内容文本)存入结果集合W中;
步骤F-4:如果node存在两个子节点node1和node2,其中node1的位置在node2之前,并且node2有一组子节点node21、node22、...、node2k,如果node21、node22、...、node2k的内容文本都存在于topic_list中,那么node21的内容文本、node22的内容文本、...、node2k的内容文本为业务主题,node1的子节点node11、node12、...、node1k的内容文本分别为上述业务主题的业务主题值,因此将(node21的内容文本,node11的内容文本)、(node22的内容文本,node12的内容文本)、...、(node2k的内容文本,node1k的内容文本)存入结果集合W中;
最终,输出从网页语料库抽取出的结果集合W。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811511109.6A CN109657180B (zh) | 2018-12-11 | 2018-12-11 | 一种智能化网页内容自动模糊抽取系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811511109.6A CN109657180B (zh) | 2018-12-11 | 2018-12-11 | 一种智能化网页内容自动模糊抽取系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109657180A CN109657180A (zh) | 2019-04-19 |
CN109657180B true CN109657180B (zh) | 2021-11-26 |
Family
ID=66114070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811511109.6A Active CN109657180B (zh) | 2018-12-11 | 2018-12-11 | 一种智能化网页内容自动模糊抽取系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109657180B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193944A (zh) * | 2010-03-12 | 2011-09-21 | 三星电子(中国)研发中心 | 网页主题内容抽取方法 |
CN108920434A (zh) * | 2018-06-06 | 2018-11-30 | 武汉酷犬数据科技有限公司 | 一种通用的网页主题内容提取方法和系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794311B (zh) * | 2010-03-05 | 2012-06-13 | 南京邮电大学 | 基于模糊数据挖掘的中文网页自动分类方法 |
CN102831121B (zh) * | 2011-06-15 | 2015-07-08 | 阿里巴巴集团控股有限公司 | 一种网页信息抽取的方法和系统 |
CN102254014B (zh) * | 2011-07-21 | 2013-06-05 | 华中科技大学 | 一种网页特征自适应的信息抽取方法 |
US20150067476A1 (en) * | 2013-08-29 | 2015-03-05 | Microsoft Corporation | Title and body extraction from web page |
CN105868363B (zh) * | 2016-03-29 | 2018-12-14 | 中国农业银行股份有限公司 | 一种基于模糊逻辑的网页页面正文抽取方法及系统 |
CN108563729B (zh) * | 2018-04-04 | 2022-04-01 | 福州大学 | 一种基于dom树的招标网站中标信息抽取方法 |
-
2018
- 2018-12-11 CN CN201811511109.6A patent/CN109657180B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193944A (zh) * | 2010-03-12 | 2011-09-21 | 三星电子(中国)研发中心 | 网页主题内容抽取方法 |
CN108920434A (zh) * | 2018-06-06 | 2018-11-30 | 武汉酷犬数据科技有限公司 | 一种通用的网页主题内容提取方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109657180A (zh) | 2019-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101593200B (zh) | 基于关键词频度分析的中文网页分类方法 | |
CN110633409B (zh) | 一种融合规则与深度学习的汽车新闻事件抽取方法 | |
Maekawa et al. | Balanced corpus of contemporary written Japanese | |
CN103544210B (zh) | 一种识别网页类型的系统和方法 | |
US10229154B2 (en) | Subject-matter analysis of tabular data | |
CN106446072B (zh) | 网页内容的处理方法和装置 | |
CN112667940B (zh) | 基于深度学习的网页正文抽取方法 | |
CN112925901B (zh) | 一种辅助在线问卷评估的评估资源推荐方法及其应用 | |
CN116050397B (zh) | 一种长文本摘要生成方法、系统、设备及存储介质 | |
Badawi et al. | Kurdish news dataset headlines (KNDH) through multiclass classification | |
CN117034948B (zh) | 基于多特征自适应融合的段落识别方法、系统及存储介质 | |
CN111178080B (zh) | 一种基于结构化信息的命名实体识别方法及系统 | |
Jahan et al. | A pronoun replacement-based special tagging system for bengali language processing (blp) | |
Kowsher et al. | Banglalm: Data mining based bangla corpus for language model research | |
CN111401056A (zh) | 一种从多类文本中提取关键词的方法 | |
CN109657180B (zh) | 一种智能化网页内容自动模糊抽取系统 | |
Swamy et al. | Nit-agartala-nlp-team at semeval-2020 task 8: Building multimodal classifiers to tackle internet humor | |
CN109871429A (zh) | 融合Wikipedia分类及显式语义特征的短文本检索方法 | |
CN110688453B (zh) | 基于资讯分类的场景应用方法、系统、介质及设备 | |
Eghbalzadeh et al. | Persica: A Persian corpus for multi-purpose text mining and Natural language processing | |
CN107145947A (zh) | 一种信息处理方法、装置及电子设备 | |
CN108897749A (zh) | 基于语法树和文本块密度的网页信息抽取方法及系统 | |
CN117332180B (zh) | 基于大语言模型的研报智能写作方法、设备和存储介质 | |
Gao et al. | Deep learning based network news text classification system | |
Xiang et al. | A Rule-Based Unstructured Information Extraction Model for Announcements of Listed Companies' Stock Increase or Decrease |
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 |