一种网页正文的提取方法

文档序号:8282397阅读:675来源:国知局
一种网页正文的提取方法
【技术领域】
[0001]本发明涉及信息处理领域,具体涉及一种通用且高效的网页正文提取方法。
技术背景
[0002]网页正文提取是指计算机系统从各种非结构化、内容各异、布局不同的互联网网页中识别出标题、正文等结构化的文本信息的方法。对Web信息检索系统,尤其是搜索引擎来说,网页正文提取是一个非常重要的基础性模块。正文提取如果不准确,例如对正文部分的提取有大量遗漏,或者把非正文部分识别为正文,那么后续与查询词的匹配过程便不能保证精准,难以满足用户的需求。
[0003]近几年来,随着微信等聊天分享平台和个性化阅读应用的普及,这些应用需要对第三方站点的网页进行正文提取,以便在不同尺寸的屏幕上适配网页内容,提高用户体验。另一方面,精准广告技术等的发展,对大数据文本挖掘的需求越来越高,而大数据文本挖掘的一个前提,便是能够识别互联网上海量的URL对应的网页正文。这些网页不仅仅来自新闻门户,也包括了百科站点、个人博客、问答社区等,数据量大,且内容包罗万象。
[0004]以上需求都说明了网页正文提取的重要程度,同时也要求网页正文提取的方法具备快速、准确、通用的特性。现有的网页提取方法可以概括为以下几种:
(I)基于规则的做法。人工为特定的网站指定提取规则,例如正则表达式或XPath等。优点是准确程度高,但缺点是只能解析固定网站或固定格式的网页,并且规则的制定过程费时费力,一旦网页布局发生变化,后续难以发现和更新维护。
[0005](2)解析HTML的DOM (文档对象模型)树结构。通过对HTML网页构建DOM树,对树进行遍历,识别并剔除非正文信息,并依据页面布局、文本密度等规则提取正文文本。这样做最大的缺点是构建DOM树的速度较慢,正文提取效率很低。且随着网页创作技术的更新换代,很多网站HTML越来越复杂,也越来越不规范,这种解析方法不仅速度慢,也会有一定概率构建不出DOM树导致提取失败。
[0006](3)基于HTML中的隐含注释和视觉信息(例如文字颜色、字体等)。这种方法的通用性不够,仍旧需要很多人工规则,通常只对新闻门户等有很好效果,但对个人博客这种风格变化较大的网页,成功率较低。

【发明内容】

[0007]为了克服现有技术的不足,本发明提供了一种通用且高效的网页正文提取方法,能够高效的对网页进行处理、提取正文文本,可以很好的应用于搜索引擎、大数据文本挖掘等任务。
[0008]本发明的目的是通过以下技术方案实现的:
一种网页正文的提取方法,包括以下步骤:
步骤一,通过正则表达式提取网页标题。
[0009]步骤二,网页预处理,即去除无关字符和网页标签,获取网页中连续的文本片段。无关字符包括但不限于网页脚本、层叠样式表、注释。去除网页标签具体方法包括:(1)移除网页中原有的换行符;(2)移除网页中的标签,并以新的换行符替换。
[0010]步骤三,动态划分文本块。(I)统计获取的文本片段中的所有空行,检查每一个空行前后一共有多少个连续的空行,以此得到一个数组;(2)对数组从小到大做排序,选择数组第五分之一小的数作为阈值;(3)以此阈值作为连续空行的个数对文本片段进行分隔,获得多个动态文本块。
[0011]步骤四,对文本块进行打分,选取最优文本块。具体内容包括:统计每个文本块的文字长度、超链接个数、标点符号个数、停止词个数、与标题的相似度、文本块在所有文本中的相对位置的信息,分别记为 text_density, link_density, punctuat1n_density,stopword_density, title_match_rate, posit1n_rate,对各个文本块进行打分,分数越高,文本越好,以此选取最优文本块。
[0012]文本块的得分公式为:
y = text_density * posit1n_rate * (I + title_match_rate) *sqrt(punctuat1n_density) / link_density / sqrt (stopword_density)。
[0013]步骤五,循环扩大文本块。从获取的最优文本块开始,合并其前方或后方的文本块,并重新计算得分;如果得分升高,则把合并后的文本块加入最优文本块,如果得分下降,则放弃此次合并;循环下去,直到得分不能升高为止,最终得到的文本块,就是要提取的正文信息。
[0014]综上所述,由于采用了上述技术方案,本发明和现有技术相比,有以下有益效果: (I)高效。本发明的正文提取方法不需要构建DOM树,也不需要递归树结构,只需要对
HTML扫描几遍就可以完成预处理和文本片段的获取工作,提取速度很快。
[0015](2)通用。本发明并不依赖特定的网页布局,也不需要对网页标签、注释等做出大量的假设,因而有很好的通用性。实验表明,无论对新闻门户还是个人博客、论坛社区的各种网页都有很好的提取效果。
[0016](3)准确性高。由于本发明的提取方法需要对文本块打分,能够很好的对非正文内容做区分和过滤,并且从最优文本块做循环合并的策略能够最小限度的遗漏优质文本。
[0017](4)鲁棒性好。本发明的提取方法并不需要对HTML的正确性做出假设,因此即使对不规范的HTML文本,也可以进行正文提取。
【附图说明】
[0018]图1是本发明一种网页正文的提取方法的流程图。
【具体实施方式】
[0019]
下面结合附图和实施例对本发明的【具体实施方式】作详细说明。
[0020]请参见图1,本发明一种网页正文的提取方法分为两个主要步骤:一、文本块分隔;二、统计过滤和合并。文本块分隔的目的是把正文片段与非正文片段分隔开;统计过滤和合并的目的是把正文片段筛选出来。文本块分隔包括通过正则表达式提取网页标题、网页预处理、动态划分文本块三个步骤;统计过滤和合并包括选取最优文本块、循环扩大文本块两个步骤。
[0021]首先要从原始网页中提取网页标题,为后续的文本块打分做准备。提取网页标题可以通过设定通用正则表达式来完成,例如Python语言中的提取规则:
_title = re.compile (r’〈title〉(.*?)〈/title〉’,re.l|re.S)以及,
_title = re.compile (r' <hl> (.*?) </hl>', re.l|re.S)。
[0022]提取网页标题后要进行网页预处理,网页预处理的目的是去除无关字符和网页标签,获取网页中连
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1