资源描述
互联网网页文本对象抽取实现技术摘 要互联网中蕴含着大量的关于现实世界对象的结构化信息。为了能应对信息爆炸带来的严重挑战,抽取、集成网页上各式各样的文本对象信息,进行对象级别的搜索,迫切需要一些自动化的技术帮助人们在海量信息中迅速找到自己真正需要的信息。 网页文本对象抽取实现技术正是解决这个问题的一种方法。本文以传统的信息抽取理论和方法为基础,针对目前热门的博客领域,提出了一种基于HTML特征和机器学习的博客正文抽取算法。在该算法中,研究了博客网页的特征,提出了一种基于HTML标签特征的网页分块算法,使用决策树算法对博客数据集进行统计训练,采用专门的统计工具WEKA对该算法进行了测试和评估,并总结出该算法的优点以及可以改进的地方。最后,展示了基于该博客正文抽取算法的博客搜索引擎Geeseek的系统结构和界面演示。该系统属于新型的垂直搜索引擎,能够对博客和博文进行快速有效的搜索。据了解,Geeseek也是目前国内高校中第一个博客搜索引擎。关键词:互联网,信息爆炸,信息抽取,博客,HTML,机器学习,决策树,搜索引擎,Geeseek Implementation of text object extraction for Internet web pages Author: Zhang Hui Tutor: Lin YapingAbstractNowadays, there is a large number of semi-structural information which represents objects in the real world on the Internet. In order to deal with the severe challenge brought by information explosion, extract and integrate all kinds of text object information on web pages, and put up the object-level searching, it cries for the automated technologies to help people find the very information they really need among such a large number of information. The technology of text object extraction is just one of methods to solve this problem.Based on the traditional theory of Information Extraction and aiming at the blog domain, this paper puts forward an arithmetic implementing the extraction function for the text objects of blog articles with the HTML features and machine learning. In this arithmetic, it analyses the features of blog pages, introduces an arithmetic for web page partition basing on the HTML tag features, uses decision tree to do statistics and training on the blog data set, tests and evaluates this arithmetic using the expert statistical tool, WEKA, and summarizes the advantages as well as the points needing improving. Finally, it shows the system architecture and interface presentation of the Geeseek, a blog Search Engine which applies the technology of text object extraction for blog pages. This system blongs to the new-style vertical Search Engine and is able to search for the blog home pages and blog article pages quickly and effectively. So far as we know, Geeseek is the first blog Search Engine in all the colleges in China.Key words: Internet, information explosion, Information Extraction, blog, HTML, machine learning, Search Engine, decision tree , Geeseek毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日目 录1. 绪论11.1 课题背景及目的11.2 国内外研究状况31.2.1 国内研究现状31.2.2 国外研究现状41.3 课题研究方法51.4 论文构成及研究内容52. WEB信息抽取及网页文本对象抽取概述72.1 Web信息抽取的概念72.2 Web信息抽取的方法82.3 Web信息抽取的典型流程92.4网页文本对象抽取的理论和方法113. 博客正文信息抽取系统的设计143.1 博客搜索的概况143.2 博客正文抽取的过程153.2.1 分类153.2.2 分块183.2.3 统计训练,获取决策树213.3 算法的测试和评估243.4 博客正文抽取算法的意义和思考254. 基于博客正文抽取的GEESEEK搜索引擎274.1 Geeseek系统介绍274.2博客正文抽取模块284.2.1 博客正文抽取模块简介284.2.2 博客正文抽取模块的主要数据类294.2.3 博客正文抽取模块的实现思路304.3系统展示335. 总结36致 谢37参考文献391. 绪论本章介绍了课题的背景和研究现状,并对全文的内容和结构作了概括。1.1 课题背景及目的为了应对信息爆炸带来的挑战,迫切需要一些自动化的技术帮助人们在海量信息中迅速找到自己真正需要的信息。信息抽取( Information Extraction, IE)正是解决这个问题的一种方法。信息抽取技术是指从一段文本中抽取指定的事件、事实等信息,形成结构化的数据并存入一个数据库,供用户查询和使用的过程。也就是从文本中抽取用户感兴趣的事件、实体和关系,被抽取出来的信息以结构化的形式描述,然后存储在数据库中,为情报分析和检测、比价购物、自动文摘、文本分类等各种应用提供服务。广义上信息抽取技术的抽取对象并不局限于文本,其他形式存在的信息也可以作为信息抽取的对象,而抽取的结果则变为相应的结构化数据。广义上信息抽取的过程如图1.1所示。图1.1 信息抽取示意图1从自然语言文本中获取结构化信息的研究最早开始于20世纪60年代中期,这被看作是信息抽取技术的初始研究,它以两个长期的、研究性的自然语言处理项目为代表。 美国纽约大学开展的Linguistic String项目开始于60年代中期并一直延续到80年代。该项目的主要研究内容是建立一个大规模的英语计算语法,与之相关的应用是从医疗领域的X光报告和医院出院记录中抽取信息格式(Information Formats),这种信息格式实际上就是现在所说的模板(Templates)。 另一个相关的长期项目是由耶鲁大学Roger Schank及其同事在20世纪70年代开展的有关故事理解的研究。由他的学生Gerald De Jong设计实现的FRUMP系统是根据故事脚本理论建立的一个信息抽取系统。该系统从新闻报道中抽取信息,内容涉及地震、工人罢工等很多领域或场景。该系统采用了期望驱动(top-down,脚本)与数据驱动(bottom-up,输入文本)相结合的处理方法。这种方法被后来的许多信息抽取系统采用。 从20世纪80年代末开始,信息抽取研究蓬勃开展起来,这主要得益于消息理解系列会议(MUC,Message Understanding Conference)的召开。正是MUC系列会议使信息抽取发展成为自然语言处理领域一个重要分支,并一直推动这一领域的研究向前发展。2 目前,随着对信息抽取技术的不断发展,各种抽取系统也层出不穷。当前的发展趋势在慢慢减少人工标记的分量,而采用非标记的训练模型来实现Web信息抽取。根据这一趋势,信息抽取系统可以分成四类:人工构造的抽取系统、基于指导的抽取系统、半指导的抽取系统以及非指导的抽取系统。3互联网多年的自由发展使得大量无结构信息的积累成为现实,这些信息为互联网用户带来更多选择的同时极大地增大了人们获得所需信息的复杂度。网络搜索引擎的发明在一定程度上缓解了这种窘境,通过网络搜索引擎服务商对信息的收集和筛选,人们能够方便地获得某些所需信息。这样就出现了一项与信息抽取密切相关的研究信息检索(Information Retrieval, IR)技术。信息检索是指将信息按一定的方式组织和存储起来,并根据信息用户的需要找出有关信息的过程。信息抽取与信息检索存在差异,主要表现在三个方面: 1、 功能不同。信息检索系统主要是从大量的文档集合中找到与用户需求相关的文档列表;而信息抽取系统则旨在从文本中直接获得用户感兴趣的事实信息。2、 处理技术不同。信息检索系统通常利用统计及关键词匹配等技术,把文本看成词的集合(bags of words),不需要对文本进行深入分析理解;而信息抽取往往要借助自然语言处理技术,通过对文本中的句子以及篇章进行分析处理后才能完成。 3、 适用领域不同。由于采用的技术不同,信息检索系统通常是领域无关的,而信息抽取系统则是领域相关的,只能抽取系统预先设定好的有限种类的事实信息。虽然信息抽取与信息检索有区别,但两种技术是互补的。为了处理海量文本,信息抽取系统通常以信息检索系统(如文本过滤)的输出作为输入;而信息抽取技术又可以用来提高信息检索系统的性能。二者的结合能够更好地服务于用户的信息处理需求。2 信息抽取技术对于搜索引擎的发展有着重大的意义,它推动着通用搜索引擎向新型的垂直搜索引擎发展,从而能够更好地满足用户的需要,让搜索变得更快、更直接、更有效。通用的搜索引擎是基于网页级别的,因此有时候无法直接获得想要的信息,而是需要点开很多个链接,分别在这些网页中去找寻所需要的信息。很多时候,用户得到的信息往往不是事先所期望的,或者信息非常杂乱而零散。通用搜索引擎在这些方面的不足让人们开始了对搜索引擎更深层、更细致的研究。如今,新型的搜索引擎把研究单元定格在了对象级别。互联网快速增长的海量资源使得人们对于搜索引擎的查询结果有了更高的要求,鉴于PageRank的成功,如何基于文本信息抽取的方法,结合HTML网页不同于纯文本的各种特征进行网页信息(包括文本、图片、音频和视频等)的分析和抽取,以改进网络搜索引擎,成为互联网信息检索研究者关注的重要问题。互联网信息抽取技术通过将无结构或半结构的互联网数据结构化,为理解用户查询与网络文档之间以及不同网络文档之间的相关性提供了基础,从而为改进搜索效率和搜索方式提供了良好的理论依据。对象级别的搜索引擎的一个显著优点是可以利用对象的语义信息,采用直接或者聚合的结果来响应复杂查询,将具体的搜索结果清晰明了地呈献给用户。本课题研究的目的旨在传统信息抽取思想的基础上,提出一种互联网网页文本对象的抽取实现方法,为解决当前博客垂直搜索的问题提供一种切实可行的方式。1.2 国内外研究状况关于信息抽取的研究在国内外已经开展了相当一段时间,本节简要介绍了国内外信息抽取技术研究的进展。1.2.1 国内研究现状国内对中文信息提取系统的研究起步较晚,还集中在命名实体识别方面,遵照MUC规范的完整的中文信息提取系统目前还处于探索阶段。Intel中国研究中心在ACL-2000上演示了他们开发的一个抽取中文命名实体以及实体间关系的系统。在MUC-6和MUC-7上,增加了中文系统的评测项目,国立台湾大学(National Taiwan University)和新加坡肯特岗数字实验室参加了MUC-7中文命名实体识别任务的评测,测试了中文命名实体(人名、地名、时间、事件等名词性短语)的识别,取得了与英文命名实体识别系统相近的性能。当然这只是对中文信息提取作了比较初步的工作,并不能真正进行中文信息提取。另外,北京大学计算语言所对中文信息提取也作了比较早的和比较系统的探讨,承担了两个有关中文信息提取项目的工作,即自然科学基金项目“中文信息提取技术研究”和IBM北大创新研究院项目“中文信息提取系统的设计与开发”。其目标是研究中文信息提取中的一些基础性和关键性的问题,为开发实用的信息提取技术提供理论指导,并具体探讨信息提取系统设计的各个环节。4 Intel中国研究中心的Zhang Yimin等人在ACL-2000上演示了他们开发的一个抽取中文命名实体及其关系的信息抽取系统。该系统利用基于记忆学习(Memory-Based Learning,MBL)算法获取规则从而实现信息抽取。这些系统在中文命名实体的自动识别方面取得了一些成绩。车万翔等人使用基于特征向量的有监督的机器学习算法(SVM和Winnow)对实体关系进行抽取。两种算法都选择命名实体左右两个词为特征词,并得出结论:信息抽取系统若需要追求抽取的高性能,则选择SVM算法;若需要追求高的学习效率,则选择Winnow算法。11.2.2 国外研究现状信息抽取的前身是文本理解,最早开始于20世纪60年代中期,主要是从自然语言文本中获取结构化信息的研究,这被看作是信息抽取技术的初始研究。从20世纪80年代末开始,信息抽取研究蓬勃开展起来,这主要有两个因素对其发展有重要的影响:一是在线和离线文本数量的几何级增加,另一个是“消息理解研讨会”(MUC, Message Understanding Conference)。从1987年开始到1998年共举行了七届会议对该领域的关注和推动。MUC由美国国防高级研究计划委员会(DARPA, the Defense Advanced Research Projects Agency)资助,其显著特点并不是会议本身,而在于对信息抽取系统的评测。近几年,信息抽取技术的研究与应用更为活跃。在研究方面,主要侧重于以下几方面:利用机器学习技术增强系统的可移植能力、探索深层理解技术、篇章分析技术、多语言文本处理能力、WEB信息抽取(Wrapper)以及对时间信息的处理等等。在应用方面,信息抽取应用的领域更加广泛,除自成系统以外,还往往与其他文档处理技术结合建立功能强大的信息服务系统。至今,已经有不少以信息抽取技术产品为主的公司出现,比较著名的有:Cymfony公司、Bhasha公司、Linguamatics公司、Revsolutions公司等。目前,除了强烈的应用需求外,正在推动信息抽取研究进一步发展的动力主要来自美国国家标准技术研究所(NIST)组织的自动内容抽取(ACE, Automatic Content Extraction)评测会议。这项评测从1999年7月开始酝酿,2000年12月正式开始启动,从2000年到2007年已经举办过好几次评测。这项评测旨在开发自动内容抽取技术以支持对三种不同来源(普通文本、由自动语音识别ASR得到的文本、由光学字符识别OCR得到的文本)的语言文本的自动处理,研究的主要内容是自动抽取新闻语料中出现的实体、关系、事件等内容,即对新闻语料中实体、关系、事件的识别与描述。与MUC相比,目前的ACE评测不针对某个具体的领域或场景,采用基于漏报(标准答案中有而系统输出中没有)和误报(标准答案中没有而系统输出中有)为基础的一套评价体系,还对系统跨文档处理(Cross-document processing)能力进行评测。这一新的评测会议将把信息抽取技术研究引向新的高度。41.3 课题研究方法本文针对博客领域,以传统的信息抽取思想为基础,对博客网页进行分块处理,并结合机器学习和统计训练的方法获得决策树,从而实现对博客中的文章正文进行抽取的功能。1.4 论文构成及研究内容本文试着从理论和实现相结合的角度,提出一种基于博客相关信息的抽取实现策略。首先,阐述了信息抽取理论的发展历史,发展现状。分析了互联网搜索技术的发展现状,探讨信息抽取与信息检索的区别和联系,并阐述了互联网信息抽取在互联网搜索中的应用状况;其次,介绍互联网信息抽取的概念,方法,典型流程,具体阐述了本文所讨论的网页文本对象抽取的理论和方法;再次,以博客网页文本对象抽取为例,介绍了基于博客正文信息抽取系统的实现步骤,给出该抽取实现方法的测试结果,分析此方法的优点和可以进一步改进的地方,并就其意义进行了阐述。 最后,简要介绍了应用互联网网页文本对象抽取技术的博客搜索引擎原型系统Geeseek搜索引擎。2. Web信息抽取及网页文本对象抽取概述本章主要介绍互联网信息抽取的概念、方法、典型流程,具体阐述了本文所讨论的网页文本对象抽取的理论和方法。2.1 Web信息抽取的概念目前各类信息服务网站提供了大量的信息资源,但是互联网用户却很难享受到有效的信息服务,因为用户不可能天天都去访问所有这些网站。这祥就形成了一种很尴尬的情况,一方面用户迫切需要某些信息资料,另一方面提供有关资料的网站却很少有人访问。用户需要从多个信息数据源(通常为各网站中的有关信息网页)中同时获得所需要的信息,并能将它们有效地整合在一起。目前的信息服务还无法有效地整合多个信息服务站点的相关内容,因为互联网的信息发布与浏览均是基于HTML语法而编写的Web网页来进行的。而Web网页的内容描述是针对互联网用户浏览而进行的相关格式定义设计,并没有为计算机本身阅读和理解这些网页内容提供任何特殊的说明与注释。因此为了从Web网页中抽取所需要的信息内容(文本信息块)。研究人员开始把目光转向Web信息的机器抽取工作。Web信息抽取(Web Information Extraction,简称WIE)是指:给出属于同一类型的若干样本网页。找出它们的源数据集的嵌套结构,并将源数据集从网页中抽取出来。即通过对原文档倩息内容和结构的分析,抽取出有意义的事实,生成结构化的有价值的信息。信息抽取流程如图2.1。图2.1 信息抽取流程5Web信息抽取渐渐成为一个崭新而热门的课题,各种应用于网络数据抽取的工具也层出不穷。从互联网资源中抽取数据的传统方法就是编写特定的程序,这种程序被称为“Wrapper”。Wrapper是一个能够将基于HTML描述的Web网页内容转换为按照某种结构化描述的数据集合(例如XML数据、关系数据库)的软件程序。它由信息抽取所需的信息识别与结构影射知识和应用这种抽取知识的处理程序组成。根据各种工具用于产生Wrapper而采取的不同技术,目前的Web数据抽取工具可分为六种:Wrapper开发语言,可感知HTML的工具,基于NLP的工具,Wrapper归纳工具,基于建模的工具,基于语义的工具。62.2 Web信息抽取的方法Web信息抽取的方法主要可以分为以下两类:一类是基于层次结构的信息抽取归纳方法,如WHIRL、Ariadne、CiteSeer等,基于层次结构的Wrapper归纳方法。尽管页面的类型、结构、版面各异,但对于某个网站来说,页面的组织结构一般具有一些特定的规律。如内容经常是以层次结构方式来组织的,页面中的项目以及项目之间的关系具有明确的模式。基于层次结构的Wrapper归纳方法引入嵌套目录捕述方法(EmbeddedCatalog,简称EC),该方法将页面内容按照层次结构树(EC树)的形式加以描述。EC树的叶节点用以描述用户感兴趣的相关数据;EC树的内部节点用以描述由多个项目组成的列表。其中每个项目既可以是叶节点,也可以是项目列表(项目嵌套)。EC树中每一条边均与一个抽取规则相关联,每一个列表节点与一个列表循环规则相关联,根据从根节点到相应叶节点的路径。依次从父节点抽取路径上的每个子节点,Wrapper就能够从页面中抽取任何用户感兴趣的项目。另一类是基于概念模型的多记录信息抽取方法。即对特定WWW 数据源研制相应的Wrapper。通过记录识别获得记录相对应的信息块格式。利用Wrapper进行有效的记录抽取。步骤是设计构造描述特定内容的本体模型(Ontology Model),并由此产生一个数据库模式以及产生有关常量、关键字的匹配规则。抽取信息时系统调用记录抽取器将页面分解为若干单个记录信息块,并除去其中的标记。利用由分析器(Parser)产生的匹配规则,从所获得的单个信息块中抽取有关的对象以及它们之间的关系。并将他们存入数据记录表(Data-Record Table);最后利用启发知识,并根据有关的数据库模式,将所获得的数据填人相应的数据库中。利用启发知识,在所抽取的常量与关键字之间建立关联。并利用层次结构中的约束。来决定如何构造数据库中的有关记录内容。52.3 Web信息抽取的典型流程信息抽取技术是指从一段文本中抽取指定的事件、事实等信息,形成结构化的数据并存入一个数据库,供用户查询和使用的过程。接下来,以美国劳动部的继续教育系统中的课程抽取问题为例,介绍信息抽取的五个主要的子步骤(如图2.2、图2.3所示):图2.2 课程抽取系统中的示例文章71、分块,即找到文本片段开始和结束的边界。例如,在此课程抽取系统中,课程题目需要被抽取出来。所以,分块的任务就是要找到课程题目的第一个和最后一个单词,不能包含其他无关的词语,也不能剔除过多的词语。例如在“Intro to Linguistics is taught”这句话中,你不能把这句话都包含进来,也不能只保留“Intro to”。2、分类,即确定在文本片段中要抽取的是哪一个目标域。例如,需要在“Introduc tion to Bookkeeping”中抽取课程题目,在“Dr. Dallan Quass”抽取课程教师, 并在“This course covers.” 中抽取课程描述。通常,分块和分类是采用有限状态机而结合在一起实现的。3、联合,即确定哪些域是属于同一条记录的。例如,一些课程的描述可能包括好几段文字,而其他的可能就只有一段。因此,在抽取的过程中就必须确定哪些段落是用于描述同一门课程的。这个课程抽取的问题相对而言还比较简单,课程之间的描述可能是相邻的,关系非常紧密。如果要在一篇新闻中抽取一次国际贸易商讨会的相关信息,例如双方的代表人是谁,分别来自国家等等,这样的问题就复杂得多了。因为要抽取的内容关联不大,而且稀疏地分布在文本之中。因此,在这种需要确定两个实体是否是相互关联的时候,这种过程有时也被称为“关系抽取”。实现了关系抽取的商业产品往往比仅仅实现了分类和分块的要有价值得多。4、标准化,即将信息都标准化成一种统一的形式,这样能够进行可靠的比较。例如,课程开设时间的表达形式多种多样,如“2-3pm”、 “3pm-4:30pm”、“1500-1630”等,如果要考察各门课程的开设是否重现了重叠情况时,就会发现很难对时间做出比较,此时就需要对时间转化成统一的形式。再譬如,在考虑名字“Wei Li”和“Li, Wei”的时候,也需要确定姓和名的顺序。通常,标准化是和去重(即将说明的下一步骤)联系在一起的。5、去重,即去除重复的信息,使得数据库中不会出现重复的记录。例如,一门课程可能在一个或多个学院开设,从而多次出现在不同的网页中,最终也会被多次地抽取,但是在数据库中只需要保存一条关于这门课程的记录。图2.3 课程抽取系统的五个主要子过程72.4网页文本对象抽取的理论和方法随着因特网的普及,网上提供了海量的包括半结构化数据的信息源网页。网页与传统的自由文本相比有许多特点,即数据量大、更新快、变化快、形式多样,还包括超链接且跨平台和网站共享,处理自由文本的信息抽取技术不太适用于对网页的信息抽取。因此需要开发一种合适的信息抽取技术来从大量不同的网页中抽取信息。无论挖掘的目的是什么,都可以把Web文本挖掘的一般处理过程用图2.4来概括。html文档集特征的建立特征集的缩减学习与知识模式的提取模型质量的评价知识模式图2.4 Intemet上文本数据挖掘的一般处理过程8目前解决网页数据抽取问题比较典型的方法有:1、由用户定义模式并给出模式与HTML网页的映射关系。由系统推导出规则同时生成:以要提取的信息在DOM层次结构中的路径作为信息抽取的“坐标”,半自动化地生成提取规则。然后根据提取规则生成JAVA类,将该类作为Web数据源Wrapper组成的重要构件:将网页信息抽取知识分为若干层,利用各层模式之间相互联系的特点,动态获取各层中与HTML页面内容具体描述密切相关的信息识别模式知识;最终再利用所获得的多层信息识别模式,完成相应各个HTML网页的具体信息抽取工作。2、基本全自动化的网页数据抽取方法。这类方法只要输入相应的网页,就能够自动进行分析和生成Wrapper,并且将数据从网页中抽取出来。在整个过程中需要用户干预的地方只是最后的数据结构的语义分析部分。但目前这些方法还仅限于基于后台数据库模式由脚本语言直接生成的网页(网页结构基本不变。页面内容全部取自数据库)。3、自主抽取的方法。这类方法通常以W3C(World Wide Web Consortium)的文档对象模型DOM为基础,实现由多记录构成的网页信息内容的抽取,对Web页面表格信息与列表信息进行自主抽取。所谓自主抽取是指根据用户的需求去访问专业信息服务网站的相关页面,自动抽取用户感兴趣的信息(尤其是多记录构成的表格信息的内容),而不是以一种固定模式将所有信息内容全部都抽取出来。用户可以定制某网站信息,因此在抽取知识中要加入用户的兴趣描述。抽取过程包括文档解析和自主抽取两个阶段。见图2.5。Web文档 DOM抽取结果文档解析信息自主抽取图2.5 信息自主抽取的两个阶段53. 博客正文信息抽取系统的设计本章主要介绍博客搜索的概况,提出基于HTML特征和机器学习的博客正文信息抽取算法的设计方案,对该算法进行测试和评估,并总结算法的优点和需要改进的地方。3.1 博客搜索的概况博客,即Blog或Weblog,这一词源于“WebLog(网络日志)”的缩写,是一种网络个人信息的发布形式。一个Blog其实就是一个网页,通常是由简短并且经常更新的post所构成,在post中可以插入超链接、电子邮件、图像、动画、电影、代码、引用等资源,这些张贴的文章又都是按照年份和日期进行排列的。应该说,博客是一个个人性与公共性相结合的媒介,它充分利用了网络双向互动、超文本链接、动态更新、覆盖范围广的特点,其精髓不是表达个人思想或是记录个人的日常经历,而是从个人的角度,来精选和链接互联网上最具有价值的信息、知识与资源,为他人提供共享资源。现在,人们以博客来共享思想与资源,并且进行相互学习的行为已经变得越来越流行,博客已经逐渐成为了一个技术交流的场所。由于博客的内容具有很高的有用性和共享性,以专门搜索博客文章内容的博客搜索引擎应运而生。博客搜索引擎是一种专业搜索引擎,可以扫描互联网上数千万个较常更新的个人博客,以帮助用户通过浏览或关键词检索来查询自己所需要的信息。目前已初具规模的博客搜索引擎,包括:中客()、博客搜索引擎()、八方()、Teclmorati()、BlogStreet()、DayPop()、Feedster(http:/www.feedster.tom)、BlogPulse(http:/www.blogpulse.tom)、BlogWise(http:/www.blogwise.tom)、BlogHop()。9博客作为一个重要的信息传播和资源共享的平台,它的核心部分在于博客正文。正文中往往含有丰富的文本、图片和视频/音频信息,是整个博客当中信息的主要载体。因此,在博客搜索之中,对博客正文的检索也是最重要的内容。相对于博客昵称、博文标题和文章更新时间等信息而言,博客正文的内容更复杂,表现形式更丰富,在网页中中的位置更灵活。因此,要实现对博客正文的抽取,需要进行大量的观察、统计、训练和测试工作。本文就提出了一种基于HTML特征和机器学习的博客正文抽取实现方法。具体实现过程将在下节进行详细介绍。3.2 博客正文抽取的过程本节详细介绍基于HTML特征和机器学习的博客正文抽取算法的过程。3.2.1 分类分类的主要任务是根据页面内容的不同,将网络爬虫抓取到的页面分成四个类别:1、博客网页即博客的首页。这里一般会出现博主昵称、文章列表等特征明显的信息。2、博文网页即博客中某篇文章所在的页面,这里一般会出现文章标题、更新时间、文章正文以及相关评论等信息。3、博客相关网页博客中除了首页和博文以外的其他页面,例如博客中的相册页面、好友链接页面等等。4、非博客网页即非博客范围内的范围,例如一般的新闻网页。采用一种基于体裁的增量式博客网页分类方法,目的是克服基于内容方法在博客网页分类中的无效问题。同时,降低网页分类中的计算量,提高博客网页分类的精度。体裁决策树模型10是使用博客网页体裁上的特征作为决策树模型的节点而生成的树,树的叶子节点即为决策结果。过度拟合(overfitting)指统计学中为了建立近乎完美的具有非常多参数的统计模型,而让模型非常复杂,以致模型的预测性能反而下降。k-折交叉验证(K-fold cross-validation)是指将样本集分为k份,其中k-1份作为训练数据集,而另外的1份作为验证数据集。用验证集来验证所得分类器或者回归的错误码率。一般需要循环k次,直到所有k份数据全部被选择一遍为止。信息增益(Information Gain)指分类领域中某属性为整个分类所能提供的信息量或贡献值。本系统的基于体裁的增量式博客网页分类方法流程图如下:图3.1 基于体裁的增量式博客网页分类流程图具体步骤如下:Html特征1、指向相同域名的链接数量 / 所有链接数量;2、指向不同域名的链接数量 / 所有链接数量;3、在以下5组标签中,某特定标签数量 / 所有标签数量;4、文本格式: , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,; 5、文档结构: , , , , , , , , , , , , , , , , , , , ,;6、用户交互: , , , , , , , ;7、导航:计算以下标签的链接属性 , , 和;8、链接数量:所有域名,外部域名,交互标签;9、表单元素数量:Form标签,复选框标签,列表,密码文本框,文本区域,按钮, 单选按钮,文件上传;10、表单链接数量:域名;11、标签数量:所有强调(粗体, 斜体, 下滑线),字体,脚本,表格,段落,图片;12、HTML 深度:最大HTML深度,最大table深度;13、URL 长度:所有URL长度,目录路径长度;14、锚文本包含事先定义的关键词的链接数量 / 所有链接数量;15、URL字符中包含事先定义的关键词的链接数量 / 所有链接数量。URL特征1、URL是否包含“博客”或者“blog”字符;2、锚文本是否包含“博客”或者“blog”字符;3、URL字符中是否包含比较多的数字;4、锚文本相同的链接数量 / 所有链接数量;5、URI的长度;6、URL的长度;7、URL中URL的深度;8、在URL中,文件扩展名的数量,例如:.htm, .asp;9、URL中是否包含日期字符。文本特征1、博客常常包含描述个人观点的内容,例如,“我”,“我们”,“什么”等等;2、每个句子的平均词语数量;3、在链接文本中的字符的数量 / 所有字符数量;4、某特定标点符号的数量 / 34种标点符号的所有数量;5、疑问句的数量 / 所有句子的数量;6、感叹句的数量 / 所有句子的数量;7、日期短语的数量 / 所有词语数量;8、位置短语的数量 / 所有词语数量;9、人物短语的数量 / 所有词语数量;10、是否存在高频词,其中高频词从训练博客网页中获取,该高频词指具体方式为对训练博客网页进行分词,接着进行停用词删除,然后统计所有样本博客中出现频率很高的词语;11、描述日期或者时间的词语数量。3.2.2 分块基于内容的文本检索、过滤和分类、聚类等技术取得了巨大的进展,信息检索和Web挖掘的研究正朝着精细化、多样化的方向发展,人们在对文字内容进行处理的基础上,试图充分利用Web中蕴含的其他信息,进一步提高传统的信息检索和Web挖掘的效果。其中,“网页分块”作为一个新颖的技术点,以其独特的研究视角,正越来越受到人们的关注。11在中文搜索引擎的查询结果里仍然普遍存在着大量的无关项和不含具体信息的间接项,使用户不得不浪费大量的时间在结果列表中寻找相关信息。一般的搜索引擎均采用关键字的方法索引和检索网页,在这种框架下,所有出现在网页上的字被用作索引项。但实际的中文网页里常常含有大量与页面主题无关的文字,造成了检索结果不准确、不相关的问题。例如,图3.2和图3.3是以“桂林三宝”作为关键字进行检索时得到的结果。图3.2页面的主要内容是一篇介绍吉林的文章,其中提到“ 吉林雾凇,与桂林山水、云南石林、长江三峡并誉为中国四大自然奇观”,又恰好在左栏的导航目录里有“吉林三宝”的条目,使得这个页面被错误的当成了相关项;图3.3的主要内容则是介绍白族的“三道茶”,但因为在左侧的超链接目录里出现了“桂林三宝”,真正提供具体信息的应该是它指向的页面,而那个页面一般也会被检索到,因此图3.3是一个多余的间接项。图3.2 无关项的例子12图3.3 间接项的例子12如果搜索引擎在预处理阶段,把一个页面上不同主题、不同作用的文字混在一起,那么类似图3.2的无关项在之后的检索和处理过程中是根本无法去除的。商用搜索引擎普遍采用站点聚类技术,把出现在同一个站点上的结果项合并,虽然可以隐藏大部分的间接项,但会耗费用户的查询时间。因此,在预处理阶段过滤掉一些和主题无关的文字,从而消除前面所提到的无关项和间接项。为此,出现了“块”的概念。传统的信息抽取模型是以单个词条作为抽取单位。根据网页的特点:逻辑内容相互关联的块会被组织在一起。可以认为网页是由不同的内容块组成的。所以可以根据网页信息的格式并结合HMM的文本信息抽取算法把网页分成许多小块。而且分割后的内容块所包含的信息比单一词条的要多,也更容易机器的识别以及自动抽取。多数Web文档都是把标记和文本按照HTML的定义联在一起的。标记包括“ ”,在“ ”之间为标记名称。标记经常成对出现,分别为开始标记和结束标记。开始标记不以“/ ”开头,而结束标记以“/ ”开头。Web 文档中的任何一对标记都划分出一个离散的区域。该离散区域的开始为开始标记的出现位置;该离散区域的结束为开始标记相对应的结束标记的位置。该区域可以被某些标记继续分割为更小的区域。标记之间相互嵌套,组成了一个嵌套结构。为了更清楚的描述Web文档各个区域(由标记划分的) 之间的关系以及各个区域所含的文本量,常使用页面分析树来描述Web 文档。13从大量博客网页数据集的页面分析树中我发现了分块的方法利用DIV标记的布局特性进行解析。随着互联网的深入发展,网页格式越来越复杂,共同特征越来越少。现在,每个页面几乎都包含网站分类栏、各个主题的导航栏、正文栏、相关链接栏、版权声明栏和广告信息栏。然而,由于标记“DIV”有良好的布局特性,格式复杂的页面往往都采用“DIV”标记来进行页面格式的布局。因此,可利用“DIV”标记对页面进行解析。 图3.4页面格式布局如图3.4所示,整个页面用一个大的DIV来布局,它的里面又嵌套着不同的DIV。这样不断地嵌套,直至最底层的DIV里面包含着具体的记录项。文献 14 就利用标记“table”来对页面进行解析,把页面分割成不同的块。虽然思路简单,但用DIV标记进行挖掘,对网页开发工具制作出来的格式特别复杂的页面来说,是比较有效的,它往往能胜任其他方法所应付不了的复杂网页。所以,在处理门户网站中的网页时,这种思想是比较可取的。对多个门户网站的大量博客数据所进行的观察,也验证了这种分块方法的可行性。以网易博客中的一篇博文为例,经过分块后,获得它的文本块信息如图3.5所示(不同的块之间以“*”隔开):图3.5 博文分块效果示意图3.2.3 统计训练,获取决策树1、提取特征将博客网页进行分块后,将每一个块的文本作为最小单元,进行特征的提取。通过对大量的博客网页的HTML代码的分析,提取出所有博客文章正文块的特征(系统中的Features类)。在本系统中,这些特征主要包括:_positionOfBlock:块位置编号,即文本块的第一标签在全文标签当中的位置;_numberOfPageTag:整个网页的标签总数;_numberOfAllTag:分块中的标签总数;_numberOfTextTag:Text类标签的个数;_lengthOfText:Text类标签中的文本长度;_numberOfImgTag:Img标签的个数;_numberOfATag:A标签的个数;_numberOfStrongTag: Strong标签的个数;_numberOfPTag:P标签的个数;_numberOfBRTag:BR标签的个数。2、人工标记从这步开始,需要采用一个工具WEKA。WEKA的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis)。同时weka也是新西兰的一种鸟名,而WEKA的主要开发者来自新西兰。WEKA作为一个公开的数据挖掘工作平台,集合了大量能承担数据挖掘任务的机器学习算法,包括对数据进行预处理,分类,回归、聚类、关联规则以及在新的交互式界面上的可视化。它的数据文件是以arff为后缀名的。15以上一步骤中的博文为例,训练数据在WEKA中的显示如图3.6所示:说明:第一次项NO代表块的编号,第二项到第十一项表示Features中的十条特征。最后一项的ArticleType是一个二值,YES代表该块是正文块,NO代表该块不是正文块。 图3.6 WEKA数据显示实示例图3、统计训练把每一个博文网页进行分块和人工标记后,再将每一个网页对应的arff文件整合在一起,形成训练数据集。接下来,采用10折交叉验证(10-fold cross validation)来选择和评估模型。可以看到“J48”算法交叉验证的结果之一为“Correctly Classified Instances 10238 98.8224 %”。图3.7 训练博客数据集示意图4、 获取决策树在上一步的训练过程中,右键点击“Results list”刚才出现的那一项,弹出菜单中选择“Visualize tree”,新窗口里可以看到图形模式的决策树,15 如图3.8所示:图3.8 博文统计训练后获得的决策树示意图在获得决策树后,将其编码实现,就可以对经过分块预处理后的博文页面进行文章正文的抽取。3.3 算法的测试和评估继续使用WEKA工具对该抽取实现方法进行测试。在测试中,使用10238条数据进行训练,8190条数据进行测试,采用总精确度16来评价算法性能,定义如下:总精确度= 100% (3.1)根据公式(3.1),得到的总精确度为94.4964%。如图3.9所示:图3.9 抽取功能测试结果图3.4 博客正文抽取算法的意义和思考博客正文抽取最大的意义在于提高搜索的精度。中文搜索引擎经常会返回大量的无关项或者不含具体信息的间接项,产生这类问题的一个原因是网页中存在着大量与主题无关的文字。这些为辅助网站组织而增加的文字定义为“噪声”,它们通常聚集成块,且独立于主题内容,仅仅起向导的作用,例如加超链接目录或者具有搜索功能的表单。通过对博客正文进行抽取后,仅对正文中的内容进行分词、索引,这样可以将检索的匹配定格在主题内容之中,而大大的减少了网页“噪声”对检索的干扰,从而提高检索的效率和精度。另外,通过对博客正文抽取的研究,我们对博客的网页结构有了很深入的了解。以此为基础,运用发散思维,可以进一步开展其他方面的研究,例如对文章评论进行抽取、统计博主的活跃程度等等。该算法充分地抓住博客网页的特定结构特征,利用网页的HTML标签特征,研究出了一种新的网页分块算法利用DIV标记的布局特性进行解析。该分块算法的实现相对而言比较简单,而且分块的效果很好。另外,采用专门的统计工具WEKA对大量的数据进行统计训练而获得决策树,这样所得到的模型和算法的准确率有保障。所以,从整体上来看,该算法的实现并不复杂;从效果上来看,对博客正文抽取的准确率也比较高。当然,因为技术能力和资源条件的限制,抽取系统中还存在很多可以改进的地方。分块算法和训练过程目前只针对于一些著名的门户网站博客网页适用,例如网易、新浪、百度、搜狐等,所以博客正文抽取的实现有一定的局限性。所抽取到的仅仅是正文的文本,并不包含字体种类、大小等格式信息以及正文中的图片信息。这些都是以后可以进行拓展和改进的地方。4. 基于博客正文抽取的Geeseek搜索引擎本章主要介绍基于博客正文抽取算法的实例Geeseek博客搜索引擎的主要情况,并对其系统界面进行展示。4.1 Geeseek系统介绍Geeseek是一个智能搜索引擎系统。所谓智能的搜索就是让计算机变得更聪明,一个例子是查找“去首都的火车”,智能的搜索引擎应该理解在中国,“首都”就是“北京”。当然,目前的搜索引擎利用统计学的方法将这两个词理解为同义词,解决了基本的同义词理解问题。然而,用户仍然需要打开一个一个的网页查找去北京的火车车次,为了解决这个问题,产生了火车车次查询的垂直搜索引擎,这种搜索引擎将所有火车车次信息录制在数据库中,为用户提供单一的火车车次搜索,效果非常好。但是,如果不是查找火车车次,而需要查找近几天去北京的飞机航班信息、天气情况或者是北京的美食呢?为了迅速而有效地查询到一个好的结果,可能需要查找飞机航班信息、天气以及特色美食的垂直搜索引擎。现在的实际情况就是如此,网络上有很多针
展开阅读全文