最近由于工作的需要,在网上查找了一些关于网页内容抽取的资料,其中“基于逻辑行和最大接纳距离的网页正文抽取”的算法易于实现且抽取效果较好,故编写代码实现,以下描述该算法。
算法的基本思路:
人们在编写HTML网页时,几乎都会遵循这样的规则:
1.以行为单位编写HTML代码,也就是说HTML中的每一行大都表示一个相对完整的语义。
2.正文代码通常在物理位置上都会靠得很近,也就是正文代码是连续的,或者是间断连续的。
3.正文中每一行大都是中文,HTML标签的字数的比率较小。
4.正文代码中非HTML标签的文字数量较多。
5.正文代码中一行中超链接长度所占比率不会很大。
相关定义:
1.逻辑行:按照行来读取字符流,如果在行中“<”符号和“>”相等,则该行是一个完整的逻辑行,反之则不是一个完整的逻辑行,如果不是逻辑行,则需要读入下一行,直至是一个完整的逻辑行为止。
2.TR(行内文本比率):在一个逻辑行中,不含HTML标签的文本字节数与逻辑行总字符数的比值。经过试验,TR值小于0.42的行不被认为是文本内容,会被过滤掉。
3.TN(行内文本数):在一个逻辑行中,不含HTML标签的文本字节数。一般情况下,认为TN大于25是一个文本内容,小于25的将被过滤掉,个人使用时,认为使用10比较合适。
4.LR(行内超链接比率):在一个逻辑行中,超链接的字节数与逻辑行总字节数的比率,一般情况下,认为LR大于0.75的逻辑将不认为是文章内容,将会被过滤。
本算法可以分为两部分,第一部分来文本预处理,第二部分在第一部分的基础上实现文本抽取。
1.预处理:有了以上依据还不足以抽取网页正文,比如HTML注释,javascript脚本等非网页正文在很多情况下也会符合上述规则,这就严重影响了正文抽取的准备性。所以在内容抽取之前,需要过滤掉这些明显的非网页正文。具体过滤的包括以下几项:
(1)HTML内容中<body>之前内容。
(2)内部样式表内容,即<style>....</style>样式块。
(3)JavaScript脚本,即<script ...>....</script>。
(4)HTML注释。
2.文本抽取:经过预处理后,根据以上设定的几个指标的阀值,很容易可以过滤掉不符合网页正文的逻辑行,留下的文本,即可大致认为是网页正文,为了更形象的说明网页逻辑行的选取情况,可以定义一个数组或其它数据结构,描述如下:FS={f1,f2...fi..,fn},其中i表示网页中的逻辑行,n代表网页逻辑行的个数。fi的值有两个,0,代表该行被过滤,1,代表该行被选取。FS的形式如下:{0,1,1,1,1,0,0,0,0,1,1,0},可以发现,网页中的连续段落经常会有多个,根据“网页中的正文是连续的或者是间断连续的”,可以知道这其中某一段落或者多个段落都是网页正文。但是正文中也有可能包含一些非正文的内容,导致正文中断,所以在此处引入“最大接纳距离MaxAD”的概念,定义:在FS集合中,可以接纳的两个标记为1之间的最大位置之差,在这两个标记中的0可以修正为1。经过测试,发现MaxAD为2比较合适 。根据MaxAD的值,对FS的的集合值进行修正,修正完成后,连续的最长的选取的内容即是网页要抽取的内容。
原帖见http://www.doc88.com/p-69317315375.html。
分享到:
相关推荐
针对这些问题,该文提出了一个网页正文抽取的新方法,该方法不依赖DOM树,而是考虑人们编写网页的方式形成一些启发式规则,并结合相关的统计规律,以逻辑行为基本处理单位,基于最大接纳距离进行网页正文抽取。...
新能源的最大接纳能力评估就是基于这个平衡原则,通过分析和计算,确定在保证系统安全运行的前提下,一个地区可以接纳的新能源最大容量。 【评估方法的关键因素】 评估新能源最大接纳能力时,需要考虑以下几个关键...
本文主要讨论了基于新能源发展背景下的配电网接纳能力分析问题,对配电网接纳新能源的能力进行了详细的分析和讨论。通过对新能源发展现状、配电网接纳新能源的影响、提高配电网接纳能力的措施等方面进行了详细的研究...
接纳控制的分类按照算法和决策方式进行了说明,指出有基于参数的接纳控制、基于测量的接纳控制和基于策略的接纳控制,并可以分为分布式和集中式。文中还特别强调了分布式接纳控制中的基于测量的接纳控制方法,包括...
因此,本研究提出了一种基于配电网接纳能力的分布式电源并网案例库架构设计,旨在优化分布式电源并网运行方式,提出一种便于快速制定和优化并网方案的理论框架。这种框架具有较好的实际操作性,可以适应未来配电网中...
提出一种基于带宽分配的多业务接纳控制算法,依据系统无线拥塞程度的不同相应地采用不同的机制来进行呼叫接入的判决,当系统发生严重拥塞时,拒绝接入所有的呼叫;而在系统发生中等程度的拥塞时,如果新呼叫所隶属的...
1) 针对基于多制式的半分布式联合接纳控制是本次研究中最新提出的一种接纳控制解决方案和架构,分为增强型本地接纳控制与联合接纳控制,改进了小区驻留选择与重选方法,实现了对小区重选控制,并对接纳控制传回控制...
本文讨论了一种基于接收功率的多业务接纳控制算法,该算法的主要目标是支持多业务服务,满足严格的服务质量(QoS)要求,并解决无线资源稀缺的问题,以保持覆盖区域和服务的稳健性。 首先,我们来解释一下接纳控制...
新能源接纳能力的研究旨在找出电网接纳新能源的最大阈值,确保电力系统的安全和经济运行。 【容量约束】容量约束是衡量电网接纳新能源能力的关键因素,主要包括本地电网的容量裕度和跨区域输电通道的输送能力。容量...
污水处理厂接纳协议是一种重要的法律文件,它涉及到环境保护、城市规划以及工业生产等多个领域。这份协议通常由污水处理厂与需要排放污水的企业或机构签订,旨在规范污水的排放行为,确保污水经过必要的处理达到国家...
标题中的“网络游戏-基于用户需求和网络负载均衡的群体联合接纳控制方法”表明这是一个关于网络游戏优化的技术主题,特别是关注如何通过用户需求分析和网络负载均衡来实现更有效的群体接纳控制。这种技术通常涉及到...
本文提出了一种基于漏桶模型的接纳控制机制,旨在优化内容适配系统的性能和服务质量(QoS)。随着互联网技术的发展,多媒体应用(如视频、音频等)的需求日益增长,这对服务器的处理能力、存储空间以及网络传输提出...
"通信对抗原理第章通信侦察系统的灵敏度和作用距离" 通信对抗原理第章通信侦察系统的灵敏度和作用距离是通信侦察系统的重要组成部分。通信侦察系统的灵敏度是指接纳机输入端的最小信号功率,为了提高接纳机灵敏度,...
消纳能力极限是指在确保电网稳定运行的前提下,电力系统能够接纳的最大新能源容量。通过对历史数据的分析和模型仿真,可以找出新能源接纳的瓶颈,为优化电网结构、改进调度策略和制定新能源发展政策提供依据。 总结...
无线通信网络中多种接入技术将长期并存且协同工作,传统的接纳控制方法无法满足现有用户与网络需求。联合接纳控制是联合无线资源管理的重要组成部分,接纳控制策略的好坏直接影响到用户的服务质量。通过对不同接纳...
电力系统风电并网接纳能力的研究是电力行业中一个关键议题,主要关注如何在保障电力系统稳定运行的同时,最大限度地接纳风力发电的清洁能源。时序计算是解决这一问题的有效工具,通过对系统负荷和机组出力的序列化...
本文根据网络流量自相似特性,将基于参数的接纳控制与基于测量的接纳控制方法相结合,提出了基于测量的自相似接纳控制算法和基于自相似测量的自适应接纳控制算法 。仿真结果表明,该算法能够提高自相似网络流量环境下的...