一种中文网页主题内容的提取方法转让专利

申请号 : CN201110090737.3

文献号 : CN102156737B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘清堂邵明博向丹丹吴林静

申请人 : 华中师范大学

摘要 :

本发明属于计算机应用和信息抽取领域,提供一种中文网页的主题内容提取方法,该方法是将网页数据转换成DOM对象后,在对其进行融合,分类,过滤操作,最后返回提取的网页内容。本发明操作方便,适用范围广,既不依附于特定的软、硬件,也不依赖于特定的网页模版;大量实验结果表明,本方法针对不同风格的中文新闻网页,能有效的排除页面中的“噪声”信息,提取主题内容,具有较高的实用性。

权利要求 :

1.一种中文网页主题内容的提取方法,该方法使用DOM 生成部件、DOM 处理部件、结点融合部件、结点特征分析部件、结点元素过滤器、过滤器临时结果分析部件,其特征在于该方法包括以下步骤: (1)DOM 生成部件使用网页数据流的副本,生成DOM 对象;

(2)DOM 处理部件结合页面类型信息,将步骤(1)中获得的DOM 对象根据不同的页面类型执行相应的处理,计算结点的特征信息,并保存处理结果;所述特征信息包括当前结点的文字密度δ(b)和链接密度θ (b);所述的DOM 处理部件包括页面类型猜测模块、文档预处理模块、结点计算模块,其具体工作步骤如下: (2-1)将获取的网页数据流保存一份副本,以备容错处理;

(2-2)从DOM 对象的结点和<H1>结点提取标题信息;</p></div><div num="4"><p class="claim-text">(2-3)调用文档预处理模块,过滤掉当前DOM对象所包含的注释信息,还有脚本、样式、以及Flash 交互结点;</p></div><div num="5"><p class="claim-text">(2-4)调用页面类型猜测模块,猜测目标页面的类型,若为内容型页面,则顺序执行以下步骤;若为目录型页面,则直接执行(2-7)的步骤;</p></div><div num="6"><p class="claim-text">(2-5)调用结点计算模块,遍历DOM 对象中剩下的结点,忽略<applet>、<button> 交互结点,以及<b>、<u>修饰结点;计算其它剩下的每个结点的文字密度δ(b)和链接密度θ (b),并保存以上的计算结果,以及结点的文字信息、DOM 操作接口;其计算公式如下 (公式1)</p></div><div num="7"><p class="claim-text"> (公式2)</p></div><div num="8"><p class="claim-text">L(b)表示当前结点的文字行数,T(b) 表示当前结点的文字长度,maxLen表示屏幕一行最多所能包含的字符长度,T’(b)代表行数大于1 的结点文字长度,不包含最后一行,Ta(b)表示当前结点及其子孙结点中,所有<a>结点的字符长度之和;</p></div><div num="9"><p class="claim-text">(2-6)将(2-5)中的处理结果进行保存,以备后续部件进行操作;</p></div><div num="10"><p class="claim-text">(2-7)若猜测页面类型为目录型,则使用(2-1)保存的网页数据流副本,重新生成DOM 对象,并重新遍历对象中的<a>结点,返回目录内容;</p></div><div num="11"><p class="claim-text">(3)对于上述步骤(2)中保存的处理结果,结点融合部件根据相邻结点间的特征信息,计算相似性,若相似条件为真,则合并相邻结点中相同的字段,保留前一个结点,舍弃后一个结点;所述的结点融合部件包括原子结点相似度计算模块和结点融合模块,其具体工作步骤如下:原子结点相似度计算模块遍历步骤(2)保存的处理结果中的每个结点,依据公式3计算每相邻的2个结点的文字密度δ(b)和链接密度θ (b),判断两者是否相似,若达到经验阈值ε为0.1则结点融合模块进行融合操作,最终使得相邻的每两个结点的区分度足够大;其中,α、β为两类值的权重 (公式3)</p></div><div num="12"><p class="claim-text">α+β =1 ;</p></div><div num="13"><p class="claim-text">(4)结点特征分析部件使用步骤(3)中融合后的结点集合,依据每相邻的三个结点的特征信息,将结点划分为“内容结点”与“噪声结点”两大类;所述的结点特征分析部件针对步骤(3)中产生的区分度足够大的结点集合,循环遍历该集合中的每个结点,并对结点前后的邻居及其本身进行如下判断(4-1)判断条件(a)是否成立,条件(a)为假,则将当前结点归为噪声结点;</p></div><div num="14"><p class="claim-text">(4-2)条件(a)为真,则需要判断条件(b)是否成立,若条件(b)为假,则判断条件(c)是否成立,若条件(c)为假,则将当前结点归为内容结点;</p></div><div num="15"><p class="claim-text">(4-3)若条件(c)为真,则判断条件(d)是否成立,若条件(d)为真,则将当前结点归为噪声结点,反之,将当前结点归为内容结点;</p></div><div num="16"><p class="claim-text">(4-4)若条件(b)为真,则判断条件(e)是否成立,若条件(e)为假,则将当前归为内容结点,若条件(e)为真,则需要判断条件(f)是否成立,若条件(f)为假,则将当前结点归为内容结点,反之则需要判断条件(g)是否成立,若条件(g)成立,则将当前结点归为噪声结点,反之将其归为内容结点;</p></div><div num="17"><p class="claim-text">其中条件(a),当前结点的链接密度是否小于经验阈值0.353333;</p></div><div num="18"><p class="claim-text">条件(b),前一个结点的链接密度是否小于经验阈值0.555556;</p></div><div num="19"><p class="claim-text">条件(c),当前结点的文字密度是否小于经验阈值0.555556;</p></div><div num="20"><p class="claim-text">条件(d),下一个结点的文字密度是否小于经验阈值0.353333;</p></div><div num="21"><p class="claim-text">条件(e),当前结点的文字密度是否小于经验阈值0.488889;</p></div><div num="22"><p class="claim-text">条件(f),下一个结点的文字密度是否小于等于经验阈值0.555556;</p></div><div num="23"><p class="claim-text">条件(g),前一个结点的文字密度是否小于等于经验阈值0.353333;</p></div><div num="24"><p class="claim-text">(5)结点过滤器对步骤(4)中留下的“噪声结点”以及拥有特殊标签的“内容结点”进行多层过滤,每一次的过滤结果都使用过滤器临时结果分析部件进行保存;经过分析后得出最优的结点集合作为提取后的主题内容;所述的结点过滤器、过滤器临时结果分析部件,其具体工作步骤如下(5-1)使用结点过滤器A过滤掉空白、无效的噪声结点;</p></div><div num="25"><p class="claim-text">(5-2)使用结点过滤器B对内容结点中的<Span>与<TD> 结点进行过滤:首先判断当前结点所包含的字符长度是否大于经验阈值4,若为假则过滤之,反之则保留;然后判断当前结点是否包含具有语义分割功能的标点符号,若为假则过滤之,反之则保留;操作结果由过滤器临时结果分析部件的数据统计模块进行保存;</p></div><div num="26"><p class="claim-text">(5-3)使用结点过滤器C过滤掉网页数据中包含的不规范的<P>结点信息,将操作结果保存于过滤器临时结果分析部件;由于W3C标准建议<P>结点不应该包含其它容器结点,因此本条过滤规则的判断标准为<P>结点是一个单层结点;</p></div><div num="27"><p class="claim-text">(5-4)使用结点过滤器C过滤掉网页数据中包含的不规范的<TD>结点信息,将操作结果保存于过滤器临时结果分析部件;由于未闭合的<TD>结点通常容易错误的包含其它容器结点,因此本条过滤规则的判断标准为<TD>结点是一个单层结点;</p></div><div num="28"><p class="claim-text">(5-5)使用结点过滤器C过滤掉网页数据中包含的不规范的<DIV>结点信息,将操作结果保存于过滤器临时结果分析部件;由于未闭合的<DIV>结点通常容易错误的包含其它容器结点,因此本条过滤规则的判断标准为< DIV >结点是一个单层结点;</p></div><div num="29"><p class="claim-text">(5-6)过滤器临时结果分析部件对上述操作产生的结果对象进行降序排列,首先依据该对象中的分隔符统计量进行,若该字段相等,则依据字符长度进行;遍历有序的结果集合,找出第一个满足以下条件的结果;分隔符统计量大于等于经验阈值2,并且文字密度大于经验阈值0.28;</p></div><div num="30"><p class="claim-text">(5-7)若结果为空,则使用(2-1)保存的网页数据流保存一份副本,重新生成DOM 对象,并利用DOM处理部件遍历对象中的每个结点,只针对<P>,<TD>,<PRE>,以及<DIV>结点进行对应的过滤,储存,并将该集合作为提取的网页主题内容;判断该网页内容中的文字密度,如果不为0,则执行下步操作;</p></div><div num="31"><p class="claim-text">(5-8)使用(2-1)保存的网页数据流副本,重新生成DOM 对象,并利用DOM处理部件遍历对象中的每个结点,只针对<a>结点进行过滤,存储,返回目录内容。</p></div><div num="32"><p class="claim-text">2.根据权利要求1所述的一种中文网页主题内容的提取方法,其特征在于:该方法利用媒体检测压缩部件返回网页包含的图片、视频媒体信息,使用上述步骤(5)提供的结点集合,媒体检测压缩部件会检测该网页是否包含媒体信息,定位与文档相关的媒体信息,并对其进行压缩、缓存到本地。</p></div></div> <div class="ui divider"></div> <h4 class="ui header">说明书 : </h4> <div itemprop="description" class="description text-box"><h3 class="subhead">一种中文网页主题内容的提取方法</h3><h3 class="sub-head">技术领域</h3><div></div><div class="sub-text">[0001] 本发明属于计算机应用和信息抽取领域,特别涉及一种中文网页的主题内容提取方法。</div><h3 class="sub-head">背景技术</h3><div></div><div class="sub-text">[0002] 随着Internet 技术及其环境的不断成熟与发展,互联网已经成为人们获取信息资源不可或缺的方式。互联网海量信息的爆炸式产生,“数据丰富,知识缺乏”这一问题越来越突出:当我们通过WEB 浏览网页时,会发现并不是所有呈现在屏幕的信息都与主题相关,它通常包含着大量的广告、导航、版权信息以及各种交互式操作接口(如:调查问卷等)。这些与主题无关的信息不仅造成了用户信息浏览的负担,还给基于网页主题内容的应用系统带来了实施和开发上的困难。<br></div><div class="sub-text">[0003] 因此,能够快速准确的提取网页的主题内容是一项基于WEB 内容应用服务的关键技术。它不但能提高各种基于内容服务的应用系统的准确性,还能大大的提升其工作效率,同时还更直接的减轻用户信息浏览的负担。信息抽取领域的专家一直尝试着借助计算机来解决这些与主题无关的信息带来的麻烦。</div><div class="sub-text">[0004] 网页内容的抽取通常会基于模版或分块两种方法。基于模版的方法,一般来讲至少需要自顶向下的比较两棵来自相同模版的DOM(Document Object Model) 树,找到它们之间相同的子树并去除,把剩余的部分作为主题内容。实验证明该方法是可行有效的,但该方法的局限在于机器学习了一套网页模版并不一定能重用到其他网页集合上。除此之外,我们还应该注意到机器学习的计算代价也是相当可观的。由于人们访问网络的随机性,使得这样的方法并不能实时有效的提取网页的主题内容。基于分块的方法分支较多,比较有代表性的主要有基于纯DOM树的网页分块、基于视觉信息的网页分块(Vision-based Page Segmentation: VIPS)以及基于特定标签的网页分块。由于DOM 的最早引入是为了在浏览器中进行布局显示而不是进行WEB页面的语义描述,在未引入补充信息之前,基于纯DOM的分块方法单凭其提供的标签层次关系是不能完全胜任内容提取工作的。基于视觉信息的网页分块利用WEB页面的视觉提示如background color、font color、font size、bold 等信息,结合DOM提供的层次结构进行页面的分块,并把它应用在了TREC2003 的测评中,取得了较好的效果。但由于视觉特征的复杂性,很难有一个通用的规则集。除此之外,VIPS算法还需要保存大量的视觉信息,其处理性能随着页面的复杂程度急剧下降。由于早期互联网流行既定的几种布局,也有人根据<table>标签把网页分成若干个内容块。这样分块流程非常简单,但面对日益复杂的页面,处理效果往往不能令人满意。</div><div class="sub-text">[0005] 综上所述,现有的方法要么算法流程过于简单,只能针对特定标签的网页风格进行内容提取;要么算法复杂度过高(基于模版的机器学习或者复杂的视觉计算),都直接导致无法实时的处理人们随机的页面访问。</div><h3 class="sub-head">发明内容</h3><div></div><div class="sub-text">[0006] 本发明就是针对上述背景技术中的不足之处,而提出的一种中文网页的主题内容提取方法。该方法不依赖于单个网页文档之外的信息,仅依据各个原子(不可再分)结点的内部特征信息,结合中文网页的语言描述特点,有效提取主题内容。</div><div class="sub-text">[0007] 本发明的目的是通过如下技术措施来实现的。</div><div class="sub-text">[0008] 一种中文网页主题内容的提取方法,该方法使用DOM 生成部件、DOM 处理部件、结点融合部件、结点特征分析部件、结点元素过滤器、过滤器临时结果分析部件,该方法包括以下步骤:</div><div class="sub-text">[0009] (1)DOM 生成部件使用网页数据流的副本,生成DOM 对象;</div><div class="sub-text">[0010] (2)DOM 处理部件结合页面类型信息,将步骤(1)中获得的DOM 对象根据不同的页面类型执行相应的处理,计算结点的特征信息,并保存处理结果;所述特征信息包括当前结点的文字密度δ(b)和链接密度θ (b);</div><div class="sub-text">[0011] (3)对于上述步骤(2)中保存的处理结果,结点融合部件根据相邻结点间的特征信息,计算相似性,若相似条件为真,则合并相邻结点中相同的字段,保留前一个结点,舍弃后一个结点(下文称作,融合操作);</div><div class="sub-text">[0012] (4)结点特征分析部件使用步骤(3)中融合后的结点集合,依据每相邻的三个结点的特征信息,将结点划分为“内容结点”与“噪声结点”两大类;</div><div class="sub-text">[0013] (5)结点过滤器对步骤(4)中留下的“噪声结点”以及一些拥有特殊标签的“内容结点”进行多层过滤,每一次的过滤结果都使用过滤器临时结果分析部件进行保存;经过分析后得出最优的结点集合作为提取后的主题内容。</div><div class="sub-text">[0014] 在上述技术方案中,该方法可以根据客户的需求,利用媒体检测压缩部件返回网页包含的图片、视频等媒体信息,使用上述步骤(5)提供的结点集合,媒体检测压缩部件会检测该网页是否包含媒体信息,定位与文档相关的媒体信息,并对其进行压缩、缓存到本地。</div><div class="sub-text">[0015] 在上述技术方案中,步骤(2)中所述的DOM 处理部件包括页面类型猜测模块、文档预处理模块、结点计算模块,其具体工作步骤如下:</div><div class="sub-text">[0016] (3-1)将获取的网页数据流保存一份副本,以备容错处理;</div><div class="sub-text">[0017] (3-2)从DOM 对象的<title>结点和<H1>结点提取标题信息;</div><div class="sub-text">[0018] (3-3)调用文档预处理模块,过滤掉当前DOM对象所包含的注释信息,还有脚本、样式、以及Flash 等交互结点;</div><div class="sub-text">[0019] (3-4)调用页面类型猜测模块,猜测目标页面的类型,若为内容型页面,则顺序执行以下步骤;若为目录型页面,则直接执行(3-7)的步骤;</div><div class="sub-text">[0020] (3-5)调用结点计算模块,遍历DOM 对象中剩下的结点,忽略<applet>、<button> 等交互结点,以及<b>、<u>等修饰结点;计算其它剩下的每个结点的文字密度δ(b)和链接密度θ (b),并保存以上的计算结果,以及结点的文字信息、DOM 操作接口等;其计算公式如下</div><div class="sub-text">[0021](公式1)<br></div><div class="sub-text">[0022] (公式2)</div><div class="sub-text">[0023] L(b)表示当前结点的文字行数,T(b) 表示当前结点的文字长度,maxLen表示屏幕一行最多所能包含的字符长度,T’(b)代表行数大于1 的结点文字长度,不包含最后一行,Ta(b)表示当前结点及其子孙结点中,所有<a>结点的字符长度之和;</div><div class="sub-text">[0024] (3-6)将(3-5)中的处理结果进行保存,以备后续部件进行操作;</div><div class="sub-text">[0025] (3-7)若猜测页面类型为目录型,则使用(3-1)保存的网页数据流副本,重新生成DOM 对象,并重新遍历对象中的<a>结点,返回目录内容。</div><div class="sub-text">[0026] 在上述技术方案中,步骤(3)中所述的结点融合部件包括原子结点相似度计算模块和结点融合模块,其具体工作步骤如下:原子结点相似度计算模块遍历步骤(2)保存的处理结果中的每个结点,依据公式3计算每相邻的2个结点的文字密度δ(b)和链接密度θ (b),判断两者是否相似,若达到经验阈值ε为0.1则结点融合模块进行融合操作,最终使得相邻的每两个结点的区分度足够大;其中,α、β为两类值的权重</div><div class="sub-text">[0027] (公式3)</div><div class="sub-text">[0028] α+β =1。</div><div class="sub-text">[0029] 在上述技术方案中,步骤(4)中所述的结点特征分析部件针对步骤(3)中产生的区分度足够大的结点集合,循环遍历该集合中的每个结点,并对结点前后的邻居及其本身进行如下判断:</div><div class="sub-text">[0030] (5-1)判断条件(a)是否成立,条件(a)为假,则将当前结点归为噪声结点;</div><div class="sub-text">[0031] (5-2)条件(a)为真,则需要判断条件(b)是否成立,若条件(b)为假,则判断条件(c)是否成立,若条件(c)为假,则将当前结点归为内容结点;</div><div class="sub-text">[0032] (5-3)若条件(c)为真,则判断条件(d)是否成立,若条件(d)为真,则将当前结点归为噪声结点,反之,将当前结点归为内容结点;</div><div class="sub-text">[0033] (5-4)若条件(b)为真,则判断条件(e)是否成立,若条件(e)为假,则将当前归为内容结点,若条件(e)为真,则需要判断条件(f)是否成立,若条件(f)为假,则将当前结点归为内容结点,反之则需要判断条件(g)是否成立,若条件(g)成立,则将当前结点归为噪声结点,反之将其归为内容结点;</div><div class="sub-text">[0034] 其中条件(a),当前结点的链接密度是否小于经验阈值0.353333;</div><div class="sub-text">[0035] 条件(b),前一个结点的链接密度是否小于经验阈值0.555556;</div><div class="sub-text">[0036] 条件(c),当前结点的文字密度是否小于经验阈值0.555556;</div><div class="sub-text">[0037] 条件(d),下一个结点的文字密度是否小于经验阈值0.353333;</div><div class="sub-text">[0038] 条件(e),当前结点的文字密度是否小于经验阈值0.488889;</div><div class="sub-text">[0039] 条件(f),下一个结点的文字密度是否小于等于经验阈值0.555556;</div><div class="sub-text">[0040] 条件(g),前一个结点的文字密度是否小于等于经验阈值0.353333。</div><div class="sub-text">[0041] 在上述技术方案中,所述的结点过滤器、过滤器临时结果分析部件,其具体工作步骤如下:</div><div class="sub-text">[0042] (6-1)使用结点过滤器A过滤掉空白、无效的噪声结点;</div><div class="sub-text">[0043] (6-2)使用结点过滤器B对内容结点中的<Span>与<TD> 结点进行针对性过滤:首先判断当前结点所包含的字符长度是否大于经验阈值4,若为假则过滤之,反之则保留;<br>然后判断当前结点是否包含具有语义的标点符号,若为假则过滤之,反之则保留;操作结果由过滤器临时结果分析部件的数据统计模块进行保存;<br></div><div class="sub-text">[0044] (6-3)使用结点过滤器C过滤掉网页数据中包含的不规范的<P>结点信息,将操作结果保存于过滤器临时结果分析部件;由于W3C标准建议<P>结点不应该包含其他容器结点,因此本条过滤规则的判断标准为<P>结点是一个单层结点;</div><div class="sub-text">[0045] (6-4)使用结点过滤器C过滤掉网页数据中包含的不规范的<TD>结点信息,将操作结果保存于过滤器临时结果分析部件;由于未闭合的<TD>结点通常容易错误的包含其他容器结点,因此本条过滤规则的判断标准为<TD>结点是一个单层结点;</div><div class="sub-text">[0046] (6-5)使用结点过滤器C过滤掉网页数据中包含的不规范的<DIV>结点信息,将操作结果保存于过滤器临时结果分析部件;由于未闭合的<DIV>结点通常容易错误的包含其他容器结点,因此本条过滤规则的判断标准为< DIV >结点是一个单层结点;</div><div class="sub-text">[0047] (6-6)过滤器临时结果分析部件对上述操作产生的结果对象进行降序排列,首先依据该对象中的分隔符统计量进行,若该字段相等,则依据字符长度进行;遍历有序的结果集合,找出第一个满足以下条件的结果;分隔符统计量大于等于经验阈值2,并且文字密度大于经验阈值0.28;</div><div class="sub-text">[0048] (6-7)若结果为空,则使用(3-1)保存的网页数据流保存一份副本,重新生成DOM 对象,并利用DOM处理部件遍历对象中的每个结点,只针对<P>,<TD>,<PRE>,以及<DIV>结点进行对应的过滤,储存,并将该集合作为提取的网页主题内容;判断该网页内容中的文字密度,如果不为0,则执行下步操作;</div><div class="sub-text">[0049] (6-8)使用(3-1)保存的网页数据流副本,重新生成DOM 对象,并利用DOM处理部件遍历对象中的每个结点,只针对<a>结点进行过滤,存储,返回目录内容。 [0050] 本发明与现有技术相比具有如下优点:本发明操作方便,适用范围广,既不依附于特定的软、硬件,也不依赖于特定的网页模版;大量实验结果表明,本方法针对不同风格的中文新闻网页,能有效的排除页面中的“噪声”信息,提取主题内容,具有较高的实用性。</div><h3 class="sub-head">附图说明</h3><div></div><div class="sub-text">[0051] 图1是本发明实施例一种中文网页的主题内容提取方法原理图。</div><div class="sub-text">[0052] 图2是本发明实施例一种中文网页的主题内容提取方法的程序流程图。</div><h3 class="sub-head">具体实施方式</h3><div></div><div class="sub-text">[0053] 下面结合附图及实施对发明进一步的描述。</div><div class="sub-text">[0054] 如图1所示,为本发明实施例一种中文网页的主题内容提取方法原理图。系统首先会对用户请求的URL 进行适当的格式化处理,获取远程服务器端的网络数据,构建一个可操作的DOM 对象。</div><div class="sub-text">[0055] DOM对象只是一个可操作的原始网络数据结构,需要利用DOM 处理部件(DOMHandler)建立一个处理这个模型的新对象,DOM 处理部件,通过页面类型猜测模块提供的枚举类型,选择不同的策略进行处理转换。</div><div class="sub-text">[0056] 如图2所示, 为本实施例一种中文网页的主题内容提取方法的程序流程图。当判断输入为内容页时,DOM 处理部件(DOMHandler)会首先将DOM 模型转换为WebDocument ,它是一种自定义的描述网页特征的数据结构,包括各节点的文字密度,链接密度,文字信息,DOM操作接口等,但数据本身没有得到任何的精炼。这时需要通过结点融合部件、结点特征分析部件、结点元素过滤器来对WebDocument 进行多维度的扫描过滤,并在每一次扫描过滤后,将它们保存到过滤器临时结果分析部件中,通过计算排序,分析这些临时结果,获得最优的结果集合作为页面提取内容。</div><div class="sub-text">[0057] 当结果集不为空时,则证明成功的找到了内容结点。根据程序的配置,可以通过已经找到的内容结点,反向定位相关图片或视频的位置。若成功找到了相关媒体的访问URL,则将他们压缩并缓存到本地。结合刚才获取的媒体内容,组装生成新的网页实体。</div><div class="sub-text">[0058] 当结果集为空时,则证明未成功的找到内容结点。通常出现这种情况是因为,原始的HTML 代码未遵循W3C 的标准,或本身就不具备内容结点。为了提供容错机制,程序提供了另一种转换方式:将DOM 对象转换为SimpleWebDocument (另一种自定义的描述网页特征的数据结构)。针对该结构,有专门的过滤器进行上述类似的过滤,并直接返回网页内容。</div><div class="sub-text">[0059] 这个时候需要检查当前的网页内容的文字密度。当文字密度为0时,则需要检测当前网页是否以展示媒体信息为主。若为真,则返回提示信息。若为假,则返回错误信息。当文字密度不为0时,则检查该密度是否落在安全域内,若为真,则返回网页内容。若为假,则需要将DOM 模型转换为IndexDoc (自定义的一种用来描述目录页特征的数据结构)。<br></div><div class="sub-text">[0060] 本实施例的具体步骤如下。</div><div class="sub-text">[0061] 一种中文网页主题内容的提取方法,该方法使用DOM 生成部件、DOM 处理部件、结点融合部件、结点特征分析部件、结点元素过滤器、过滤器临时结果分析部件、媒体检测压缩部件,其特征在于该方法包括以下步骤:</div><div class="sub-text">[0062] (1)DOM 生成部件使用网页数据流的副本,生成DOM 对象;</div><div class="sub-text">[0063] (2)DOM 处理部件结合页面类型信息,将步骤(1)中获得的DOM 对象根据不同的页面类型执行相应的处理,计算结点的特征信息,并保存处理结果;所述特征信息包括当前结点的文字密度δ(b)和链接密度θ (b);</div><div class="sub-text">[0064] (3)对于上述步骤(2)中保存的处理结果,结点融合部件根据相邻结点间的特征信息,若相似条件为真,则合并相邻结点中相同的字段,保留前一个结点,舍弃后一个结点(下文称作,融合操作);</div><div class="sub-text">[0065] (4)结点特征分析部件使用步骤(3)中融合后的结点集合,依据每相邻的三个结点的特征信息,将结点划分为“内容结点”与“噪声结点”两大类;</div><div class="sub-text">[0066] (5)结点过滤器对步骤(4)中留下的“噪声结点”以及一些拥有特殊标签的“内容结点”进行多层过滤,每一次的过滤结果都使用过滤器临时结果分析部件进行保存;经过分析后得出最优的结点集合作为提取后的主题内容。</div><div class="sub-text">[0067] 在上述实施例中,该方法可以根据客户的需求,利用媒体检测压缩部件返回网页包含的图片、视频等媒体信息,其方法为使用上述步骤(5)提供的结点集合,媒体检测压缩部件会检测该网页是否包含媒体信息,定位与文档相关的媒体信息,并对其进行压缩、缓存到本地。</div><div class="sub-text">[0068] 在上述实施例中,所述的DOM 处理部件包括页面类型猜测模块、文档预处理模块、结点计算模块,其具体工作步骤如下:</div><div class="sub-text">[0069] (3-1)将获取的网页数据流保存一份副本,以备容错处理;</div><div class="sub-text">[0070] (3-2)从DOM 对象的<title>结点和<H1>结点提取标题信息;</div><div class="sub-text">[0071] (3-3)调用文档预处理模块,过滤掉当前DOM对象所包含的注释信息,还有脚本、样式、以及Flash 等交互结点;</div><div class="sub-text">[0072] (3-4)调用页面类型猜测模块,猜测目标页面的类型,若为内容型页面,则顺序执行以下步骤;若为目录型页面,则直接执行(3-7)的步骤;</div><div class="sub-text">[0073] (3-5)调用结点计算模块,遍历DOM 对象中剩下的结点,忽略<applet>、<button> 等交互结点,以及<b>、<u>等修饰结点;计算其它剩下的每个结点的文字密度δ(b)和链接密度θ (b),并保存以上的计算结果,以及结点的文字信息、DOM 操作接口等;其计算公式如下</div><div class="sub-text">[0074] (公式1)</div><div class="sub-text">[0075] (公式2)</div><div class="sub-text">[0076] L(b)表示当前结点的文字行数,T(b) 表示当前结点的文字长度,maxLen表示屏幕一行最多所能包含的字符长度,T’(b)代表行数大于1 的结点文字长度,不包含最后一行,Ta(b)表示当前结点及其子孙结点中,所有<a>结点的字符长度之和;</div><div class="sub-text">[0077] (3-6)将(3-5)中的处理结果进行保存,以备后续部件进行操作;</div><div class="sub-text">[0078] (3-7)若猜测页面类型为目录型,则使用(3-1)保存的网页数据流副本,重新生成DOM 对象,并重新遍历对象中的<a>结点,返回目录内容。</div><div class="sub-text">[0079] 在上述实施例中,所述的结点融合部件包括原子结点相似度计算模块和结点融合模块,其具体工作步骤如下:遍历步骤(2)保存的处理结果中的每个结点,依据公式3计算每相邻的2个结点的δ(b)和链接密度θ (b),判断两者是否相似,若达到经验阈值ε为0.1则进行融合操作,最终使得相邻的每两个结点的区分度足够大;其中,α、β为两类值的权重<br></div><div class="sub-text">[0080] (公式3)</div><div class="sub-text">[0081] α+β =1 。</div><div class="sub-text">[0082] 在上述实施例中,步骤(4)中所述的结点特征分析部件针对步骤(3)中产生的区分度足够大的结点集合,循环遍历该集合中的每个结点,并对结点前后的邻居及其本身进行如下判断:</div><div class="sub-text">[0083] (5-1)判断条件(a)是否成立,条件(a)为假,则将当前结点归为噪声结点;</div><div class="sub-text">[0084] (5-2)条件(a)为真,则需要判断条件(b)是否成立,若条件(b)为假,则判断条件(c)是否成立,若条件(c)为假,则将当前结点归为内容结点;</div><div class="sub-text">[0085] (5-3)若条件(c)为真,则判断条件(d)是否成立,若条件(d)为真,则将当前结点归为噪声结点,反之,将当前结点归为内容结点;</div><div class="sub-text">[0086] (5-4)若条件(b)为真,则判断条件(e)是否成立,若条件(e)为假,则将当前归为内容结点,若条件(e)为真,则需要判断条件(f)是否成立,若条件(f)为假,则将当前结点归为内容结点,反之则需要判断条件(g)是否成立,若条件(g)成立,则将当前结点归为噪声结点,反之将其归为内容结点;</div><div class="sub-text">[0087] 其中条件(a),当前结点的链接密度是否小于经验阈值0.353333;</div><div class="sub-text">[0088] 条件(b),前一个结点的链接密度是否小于经验阈值0.555556;</div><div class="sub-text">[0089] 条件(c),当前结点的文字密度是否小于经验阈值0.555556;</div><div class="sub-text">[0090] 条件(d),下一个结点的文字密度是否小于经验阈值0.353333;</div><div class="sub-text">[0091] 条件(e),当前结点的文字密度是否小于经验阈值0.488889;</div><div class="sub-text">[0092] 条件(f),下一个结点的文字密度是否小于等于经验阈值0.555556;</div><div class="sub-text">[0093] 条件(g),前一个结点的文字密度是否小于等于经验阈值0.353333。</div><div class="sub-text">[0094] 在上述实施例中,所述的结点过滤器、过滤器临时结果分析部件,其具体工作步骤如下:</div><div class="sub-text">[0095] (6-1)使用结点过滤器A过滤掉空白、无效的噪声结点;</div><div class="sub-text">[0096] (6-2)使用结点过滤器B对内容结点中的<Span>与<TD> 结点进行针对性过滤:首先判断当前结点所包含的字符长度是否大于经验阈值4,若为假则过滤之,反之则保留;<br>然后判断当前结点是否包含具有语义的标点符号,若为假则过滤之,反之则保留;操作结果由过滤器临时结果分析部件的数据统计模块进行保存;<br></div><div class="sub-text">[0097] (6-3)过滤掉网页数据中包含的不规范的<P>结点信息,将操作结果保存于过滤器临时结果分析部件;由于W3C标准建议<P>结点不应该包含其他容器结点,因此本条过滤规则的判断标准为<P>结点是一个单层结点;</div><div class="sub-text">[0098] (6-4)过滤掉网页数据中包含的不规范的<TD>结点信息,将操作结果保存于过滤器临时结果分析部件;由于未闭合的<TD>结点通常容易错误的包含其他容器结点,因此本条过滤规则的判断标准为<TD>结点是一个单层结点;</div><div class="sub-text">[0099] (6-5)过滤掉网页数据中包含的不规范的<DIV>结点信息,将操作结果保存于过滤器临时结果分析部件;由于未闭合的<DIV>结点通常容易错误的包含其他容器结点,因此本条过滤规则的判断标准为< DIV >结点是一个单层结点;</div><div class="sub-text">[0100] (6-6)过滤器临时结果分析部件对上述操作产生的结果对象进行降序排列,首先依据该对象中的分隔符统计量进行,若该字段相等,则依据字符长度进行;遍历有序的结果集合,找出第一个满足以下条件的结果;分隔符统计量大于等于经验阈值2,并且文字密度大于经验阈值0.28;</div><div class="sub-text">[0101] (6-7)若结果为空,则使用(3-1)保存的网页数据流保存一份副本,重新生成DOM 对象,并利用DOM处理部件遍历对象中的每个结点,只针对<P>,<TD>,<PRE>,以及<DIV>结点进行对应的过滤,储存,并直接返回网页内容;判断该网页内容中的文字密度,如果为0,则根据客户需求返回媒体信息,如果不为0,则执行下步操作;</div><div class="sub-text">[0102] (6-8)使用(3-1)保存的网页数据流副本,重新生成DOM 对象,并利用DOM处理部件遍历对象中的每个结点,只针对<a>结点进行过滤,存储,返回目录内容。</div></div> </article>