应对不良网络文化的技术之一——网络信息抽取技术郭岩,丁国栋,程学旗(中国科学院计算技术研究所,信息智能与信息安全中心)1引言2008年1月17日,中国互联网络信息中心(CNNIC)发布了《第21次中国互联网络发展状况统计报告》[1],报告显示:(1)截至2007年12月,网民数已增至2.1亿人。中国网民数增长迅速,比2007年6月增加4800万人,2007年一年则增加了7300万人,年增长率达到53.3%。,在过去一年中平均每天增加网民20万人。(2)目前中国的网民人数略低于美国的2.15亿,位于世界第二位。目前中国网站数量已达150万个,比去年同期增长了66万个,增长率达到78.4%。博客/个人空间等众多网络应用需求、域名数量增长的拉动及创建网站操作的简单化等因素作用在一起,共同使得网站数量猛增。(3)目前中国网页数为84.7亿个,年增长率达到89.4%,网上信息资源的增长速度非常迅猛。这些网页中,动静态的比例为0.92:1,动态网页的比重在逐年增高。(4)目前网民平均上网时长是16.2小时/周,互联网已经在网民生活中占据一定的地位。从以上内容可见,网络作为人们获取信息的主要渠道,已成为社会生活的一部分。网络作为一种新的传媒,与报纸、无线广播和电视等传统的媒体相比,具有开放性,不确定性,交互性,超时空性以及信息量的巨大性等特点。网络不仅改变了人们的工作方式和生活方式,而且猛烈地冲击着传统的思想观念和思维方式。网络在传播现代文明的同时,也附带了各种“灰色文化”,例如色情、暴力等文化。这些不良网络文化严重污染着网络环境,尤其对生理日渐成熟、而心理并未成熟的青少年造成了极大的危害。网络的淫秽站点泛滥成灾,成为导致青少年性犯罪增加的一大诱因,也是导致暴力犯罪的一大根源。[2]在互联网的信息中,有近70%的信息有淫秽的内容。56%的人认为,通俗文化中的色情内容是导致青少年暴力的一大诱因。网络暴力文化的传播,对青少年的行为产生误导,从而导致校园暴力和有组织犯罪的增加。在互联网上,宣传暴力的文字和图片随处可见。青少年的模仿能力很强,加上暴力文化的影响,使青少年把暴力看成理所当然的事情,把犯罪看成一种游戏。当前,不良网络文化问题已经引起了各国的重视,加强对该问题的调查和惩处是大势所趋。打击这些网络灰色文化不仅需要制定相关的法律法规,还应该利用科技工作者的聪明才智,帮助阻击或者是抑制这些灰色文化的传播泛滥。互联网最基础的功能即提供信息。[1]目前互联网上的信息已是海量,搜索引擎则是网民在汪洋中搜寻信息的工具,是互联网上不可或缺的工具和基础应用之一。目前2.1亿网民中使用搜索引擎的比例是72.4%,即已有1.52亿人从搜索引擎获益,半年净增加3086万人。因此,为了有效的抵制网络不良文化,对于搜索引擎服务商来说,需要采取各种有效措施严格封堵过滤网络上的不良内容。原理上,搜索引擎技术主要涉及网络搜索技术、文挡分类技术和网络信息抽取技术。其中,网络信息抽取技术是将网页中的非结构化数据或半结构化数据按照一定的需求抽取成结构化数据。网络信息抽取结果的质量将直接影响到封堵过滤网络不良内容的效率。因此,网络信息抽取技术是应对不良网络文化的关键技术之一。本文将针对网络信息抽取技术做概要性介绍。2网络信息抽取技术概述2.1网络信息抽取的主要内容网络信息抽取属于网络内容挖掘(Webcontentmining)研究的一部分。[3]如图1所示,主要包括结构化数据抽取(StructuredDataExtraction)、信息集成(Informationintegreation)和观点挖掘(Opinionmining)等。图1网络信息抽取的主要内容结构化数据抽取(StructuredDataExtraction)的目标是从Web页面中抽取结构化数据。这些结构化数据往往存储在后台数据库中,由网页按一定格式承载着展示给用户。例如论坛列表页面、Blog页面、搜索引擎结果页面等。信息集成(Informationintegration)是针对结构化数据而言的。其目标是将从不同网站中抽取出的数据统一化后集成入库。其关键问题是如何从不同网站的数据表中识别出意义相同的数据并统一存储。观点挖掘(Opinionmining)是针对网页中的纯文本而言的。其目标是从网页中抽取出带有主观倾向的信息。大多数文献中提到的网络信息抽取往往专指结构化数据抽取。2.2网络数据抽取工具简介2.2.1工具的分类传统的网络数据抽取是针对抽取对象手工编写一段专门的抽取程序,这个程序称为包装器(wrapper)。近年来,越来越多的网络数据抽取工具被开发出来,替代了传统的手工编写包装器的方法。目前的网络数据抽取工具可分为以下几大类(实际上,一个工具可能会归属于其中若干类)[4]:开发包装器的专用语言(LanguagesforWrapperDevelopment):用户可用这些专用语言方便地编写包装器。例如Minerva,TSIMMIS,Web-OQL,FLORID,Jedi等。以HTML为中间件的工具(HTML-awareTools):这些工具在抽取时主要依赖HTML文档的内在结构特征。在抽取过程之前,这些工具先把文档转换成标签树;再根据标签树自动或半自动地抽取数据。代表工具有W4F,XWRAP,RoadRunner,MDR。基于NLP(Naturallanguageprocessing)的工具(NLP-basedTools):这些工具通常利用filtering、part-of-speechtagging、lexicalsemantictagging等NLP技术建立短语和句子元素之间的关系,推导出抽取规则。这些工具比较适合于抽取那些包含符合文法的页面。代表工具有RAPIER,SRV,WHISK。包装器的归纳工具(WrapperInductionTools):包装器的归纳工具从一组训练样例中归纳出基于分隔符的抽取规则。这些工具和基于NLP的工具之间最大的差别在于:这些工具不依赖于语言约束,而是依赖于数据的格式化特征。这个特点决定了这些工具比基于NLP的工具更适合于抽取HTML文档。代表工具有:WIEN,SoftMealy,STALKER。基于模型的工具(Modeling-basedTools):这些工具让用户通过图形界面,建立文档中其感兴趣的对象的结构模型,“教”工具学会如何识别文档中的对象,从而抽取出对象。代表工具有:NoDoSE,DEByE。基于本体的工具(Ontology-basedTools):这些工具首先需要专家参与,人工建立某领域的知识库,然后工具基于知识库去做抽取操作。如果知识库具有足够的表达能力,那么抽取操作可以做到完全自动。而且由这些工具生成的包装器具有比较好的灵活性和适应性。代表工具有:BYU,X-tract。2.2.2工具的定性评价对一个抽取工具的定性评价可参考以下几个指标[4]:自动化程度:这是个非常重要的指标。它意味着在生成包装器的同时,需要用户参与的工作量。用专用语言生成包装器的工具需要用户手工描绘要抽取的对象的边界,所以自动化程度较低。以HTML为中间件的工具往往能提供自动化程度较高的生成包装器的操作,但这种高度自动化的效果需要建立在一个假设上:被抽取页面的HTML标签具有高度的一致性。而这个假设对于现实网络中的大部分页面是不成立的。基于NLP的工具、包装器的归纳工具、基于模型的工具都可以称为半自动化工具,因为这些工具都需要用户提供样例页面,从而生成包装器。BYU这样的基于本体的工具首先需要全人工的建立知识库,但之后,只要本体有足够的表达能力,抽取操作就能够做到全自动。是否支持复杂结构对象的处理:网页中大多数的数据呈现出复杂的结构,例如多层嵌套(multiplenestinglevels)结构,如图2所示。这就需要抽取工具能够处理这些复杂的数据结构。图2多层嵌套结构举例[3]是否支持页面的文本分析:网页的内容,基本可分成两类:一类是半结构化数据,如图3所示;一类是半结构化文本,如图4所示。用专用语言生成包装器的工具、以HTML为中间件的工具、包装器的归纳工具、基于模型的工具往往依赖于识别出数据的边界,从而生成抽取规则,所以它们更适合处理半结构化数据。基于NLP的工具更适合处理半结构化文本。BYU这样的基于本体的工具则两者都可处理。图3半结构化数据举例[4]图4半结构化文本举例[4]是否提供图形用户界面(GUI,GraphicalUserInterfaces):为了帮助用户更好地生成包装器,一些工具提供了图形用户界面。是否支持非HTML文档:一些网页并不是用HTML写的。因为基于NLP的工具在分析时完全不依赖于HTML标签,所以非常适合处理非HTML文档。包装器的归纳工具、基于模型的工具在分析时不仅仅依赖于HTML标签,所以也可以处理一部分非HTML文档。以HTML为中间件的工具在分析时,则完全依赖HTML标签,所以不能处理非HTML文档。灵活性(Resilience)和适应性(Adaptiveness):因为网页的结构和表达往往变化频繁,所以评价包装器的一个重要指标就是灵活性,即当网页有部分改变时,包装器是否仍然有效。另一个重要指标是适应性,即一个针对某应用领域的某种Web源的包装器是否也能对同一应用领域中的其他Web源有效。各类抽取工具的定性评价参见图5。图5各类抽取工具的评价图[4]3网络信息抽取的主要方法这里重点介绍基于监督学习(supervisedlearning)的包装器的归纳(Wrapperinduction)和基于非监督学习(unsupervisedlearning)的全自动抽取(Automaticextraction)。[5]3.1包装器的归纳包装器的归纳是基于监督学习的方法。具体地讲,是利用机器学习生成抽取规则。主要步骤如下:(1)由用户在训练页面中标注要抽取的内容;(2)系统从训练页面中学习出抽取规则;(3)利用抽取规则从新页面中抽取出需要的内容。研究人员已经研发出很多包装器归纳系统,例如WIEN[6],Softmealy[7],Stalker[8],BWI[9],WL[10]等。在这里,我们以系统Stalker作为例子介绍包装器的归纳方法。Fetch是系统Stalke的商业版本。Stalker是一个分级包装器归纳系统。基于分级抽取的思想,它将复杂的抽取问题变成一系列简单的抽取子任务,不同级别的抽取相互独立。该系统非常适合抽取多层嵌套结构的数据记录。Stalker在抽取过程中使用了内嵌目录树结构,即EC树(Embeddedcatalogtree)。EC树基于类型树(Typetree)。图6为一个网页片段,图7为图6对应的类型树,图8为图6对应的EC树。图6一个网页片段[5]图7图6对应的类型树[5]图8图6对应的EC树[5]如图8所示,每个抽取项对应EC树中的一个节点,包装器将使用规则从该节点的父节点中将该项内容抽取出来。对每项要抽取的内容,需要两条规则:(1)一条开始规则,用于检测抽取项的开始位置,即标识出抽取项对应节点的开始位置;(2)一条结束规则,用于检测抽取项的结束位置,即标识出抽取项对应节点的结束位置。以上规则不仅适用于叶子节点(对应数据项),还适用于列表节点。对于列表节点,使用列表迭代规则将列表分割成一个个单独的数据记录。抽取操作之前,往往把HTML代码切分成若干个标记(token)。标记的定义一般是指标签、文本等,例如即为一个标记。抽取过程往往以标记作为原子单位加以操作。抽取规则基于路标(landmark)的思想,每个路标是一个连续的标记序列。用路标来定位一个抽取项的开始和结束位置。下面举个例子来简要说明抽取过程。图9为图6对应的HTML代码。图9图6对应的HTML代码[5]我们要抽取restaurant的名称“GoodNoodles”,可以使用以下两条规则:R1:SkipTo()//开始规则R2:SkipTo()//结束规则R1告诉系统,要找到restaurant的开始路标(landmark),需要从页面对应的HTML代码的第一个标记(