网页正文的提取方法和装置的制造方法_2

文档序号:9579270阅读:来源:国知局
于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0066]图1为本发明中网页正文提取方法的流程图;
[0067]图2为网页正文分布示意图;
[0068]图3示出了确定网页正文中优选算法的流程图;
[0069]图4示出了作为具体示例的新闻网页的页面图;
[0070]图5示出了经过滤干扰数据后的网页页面图;
[0071]图6示出了网页正文提取装置的结构示意图。
【具体实施方式】
[0072]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0073]本发明的各个实施例涉及一种网页正文的提取方法和提取装置。图1示出了本发明中网页正文提取方法的流程图。如图1所示,网页正文的提取方法包括:
[0074]S101:读取网页数据,确定网页数据中包含的干扰数据,以及,用空字符替换干扰数据。
[0075]在本步骤中,采集待提取正文的网页文件,按行读取网页文件中的网页数据,对网页数据中的干扰数据进行过滤,目的是去除不是正文文字内容的信息。在本发明中,所述干扰数据是指网页中除网页正文文字内容之外的数据。
[0076]具体地,过滤的干扰数据包括但不限于如下数据:网页中的html标签、页面中的Javascript脚本、页面中的Css (Cascading Style Sheet,级联样式表)、页面中的注释信息和Head标签内的所有内容。由于正文信息不可能出现在Head标签中,因此Head标签内的所有内容均可过滤掉。
[0077]本发明中,网页数据的采集来源可为系统中的存储器、浏览器或本地服务器等存储介质中。网页数据可从系统中的存储器或浏览器中读取,也可由本地服务器由其他存储介质中进行下载存储。
[0078]S102:记录网页每一行的行号以及对应行内的文字个数。
[0079]本步骤中,以行为单位读取网页数据。在读取一行数据后,记录该行的行号和并计算该行内的文字个数。优选地,将记录的网页每一行的行号以及对应行内的文字个数存放到一个数组中。例如:(1,20),(2,0), (3,0),(4,20),(5,30)分别表示第1行有20个字,第2行有0个字,第3行有0个字,以此类推。
[0080]S103:利用每一行的行号以及对应行内的文字个数确定网页正文。
[0081]本步骤利用每一行的行号以及对应行内的文字个数并通过具体算法识别网页中某个连续范围内的文字为网页正文。
[0082]图2示出了网页正文分布示意图,如图2所示,横坐标代表行号,纵坐标代表该行经过过滤之后的文字个数,本发明的思路即为在横坐标中找出一个范围,而该范围即为网页正文所在的行区间。
[0083]具体地,图3示出了确定网页正文中优选算法的流程图,如图3所示,包括如下步骤:
[0084]S301:对空行中的文字个数进行处理。
[0085]将网页中的空行的文字个数设置为负数。此处负数取值以-10为例,参照数组(1,20), (2,0), (3,0),(4,20),(5,30),进行文字个数处理后为(1,20),(2,-10),(3,-10),(4,20),(5,30)。
[0086]S302:构建处理模型。
[0087]由图2可知,若想找出图中网页正文所在行区间的范围,可将该问题转化为求数组中连续的一组数据的最大和的问题。如数组(1,20),(2,0), (3,0),(4,20),(5,30)中,易知连续一组数的最大和就是第4行和第5行的值的和即20+30 = 50。
[0088]S303:设计状态转移方程求一组连续数的最大和。
[0089]假设一个字符串包括N个字符,F(n)表示计算包含第η个值的最大值,分别计算F(l),F(2)...F(n)。F (1),F (2)...F (η)中的最大值即是一组连续数的最大和。
[0090]对于F(n),它一定包含第η行的文字个数a[n],所以它包括两个子部分:第一个为a [η],第二个为 a [n]+F (n-1)。所以状态转移方程设计为:F(n) = max (F (n-1) +a [η], a [n])
[0091]利用上述状态转移方程,逐次计算F(l)到F(n),通过计算,若F(l)到F(n)中的最大值为F(k) 1 <k< n,则第k行即为文字个数总和最大值的终止行,通过最大值F(k),及计算出的F(k-l)到F(l),可计算出文字个数总和最大值的起始行。文字个数总和最大值的起始行和终止行即为网页正文的起始行和终止行,文字个数总和最大值即为网页正文的文字个数。
[0092]S304:确定网页正文所处行区间的起始行和终止行。
[0093]具体计算步骤包括:
[0094]确定最大行号j ;
[0095]计算初始行文字个数总和,F(l) = a[l];
[0096]设置当前行号n = i,i = 2?j ;以第η行为最后一行的一段连续行的文字个数总和最大值 F (n) = F(n-l)+a[n];
[0097]如果F (n-1) <0』jF(n) = a[n],使 η = η+1 ;
[0098]如果F(n_l) > 0, F(n) = F(n_l)+a[n],使 η = η+1 ;
[0099]比较η和j,如果η = j,则结束F(η)的计算;若η不等于j,转计算F(n)的步骤继续计算。
[0100]查找F(l)?F(j)中的最大值,最大值所在行确定为网页正文所处行区间的终止行,根据所述最大值和每行文字个数a [η]确定网页正文所处行区间的起始行。
[0101]以数组(1,15),(2,-10),(3,-10),(4,-10)(5,10), (6,20),(7,50),(8,-10),(9,-10), (10,5)为例进行具体说明。利用状态转移方程可得:
[0102]F(1) = a[l] = 15 ;
[0103]F (2) = max (F (1) +a [2], a [2]) = max (15-10 = 5,-10) =5
[0104]F (3) = max (F (2) +a [3], a [3]) = max (5-10 = -5, -10) = _5
[0105]F (4) = max (F (3) +a [4], a [4]) = max (-5-10 = -15, -10) = -10
[0106]F (5) = max (F (4) +a [5], a [5]) = max (-10+10 = 0,10) =10
[0107]F (6) = max (F (5) +a [6], a [6] = max (10+20 = 30,20) =30
[0108]F (7) = max (F(6)+a[7], a [7]) = max (30+50 = 80,50) =80
[0109]F(8) = max(F(7)+a[8],a[8]) = max (80-10 = 70,-10) =70
[0110]F (9) = max (F (8) +a [9], a [9]) = max (70-10 = 60,-10) =60
[0111]F (10) = max (F(9)+a[10], a [10]) = max (60+5 = 65,5) =65
[0112]由以上可知,F(l)到F(10)中一组数的最大和为F(7) = 80,则第7行为文字个数总和最大值的终止行,通过第7行的文字个数a[7] =30,第6行的文字个数a[6] =20,第5行的文字个数a[5] = 10,则可知第5行为文字个数总和最大值的起始行,由此可确定网页正文的起始行和终止行分别为第5行和第7行,网页正文的文字个数总和为80字。
[0113]S104:将确定的起始行和终止行之间的文字提取作为网页正文。
[0114]下面以一个新闻网页为例进行具体说明。
[0115]图4示出了作为具体示例的新闻网页的页面图。在此新闻页面中,包括导航栏、新闻标题、网页正文、文字链广告、图片、多个链接、产品推荐链接等内容。
[0116]读取上述网页的网页数据后对网页中的干扰数据进行处理,图5示出了经过滤干扰数据后的网页页面图。
[0117]经过滤后的网页的每行字数如下,对于空行文字的文字个数利用-10替代,将结果存放于第一数组中,得到如下处理结果:
[0118][-10,15,-10,-10,-10, -10, -10, -10, -10, -10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-1
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1