当前位置: 首页 > 专利查询>中山大学专利>正文

一种改进的基于行块分布函数的网页正文提取方法技术

技术编号:34973006 阅读:19 留言:0更新日期:2022-09-21 14:13
本发明专利技术提出了一种改进的基于行块分布函数的网页正文提取方法,该方法包括获取网页Html源码并进行预处理、提取网页title后找出正文区域、构建行块分布函数、分析行块分布函数得到提取结果。具体步骤如下:获取待提取网页url链接的Html并进行预处理,去除无关标签的同时获取网页title标签,对Html按行分割,根据每行与title的相关度和标点个数,找到正文存在区域;对正文区域内的每一行,合并周围K行形成行块,计算每个行块的长度,构建行块分布函数;根据行块分布函数值找出每块正文文本的起始和终止行号,合并Html对应行号区间内的文本,得到初步提取结果;最后对初步结果进行后处理,过滤可能存在的噪声,就得到最终正文提取结果。取结果。取结果。

【技术实现步骤摘要】
一种改进的基于行块分布函数的网页正文提取方法


[0001]本专利技术属于网页正文提取领域,具体是一种改进的基于行块分布函数的网页正文提取方法。

技术介绍

[0002]网页中除了正文内容等有用信息外,通常还包含一些与主题无关的噪声信息,如导航、广告链接、版权信息等,这些噪声信息会降低网页的可用性。网页正文提取是指从带有噪声信息的原始网页中根据一定的规则提取出正文部分,从而过滤各种无关信息,得到该网页的主体信息,能大大提高网页的有效性和网页信息提取的准确性,广泛应用于信息检索、搜索引擎、舆情分析等领域。
[0003]网页正文提取目前主要有基于视觉特征、基于模板、基于文档对象模型、基于机器学习、基于行块分布函数等五种方法。基于视觉特征的方法比较依赖网页的可视化信息,对页面的框架结构要求较高;基于模板的方法需要针对每个网站建模,工作量大,且网站改版后需要重新建模,缺乏通用性;基于文档对象模型的方法容易受Html编写不规范的影响,且每次建立和遍历DOM树需要花费较多时间;基于机器学习的方法需要标注大量网页样本用于训练模型,过程繁琐,而且特征如何选取对结果影响较大。
[0004]基于行块分布函数的方法较前四种方法而言,算法流程更为简单且算法复杂度低,其大致过程是将Html去除标签,只保留文本和空白行,以每行及上下K行作为一个行块,计算每个行块的长度,描绘出行块分布函数,找出骤升和骤降点,其中的内容便为正文。该方法在定位骤升和骤降行块位置时,只根据行块内容长度来划分正文和非正文,对一些网页而言准确率尚可,但在网页正文较短或噪声内容较长时,容易产生误判,且存在将正文末尾的噪声误判为正文的情况,无法达到良好的提取效果。

技术实现思路

[0005]针对上述问题及技术需求,提出了一种改进的基于行块分布函数的网页正文提取方法,该方法计算每行文本与网页标题的相关度,以及该行的标点符号个数,找出正文存在区域的起始行号和终止行号,只统计该区间内的行块长度,构建行块分布函数,初步提取后再根据父标签信息,删除末尾可能存在的噪声信息,从以上多方面降低噪声信息被误判为正文的概率,提高了正文提取的准确率。
[0006]本专利技术的技术方案如下:
[0007]一种改进的基于行块分布函数的网页正文提取方法,该方法包括获取Html源码并进行预处理、根据与标题的相关度和标点符号个数找到正文区域的起始和终止行号、根据构建的行块分布函数定位正文、根据父标签删除末尾的噪声信息,方法包括:
[0008]本方法的输入是待提取的网页url链接,为方便使用,也可输入网页Html源文件进行提取,如果输入是url则先获取其对应的Html,本质都是对Html进行处理;
[0009]使用requests库对输入的待提取网页url链接获取其对应的Html,通过get方法获
取该url对应的响应response,由response的text属性即可获得Html源码;
[0010]在获取Html源码时,由于不同网页采用不同编码方式,可能引起中文乱码问题,因此需要先获取网页的编码方式,再设置response的字符编码与其相同;
[0011]使用BeautifulSoup库解析Html,获取网页title标签里的内容,即网页标题,用于下一步的判断;
[0012]从第一行开始,计算当前行与title的最长公共子序列长度,以此为判断依据找到正文存在区域的起始行号first,同理,从最后一行往前遍历,计算当前行与title的最长公共子序列以及该行的标点符号个数,找到正文区域的终止行号last;
[0013]对Html源码进行预处理,删除script、style、link等不含正文内容的无关标签及注释,保留文本内容和空白行信息;
[0014]从首行向下遍历,以当前行及向下两行作为一个行块,若行块在正文起始和终止行号区间[first,last]内,计算该行块的长度,构建行块分布函数,若当前行块不位于此区间则该行块对应的行块分布函数值直接置0;
[0015]根据得到的行块分布函数,找出每次的骤升点start和骤降点end,获取该区间内的文本内容,将所有骤升和骤降点内的文本内容合并在一起,得到初步提取的正文内容;
[0016]在初步提取结果的基础上,使用BeautifulSoup库解析Html源码,获取初步提取结果最后一行和倒数第二行文本在Html中的父标签,判断两者父标签是否相同,若不同,则删除最后一行,若相同则保留,如此便得到最终的正文提取结果;
[0017]本专利技术的有益技术效果是:
[0018]1、本申请公开了一种改进的基于行块分布函数的网页正文提取方法,采用获取网页title后根据与title的相关度确定正文起始和终止区间、区间外行块分布函数置0、统计标点符号个数以及根据父标签是否一致删除末尾的噪声信息等方法,通过多步骤处理,克服原算法容易将长噪声误判为正文的弊端,提高了提取准确率;
[0019]2、通过采用根据与title相关度找到正文起始和终止区间、只在该区间内构建行块分布函数的方法,不仅避免提取到开头和末尾的噪声信息,而且区间外无需计算行块分布函数,减小计算量。
[0020]3、通过统计标点符号个数、判断父标签是否一致的方法,过滤掉容易被误判为正文的噪声,使得提取结果更准确。
[0021]4、本专利技术不需要标注大量网页样本用于训练模型,不需要构建DOM树,过程简单,通用性好。
附图说明
[0022]图1是本申请中的网页正文提取方法的流程图。
[0023]图2是用于测试的网页Html页面原图。
[0024]图3是原基于行块分布函数方法的提取结果示意图。
[0025]图4是使用本申请所提出方法的提取结果示意图。
具体实施方式
[0026]下面结合附图对本专利技术做进一步的说明。
[0027]本申请中公开了一种改进的基于行块分布函数的网页正文提取方法,其中待提取的网页可能来自各个网站,网页的编写风格差别较大,正文所在的标签也不同。本专利技术是采用一定的规则进行计算从而判断出网页中哪一部分属于正文,无需使用模型进行训练,整体流程简单,主要流程参考图1,提取效果参考图2、图3、图4。
[0028]本专利技术主要包含三个部分,具体的实施步骤如下:
[0029]第一部分为获取网页Html源码,并进行一定的预处理,以便用于后续的正文提取,包括以下步骤:
[0030]第一步,先读取输入的待提取网页url链接,使用requests库获取该url的response和编码方式,设置response的字符编码与之相同,避免因网页编码方式不同导致的乱码问题,再通过response的text属性即可获得原始Html,记为HtmlA;
[0031]第二步,由于HtmlA含有大量与正文无关的噪声信息,比如Html注释、js脚本、css样式等,这些内容对正文提取没有作用,采用正则匹配将其去除,将过滤结果记为HtmlB,对Ht本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种改进的基于行块分布函数的网页正文提取方法,其特征在于,使用BeautifulSoup库解析Html获取网页title,根据与title的相关度和标点符号个数找到正文存在区域的起始和终止行号,根据最后两行的父标签是否一致删除末尾可能存在的噪声信息,所述方法包括:读取输入的待提取网页url链接,使用requests库获取该url对应的Html源码,对Html进行预处理,采用正则匹配将与正文无关的噪声信息去除,保留文本和空白行信息;使用BeautifulSoup库解析原Html,获取网页title标签里的内容,去除标点符号和网站名,作为下一步计算最长公共子序列(LCS)的依据;对预处理后的Html以行为单位进行分割,从第一行开始,计算当前行与title的LCS,找到正文存在区域的起始行号,同理,从最后一行往前遍历,计算当前行与title的LCS以及该行的标点符号个数,找到正文区域的终止行号;在正文存在区域内,以当前行及向下两行为一个行块,计算该行块内非空白字符个数,以行块号为横轴、行块长度为纵轴构建行块分布函数,分析行块分布函数,初步定位出正文所在位置;对初步提取结果的最后两行,采用Beauti...

【专利技术属性】
技术研发人员:陈嘉锴戴宪华
申请(专利权)人:中山大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1