CN101237465B - 一种基于快速傅里叶变换的网页正文提取方法 - Google Patents
一种基于快速傅里叶变换的网页正文提取方法 Download PDFInfo
- Publication number
- CN101237465B CN101237465B CN2007100631827A CN200710063182A CN101237465B CN 101237465 B CN101237465 B CN 101237465B CN 2007100631827 A CN2007100631827 A CN 2007100631827A CN 200710063182 A CN200710063182 A CN 200710063182A CN 101237465 B CN101237465 B CN 101237465B
- Authority
- CN
- China
- Prior art keywords
- character
- window
- interval
- area
- fourier transform
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于快速傅立叶变换的网页正文提取方法,包括:读入HTML文件,并将该文件转换为Unicode格式,并存入一个字符数组;对字符数组进行窗口分段;对字符在文档中的位置进行统计学分析,根据结果对字符进行强度编码转换,得到正文强度值,每一个窗口字符段对应一个强度值序列;对强度值序列进行快速傅立叶变换,得到频域的F向量;计算任意两个窗口字符段之间的距离;为窗口字符段设定区间,所述区间是若干个连续的窗口的组合,用数字对(b,e)表示,根据任意两个窗口字符段之间的距离,计算每个区间的权值;对所有区间的权值排序,根据权值选择最佳正文区间。本发明对网页正文提取的准确率高,能有效地区分正文和网页的其他部分。
Description
技术领域
本发明涉及文字信息处理,特别涉及一种基于快速傅里叶变换的网页正文提取方法。
背景技术
随着Internet的不断发展,Web页面数量的大幅度增加,网页已经成为巨大的、分布广泛的信息源。许多信息包含在浩如烟海的Web中,如何帮助人们迅速提取有效信息,成为一个非常重要的问题。
针对HTML网页特点,需要利用网页结构布局信息对网页进行区域分割,模拟IE浏览器的显示方式,对网页进行解析。系统根据人类视觉原理,把网页解析处理的结果进行分块,然后根据用户需求,提取用户需要的相关网页块的内容。因此网页分割是从网页中提取有效信息的一个常用手段,当前比较常用的网页分割方法主要有如下几种:
1、基于位置关系的分割法:该方法利用网页页面的布局进行分块,将一个网页分成上、下、左、右和中间5个部分,再根据这5个部分的特征进行分类。
但实际的网页结构要复杂的多,这种基于网页布局的方法并不能适用于所有的网页;而且这种方法切分的网页粒度比较粗,有可能破坏网页本身的内在特征,难以充分包括整个网页的语义特征。
2、基于文档对象模型(DOM,Document Object Model)的分割法:该方法通过找出网页HTML文档里的特定标签,利用标签项将HTML文档表示成一个DOM树的结构;然后根据特定标签包括heading、table、paragraph和list等来提取有效的树结点数据。但在许多情况下,文档对象模型不是用来表示网页内容结构的,所以利用该方法不能够准确地对网页中各分块的语义信息进行辨别。关于此类方法的进一步说明可见参考文献1:“王琦,唐世渭,杨冬青,基于DOM的网页主题信息自动提取[J],计算机研究与发展,2004,41(10):1786-1791”;
参考文献2:胡飞,基于标记树的Web页面区域划分和搜索方法[J],计算机科学,2005,32(8):182-185.;参考文献3:常育红,姜哲,朱小燕,基于标记树表示方法的页面结构分析[J],计算机工程与应用,2004(16):129-132。
发明内容
本发明的目的是克服现有正文提取方法不能准确定义正文区域,因而无法准确提取正文的缺陷,从而提供一种基于快速傅立叶变换的正文提取方法。
为了实现上述目的,本发明提供了一种基于快速傅立叶变换的网页正文提取方法,具体包含以下步骤:
步骤10)、读入HTML文件,并将该文件转换为Unicode格式,并存入一个字符数组中;
步骤20)、对步骤10)得到的字符数组进行窗口分段,分段后的窗口字符段包含固定长度的字符;
步骤30)、对字符在文档中的位置进行统计学分析,根据统计分析的结果对字符进行强度编码转换,得到该字符的正文强度值,每一个窗口字符段对应一个强度值序列;
步骤40)、对步骤30)中得到的每一个窗口字符段的强度值序列进行快速傅立叶变换,得到频域的F向量;
步骤50)、根据快速傅立叶变换的结果计算任意两个窗口字符段之间的距离;
步骤60)、为窗口字符段设定区间,所述区间是若干个连续的窗口的组合,用数字对(b,e)表示,根据步骤50)中得到的任意两个窗口字符段之间的距离,计算每个区间的权值;
步骤70)、对步骤60)中计算所得到的所有区间的权值排序,根据权值选择最佳正文区间。
上述技术方案中,在所述的步骤30)中,所述的统计分析的结果包括关于字符出现位置的均值、标准方差,以及字符在文档中的出现次数。
所述强度值序列的计算公式如下:
Ii,j=M(Wi,j,i·l+j)=M(Si·l+j,i·l+j),i=0Λ(w-1),j=0Λ(l-1);
其中,M用于计算一个字符的强度值,W表示窗口字符段的二维数组,S表示字符串数组,i表示窗口字符段的编号,j表示窗口字符段内的位置,l表示窗口字符段的长度,w表示窗口字符段的数目;
在计算所述M时,对于在位置x出现的字符c,其正文强度值为:
上述公式中,μc是字符c出现位置的均值,σc是字符c出现位置的标准方差,Nc是字符c出现的次数。
上述技术方案中,在所述的步骤50)中,所述的计算任意两段之间的距离为计算各频率上的欧式距离的总和,其计算公式如下:
其中,F为步骤40)中做快速傅立叶变换后的结果。
在所述的步骤60)中,所述的计算区间的权值是将组间差之和减去组内差之和,所述区间权值的计算公式如下:
V(b,e)=InterGroup(b,e)-IntraGroup(b,e)
其中,IneterGoup表示组间差,IntraGroup表示组内差,Di,j表示步骤50)中计算得到的任意两个窗口字符段之间的距离。
在所述的步骤60)中,所述的计算每个区间的权值采用累计距离的加速算法,所述算法的计算公式如下:
其中,Dx,y表示x段和y段的距离,Di,j表示第0、1、...、(i-1)个窗口字符段和第0、1、...、(j-1)个窗口字符段的距离。
上述技术方案中,在所述的步骤70)中,选择权值最大的区间为最佳正文区间。
上述技术方案中,在所述的步骤70)中,从步骤60)的计算结果中按照从大到小的顺序选择权值大于0的区间,对这些区间所对应的权值做加权平均,根据加权平均的结果选择最佳正文区间。
所述网页中的正文信息用多字节字符集表示,包括日文、韩文和中文。
本发明的优点在于:
1、本发明利用网页的频域特征来分割页面,过滤噪声,进而提取有效信息。
2、本发明的方法在正文内容较长的情况下,即使页面结构复杂,含有多种干扰信息,也能有效地提取网页正文信息,并区分开正文和页面的其他部分,提取的准确率高。
3、本发明无须对具体网页结构进行分析即可提取网页正文内容,具有良好的通用性,可适用于不同风格、不同主题的网页。
附图说明
图1为本发明的基于快速傅立叶变换的网页正文提取方法的流程图;
图2a和图2b为本发明中进行正文强度编码时所采用的正文强度函数的示意图;
图3为本发明在计算区间权值时利用累计距离快速计算连续区间距离总合的加速算法的示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步说明。
在对本发明的基于快速傅立叶变换的网页正文提取方法进行说明之前,首先将网页根据页面结构特征作分类,具体包含以下种类:
首页式——网站的首页,一般含有多个栏目、图片、动画,以及若干文章标题链接。如:网易的首页。
列表式——信息以列表的方式给出,一般以表格的形式列出若干个条目,经常含有分页功能。例如:某论坛版面的文章标题列表。
正文式——指含有正文内容的底层网页,一般只含有不超过一篇的文章内容,无评论或评论较少。如:各类网站的含有具体某篇文章的底层网页。
评论式——除了含有正文外,正文后面还跟有若干个评论,以论坛为代表。
本发明主要是针对上述的“正文式”中文网页实现网页内容的提取。正文式中文网页通常含有大段的正文信息,在正文信息的前后是一些格式信息(例如导航信息、交互信息、JavaScript脚本等)。
正文信息具有以下特点:
1、位于HTML源文件的中部;
2、以中文字符和英文字母为主;
3、较为连续的文字;
4、正文信息的信号特性类似;
5、正文信息与格式信息的信号特性不同。
格式信息具有以下特点:
1、位于HTML源文件的开头和结尾;
2、以标点符号和英文字母为主;
3、格式信息的信号特性类似;
4、格式信息与正文信息的信号特性不同。
对HTML文档模型分析可知,文档由三大类信号混合而成,包括:
1)HTML标记符(TAG),形式为“<标记符><标记符属性=值></标记符>”。例如:
<table width=″756″border=″0″align=″center″></table>
2)文本自然语言(TEXT),即中英文字符组成的句子。例如:关于我们Aboutus。
3)脚本程序(SCRIPT)。例如:functionMM_findObj(n,d){varp,i,x;if(!d)}
本发明根据正文式页面的结构特征,将提取正文的问题转化为给定一个底层网页的HTML源文件,求解最佳的正文区间。下面结合一个中文网页的实例,对本发明方法的具体实现步骤做如下说明:
步骤10、读入HTML文件,将该文件转换为Unicode格式,并存入到一个字符数组中。转换后的英文字母在’a’~’z’,’A’~’Z’之间,中文字符在0x0100~0xFFFF之间。转换后的字符存入字符数组S0,该字符数组的长度为s0。
假设读入一个网易旅游频道上关于云南香格里拉的网页,将该网页转换为Unicode格式后,网页转换的结果如下(鉴于原文篇幅过长,在下面的例子中只摘取了部分内容):
“<!DOCTYPE html PUBLIC″-//W3C//DTD XHTML 1.0Transitional//EN″
″http://www.w3.org/TR/xhtmll/DTD/xhtmll-transitional.dtd″>
<html xmlns=″http://www.w3.org/1999/xhtml″>
<head>
<title>为喇嘛做广东菜_芒果网易旅游</title>
……
<!--page-->
<!--
<div class=″tpage″>
<span><a href=″″>上一页</a></span><span class=″fB″><a href=″″>1</a></span><span class=″fB″><a href=″″>2</a></span><span class=″fBcDRed″>3</span><span><a href=″″>下一页</a></span>
</div>
-->
<div class=″text″id=″articlebody″>
--------------------------------------------------------------
以上为格式信息
--------------------------------------------------------------
7.14丽江古城的人流就像广州的上下九步行街一样,全是游人,毫不夸张。只在清晨的石板街才见为数不多的纳西族老人,女族人更能坚守古老的信念,才披着七星坎肩。当然也能看见看着挺专业敬业的哥们端着长枪短炮的设备轰炸丽江的早晨渺渺美景。
<br> ; ; ; ;虽然小桥流水依旧,夜色大红灯笼也很诱惑,都在寻找着一种过剩的激情。我独自听完颇有韵味的纳西古乐走在街上的时候,甚至有个很奇怪的看我一个人凑上前来,热情的介绍有摩梭族的女孩走婚和跳艳舞,问是否需要看表演,?那是个惊讶,果然开放带来一切,当然我并不相信那些女孩是摩梭族的,都找的别地女人充数而已。当然我并没有去.后来在酒吧随便坐的时候,听一些驴友说甚至还有广东的走婚团就是为了体验走婚去的,足见人们的追求各异。
……
<br> ; ; ; ;我又想起在香格里拉的7月还有青梅子,是新鲜的。喜欢酸的朋友都知道,在东部6月,青梅子就熟透了,应该是气候的原因延迟了它的季节。但香格里拉的青梅子皮已经黄了,肉却不会软,仍然结实甚至是硬得很,那个酸啊,叫喜欢酸的朋友爱死了,叫怕酸的朋友简直可以把你酸死。一点也不夸张地。买了一斤3块钱,你已经知道我是极爱酸的,竟然吃了3天。别的喇嘛吃半个就受不了,口腔膜都要酸脱落一层的。但还是怀念那种味道。
---------------------------------------------------------
以上为正文部分
---------------------------------------------------------
<br></div>
<!--page-->
<!--
<div class=″tpage″>
<span><a href=″″>上一页</a></span><span class=″fB″><a href=″″>1</a></span><span class=″fB″><a href=″″>2</a></span><span class=″fBcDRed″>3</span><span><a href=″″>下一页</a></span>
</div>
-->
……
//-->
</script>
<noscript>
<img src=″//secure-cn.imrworldwide.com/cgi-bin/m?ci=cn-netease&;cg=0″alt=″″>
</noscript>
<!--END NNR Site Census V5.1-->
</body>
</html>
-------------------------------------------------------
以上为格式信息
-------------------------------------------------------”
将上述网页的信息转换为Unicode格式后,存储在一个字符数组中。
步骤20、对步骤10得到的字符数组进行窗口分段。所述的窗口用于采样,以选择等长的一段字符在后续步骤中实现傅立叶变换。假设窗口的大小为1,把包含在字符数组S0中的文件切分为长度为1的若干连续字符段,一共w段,同时将后面不足1的剩余字符删除,得到一个新的字符串数组S,该数组的长度为s。用W表示窗口的二维数组,i表示窗口编号,j表示窗口内位置,则窗口的计算公式如下:
Wi,j=Si·l+j,i=0Λ(w-1),j=0Λ(l-1)
仍以上述的关于香格里拉的网页为例,对存储该网页的字符数组进行窗口分段。假设窗口的大小设定为32,则该字符数组做窗口分段后的结果如下:
“Window[0]:??<!DOCTYPE html PUBLIC″-//W3C/
Window[1]:/DTD XHTML 1.0Transitional//EN″
Window[2]:??″http://www.w3.org/TR/xhtml 1/
Window[3]:DTD/xhtml 1-transitional.dtd″>??<
Window[4]:html xmlns=″http://www.w3.org/19
Window[5]:99/xhtml″>??<head>??<title>为喇嘛做广
Window[6]:东菜_芒果网易旅游</title>??<meta http-eq
……
Window[195]:span><span><a href=″″>下一页</a></
Window[196]:span>??</div>??-->??<div class=″
Window[197]:text″id=″articlebody″>7.14丽江古城的
Window[198]:人流就像广州的上下九步行街一样,全是游人,毫不夸张。只在清晨的石
Window[199]:板街才见为数不多的纳西族老人,女族人更能坚守古老的信念,才披着七
Window[200]:星坎肩。当然也能看见看着挺专业敬业的哥们端着长枪短炮的设备轰炸丽
Window[201]:江的早晨渺渺美景。??<br> ; ; 
Window[202]:; ;虽然小桥流水依旧,夜色大红灯笼也很诱惑,都在寻找着
Window[203]:一种过剩的激情。我独自听完颇有韵味的纳西古乐走在街上的时候,甚至
Window[204]:有个很奇怪的看我一个人凑上前来,热情的介绍有摩梭族的女孩走婚和跳
Window[205]:艳舞,问是否需要看表演,?那是个惊讶,果然开放带来一切,当然我并
Window[206]:不相信那些女孩是摩梭族的,都找的别地女人充数而已。当然我并没有去
Window[207]:后来在酒吧随便坐的时候,听一些驴友说甚至还有广东的走婚团就是为
Window[208]:了体验走婚去的,足见人们的追求各异。??<br> ;&n
……
Window[599]:rite(_rsCL);??//-->??</script>??
Window[600]:<noscript>??<img src=″//secure-c
Window[601]:n.imrworldwide.com/cgi-bin/m?ci=
Window[602]:cn-netease&;cg=0″alt=″″>??</
Window[603]:noscript>??<!--END NNR Site Cen
Window[604]:sus V5.1-->??</body>??</html>??”
由上述实例可知,该网页共分为605段。
步骤30、利用统计学原理,对字符进行强度编码转换。在本步骤中,对文档中出现的每一个字符,分析它在整个文档中出现的规律,通过对字符在文档中出现的位置进行统计学分析,得到关于字符出现位置的均值、标准方差,以及该字符在文档中的出现次数。利用上述的均值、标准方差以及出现次数,计算正文强度值。在计算正文强度值时,应以步骤20中所划分的字符段为计算单位。对于一个字符段,对字符作编码转换从而得到一个强度值序列I,该强度值序列的计算公式如下:
Ii,j=M(Wi,j,i·l+j)=M(Si·l+j,i·l+j),i=0Λ(w-1),j=0Λ(l-1)
其中M用于计算一个字符的强度值,对于在位置x出现的字符c,其正文强度值为:
上述公式中,μc是字符c出现位置的均值,σc是字符c出现位置的标准方差,Nc是字符c出现的次数。
因为正文包含更多的中英文字符,而包含较少的标点符号。所以在上述公式中如果字符是文字类型的(即’a’~’z’,’A’~’Z’,0x0100~0xFFFF),则用正态分布公式作为其编码转换函数,结果非负;对于其他字符,则用正态分布加上偏移量的公式,作为转换函数,结果非正。上述公式对于中英文字符是正数,对于标点符号是负数。因为正文位于文档中部,而标点符号位于文档两端,所以公式对于中英文字符是把信号强度集中在文档中部,对于标点符号是把信号强度分散到文档的两端。正文的强度函数如图2所示,由该图可知,由于频繁出现的中英文字符往往是常用词的反映,因此其信号强度按比例增大;而频繁出现的标点符号,往往是排版格式的反映,例如小于号和大于号,因此其信号强度在负数方向按比例增大。
对于所有的字符段,经过上述类似操作后,都可以得到各自的强度值序列。
步骤40、对步骤30中得到的每一个窗口字符段的强度值序列进行快速傅立叶变换,得到频域的F向量。其计算公式如下:
Fi=FFT(Ii)
快速傅立叶变换的具体实现是一项成熟的现有技术,在本实施例中不再作详细的说明。
步骤50、计算任意两字符段间的距离,两字符段间的距离为各频率上的欧式距离的总和。其计算公式如下:
由上述公式可见,计算任意两段的距离其实对这两段的对应频率位置上的两个值求差,然后再把所有差求和。例如A窗口和B窗口的距离,就是a0与b0的差,……a31与b31的差,对这些差的平方和再开平方,就得到了欧式距离的总和。
步骤60、为字符段设定区间,计算每个区间的权值。一个区间是若干个连续的窗口的组合,用数字对(b,e)来表示,该数字对表示由该数字对所表示的区间是由窗口Wb到We-1组成的,其中0≤b<e≤w。设定区间后,文件中的所有窗口段被分成了两组,分别为区间内部组和区间外部组,区间内部组A包括Wb~We-1,区间外部组B包括W0~Wb-1以及We~Ww-1。所有的窗口组由B组的前一部分{W0,W1,..,Wb-1},A组{Wb,Wb+1,..,We-1},B组的后一部分{We,We+1,..,Ww-1}组成。
区间的权值是指组间差之和减去组内差之和,其中,组间差是指从区间内部组A中任选一段与区间外部组B中的任意一段求差,所求差的总和就是组间差;组内差是指区间内部组A和区间外部组B各自对内部的任意两段求差,所求差的总和为组内差。区间权值的计算公式如下:
V(b,e)=InterGroup(b,e)-IntraGroup(b,e)
在本步骤中,计算区间的权值的一种优选实现方式是采用一种累计距离的加速算法,使用该算法可以快速地计算两个连续组的差值之和。如图3所示,该算法的计算公式如下:
其中,Dx,y表示x段和y段的距离,Di,j表示第0、1、...、(i-1)个窗口字符段和第0、1、...、(j-1)个窗口字符段的距离。上述公式用于加快计算组间差和组内差,先计算累计值表,通过查表和简单的代数运算就可以很快地求出组间差和组内差。其中的Di,j,i=1Λw,j=1Λ w就是所述的累计值表。
步骤70、对步骤60中计算所得到的所有区间的权值排序,权值最大的区间为最佳正文区间。在步骤60中,由于所设定的区间包含了连续窗口组合的所有可能情况,因此最终会得到多个区间的权值,对这些权值按照从大到小的顺序进行排序,最后选择权值最大的区间作为最佳正文区间,而最佳正文区间中所包含的内容也就是本发明最终要从网页中提取的正文。
对前述的关于香格里拉的网页,选择权值最大的区间,根据步骤60中权值计算的结果,最大权值为1.8671557984059033E9,权值最大的区间的b为197,e为395,该区间就是所求的最佳正文区间。
在一个实施例中,对区间权值排序,选择最佳正文区间的另一种实现方式是对权值做加权平均,然后根据加权平均的结果得到平均意义上的最佳正文区间。在实现时,通常对于权值大于0的区间进行加权平均,算出平均意义上的最佳正文区间(b*,e*)。求加权平均值的计算公式如下:
其中,V(b,e)表示区间权值。
仍以前述的关于香格里拉的网页为例,从步骤60的权值计算结果中,假设权值大于0的区间有100个,这些权值与对应的区间如下:
No.1:Area{b=197e=395w=1.8671557984059033E9}
No.2:Area{b=198e=395w=1.865928902944519E9}
No.3:Area{b=197e=394w=1.863446434026815E9}
No.4:Area{b=198e=394w=1.8620946999597936E9}
No.5:Area{b=197e=396w=1.8534012640629482E9}
No.6:Area{b=196e=395w=1.8533969765727189E9}
No.7:Area{b=198e=396w=1.852261927708008E9}
No.8:Area{b=199e=395w=1.8511999688045855E9}
No.9:Area{b=197e=393w=1.8500594430878716E9}
No.10:Area{b=196e=394w=1.849788102344682E9}
No.11:Area{b=198e=393w=1.848510799009436E9}
No.12:Area{b=199e=394w=1.8471652124879038E9}
No.13:Area{b=197e=397w=1.8453086053177962E9}
No.14:Area{b=195e=395w=1.845281305908179E9}
No.15:Area{b=198e=397w=1.8442583536949947E9}
No.16:Area{b=195e=394w=1.8417764283302329E9}
No.17:Area{b=197e=392w=1.8413777475416255E9}
No.18:Area{b=198e=392w=1.8396801709467006E9}
No.19:Area{b=196e=396w=1.8396421919565065E9}
No.20:Area{b=200e=395w=1.838057893744711E9}
No.21:Area{b=199e=396w=1.8377040837184753E9}
No.22:Area{b=196e=393w=1.8365645973901665E9}
No.23:Area{b=200e=394w=1.8338399474557528E9}
No.24:Area{b=199e=393w=1.8333431983722968E9}
No.25:Area{b=201e=395w=1.832882136920093E9}
No.26:Area{b=194e=395w=1.8327158264980187E9}
No.27:Area{b=197e=398w=1.8317380757017245E9}
No.28:Area{b=196e=397w=1.8315166911690896E9}
No.29:Area{b=195e=396w=1.8314938196044166E9}
No.30:Area{b=198e=398w=1.8307755060003867E9}
No.31:Area{b=202e=395w=1.830544198380903E9}
No.32:Area{b=199e=397w=1.829861304277684E9}
No.33:Area{b=194e=394w=1.829311678505044E9}
No.34:Area{b=195e=393w=1.828719245958915E9}
No.35:Area{b=201e=394w=1.8285160965672174E9}
No.36:Area{b=196e=392w=1.828012158947821E9}
No.37:Area{b=197e=391w=1.8270460014801817E9}
No.38:Area{b=202e=394w=1.8260582076294603E9}
No.39:Area{b=198e=391w=1.8251564260435276E9}
No.40:Area{b=200e=396w=1.824723891564548E9}
No.41:Area{b=199e=392w=1.8243151092166026E9}
No.42:Area{b=195e=397w=1.8233264390587733E9}
No.43:Area{b=203e=395w=1.822325780416904E9}
No.44:Area{b=195e=392w=1.8202939671958587E9}
No.45:Area{b=200e=393w=1.8198227669199252E9}
No.46:Area{b=201e=396w=1.8196575937589269E9}
No.47:Area{b=193e=395w=1.8191558800920327E9}
No.48:Area{b=194e=396w=1.8189200336928308E9}
No.49:Area{b=197e=399w=1.8179459850346885E9}
No.50:Area{b=196e=398w=1.8179439755481179E9}
No.51:Area{b=203e=394w=1.8176838100122943E9}
No.52:Area{b=202e=396w=1.8174102756958842E9}
No.53:Area{b=198e=399w=1.817070992891399E9}
No.54:Area{b=200e=397w=1.8170506741580334E9}
No.55:Area{b=199e=398w=1.8165496617398362E9}
No.56:Area{b=194e=393w=1.8164182449130914E9}
No.57:Area{b=193e=394w=1.8158518234459796E9}
No.58:Area{b=201e=393w=1.8143022038707862E9}
No.59:Area{b=196e=391w=1.8138511011079237E9}
No.60:Area{b=197e=390w=1.813416825235355E9}
No.61:Area{b=201e=397w=1.812101903347275E9}
No.62:Area{b=202e=393w=1.8116598519465666E9}
No.63:Area{b=198e=390w=1.8113552225214372E9}
No.64:Area{b=194e=397w=1.810719247254324E9}
No.65:Area{b=200e=392w=1.8106092331069574E9}
No.66:Area{b=202e=397w=1.8099494719208207E9}
No.67:Area{b=195e=398w=1.809720873865331E9}
No.68:Area{b=199e=391w=1.8095815493579323E9}
No.69:Area{b=203e=396w=1.8093194340361586E9}
No.70:Area{b=204e=395w=1.8091673410619712E9}
No.71:Area{b=194e=392w=1.8081203284794781E9}
No.72:Area{b=195e=391w=1.8062889464577138E9}
No.73:Area{b=192e=395w=1.8055887898178735E9}
No.74:Area{b=193e=396w=1.8053577759523911E9}
No.75:Area{b=201e=392w=1.8049212023955352E9}
No.76:Area{b=197e=400w=1.804362583413403E9}
No.77:Area{b=204e=394w=1.8043406024255657E9}
No.78:Area{b=196e=399w=1.8041515829944117E9}
No.79:Area{b=200e=398w=1.8039011525318637E9}
No.80:Area{b=198e=400w=1.8035751666398578E9}
No.81:Area{b=193e=393w=1.80312176475147E9}
No.82:Area{b=203e=393w=1.8030793314788742E9}
No.83:Area{b=199e=399w=1.8030163410122762E9}
No.84:Area{b=192e=394w=1.8023851986898751E9}
No.85:Area{b=202e=392w=1.8021209078151228E9}
No.86:Area{b=203e=397w=1.8019899976293116E9}
No.87:Area{b=196e=390w=1.8003818327393115E9}
No.88:Area{b=201e=398w=1.799061835030309E9}
No.89:Area{b=191e=395w=1.797390318129374E9}
No.90:Area{b=193e=397w=1.7971241276820748E9}
No.91:Area{b=194e=398w=1.797104678286477E9}
No.92:Area{b=202e=398w=1.797000014978798E9}
No.93:Area{b=204e=396w=1.796316784871037E9}
No.94:Area{b=195e=399w=1.7958957929261835E9}
No.95:Area{b=200e=391w=1.7956939769691014E9}
No.96:Area{b=199e=390w=1.7955746426529288E9}
No.97:Area{b=205e=395w=1.7951057911539783E9}
No.98:Area{b=193e=392w=1.7949530569627554E9}
No.99:Area{b=194e=391w=1.7942824448319867E9}
No.100:Area{b=191e=394w=1.79426301425113E9}
根据前述的计算公式,对上述权值做加权平均后的结果为begin=182.3652086633145,end=404.76999807248177,根据该加权平均值可得到相应的最佳正文区间。
采用本发明的方法,可以获得良好的实际效果:
在一个实例中,随机选取网易旅游(http://ok.travel.163.com/itinerar/list.isp),e游天下(http://www.eyooworld.com/index.html),红袖添香(http://www.hongxiu.com/),水木论坛(www.newsmth.net),科苑星空论坛(www.kyxk.net)这五个网站的“正文式”网页进行实验。各选取50个页面,共计250个页面。
人工观察源代码中正文开始和结束的位置,即正确的正文区间,记作(B,E);程序运行结果给出的权值最大的区间,即最佳正文区间,记作(b1,e1);通过加权平均得到的区间,即平均意义上的最佳正文区间,记作(b*,e*)。HTML源代码经处理后的总段数记作w,则得出权值法求解最佳正文区间准确度R,加权平均法求解最佳正文区间准确度R*。
下面的表1是对上述网页进行正文区间提取的准确度结果。
网易旅游 | e游天下 | 红袖添香 | 水木论坛 | 科苑星空论坛 | |
R均值 | 0.988153706 | 0.913867141 | 0.985827381 | 0.968767584 | 0.972534604 |
R<sup>*</sup>均值 | 0.944079847 | 0.882985277 | 0.91369307 | 0.958057645 | 0.929748895 |
表1
由实验结果可知,该算法对不同结构网页的正文内容提取的准确度都较高。R均值都在90%以上,五个网站的R均值约为96.583%。有四类网站的R*均值在90%以上,五个网站的均值约为91.957%。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (9)
1.一种基于快速傅立叶变换的网页正文提取方法,具体包含以下步骤:
步骤10)、读入HTML文件,并将该文件转换为Unicode格式,并存入一个字符数组中;
步骤20)、对步骤10)得到的字符数组进行窗口分段,分段后的窗口字符段包含固定长度的字符;
步骤30)、对字符在文档中的位置进行统计学分析,根据统计分析的结果对字符进行强度编码转换,得到该字符的正文强度值,每一个窗口字符段对应一个强度值序列;
步骤40)、对步骤30)中得到的每一个窗口字符段的强度值序列进行快速傅立叶变换,得到频域的F向量;
步骤50)、根据快速傅立叶变换的结果计算任意两个窗口字符段之间的距离;
步骤60)、为窗口字符段设定区间,所述区间是若干个连续的窗口的组合,用数字对(b,e)表示,根据步骤50)中得到的任意两个窗口字符段之间的距离,计算每个区间的权值;
步骤70)、对步骤60)中计算所得到的所有区间的权值排序,根据权值选择最佳正文区间。
2.根据权利要求1所述的基于快速傅立叶变换的网页正文提取方法,其特征在于,在所述的步骤30)中,所述的统计分析的结果包括关于字符出现位置的均值、标准方差,以及字符在文档中的出现次数。
3.根据权利要求2所述的基于快速傅立叶变换的网页正文提取方法,其特征在于,所述强度值序列的计算公式如下:
Ii,j=M(Wi,j,i·l+j)=M(Si·l+j,i·l+j),i=0…(w-1),j=0…(l-1);
其中,M用于计算一个字符的强度值,W表示窗口字符段的二维数组,S表示字符串数组,i表示窗口字符段的编号,j表示窗口字符段内的位置,l表示窗口字符段的长度,w表示窗口字符段的数目;
在计算所述M时,对于在位置x出现的字符c,其正文强度值为:
上述公式中,μc是字符c出现位置的均值,σc是字符c出现位置的标准方差,Nc是字符c出现的次数。
4.根据权利要求1所述的基于快速傅立叶变换的网页正文提取方法,其特征在于,在所述的步骤50)中,所述的计算任意两段之间的距离为计算各频率上的欧式距离的总和,其计算公式如下:
其中,F为步骤40)中做快速傅立叶变换后的结果;i表示窗口字符段的编号,j表示窗口字符段内的位置,l表示窗口字符段的长度,k表示大小在0到l-1范围内的一个数值。
5.根据权利要求4所述的基于快速傅立叶变换的网页正文提取方法,其特征在于,在所述的步骤60)中,所述的计算区间的权值是将组间差之和减去组内差之和,所述区间权值的计算公式如下:
V(b,e)=InterGroup(b,e)-IntraGroup(b,e)
其中,InterGroup表示组间差,IntraGroup表示组内差,Di,j表示步骤50)中计算得到的任意两个窗口字符段之间的距离。
6.根据权利要求5所述的基于快速傅立叶变换的网页正文提取方法,其特征在于,在所述的步骤60)中,所述的计算每个区间的权值采用累计距离的加速算法,所述算法的计算公式如下:
其中,Dx,y表示x段和y段的距离,Di,j表示第0、1、...、(i-1)个窗口字符段和第0、1、…、(j-1)个窗口字符段的距离;a、b、c、d、w表示窗口的序号,a<b-1<w,c<d-1<w。
7.根据权利要求1所述的基于快速傅立叶变换的网页正文提取方法,其特征在于,在所述的步骤70)中,选择权值最大的区间为最佳正文区间。
8.根据权利要求1所述的基于快速傅立叶变换的网页正文提取方法,其特征在于,在所述的步骤70)中,从步骤60)的计算结果中按照从大到小的顺序选择权值大于0的区间,对这些区间所对应的权值做加权平均,根据加权平均的结果选择最佳正文区间。
9.根据权利要求1所述的基于快速傅立叶变换的网页正文提取方法,其特征在于,所述网页中的正文信息用多字节字符集表示,包括日文、韩文和中文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100631827A CN101237465B (zh) | 2007-01-30 | 2007-01-30 | 一种基于快速傅里叶变换的网页正文提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007100631827A CN101237465B (zh) | 2007-01-30 | 2007-01-30 | 一种基于快速傅里叶变换的网页正文提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101237465A CN101237465A (zh) | 2008-08-06 |
CN101237465B true CN101237465B (zh) | 2010-11-03 |
Family
ID=39920823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007100631827A Expired - Fee Related CN101237465B (zh) | 2007-01-30 | 2007-01-30 | 一种基于快速傅里叶变换的网页正文提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101237465B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436309B (zh) * | 2008-12-15 | 2011-03-30 | 北大方正集团有限公司 | 一种修改公式运算符的方法和装置 |
CN102591612B (zh) * | 2011-12-27 | 2014-12-03 | 厦门市美亚柏科信息股份有限公司 | 一种基于标点连续性的通用网页正文提取方法及其系统 |
WO2015018244A1 (en) | 2013-08-07 | 2015-02-12 | Microsoft Corporation | Augmenting and presenting captured data |
US10255253B2 (en) | 2013-08-07 | 2019-04-09 | Microsoft Technology Licensing, Llc | Augmenting and presenting captured data |
CN105117500B (zh) * | 2015-10-10 | 2018-07-06 | 成都携恩科技有限公司 | 一种在大数据背景下的数据查询获取方法 |
CN106951505B (zh) * | 2017-03-16 | 2021-02-02 | 北京搜狐新媒体信息技术有限公司 | 网页信息获得方法及系统 |
CN114817639B (zh) * | 2022-05-18 | 2024-05-10 | 山东大学 | 基于对比学习的网页图卷积文档排序方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1321936A (zh) * | 2000-04-29 | 2001-11-14 | 三星电子株式会社 | 用于网页移植服务的方法和设备 |
CN1763740A (zh) * | 2003-09-18 | 2006-04-26 | 富士通株式会社 | 网页信息块提取方法和装置 |
CN1786947A (zh) * | 2004-12-07 | 2006-06-14 | 国际商业机器公司 | 基于网页页面布局提取网页核心内容的系统、方法和程序 |
-
2007
- 2007-01-30 CN CN2007100631827A patent/CN101237465B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1321936A (zh) * | 2000-04-29 | 2001-11-14 | 三星电子株式会社 | 用于网页移植服务的方法和设备 |
CN1763740A (zh) * | 2003-09-18 | 2006-04-26 | 富士通株式会社 | 网页信息块提取方法和装置 |
CN1786947A (zh) * | 2004-12-07 | 2006-06-14 | 国际商业机器公司 | 基于网页页面布局提取网页核心内容的系统、方法和程序 |
Non-Patent Citations (1)
Title |
---|
JP特开2005-242961A 2005.09.08 |
Also Published As
Publication number | Publication date |
---|---|
CN101237465A (zh) | 2008-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101237465B (zh) | 一种基于快速傅里叶变换的网页正文提取方法 | |
CN104778209B (zh) | 一种针对千万级规模新闻评论的观点挖掘方法 | |
CN111190900B (zh) | 一种云计算模式下json数据可视化优化方法 | |
TWI695277B (zh) | 自動化網站資料蒐集方法 | |
CN111143479A (zh) | 基于dbscan聚类算法的知识图谱关系抽取与rest服务可视化融合方法 | |
Li et al. | Markuplm: Pre-training of text and markup language for visually-rich document understanding | |
CN110175325A (zh) | 基于词向量和句法特征的评论分析方法及可视化交互界面 | |
CN103678412B (zh) | 一种文档检索的方法及装置 | |
CN110020189A (zh) | 一种基于中文相似性计算的文章推荐方法 | |
CN105653522B (zh) | 一种针对植物领域的非分类关系识别方法 | |
CN105930469A (zh) | 基于Hadoop的个性化旅游推荐系统及方法 | |
CN106484797A (zh) | 基于稀疏学习的突发事件摘要抽取方法 | |
CN109145190A (zh) | 一种基于神经机器翻译技术的局部引文推荐方法及系统 | |
CN103984771B (zh) | 一种英文微博中地理兴趣点抽取和感知其时间趋势的方法 | |
CN111177591A (zh) | 面向可视化需求的基于知识图谱的Web数据优化方法 | |
CN104899340B (zh) | 一种基于最紧致片段的ietm技术信息片段检索装置及其检索方法 | |
CN103810251B (zh) | 一种文本提取方法及装置 | |
CN105528437A (zh) | 一种基于结构化文本知识提取的问答系统构建方法 | |
CN105677638B (zh) | Web信息抽取方法 | |
CN104484380A (zh) | 个性化搜索方法及装置 | |
CN104199938B (zh) | 基于rss的农用土地信息发送方法和系统 | |
CN109033166B (zh) | 一种人物属性抽取训练数据集构建方法 | |
CN106503211A (zh) | 面向信息发布类网站的移动版自动生成的方法 | |
CN103064982A (zh) | 一种专利检索时智能推荐专利的方法 | |
CN106600482A (zh) | 多源社交数据融合的多角度旅游信息感知与智能推荐方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20101103 Termination date: 20130130 |