APP下载

基于网络爬虫的法律文本纠错词库构建

2020-07-10刘明洁

软件 2020年5期
关键词:词库爬虫队列

刘明洁,李 珅,梁 毅

(1. 北京工业大学信息学部计算机学院,北京 100124;2. 中国司法大数据研究院有限公司,北京 100043)

0 引言

随着我国法制进程的突飞猛进,促使法律案件数量迅速增长。伴随信息化的普及,法律文本数字化已经成为趋势。由于数字化的过程千差万别,最终导致信息化形成的文本需要纠正字词的误识别情形。中文文本校对与英文文本校对十分不同,特别是法律文本,其兼具中文语法特性和领域专业性。为了能够精准的识别文本错误,首先要有一套详尽准确的词库数据,其既可以是句法分析、语义分析的基础,也是错误判断、纠错识别的依据。因此,构建词库对数字化法律文本的校对识别十分重要。

近年来,网络爬虫技术作为自动化获取信息的得力助手正在迅猛发展。网络爬虫能够根据指定规则实现自动化的与网络应用交互,其已经被应用到了各个领域[1]-[2]。Distil Networks 2018的研究报告指出,在互联网中约有40%-60%的流量来自网络爬虫应用,充分证明网络爬虫技术已经广泛地使用。本文采用网络爬虫技术,通过爬取和分析网络上大量存在的文本数据,结合使用数据清洗策略对爬取数据进行筛选,最终生成专业性词库数据供法律文本纠错使用。

1 相关工作介绍

1.1 文本校对

自从20世纪60年代开始,国外已经开启了对英文文本拼写校对的研究工作[3]。在研究的最初阶段,主要方式还是以建立概率模型和字词词典来进行校对。近年来,字词级校对的技术研究渐趋成熟,但在不限制给定语境情形下的真词错误校对方面仍然很难保证文本校对的可靠性。因此,学者们纷纷在基于语义的文本校对方向上面展开研究。

Sikl等[4]将校对问题等价于翻译问题,其把错误文本看作源语言,纠正文本作为目标语言进行文本拼写检查。张仰森等[5]提出一种基于语义和知识库互相融合的错误侦测模型,其构建了搭配知识库的三层语义模型并形成了一个基于该知识库的语义侦测算法用来识别语义级错误。陶永才等[6]在词语搭配知识库的基础上,综合使用互信息和聚合度来计算词语关联度进行词语搭配关系的侦测校验。曹存根等[7]面向非多字词错误提出基于模糊分词的自动校对方法。

综合上述工作可以发现,中文文本自动校对方法中均包含知识库的构建准备工作,因此,知识库的完善程度对校对结果有很大的影响。一个充分的知识库可以使校对结果获得较高的正确率,而如何构建一个质量高得知识库一直是文本校对研究中不可或缺的一部分。

1.2 网络爬虫

网络爬虫,也称作Web信息采集器,它是可以自动执行互联网页面下载的计算机自动化运行脚本[8]。网络爬虫程序通常从一个称为种子的网页地址集合开始,它首先将这些地址全部放入到待爬行队列中,然后按序从中取出地址并下载相关页面及解析页面内容,提取内容信息以及内嵌未爬取过的页面链接地址,将新发现地址存入待爬行队列中,如此重复上述过程,直至待爬行队列为空而终止[9-11]。此过程可以称为网络爬虫。

在用网络爬虫对页面信息进行采集时,页面信息的抽取是重要组成部分。如何准确的将目标信息从页面中提取出来一直都是重要研究课题。陈俊彬[12]指出Web信息抽取策略根据实现原理的不同可以分为基于自然语言理解方式的信息抽取、基于ontology方式的信息抽取、基于网页结构特征的信息抽取以及基于统计学习的信息抽取。同时,在网络信息资源巨量增长的情况下,为了迅速获取指定领域信息,主题爬虫越来越多的受到关注。而影响主题爬虫抓取效率的关键因素就是爬行策略[13]。史宝明等[14]提出一种基于链接模型的相关判别算法,综合了待分析网页地址之间的相关性分析,提高主题爬虫的效率。杜晓旭[15]等人将新浪微博内容视为主题,利用Python原始的第三方库进行数据获取和分析,使计算更简洁和明了。

总体来说,爬虫技术日趋成熟,但也存在实现复杂的一面,在具体的设计实现中应以具体问题为导向,融合多种技术策略的优势,以便快速高效的完成信息获取和解析。

2 方案设计

本文设计的方案为,通过网页地址提取网页内容,根据数据属性筛选页面信息,既包括了标题和内容,同时还包括含有该页面内嵌其他链接地址的集合,以此来全面爬取与该页面有关的各种信息。在获取信息后,对数据进行清洗筛选以最终获得专业性词库数据。

本文中设计的爬虫以普通爬虫为基础,同时在功能上进行了适当扩充。在整个爬虫处理过程中,增加主题确立、种子优化、内容排序等功能模块。其中,主题确立模块用于选取主题,以便爬虫程序更具有针对性的析取内容;种子优化模块用于生成面向指定主题的优秀站点,以便爬虫程序能顺利获取内容;内容排序是对页面内容的综合处理,此模块计算出每个页面的权重价值,并与主题内容进行比较形成全面的评价排序结果,供程序筛选选取用。下图是爬虫的系统组成图。

图1 爬虫系统示意图Fig.1 Web crawler image

2.1 主题确立模块

主题确立模块的主要任务就是对主题的确立,本文采用词语频次权重计算法来确定主题。主要方法为通过统计指定主题下不同词汇出现的频次,按照频次的数值筛选关键词并设定权重形成主题匹配词库,后续进行网页爬取时将提取的网页关键词与匹配词库比对,结合权重数值的计算,从而得到网页主题。

对于权值的设置有两种方法:手工设置和计算赋值。计算赋值是指给定一个与主题有关的网页集合,由程序自动提取这些网页里面共同的特征,并根据频率确定权值;手工设置则是依据人工经验进行,设置需要分析和提取的主题关键词并设置权值。

2.2 种子优化模块

在执行爬虫程序抓取网页数据时,为了节省计算资源和耗时成本,应避免互联网网址的大规模爬取,反之应针对性的选取质量较高、内容较全的网页进行内容提取。这样既可提高效率,也可提高内容质量。本文的做法是采用元搜索引擎,在其搜索结果中选取与主题相匹配的高质量地址作为种子集合供后续爬虫程序使用。

2.3 排序模块

排序模块的作用是对网页的重要程度进行排序,将重要程度指数高的网页靠前排序。对网页排序的影响因素有很多,在对网页计算排序时,可以综合考虑主题相关度和链接分析两个因素,而链接分析是以PageRank算法为基础的。因此,在计算时可对主题相关度和PageRank赋予不同的权重,网页的重要程度可以表示为如下形式:

其中 cos是通过主题相关度计算得出的数值,R(u)是利用PageRank算法计算得到的可用于页面排序的网页权重值。

3 爬虫实现

系统的流程示意如图2所示。主要功能如下:

图2 爬虫系统流程示意图Fig.2 Web crawler flow diagram

地址管理器,其存放已访问过的页面地址和待访问页面地址,设计此管理器的目的为防止陷入重复访问的循环中,管理器可以添加新地址。

下载器,负责将指定地址的页面下载到本地供后续解析提却使用。

页面解析器,负责提取网页中的内容数据和其他链接网址。

内容输出器,将最终的结果输出,可以提供网页形式输出或数据库形式存储。

3.1 地址队列维护

为了能够快速处理链接和计算,需要使用地址队列,每个队列统一保存具有处理状态的地址:

等待队列,在这个队列中存储的都是等待爬虫处理的页面地址,新爬虫分析发现的地址也放入在此队列中。

处理队列,在这个队列中,程序开始处理地址对应的网页并分析内容。在此地址处理完成后,将地址放入完成队列中。处理完成的状态包含成功、失败两类。

完成队列,在这个队列中存放的是已经完成提取信息的地址,包含了成功获取数据的地址和失败解析数据的地址。

3.2 网页内容获取

在根据地址爬取网页数据时,首先需要检查网页内容。如果此网页是一个网络资源,即类似文件下载链接等,则可以直接忽略。检查完成网页的合理性后,即可访问网页。本文使用Python第三方组件库 urllib来获取网页并利用返回状态码判断是否访问成功。在成功获取了网页后,通过网页标签识别技术,结合Python第三方库BeatifulSoup获取想要得到的数据,可识别标签有“”、“

”等。

3.3 内容排序

结合前述章节,本文采用PageRank算法并结合主题相关度计算做了适当改进。下面对算法进行简要说明。

PageRank算法的思想是将网页的权重数值看作一个由网络的超链接结构所产生的网页重要性等级。所有网页的权重值都可以根据指向它的网页的权重值和超链接数来计算,即所有链接到它的网页的权重值除以各自向外的链接数的商进行求和[16]。

在本文中,PageRank算法可以简单描述如下:设h是要进行计算的网页,vi是指向h的网页,C(vi)是网页 vi的外指向网页链接数,b是权重规范化因子。因此网页h的PageRank值计算公式表示为:

4 系统结果示例

表1 系统运行环境Tab.1 System operation environment

爬虫系统的部署环境如表1所述。

下图展示了爬虫运行结果示例,如图3所示,图 3(a)中显示了美国法律主题有关的爬虫聚合数据。图 3(b)种显示了在使用爬虫程序获得充分的数据后,使用数据清洗策略将重复性数据、不合主题数据进行筛选后获得的专业词库数据集。

图3 爬虫结果示意图Fig.3 Web crawler diagram

5 结论

本文叙述了基于爬虫的法律文本纠错词库构建方法。提出了融合主题构建、种子优化和内容排序等模块于一体的爬虫系统,并对系统在线上进行了试运行。运行结果显示,本爬虫设计方案可行,在指定领域内进行面向主题的信息采集,可以为相关词库的构建提供大量素材。

猜你喜欢

词库爬虫队列
利用网络爬虫技术验证房地产灰犀牛之说
基于Python的网络爬虫和反爬虫技术研究
一“吃”多用
队列里的小秘密
在队列里
利用爬虫技术的Geo-Gnutel la VANET流量采集
丰田加速驶入自动驾驶队列
输入法词库乾坤大挪移
大数据环境下基于python的网络爬虫技术
词库音系学的几个理论问题刍议