基于开始定界符的自动Web信息抽取

2019-11-19 06:40白钰洁
微型电脑应用 2019年11期
关键词:词典网页标签

白钰洁

(东北石油大学 计算机与信息技术学院, 大庆 163000)

0 引言

Web信息抽取是将Web作为信息源的一类抽取[1]。它的目的主要是将半结构化或非结构化的网页转化成结构化的信息存储起来,以至于用户可以在信息搜索与信息获取等方面得到更多的支持。基于此,可以将Web信息抽取理解为定位信息与信息再存储的过程。对于定位信息,现有的方法可以大体分为模板生成,本体匹配,特征限制三类。

模板生成主要是对页面整体进行分析,以得到对于页面整体的一套抽取规则,往往伴随着包装器的生成。比如roadrunner[2],它通过自动化的生成依靠网页相似度匹配的方法对网页的标签及文本进行分析,从而找到网页中的信息模式。该方法比较依赖网页的整体结构,健壮性不强;本体匹配,主要是用相关领域专家对一个领域内相关实体名称、实体概念、实体属性及实体间关系等的描述对网页中的信息做标记,然后再根据标记进行抽取,比如刘耀等人提出一种基于领域本体的文本分割方法为信息抽取提供了有效的帮助[3]。但是本体本身的建立仍有很大的困难;特征限制主要是找到网页中信息所在位置的相关特征,比如语义特征,上下文特征,结构特征,视觉特征等,比如srv[4]通过从训练集学习处特征去抽取数据。使用该方法能够大大减少对网页整体的依赖性,使信息抽取能够应对一定程度上网页的变化,但是一些特征相关性太强并不能跨网站使用。

当前网站中的网页常常具有相似的结构,即拥有着统一的模板。并由于网页中的信息由于是以半结构化的形式存在,对于一类目标信息,我们可以将其看作值,它的相应的说明信息可以看作属性,作为它的前信息。比如图1中的“名称由来”既是属性,“百度……形象物”既值。

图1 百度信息

本文意图抽取网页中的值信息,选用特征限制的方法进行信息抽取,为了防止特征相关性过强,针对当前网站的特征,提出一种基于循环神经网络选出目标信息的开始定界符的方法,来提取目标信息。该方法使用无监督的方式提取开始定界符,大大减少了人力,并且具有一点的健壮性与可移植性。

2 基于开始定界符的信息抽取算法

本文在寻找开始定界符时将网页看作由标签分隔的文本序列,在抽取时将网页分析为dom树,将目标信息看作开始定界符的下一个文本节点。因此,文本的信息抽取步骤可分为四步。首先,获取一个网站内一定数量的网页;其次,对网页进行预处理;然后使用循环神经网络训练,分类出属于开始定界符的信息;最后,通过Python提供的lxml库对目标网页进行抽取。

2.1 网页获取

目前,利用Python实现的爬虫技术已经较为成熟,通过网络下载相关库,可以给我们提供方便快捷的技术支持。需要注意的是,在通过Python提供的网络爬虫进行网页获取时,首先要对一个网站获取至少100个网页,这些网页将作为样本网页通过循环神经网络训练找到开始定界符。再对该网站获取10个网页作为目标网页,对抽取结果进行检测。

2.2 网页预处理

当前的Html网页由文本标签与一些脚本与样式标签组成,为了提高循环神经网络训练的效率与准确度,要对网页进行以下操作:首先,去除脚本标签与头标签及其内容,比如,;其次,针对一句话被分为多个词,去除样式标签将其还原成一句完整的句子;最后,去除网页中的注释。

2.3 提取开始定界符

本文使用Tensorflow构建循环神经网络循环神经网络。在具体构建时需要四步[5]:1.首先生成一个词典,该词典由被标签间隔的所有文本节点及其出现在网站中的频率组成。2. 进行正向传播,构建循环神经网络所需要的流程图,既对输入到输出所需要的权重进行占位并编写其计算所需的算法;3. 反向传播,使用Optimizer类提供的方法优化权重,常使用的子类如GradientDescentOptimize,AdagradOptimizer或者MomentumOptimizer。4. 最后用Softmax进行归一化处理,既将最终生成的向量各个值进行加工,使它们相加约等于1。

对网页进行训练后,我们可以得到一个词典,以及词典中的词所对应的一个词向量,该词向量的维度既词典的长度,每一维的值都对应词典中该索引下的词作为下一个词的概率。比如一个词典是【“啊”,“吧”,“从”,“的”】,“啊”的词向量是【0.3,0.4,0.2,0.1】 ,那么“吧”作为“啊”的下一个词的概率既“0.4”。而我们将网页的文本节点逆序输入,最后对所有词向量进行分析。设立一个阈值,以中国大学mooc网站为例,本文选取0.95,遍历所有词向量的每一维,当有大于该阈值的,我们将该维数对应的词典中的词选为开始定界符。结果如图2所示:

图2 开始定界符结果

2.4 信息抽取

如今可以用来实现爬虫的解析器库也越来越成熟,越来越多,比如xml,beautifulsoup,lxml等等。本文主要通过爬虫实现的功能是:通过定位一个属性文本节点,从而找到它的下一个文本节点,既值节点。

这些解析器都可以实现这些功能,但是都有其优缺点。本文使用lxml解析器进行抽取。该过程主要分为三步:1.定位文本节点;2.搜索文本节点的下一个节点;3.获得文本内容。抽取流程如图3所示。

图3 信息抽取流程图

其中需要注意两点:1.这其中都牵扯到定位节点的个数不唯一的可能,所以在搜索下一节点时,需要对节点b进行遍历;2.可能在网页的工具栏处也出现这些开始定界符,但是对它们获得的节点也是开始定界符所以再获取文本时可以添加一个下一节点不是开始定界符的筛选条件;3.该方法获取的只是静态内容,获取不到与服务器交互才能获得的内容。4.再获取下一节点时,首先对节点b本身的下一节点搜索,如果没有,则获取其父节点的下一节点。

3 实验结果

信息抽取的评测标准主要来自于三大会,即MUC、MET(Multilingual Eniity Task Conferenee)和TREC(Text Retrieval Conferenee)。其中最主要的指标是准确率(Precision)和召回率(Recall,也称为查全率)。召回率可以描述为信息被正确抽取的比率,即多少信息被正确抽取;而准确率则可以描述为抽取的信息中正确的比率,即抽取的信息的可信度。具体定义如下:

Recall=正确抽取的实例数(True)/所有正确的实例(Real)

Precision=正确抽取的实例数(True)/所有抽取的实例总数(Total)

选取了3个慕课网站作为抽取对象,具体抽取结果如表1所示:

表1 三个慕课网站页面抽取结果

从实验可以看出,本文提出的基于开始定界符的Web信息抽取方法法可以较准确并完整地抽取到所需要的值信息,证明了该方法的可行性。由于一些网站的标签嵌套写法不够标准,比如中国大学mooc网站,所以导致了抽取时内容不够完整,精确率与召回率会有所下降。

4 结论

Web信息抽取技术目前已经比较成熟,但是还没有比较好的自动性与健壮性,本文在抽取时采用循环神经网络自动筛选出开始定界符的方法,将该定界符作为目标节点的前节点,减少了人为的操作,并且具有一定的适应性,在对具备本文所要求的网站特征的网站下进行抽取时,具有很高的正确率与召回率,抽取效果良好。今后将在该方面作进一步的研究,以达到更好的抽取效果。

猜你喜欢
词典网页标签
基于HTML5与CSS3的网页设计技术研究
米兰·昆德拉的A-Z词典(节选)
米沃什词典
基于HTML语言的网页制作方法
词典引发的政治辩论由来已久 精读
无惧标签 Alfa Romeo Giulia 200HP
基于HTML5静态网页设计
不害怕撕掉标签的人,都活出了真正的漂亮
搜索引擎怎样对网页排序
让衣柜摆脱“杂乱无章”的标签