CN103064966B - 一种从单记录网页中抽取规律噪音的方法 - Google Patents
一种从单记录网页中抽取规律噪音的方法 Download PDFInfo
- Publication number
- CN103064966B CN103064966B CN201210592795.0A CN201210592795A CN103064966B CN 103064966 B CN103064966 B CN 103064966B CN 201210592795 A CN201210592795 A CN 201210592795A CN 103064966 B CN103064966 B CN 103064966B
- Authority
- CN
- China
- Prior art keywords
- node
- text
- tree
- dom tree
- iterator
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种从单记录网页中抽取规律噪音的方法,所述方法包括:首先将多个单记录网页转化为DOM树,并且将所述DOM树按照结构进行分类;然后,将同一类别的DOM树进行对齐合并得到站点板块风格树;在所述站点版块风格树中定位网页正文标题节点的近似位置和网页正文主体节点的近似位置,最后根据所述网页正文标题节点和所述网页正文主体节点的近似位置,抽取正文前、正文中和正文后的规律噪音。所述方法减少了建站点版块风格树所需的空间资源、降低了可能出现的漏抽取的情况,加快了抽取速度;此外,本发明的抽取结果具有较高的准确性,取得了较好的效果,并且可靠性高。
Description
技术领域
本发明涉及网络信息检索领域,以及更具体地,涉及用于从单记录网页(即用一条数据记录单一风格的网页,该数据记录是指网页的主体部分的区域)中分别抽取出正文前、正文中和正文后规律噪音的方法。
背景技术
在信息化时代,获得信息的途径越来越多。互联网作为信息的载体,在传播效率和信息容量方面都有无可替代的地位。目前,互联网已经成为人们获取各种知识、信息的重要来源。然而,随着Web技术的飞速发展,互联网上的海量数据信息每天以级数增长,而且信息的内容包罗万象,形式五花八门。网页噪音在网页的内容中也占据了一定的比例。对于研究人员和应用人员来讲,在网页数据的处理中有些噪音内容不是必需的,甚至有些噪音内容会严重影响部分研究和应用的效果,而且随着噪音的形式也变得多种多样,用户想要从互联网上获得所需要的信息也变得越来越困难。因此,去掉网页上的噪音已经成为进一步处理网页数据的重要的预处理步骤。如何更好地消除网页噪音,寻找有意义的信息,使得网页去噪技术成为网络信息检索特有的一个研究领域。而且随着许多研究如信息检索、文本分类、搜索引擎等技术应用到Web上,去除网页上的噪音也变得尤其重要。
网页上的噪音内容根据噪音内容的粒度大小,可以分为全局噪音和局部噪音。全局噪音指网页上粒度较大的噪音,通常是内容重复的网页(如镜像网站、复制文章);局部噪音是指网页中与应用目的或者主题不相关的内容,一般是跟网页本身的模板相关,例如网页的广告、导航条、网站声明、相关文章的超链接、版权信息、噪音链接等等。在网络信息检索领域里的预处理环节需要把导航栏和相关链接等部分识别去除,以便提高检索的质量;网页信息挖掘中也需要事先将噪音去掉以提高挖掘的质量。本发明针对局部噪音提供抽取该局部噪音的方法,下文中没有具体限定的噪音,一般均指局部噪音。
近几年来,对于去除局部噪音研究学者作了大量的工作。去噪效果比较好的方法是在去噪过程中对于不同的网页采用不同模型的多模型去噪。由于多数网站为了方便维护等原因,通过事先定义好的模板自动生成网页,使得网页中除了主题(如正文)内容外,其余部分基本都相同。一般来讲,不同网站的版块采用不同的模板,如图1A和1B示出了两种网页模板。多模型去噪主要是针对不同网站的版块进行模板检测,由于网页的导航条、广告、网站声明、版权说明等一般都在网站的模板中,因此去掉了模板,相当于去掉了一部分的局部噪音。其一般处理方法是是先检测出整个网站的内容或结构的模板,然后当这个网站的一个网页需要处理时,就删除这个网页的模板内容,剩下的就是去噪之后的内容。
比较著名的多模型去噪方法如SST(SiteStyleTree)。SST是将网页的HTMLDOM(DocumentObjectModel)树(HTMLDOM树是把HTML文档呈现为带有元素、属性和文本的树结构)合并,之后进行噪音的判断。噪音的判断是基于两个假设:
(1)一个节点的展示风格越多,它的重要性越高;
(2)一个节点的内容分支越多,它的重要性越高。
最终一个元素节点重要性由风格重要性和内容重要性两部分组成,值越小说明该节点越有可能是噪音。SST树的执行大致过程如下:
(1)首先对同一网站的N棵DOM树进行对齐合并,合并时记录每个节点结构和内容不同的分支子树,SST就为不同的分支形成不同风格的子节点,且为每个节点设置一个计数器,用来表明这N棵DOM树有同样的风格和内容的这种节点的网页数目。例如,将图2A所示的Tree1(某一网页的DOM树)和图2B所示的Tree2进行SST合并得到结果图2C,图2C中的数字代表该节点出现的次数。
(2)计算每个节点的风格重要性和内容重要性权重,根据权重的大小来判断该节点是否是噪音节点。
SST去噪方法具有较高的准确性,但是也存在一些缺陷:
(1)随着网页技术的发展,即使是同一网站,不同版块的DOM树结构差异性也越来越大,SST树会造成建树过程中分支节点过多,在结构不同的DOM树数量分布不均的情况下会使得SST树中某个噪音分支出现的频率过小,造成该类DOM结构的网页只能抽取出一部分噪音的现象;
(2)即使是根据DOM结构对网页进行了分类,将算法应用在结构相似的DOM树中,如果某一层节点(例如有10个节点)只有一个节点不同,SST方法就要为不同的分支建立不同的子节点,会造成空间的大量浪费,建树的效率也大大降低;
(3)SST方法在为不同的分支形成不同风格的子节点时,容易造成分支粒度过大,使得产生部分小噪音漏抽取的情况;
(4)特别对于单记录页面,SST方法不能定位噪音与主题部分的相对位置。而就现阶段来说,单记录页面的噪音抽取更接近工程上的一些实际应用。一张网页通常包含多个数据区域,不同的数据区域有不同的数据记录。不同于多记录网页中采用相似风格来表示各个记录,单记录网页的主体部分只有一条数据记录单一风格,单记录网页例如是新闻和博客的正文页面,其正文部分只有一种风格。
针对不同的噪音类型和不同的应用需求,研究学者也开展了多项研发工作。单记录网页(如新闻网页、博文网页)中正文的抽取是指抽取网页中最重要的正文主体部分,用于很多后期分析挖掘需要的基础数据,例如,图3C和3D分别示出了图3A和3B所示网页的正文中的正文主体。准确地提取正文的内容是影响应用效果的关键部分,但是网页上反复多次出现的跟新闻和博文正文无关的文本,即规律噪音(图3E和3F分别示出了图3A和3B所示网页的规律噪音)附着在正文主体周围,使得正文主体部分很不明显,用户不能准确定位正文主体信息;正文抽取的结果可能会抽取出正文前面出现的导航等噪音信息、正文标题和正文主体之间出现的作者和来源等噪音信息,还可能抽取出正文后面出现的相关文章、相关链接、评论等噪音信息。所以在正文抽取算法中,事先处理滤掉正文前面、正文标题和正文主体之间的噪音关键字(即正文中的噪音关键字)以及正文后面的噪音关键字甚至是正文后面噪音关键字之后的所有内容,对于单记录页面正文的抽取来说,无论是在抽取速度还是抽取质量上都有很大的辅助作用。因此在网页正文信息抽取中,去除正文前、正文中和正文后面的规律噪音是重要的预处理过程;该问题的关键点是不仅能够抽取出规律噪音,并且还能区分出规律噪音和正文的相对位置,即分别抽取出单记录网页的正文前、正文中和正文后的规律噪音。
综上所述,对于单记录页面中的规则噪音抽取,现有的噪音抽取方法具有漏抽取、浪费空间和效率低的问题,而且也不能定位规律噪音与主题部分的相对位置。
发明内容
针对上述问题,根据本发明一个实施例,提供一种从单记录网页中抽取规律噪音的方法,所述方法包括:
步骤1)、将多个单记录网页转化为DOM树,并且将所述DOM树按照结构进行分类;
步骤2)、将同一类别的DOM树进行对齐合并得到站点板块风格树;
步骤3)、根据网页正文标题节点和网页正文主体节点在所述站点板块风格树中的近似位置,抽取正文前、正文中和正文后的规律噪音。
在一个实施例中,步骤1)中将所述DOM树按照结构进行分类包括:
步骤11)、选择一棵DOM树为已知类别;
步骤12)、从其余未经分类的DOM树中选择一棵需要进行分类的DOM树,将该需要进行分类的DOM树与已知类别中的每棵DOM树计算相似度;
步骤13)、判断步骤12)中计算得到的最大相似度是否满足大于或等于预先设定的阈值,如果满足则将所述需要进行分类的DOM树归到与其相似度最大的DOM树所在的已知类别,作为该已知类别中的DOM树,如果不满足则新建一个包含所述需要进行分类的DOM树的类别作为已知类别;
步骤14)如果仍存在未经分类的DOM树则返回步骤12),否则返回分类好的DOM树集合。
在进一步的实施例中,其中步骤12)中需要进行分类的DOM树和已知类别DOM树的相似度的计算步骤如下:
步骤121)、将需计算相似度的两棵DOM树的根节点迭代器集合加入到队列中;
步骤122)、将所述队列的队列头的迭代器集合弹出,将该集合中的两个迭代器的孩子迭代器进行匹配,得到对齐的两个迭代器集合;
步骤123)、遍历对齐后的迭代器,将匹配上的迭代器集合加入到队列中,且将该集合中迭代器的匹配信息设置为1;将没有匹配上的迭代器的匹配信息设置为0;若所述队列不为空,返回步骤122);
步骤124)、将需要进行分类的DOM树自下而上计算每个迭代器的相似度权重,公式如下:
迭代器的相似度权重=迭代器本身的匹配信息+匹配上的子迭代器的百分率*所有孩子迭代器相似度权重值和,
返回根迭代器的相似度权重作为需要进行分类的DOM树和已知类别DOM树的相似度。
在进一步的实施例中,步骤122)中使用Needleman-Wunsch算法对所述集合中的两个迭代器的孩子迭代器进行匹配。
在一个实施例中,步骤2)中同一类别的DOM树的数量大于或等于2,在进一步的实施例中,步骤2)中将同一类别的DOM树进行对齐合并包括:
步骤21)、将同一类别的DOM树的每一对应层的节点对齐;
步骤22)、将对齐后每个位置对应的节点,***站点板块风格树,其中:
如果该位置对应的节点全是标签节点,则将第一个标签***站点板块风格树中的相应位置;
如果该位置对应的节点全是文本叶子节点,则统计并记录每个文本叶子节点出现的次数,将内容互不重复的文本叶子节点全***站点板块风格树中的相应位置;
如果该位置对应的节点部分是文本叶子节点部分是标签节点,则选择第一个标签节点***站点板块风格树中的相应位置,统计并记录每个文本叶子节点出现的次数,将内容互不重复的叶子节点全***站点板块风格树中相应位置。
在进一步的实施例中,步骤21)中使用中心星算法将同一类别的DOM树的每一对应层的节点对齐。
在一个实施例中,步骤3)中在所述站点版块风格树中定位网页正文标题节点的近似位置包括:
步骤31)、遍历从步骤2)得到的站点版块风格树,找到<title>标签节点里面的内容;
步骤32)、再次遍历所述站点版块风格树,找<h1>—<h6>的标签节点;
如果找到,计算<h1>—<h6>里的文本和所述<title>里的文本相似度;
如没找到,则查找换行或带有标题特征的标签节点,若这些标签节点的class或者style属性含有tit、center、middle、big、biao、head、bt、topic,则计算这些标签节点里的文本和所述<title>里的文本的相似度;
步骤33)、找到最大相似度对应的标签节点,如果该标签节点不是<h1>—<h6>,则遍历所述站点版块风格树,查找是否还有其他的节点的class或者style属性和该标签节点的属性一样,若属性唯一,则认为该节点里面的内容为标题。
在一个实施例中,步骤3)中在所述站点版块风格树中定位网页正文主体节点的近似位置包括:
步骤34)、遍历站点板块风格树,找到包含中文句号“。”或者英文句号“.”且满足如下条件的文本节点:
其中,X表示文本节点在网页平面上的横坐标值,Width表示文本节点的宽度,(X+Width)max表示网页的宽度,
记录每个句号文本节点的横坐标和宽度;
步骤35)、如果从步骤34)得到的句号文本节点数量大于或等于2,则从后往前遍历步骤34)中得到的句号文本节点,找出满足如下条件的句号文本节点:
其中,具有n个句号文本节点,PN(i)为节点i的句号数量,IR(i)为节点i的句号数量增长率,i∈[0,n-2],j∈[i+1,n-1],IR(n-1)为预定阈值,
对该节点前后的句号文本节点分别进行聚类;如果从步骤34)得到的句号文本节点数量为1,则该句号文本节点就是正文节点,跳过步骤36);
步骤36)、计算从步骤35)获得的类中第一个节点和正文标题在纵坐标上的位置差,如果该值大于预定阈值则返回步骤35),直到找到离标题节点在纵坐标上距离最小的一类节点作为最终的正文节点。
在进一步的实施例中,在步骤35中)对所述节点前后的句号文本节点分别进行聚类包括:
如果是中文网页,则对两个句号文本节点之间字节差不超过400字节的句号文本节点进行聚类;
如果是英文网页,则对两个句号文本节点之间字节差不超过1000字节的句号文本节点进行聚类。
在一个实施例中,其中步骤3)中抽取正文前、正文中和正文后的规律噪音包括:
如果从站点版块风格树起始遍历节点到正文标题节点之间的文本节点出现的次数大于等于预定阈值,则加到正文前规律噪音集合中;
如果从站点版块风格树正文标题节点到正文主体起始节点之间的文本节点出现的次数大于等于预定阈值,则加到正文中规律噪音集合中;
如果从正文主体终止节点到站点版块风格树终止遍历节点之间的文本节点,如果出现的次数大于等于一定的阈值,则加到正文后规律噪音集合中。
相比现有的噪音抽取方法,本发明具有如下有益效果:
(1)在对DOM树进行合并之前,首先判断DOM树结构是否相同并根据网页的DOM树结构进行自动分类,之后针对结构相似的网页建立站点版块风格树(SBSTree,SiteBoardStyleTree),使得噪音的抽取更具针对性,且不会发生某类结构DOM树数量太少而噪音漏抽取的情况;
(2)在站点版块风格树SBSTree的建立过程中使用了多串匹配的方法,只合并未匹配上的标签节点和内容不同的文本节点,降低了合并的粒度,从而减少了建站点版块风格树所需的空间资源,也降低了可能出现的漏抽取的情况,加快了抽取速度;
(3)在合并后的站点版块风格树中定位正文主体节点的近似位置综合利用了视觉信息和文本信息两种规则,相对SST来讲规则比较稳定,不会随着网页结构和内容的变化而发生变化。在网站的取样网页数量适当的情况下,本发明的抽取结果具有较高的准确性,取得了较好的效果,可靠性高。
附图说明
图1A和1B示意性地描述了采用不同模板的两种不同网站的版块;
图2A和2B分别描述了根据本发明一个实施例的结构相似的两个DOM树Tree1和Tree2;
图2C描述了将图2A中的Tree1和图2B中的Tree2进行合并后所建立的SST树;
图2D描述了将图2A中的Tree1和图2B中的Tree2进行合并后所建立的SBSTree树;
图3A和3B示意性地描述了结构相似的两个网页;
图3C和3D分别描述了图3A和3B所示的网页中正文和正文主体的位置;
图3E和3F分别描述了图3A和3B所示的网页中各个位置的规律噪音;
图3G描述了通过使用根据本发明一个实施例的从单记录网页中抽取规律噪音的方法对图3A和3B所示的网页进行噪音抽取所得到的规则噪音;
图3H描述了通过使用根据本发明一个实施例的从单记录网页中抽取规律噪音的方法从图3A和3B所示的网页中抽取出的规律噪音总结图表;
图4描述了根据本发明一个实施例的从单记录网页中抽取规律噪音的方法的流程图;
图5A和5B示意性地描述了两个网页;
图5C描述了通过使用根据本发明一个实施例的从单记录网页中抽取规律噪音的方法将图3A、3B、5A和5B所示的网页进行分类得到的分类结果图表;
图5D描述了通过使用根据本发明一个实施例的从单记录网页中抽取规律噪音的方法对图5A和5B所示的网页进行噪音抽取所得到的规则噪音;
图5E描述了通过使用根据本发明一个实施例的从单记录网页中抽取规律噪音的方法从图5A和5B所示的网页中抽取出的规律噪音总结图表。
具体实施方式
下面结合附图和具体实施方式对本发明加以说明。
根据本发明一个实施例,提供一种从单记录网页中抽取规律噪音的方法。基于网页的DOM树结构信息、网页的视觉信息和文本信息,利用了多模板模型,对单记录网页分别进行正文前、正文中和正文后噪音的抽取。在抽取的过程中,首先自动将n(n>=2)个网页根据网页的DOM树结构进行自动分类,然后将m个同一类(网页结构相似)的网页(m>=2)进行匹配合并形成站点版块风格树SBSTree,在此基础上利用一些视觉和文本规则找到站点板块风格树(合并后DOM树)中正文标题和正文主体的近似位置,之后根据各个文本节点出现的频率来判断是否是规律噪音。
如图4所示,根据本发明的一个实施例,从单记录网页中抽取规律噪声的方法包括以下七个步骤:
步骤1,读取多个单记录网页(n个网页,n>=2)的内容,并将这些网页转化为DOM树,删除DOM树上的form节点以及属性style.display和style.visibility分别是none和hidden的不可见节点。
其中,form标签包括input、noembed、noscript、textarea、marquee、object、select、iframe、style、script、img。
步骤2,将步骤1中得到DOM树按其结构进行分类。
DOM树分类是通过计算两棵DOM树的相似度实现的。根据本发明一个实施例,可以使用如下方法实现对DOM树的分类:
a)基于所转化的n棵DOM树,初始选择一棵DOM树为已知类别;
b)对于其余未经过分类的DOM树,计算其中一棵DOM树(需要进行分类的DOM树)与已知类别中每棵DOM树的相似度;
c)选择所计算的最大的相似度(其中需要进行分类的DOM树与已知类别(如类别1)中的DOM树具有最大相似度),如果该最大相似度值大于等于某个预定阈值(该预定阈值优选为0.5),那么需要进行分类的DOM树属于该已知类别(如类别1),将该需要进行分类的DOM树加入该已知类别(如类别1),否则新建一个包含该DOM树的新类别作为已知类别;
重复步骤b)、c)直到所有DOM树都已经被分类。
d)返回按照DOM树结构分类好的DOM树集合。
应理解,本实施例并不用于限定对DOM树进行分类的方法,其他根据结构对DOM树进行分类的方法也适用于此。例如,可以将所有DOM树两两之间比较结构相似度,将每棵DOM树以节点表示,在相似度高于某一指定阈值的DOM树节点之间做连线,再通过社团算法对节点进行分类。
步骤3,对同一类别的网页DOM树进行语言检测
从网页中获取一部分用于进行语言检测的文本来判断该部分文本的编码,根据该段文本及其编码进行语言检测;如果是英文及同系语种,则按照英文标点的方式定位正文主体的近似位置;如果是中文及同系语种,则按照中文标点的方式定位正文主体的近似位置。
步骤4,将同一类别(即树结构相似)的DOM树对齐,建立站点版块风格树SBSTree,步骤如下:
a)将属于同一类的m(m>=2)棵DOM树的每一对应层的节点对齐,在一个实施例中,可使用Gusfield提出的中心星(centerstar)算法将每一个对应层的节点对齐;算法实施如下:
(1)将m棵DOM树根节点的迭代器集合加入到队列queue中;
(2)将queue队头的迭代器集合弹出,将集合中的每个迭代器的孩子节点按照m(m>=2)棵DOM树对应层迭代器匹配的方式进行对齐;
(3)遍历对齐后的迭代器,将匹配上的迭代器集合加入到queue中;
(4)重复步骤(2)、(3),直到queue为空;
(5)返回对齐后的m棵DOM树各对应层的迭代器。
b)将对齐后每一个位置对应的k个节点,有选择的***到站点版块风格树(SBSTree,SiteBoardStyleTree,)中。例如,将图2A所示的Tree1和图2B所示的Tree2进行SBSTree合并得到结果图2D,图中的数字代表该节点出现的次数),***的规则如下:
如果全是标签节点(该标签节点相同),则将第一个标签节点***到SBSTree中相应位置;
如果全是文本叶子节点,则统计并记录每个文本叶子节点出现的次数,并将内容互不重复的文本叶子节点全部***到SBSTree中相应位置(同一个父节点下);
如果部分是文本叶子节点部分是标签节点,则选择第一个标签节点***到SBSTree中相应位置,统计并记录每个文本叶子节点出现的次数,并将内容互不重复的叶子节点也全部***到SBSTree中相应位置(同一个父节点下)。
步骤5,根据启发式规则找到正文标题节点的近似位置,包括如下规则及步骤:
a)遍历从步骤4得到的站点版块风格树,找出<title>标签节点里面的内容;
b)再次遍历该站点版块风格树,找<h1>-<h6>的标签节点,分如下两种情况进行处理:
如果找到,计算标签节点里面的文本和<title>标签节点里的文本相似度;
如果没找到,则查找诸如br、big、caption、center、div、font、p、span、strong、td这些换行或者带有标题特征的标签节点。若这些标签节点的class或者style属性含有tit、center、middle、big、biao、head、bt、topic,则计算该标签节点里的文本和<title>标签节点里的文本的相似度。
c)找到相似度最大的标签节点,若节点不是<h1>-<h6>,则遍历站点版块风格树,查找是否还有其他的节点的class或者style属性也和该标签节点的属性一样。若该节点的class属性或者style属性唯一,则认为该节点里面的内容为标题。
应理解,上述规则仅用于说明,而不用于限定如何寻找正文标题节点的近似位置。
步骤6,找到正文主体节点的近似位置
从视觉的角度考虑到正文主体内容块左边的起始位置一般在网页靠左的位置,而右边的终止位置一般是在网页靠右的位置,也就是正文块的左右两边横跨网页中间,且正文的第一个节点在纵坐标(以网页的页面为平面定义坐标,X轴为横坐标,Y轴为纵坐标,原点为网页左上角所在的点)上离正文标题的距离很近。再者,从文本的角度考虑到正文的主体部分都会用到句号(中文或英文句号),因此,选择综合利用视觉信息和文本信息定位合并后的网页的正文主体的近似位置。
步骤7,通过遍历SBSTree树抽取出规律噪音,包括如下步骤:
a)从SBSTree树起始遍历节点(即该树的根节点)到正文标题节点之间的文本节点,如果出现的次数大于等于一定的阈值,则加到正文前出现的规律噪音集合S0中;
b)从SBSTree树正文标题节点到正文主体起始节点之间的文本节点,如果出现的次数大于等于一定的阈值,则加到正文中出现的规律噪音集合S1中;
c)从正文主体终止节点到SBSTree树终止遍历节点(该树最后一个孩子节点)之间的文本节点,如果出现的次数大于等于一定的阈值,则加到正文后出现的规律噪音集合S2中。
则S0、S1和S2分别就是要抽取的正文前、正文中和正文后的规律噪音。
根据本发明一个实施例,在步骤2的第b)步中,两棵DOM树之间的相似度计算是在这两棵DOM树匹配的基础上,根据匹配上的节点迭代器数量来计算的一个相似度权重,该算法包括下列6个步骤:
(1)将两棵DOM树根节点的迭代器集合加入到队列queue中;
(2)将queue队头的迭代器集合弹出,将集合中的每个迭代器的孩子迭代器按照两棵DOM树对应层迭代器匹配的方式进行匹配,根据本发明的一个实施例,两棵DOM树对应层迭代器的匹配可以使用Needleman-Wunsch算法进行匹配,Needleman-Wunsch算法利用了动态规划的思想将两个序列串(即迭代器)进行全局匹配,它首先计算一个得分矩阵(SM,ScoreMatrix),该得分矩阵SM分别给匹配上的迭代器和没匹配上的迭代器一个得分;根据这个得分矩阵,可以得到一个最佳的匹配方式。
(3)遍历对齐后的迭代器,将匹配上的迭代器集合加入到queue中,并且将该迭代器的匹配信息设置为1;没有匹配上的迭代器不做任何操作,将该迭代器的匹配信息设置为0。
(4)重复步骤(2)、(3),直到queue为空。
(5)计算每个迭代器的相似度权重;
(6)返回根迭代器的相似度权重,该相似度权重即需要进行分类的DOM树与已知类别DOM的相似度。
根据本发明一个实施例,在上述计算DOM树相似度的步骤(2)中,用于匹配两棵DOM树对应层迭代器的Needleman-Wunsch算法步骤如下,包括6步:
1)设置与gap迭代器(空迭代器)匹配的惩罚因子d=0;
2)建立一个行为p+1、列为q+1的得分矩阵SM,并初始化矩阵SM的第一行和第一列均为d,其中p,q分别是两个序列串中元素的数量(即两个迭代器的孩子迭代器数量);
3)计算得到得分矩阵SM,从SM[0,0]开始根据公式(1)计算每两个迭代器的得分,并记录每两个迭代器得分的路径来源:
其中,i∈[0,p]且j∈[0,q],S(xi,yj)为迭代器xi和yj的相似度,其计算方法如下:
①如果两个迭代器指向的节点是标签节点,比较它们的标签名及属性。如果相同,返回1;否则返回0;
②如果两个迭代器指向的节点是文本叶子节点,返回1;否则返回0;
③如果两个迭代器指向的节点一个是文本叶子节点,一个是标签节点,则返回0;
4)从SM[p,q]开始往前寻找回溯路径,一直回溯到SM[0,0];如果回溯路径有多个,首选对角线上的路径;
5)从SM[0,0]开始遍历回溯的路径,将两个对应层的迭代器进行匹配,包括:
①如果从SM[i,j]回溯到SM[i-1,j-1],则xi和yi匹配上,不做任何操作;
②如果从SM[i,j]回溯到SM[i-1,j],在yj-1处***一个gap迭代器;
③如果从SM[i,j]回溯到SM[i,j-1],在xi-1处***一个gap迭代器;
6)返回对齐后的两个迭代器集合。
本实施例中使用Needleman-Wunsch算法进行两棵DOM树对应层迭代器的匹配,应理解,诸如LD算法的其他文本比较算法也适用于此。
根据本发明的一个实施例,在上述计算DOM树相似度的步骤(5)中,以DOM树自下而上的方式计算每个迭代器的相似度权重:
迭代器的相似度权重=迭代器本身的匹配信息+匹配上的孩子迭代器的百分率*所有孩子迭代器相似度权重之和。
这种相似度计算方法从树的叶子节点自下而上计算到树的根节点,综合考虑了节点本身及子节点的信息。
根据本发明另一个实施例,也可以用下列方法计算每个迭代器的相似度权重:
两棵树i和j的相似度sim(i,j)=(D(i)/T(i)+D(j)/T(j))/2,其中D(i)表示在树对齐过程中,树i对应(匹配)上的节点数目,T(i)表示在树对齐过程中,树i中的节点总数,该方法从全局考虑对齐上的节点数率。
根据本发明的一个实施例,在步骤4的第a)步的第(2)小步中,将queue队头的迭代器集合弹出,将集合中的每个迭代器的孩子节点按照m(m>=2)棵DOM树对应层迭代器匹配的方式进行对齐的算法步骤如下:
a)选择一棵DOM树输入层的迭代器,作为中心迭代器;
b)将其余的m-1棵DOM树对应层的迭代器的每一个,以两棵DOM树对应层迭代器匹配的算法(参照步骤2中b)-(2)的实施方法),分别与中心迭代器进行匹配,记录最终的对齐结果并计算每个迭代器与中心迭代器匹配之后的相似度,相似度是该层匹配上的迭代器的数量与匹配之后所有迭代器的数量的比值;
c)计算平均的相似度作为该中心迭代器的相似度;
d)依次选择其余的m-1个迭代器作为中心迭代器,重复步骤b)、c);
e)选择平均相似度最大的中心迭代器作为标准中心迭代器;
f)将与标准中心迭代器对齐之后的迭代器,进行全局对齐;
g)返回m(m>=2)棵DOM树该层对齐后的迭代器。
根据本发明的一个实施例,在步骤4中,当同一类别的DOM树数量大于等于2时,则建立站点版块风格树SBSTree;如果同一类别中的DOM树只有一个,则不能通过本文提供的方法来抽取规则噪音。
根据本发明一个实施例,在步骤6中,找到正文主体节点的近似位置包括如下步骤:
a)遍历SBSTree树,找到文本节点包含句号“。”或者“.”(在英文网页中)且视觉信息的横坐标X和宽度Width(其中,文本节点可看作网页页面上的块,X为该块左上角的横坐标,Width为该块沿横坐标的宽度)满足以下条件的句号文本节点,并记录每个句号文本节点的位移(横坐标X)和偏移量(宽度Width):
其中(X+Width)max表示网页的宽度。
英文网页中,英文句号则要考虑到省略号、小数点与真正英文句号的区别,“合法”的英文句号不包含以下内容:省略号;小数点;英文姓名中出现的句号;一些称呼后面的句号,如Mr.Mrs.Ms.Dr.;跳过.com,.edu,.org等;以及跳过Allrightsreserved.等。
b)从后往前扫描a)中得到的句号文本节点(n个,n>=2),根据如下公式找到句号文本节点的句号数量PN(PeriodNum)增长率IR(IncreaseRate)最大的节点T,即
其中,i∈[0,n-2],j∈[i+1,n-1],IR(n-1)为指定阈值。
之后,对节点T前、后的句号节点分别进行聚类,聚类原则是两个句号文本节点之间的字节差不超过MaxGap(中文网页默认为400字节,英文网页默认为1000字节)。
c)利用视觉信息,计算步骤b)得到类中第一个节点和正文标题在纵坐标(分别为Y和Ytitle)上的位置差|Y-Ytitle|的值,如果该值大于某个预定阈值,则在该类节点往前继续重复步骤b),直到找到离标题节点在Y方向上距离最小|Y-Ytitle|min的一类,即为最终的正文节点。
根据本发明的一个实施例,当所找到的句号节点只有一个时,该节点就是正文节点。
应理解,本实施例中采用的基于视觉信息和文本信息的方法仅用于说明,而不用于限定如何寻找正文主体节点的近似位置。
在采用该方法处理网页数据时,得到了理想的实验结果。根据图3A和3B中描述的两个结构相似的网页,在使用了本发明的方法之后得到噪音网页结果(如图3G所示)以及在各个位置的噪音总结图表(如图3H所示)。图5A和5B中描述了另外两个网页,将图5A和5B与图3A和3B进行分类的到的结果如图5C所示,其中图3A和3B中的网页为同一类别,而图5A和5B中的网页为同一类别。对同一类别的网页(如5A和5B所示)使用本发明提供的方法,得到噪音网页结果(如图5D所示)和各个位置的噪音总结图表(如图5E所示)。从图3G和图5D中可以看出,本发明提出的一种从单记录网页中抽取规律噪音的方法能够准确抽取出各个结构相似网页的规律噪音,验证了其有效性和可靠性,能够应用到实际的应用中。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (12)
1.一种从单记录网页中抽取规律噪音的方法,所述方法包括:
步骤1)、将多个单记录网页转化为DOM树,并且将所述DOM树按照结构进行分类;
步骤2)、将同一类别的DOM树进行对齐合并得到站点板块风格树,包括:
步骤21)、将同一类别的DOM树的每一对应层的节点对齐;
步骤22)、将对齐后每个位置对应的节点,***站点板块风格树,其中:
如果该位置对应的节点全是标签节点,则将第一个标签***站点板块风格树中的相应位置;
如果该位置对应的节点全是文本叶子节点,则统计并记录每个文本叶子节点出现的次数,将内容互不重复的文本叶子节点全***站点板块风格树中的相应位置;
如果该位置对应的节点部分是文本叶子节点部分是标签节点,则选择第一个标签节点***站点板块风格树中的相应位置,统计并记录每个文本叶子节点出现的次数,将内容互不重复的叶子节点全***站点板块风格树中相应位置;
步骤3)、根据网页正文标题节点和网页正文主体节点在所述站点板块风格树中的位置,抽取正文前、正文中和正文后的规律噪音。
2.根据权利要求1所述的方法,其中步骤1)中将所述DOM树按照结构进行分类包括:
步骤11)、选择一棵DOM树为已知类别;
步骤12)、从其余未经分类的DOM树中选择一棵需要进行分类的DOM树,将该需要进行分类的DOM树与已知类别中的每棵DOM树计算相似度;
步骤13)、判断步骤12)中计算得到的最大相似度是否满足大于或等于预先设定的阈值,如果满足则将所述需要进行分类的DOM树归到与其相似度最大的DOM树所在的已知类别,作为该已知类别中的DOM树,如果不满足则新建一个包含所述需要进行分类的DOM树的类别作为已知类别;
步骤14)如果仍存在未经分类的DOM树则返回步骤12),否则返回分类好的DOM树集合。
3.根据权利要求2所述的方法,其中步骤12)中需要进行分类的DOM树和已知类别DOM树的相似度的计算步骤如下:
步骤121)、将需计算相似度的两棵DOM树的根节点迭代器集合加入到队列中;
步骤122)、将所述队列的队列头的迭代器集合弹出,将该集合中的两个迭代器的孩子迭代器进行匹配,得到对齐的两个迭代器集合;
步骤123)、遍历对齐后的迭代器,将匹配上的迭代器集合加入到队列中,且将该集合中迭代器的匹配信息设置为1;将没有匹配上的迭代器的匹配信息设置为0;若所述队列不为空,返回步骤122);
步骤124)、将需要进行分类的DOM树自下而上计算每个迭代器的相似度权重,公式如下:
迭代器的相似度权重=迭代器本身的匹配信息+匹配上的孩子迭代器的百分率*所有孩子迭代器相似度权重值和,
返回根迭代器的相似度权重作为需要进行分类的DOM树和已知类别DOM树的相似度。
4.根据权利要求3所述的方法,其中步骤122)中使用Needleman-Wunsch算法对所述集合中的两个迭代器的孩子迭代器进行匹配。
5.根据权利要求1-4中任何一个所述的方法,其中步骤1)还包括:在将所述DOM树按照结构进行分类之前,删除DOM树上的form节点以及不可见节点。
6.根据权利要求1-4中任何一个所述的方法,其中步骤1)后还包括对同一类别的DOM树进行语言检测,判断是中文还是英文。
7.根据权利要求1-4中任何一个所述的方法,其中步骤2)中同一类别的DOM树的数量大于或等于2。
8.根据权利要求1-4中任何一个所述的方法,其中步骤21)中使用中心星算法将同一类别的DOM树的每一对应层的节点对齐。
9.根据权利要求1-4中任何一个所述的方法,其中步骤3)中在所述站点版块风格树中定位网页正文标题节点的位置包括:
步骤31)、遍历从步骤2)得到的站点版块风格树,找到<title>标签节点里面的内容;
步骤32)、再次遍历所述站点版块风格树,找<h1>—<h6>的标签节点;
如果找到,计算<h1>—<h6>里的文本和所述<title>里的文本相似度;
如没找到,则查找换行或带有标题特征的标签节点,若这些标签节点的class或者style属性含有tit、center、middle、big、biao、head、bt、topic,则计算这些标签节点里的文本和所述<title>里的文本的相似度;
步骤33)、找到最大相似度对应的标签节点,如果该标签节点不是<h1>—<h6>,则遍历所述站点版块风格树,查找是否还有其他的节点的class或者style属性和该标签节点的属性一样,若属性唯一,则认为该节点里面的内容为标题。
10.根据权利要求1-4中任何一个所述的方法,其中步骤3)中在所述站点版块风格树中定位网页正文主体节点的位置包括:
步骤34)、遍历站点板块风格树,找到包含中文句号“。”或者英文句号“.”且满足如下条件的文本节点:
其中,X表示文本节点在网页平面上的横坐标值,Width表示文本节点的宽度,(X+Width)max表示网页的宽度,
记录每个句号文本节点的横坐标和宽度;
步骤35)、如果从步骤34)得到的句号文本节点数量大于或等于2,则从后往前遍历步骤34)中得到的句号文本节点,找出满足如下条件的句号文本节点:
其中,具有n个句号文本节点,PN(i)为节点i的句号数量,IR(i)为节点i的句号数量增长率,i∈[0,n-2],j∈[i+1,n-1],IR(n-1)为预定阈值,
对该节点前后的句号文本节点分别进行聚类;如果从步骤34)得到的句号文本节点数量为1,则该句号文本节点就是正文节点,跳过步骤36);
步骤36)、计算从步骤35)获得的类中第一个节点和正文标题在纵坐标上的位置差,如果该位置差的值大于预定阈值则返回步骤35),直到找到离标题节点在纵坐标上距离最小的一类节点作为最终的正文节点。
11.根据权利要求10所述的方法,其中在步骤35中)对所述节点前后的句号文本节点分别进行聚类包括:
如果是中文网页,则对两个句号文本节点之间字节差不超过400字节的句号文本节点进行聚类;
如果是英文网页,则对两个句号文本节点之间字节差不超过1000字节的句号文本节点进行聚类。
12.根据权利要求1-4中任何一个所述的方法,其中步骤3)中抽取正文前、正文中和正文后的规律噪音包括:
如果从站点版块风格树起始遍历节点到正文标题节点之间的文本节点出现的次数大于等于预定阈值,则加到正文前规律噪音集合中;
如果从站点版块风格树正文标题节点到正文主体起始节点之间的文本节点出现的次数大于等于预定阈值,则加到正文中规律噪音集合中;
如果从正文主体终止节点到站点版块风格树终止遍历节点之间的文本节点出现的次数大于等于一定的阈值,则加到正文后规律噪音集合中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210592795.0A CN103064966B (zh) | 2012-12-31 | 2012-12-31 | 一种从单记录网页中抽取规律噪音的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210592795.0A CN103064966B (zh) | 2012-12-31 | 2012-12-31 | 一种从单记录网页中抽取规律噪音的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103064966A CN103064966A (zh) | 2013-04-24 |
CN103064966B true CN103064966B (zh) | 2016-01-27 |
Family
ID=48107596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210592795.0A Active CN103064966B (zh) | 2012-12-31 | 2012-12-31 | 一种从单记录网页中抽取规律噪音的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103064966B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484451B (zh) * | 2014-12-25 | 2017-12-19 | 北京国双科技有限公司 | 网页页面信息的提取方法和装置 |
CN105183801B (zh) * | 2015-08-25 | 2018-07-06 | 北京信息科技大学 | 网页正文抽取方法及装置 |
CN106528583A (zh) * | 2015-11-14 | 2017-03-22 | 孙燕群 | 一种网页正文提取比对方法 |
CN110083760B (zh) * | 2019-04-16 | 2021-02-02 | 浙江工业大学 | 一种基于可视块的多记录型动态网页信息提取方法 |
CN114528811B (zh) * | 2022-01-21 | 2022-09-02 | 北京麦克斯泰科技有限公司 | 文章内容抽取方法、装置、设备及存储介质 |
CN115658993B (zh) * | 2022-09-27 | 2023-06-06 | 观澜网络(杭州)有限公司 | 一种网页的核心内容的智能化抽取方法及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833554A (zh) * | 2009-03-09 | 2010-09-15 | 富士通株式会社 | 产生抽取模板的方法、设备和抽取网页内容的方法和设备 |
CN102004805A (zh) * | 2010-12-30 | 2011-04-06 | 上海交通大学 | 基于最大相似性匹配的网页去噪***及其去噪方法 |
CN102073654A (zh) * | 2009-11-20 | 2011-05-25 | 富士通株式会社 | 生成与维护网页内容抽取模板的方法和设备 |
CN102156737A (zh) * | 2011-04-12 | 2011-08-17 | 华中师范大学 | 一种中文网页主题内容的提取方法 |
CN102253937A (zh) * | 2010-05-18 | 2011-11-23 | 阿里巴巴集团控股有限公司 | 获取网页中的感兴趣信息的方法及相关装置 |
CN102662969A (zh) * | 2012-03-11 | 2012-09-12 | 复旦大学 | 一种基于网页结构语义的互联网信息对象定位方法 |
-
2012
- 2012-12-31 CN CN201210592795.0A patent/CN103064966B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833554A (zh) * | 2009-03-09 | 2010-09-15 | 富士通株式会社 | 产生抽取模板的方法、设备和抽取网页内容的方法和设备 |
CN102073654A (zh) * | 2009-11-20 | 2011-05-25 | 富士通株式会社 | 生成与维护网页内容抽取模板的方法和设备 |
CN102253937A (zh) * | 2010-05-18 | 2011-11-23 | 阿里巴巴集团控股有限公司 | 获取网页中的感兴趣信息的方法及相关装置 |
CN102004805A (zh) * | 2010-12-30 | 2011-04-06 | 上海交通大学 | 基于最大相似性匹配的网页去噪***及其去噪方法 |
CN102156737A (zh) * | 2011-04-12 | 2011-08-17 | 华中师范大学 | 一种中文网页主题内容的提取方法 |
CN102662969A (zh) * | 2012-03-11 | 2012-09-12 | 复旦大学 | 一种基于网页结构语义的互联网信息对象定位方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103064966A (zh) | 2013-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101251855B (zh) | 一种互联网网页清洗方法、***及设备 | |
CN103064966B (zh) | 一种从单记录网页中抽取规律噪音的方法 | |
CN103023714B (zh) | 基于网络话题的活跃度与集群结构分析***及方法 | |
CN103544255B (zh) | 基于文本语义相关的网络舆情信息分析方法 | |
CN103955529B (zh) | 一种互联网信息搜索聚合呈现方法 | |
US8255793B2 (en) | Automatic visual segmentation of webpages | |
CN101593200B (zh) | 基于关键词频度分析的中文网页分类方法 | |
Chen et al. | Websrc: A dataset for web-based structural reading comprehension | |
CN104268148A (zh) | 一种基于时间串的论坛页面信息自动抽取方法及*** | |
CN107885793A (zh) | 一种微博热点话题分析预测方法及*** | |
Fu et al. | Web content extraction based on webpage layout analysis | |
CN106503211A (zh) | 面向信息发布类网站的移动版自动生成的方法 | |
CN108959204B (zh) | 互联网金融项目信息抽取方法和*** | |
CN106528068A (zh) | 一种网页内容重构方法和*** | |
CN104156458B (zh) | 一种信息的提取方法及装置 | |
CN110083760B (zh) | 一种基于可视块的多记录型动态网页信息提取方法 | |
CN115982390A (zh) | 一种产业链构建和迭代扩充开发方法 | |
Kim et al. | Main content extraction from web documents using text block context | |
CN113806665A (zh) | 基于非模式化Web数据模型的网页分块方法 | |
Zeleny et al. | Cluster-based Page Segmentation-a fast and precise method for web page pre-processing | |
Liu et al. | Extraction and management of meta information on the domain-oriented Deep Web | |
Subercaze et al. | Mining user-generated comments | |
Dutta et al. | Noise elimination from web page based on regular expressions for web content mining | |
KR20080008573A (ko) | Xml 데이터로부터 연관규칙을 추출하기 위한 방법 | |
Boddu | ELIMINATE THE NOISY DATA FROM WEB PAGES USING DATA MINING TECHNIQUES. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20130424 Assignee: Branch DNT data Polytron Technologies Inc Assignor: Institute of Computing Technology, Chinese Academy of Sciences Contract record no.: 2018110000033 Denomination of invention: Method for extracting regular noise from single record web pages Granted publication date: 20160127 License type: Common License Record date: 20180807 |
|
EE01 | Entry into force of recordation of patent licensing contract |