首页> 中国专利> 网络搜索中基于多种规则的元数据自动抽取方法

网络搜索中基于多种规则的元数据自动抽取方法

摘要

本发明提供了一种网络搜索中基于多种规则的元数据自动抽取方法,属于网络搜索技术领域。该方法包括以下步骤:(1)对粗糙网页进行预处理,将所有网页归一为比较规范的格式;(2)对网页文档中包括所要提取的信息的网页内容进行初步定位;(3)按照指定的规则从预定位提取出的内容中提取元数据。本发明的方法首先将核心区域与大范围的无用信息区别开,而后再针对核心区域进行规则提取,使得提取准确度得到了大幅度提高。本发明的方法还能够按照多种规则对网页中的元数据进行抽取,多种规则根据给定的优先级判断匹配顺序,并按照两步抽取的方法进行精细化处理。

著录项

  • 公开/公告号CN101101600A

    专利类型发明专利

  • 公开/公告日2008-01-09

    原文格式PDF

  • 申请/专利权人 北京大学;

    申请/专利号CN200710118590.8

  • 发明设计人 张铭;杨宇;

    申请日2007-07-10

  • 分类号G06F17/30(20060101);

  • 代理机构北京君尚知识产权代理事务所;

  • 代理人余功勋

  • 地址 100871 北京市海淀区颐和园路5号

  • 入库时间 2023-12-17 19:37:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-08-25

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20090211 终止日期:20160710 申请日:20070710

    专利权的终止

  • 2009-02-11

    授权

    授权

  • 2008-02-27

    实质审查的生效

    实质审查的生效

  • 2008-01-09

    公开

    公开

说明书

技术领域:

本发明属于网络搜索技术领域,尤其涉及在互联网页上进行主题搜索的方法。

背景技术:

元数据是描述数据的数据(data that describes data)或“关于数据的数据”(data aboutdata),用于描述数据的特征和属性的,也是描述和组织Internet信息资源、发现Internet信息资源的工具。在每个领域,都会有一些大型的资源发布网站,通过抽取这些资源网站上的元数据,可以搜集到大量的有用资源,帮助不同用户建立特定领域的数据库,因此,对于元数据的抽取应用是非常广泛的。

元数据抽取在整个信息组织与检索中处于数据准备的基础地位。抽取过程的数据来源首先经过必要的预处理,剔除在格式、内容、语言等方面存在问题或严重缺失的文档,产生格式相对规整的文本文档;其次经过元数据抽取模块的处理,生成符合规范定义的文档元数据,并将结果存储在元数据、模式库或其他与具体系统相关的文件或文本数据库中。文档元数据也可依据具体系统的差异,采用不同的规范格式进行组织,以方便数据的共享与信息交流。而随着网络的进一步发展,网页元数据已经成为存储有用信息的最主要方法之一,因此在网页元数据抽取方面的科研工作也越来越广泛,越来越受到重视。

在元数据抽取领域,科研工作者已经进行了大量的理论研究,也提出了很多元数据抽取的技术和方法,并根据这些理论开发出了不少可用的工具。

在Web信息抽取领域有一种比较通用的分类方法,即根据每种工具采用的技术将Web元数据抽取的方法大致分为六类:(1)基于语言的元数据抽取方法;(2)基于HTML结构的元数据抽取方法;(3)基于NLP(Natural Language Processing)的元数据抽取方法;(4)基于归纳的元数据抽取方法;(5)基于模型的Web元数据抽取方法;(6)基于Ontology的元数据抽取方法。

其中基于NLP的元数据抽取方法是将NLP技术应用于从自然语言描述的文档中学习抽取规则。这类方法主要采用短语句法及语义分析技术,包括句法成分的识别与标记,关键词抽取,检索特征的抽取、索引等。基于NLP的元数据抽取方法比较适用于从结构松散甚至是纯文本中抽取有用信息。采用这类方法的典型工具是WHISK【SoderLan,S.Learning Information Extraction Rules for Semi-Structured and Free Text.Machine Learning 34,l-3(1999),2333-272.】。

WHISK是一个使用较为广泛的、针对半结构化信息进行规则自动学习的系统。与之前的系统相比,WHISK能够按照更精确的原则学习到需要的规则,因为它不仅能够针对某个领域的特定内容格式学习规则,还能够加入一些语义信息。WHISK中的规则是使用正则表达式表示,并且能够在一个规则中指定提取一个或多个信息域。但是这种自动学习规则的系统得到结果在真正用于提取时还是存在很多不足,原因在于针对一个完整的大容量的半结构化信息,WHISK中给出的规则只是尽量集中于待提取信息区域的,一条规则中既要完全剔除不需要的信息,又要准确定义提取需要的信息是很难做到的。另一方面,WHISK学习到的规则中给出的语义信息是通过将所有学习到的同义词语同时列出,以保证见到这一语义的不同词语都能够辨别出。但这点会使得最终得到的规则非常繁琐,且由于表达一种语义的词语层出不穷,最终的提取效果不会很好,这一点在中文提取中更为明显。

发明内容:

本发明的目的是提供一种按照指定规则自动抽取的元数据抽取方法。该方法能够按照多种规则对网页中的元数据进行抽取,多种规则根据给定的优先级判断匹配顺序,并按照两步抽取的方法进行精细化处理。

本发明的技术方案如下:

网络搜索中基于多种规则的元数据自动抽取方法,包括以下步骤:

1.对粗糙网页进行预处理,将所有网页归一为比较规范的格式

预处理可以使用开源工具包NekoHTML进行处理,这个工具是J.Andrew Clark用Java写的系列工具(Java APIs)中的一个。NekoHTML是一个简单的HTML扫描器和标签补偿器(tag balancer),使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。经过以上处理的网页就能够达到基本的要求,就是那些结构松散的HTML文档也已经被转化为符合基本XML文档规范的网页了。

2.信息预定位

信息预定位是指对整个网页文档中最有价值的部分,也就是包括所要提取的信息的网页内容进行初步定位。

可以使用Apache的另一项开源工具:xalan-java,这是一套XSLT处理器。其中,XPath是XSLT用于对XML文档各部分进行定位的语言,它可描述如何识别、选择、匹配XML文档中的各个构成元件,包括元素、属性、文本内容等。

3.基于多种规则指定的信息提取

按照指定的规则从预定位提取出的内容中提取元数据。所述的规则可以采用java.regex提供的正则表达式工具包进行描述,符合规则的就将其提取出来。

进一步,在实际提取中,不可能只使用一套XPath或正则表达式就能够处理所有的网页提取,本发明的方法针对同一类网页,设定不同预定位XPath路径以及一系列不同规则,并设定每种XPath路径和规则的优先级,按照优先级辨别出该网页符合哪种预定位路径,以便提取出核心内容区域,而后再根据不同优先级匹配各个规则,直到提取出所要内容。所有适合于特定网页类型的一系列不同优先级XPath路径和规则,都需要在xml文件格式的配置文件中写明,经过文件解析形成DOM Tree的格式进行处理。

进一步,上述的网络搜索中基于多种规则的元数据自动抽取方法,在所述步骤3即信息提取过程中,还按照如下方法进行信息精化,首先辨别哪些是多余信息。

首先确定哪些数据域需要信息精化步骤,因为有些数据域在指定了规则后就能够保证提取结果是十分精确的了。但是对于另外一些数据类,就会出现大量的冗余或杂乱信息,而机器学习的结果自然会将这些数据域指定为需要精化的类型。

采用二元组<word,feature>的形式表示学习过程中遇到的多余词语。其中,word即多余词语本身的记录,而feature是依据规定好的分类方法,对词语的类型判断和标记。在本发明的方法中,对遇到的词语划分为如下4种类型:(1)所有字母均为小写,lowcase型;(2)包含数字和字母,或者只包含数字,in_number型;(3)该数据域的第一个单词,或一句话的第一个单词,并且该单词的第一个字母为大写,first_word型;(4)单词的第一个字母为大写,并且其前面一个单词或后面一个单词也为大写字母开头的单词,con_capital型。

在学习过程中,如果某个单词或某种单词类型在一个特定位置作为杂质出现的概率大于一个特定域值,则将单词或单词类型以及出现位置记录下来。在提取过程中,如果在固定匹配位置出现了杂质单词,即匹配<word,feature>中的第一项相同,则直接将其过滤掉。若出现了与杂质单词不相同,但与杂质类型相同的单词,则也将其判断为杂质并过滤掉。

本发明的优点和积极效果:

本发明提供了一种按照指定规则自动抽取的元数据抽取方法。本发明给出了两步定位的创新性方法,第一步先将核心区域与大范围的无用信息区别开,而后再针对核心区域进行规则提取,使得提取准确度得到了大幅度提高。本发明的方法还能够按照多种规则对网页中的元数据进行抽取,多种规则根据给定的优先级判断匹配顺序,并按照两步抽取的方法进行精细化处理。使用本系统,不同的用户针对不同的网页,只需要按照规定好的格式编写规则,即可全自动地进行提取处理,而不需要对程序进行任何特定修改。另外,本发明进一步在信息提取的过程中进行信息精化,我们发现针对杂质信息的学习和记录要比针对正面词汇的学习和记录好得多,因此本发明中给出的信息精化部分就是针对杂质学习并过滤,经过试验发现效果显著。

实验证明,本发明的方法能够很好的处理半结构化网页,F测度达到85%以上,具有较好的实用价值。

附图说明:

图1为本发明的结构示意图。

图2为本发明的机器学习阶段流程图。

图3为本发明的核心程序流程图。

具体实施方式:

以下结合一个对教育资源进行整合的例子,详细描述本发明的具体实施方式。

本具体实施方式描述的是教育资源的整合工作中对资源网站上的网页元数据的抽取方法。教育资源的整合工作,目标是为网络学习者和老师们提供的一个教育资源的集成平台。作为其重要环节的元数据抽取步骤,需要对半结构化网页能够达到较好的抽取精确性,并具有处理结构松散文档的能力。

如图1所示,在本具体实施方式中,对元数据的抽取包括以下几个步骤:

1.粗糙网页预处理

通常情况下,抽取算法比较适应于处理xml文档和格式良好的html文档。这里所说的“格式良好”,指的就是要在网页编写时,严格要求网页标签前后一一对应,有开始的标记就要有终结的标记。

由于html网页并没有严格要求代码中的网页标签是前后对应的,因此,流行于网络中的各式网页的代码格式可能相差甚远。爬虫程序抓取到的都是一些毫无规范性可言的粗糙网页。

在提取工作正式开始之前,需要对粗糙网页进行一定的预处理。将粗糙网页中缺少的标签补全,将所有网页归一为比较规范的格式,方便后期处理。并且,在这个阶段,网页中的所有图片将会被自动过滤。这里使用了开源工具包NekoHTML进行处理,这个工具是J.Andrew Clark用Java写的系列工具(Java APIs)中的一个。NekoHTML是一个简单的HTML扫描器和标签补偿器(tag balancer),使得程序能解析HTML文档并用标准的XML接口来访问其中的信息。经过以上处理的网页就能够达到基本的要求,就是那些结构松散的HTML文档也已经被转化为符合基本XML文档规范的网页了。

2.信息提取阶段

在第一阶段的网页预处理之后,就进入了信息提取阶段。为了提升提取准确度,将提取阶段分为三个步骤:信息预定位,基于多种规则制定的信息提取,以及信息精化。

(1)信息预定位

信息预定位是指对整个网页文档中最有价值的部分,也就是网页的核心内容进行初步定位。在待处理网页中往往既包含核心内容区域,也会包含结构化内容区域。核心内容通常包括所要提取的信息,例如课程名称、课程编号、课程特点和教师信息等;而结构化信息区域包括导航条、搜索区导航等。在处理过程中,这些结构化内容是没有意义的,但却是所有页面都会包含的内容。因此,在第一步提取过程中,要将有价值的内容区域先整体提取出来,其中会包含网页的标签等代码内容,并不是最终所需要的。但是在预定位过程中,不对这些标签作具体区分,只是确认出整体的核心网页部分即可。在这里,使用的是Apache的另一项开源工具:xalan-java,这是一套XSLT处理器。其中,XPath是XSLT用于对XML文档各部分进行定位的语言,它可描述如何识别、选择、匹配XML文档中的各个构成元件,包括元素、属性、文本内容等。

预定位提取出的内容将交给基于多种规则制定的信息提取步骤来处理。对于每次处理,只要指定相应的处理规则,程序就能够根据要求进行提取。这里的规则描述形式,采用java.regex提供的正则表达式工具包进行描述及处理,能够方便地根据给定正则表达式匹配目标字符串中的指定内容,如果符合规则,就将其提取出来。

(2)基于多种规则指定的信息提取

在实际提取中,不可能只使用一套XPath或正则表达式就能够处理所有的网页提取,为了使本发明的方法能够更加灵活,本文提供了一个选项,可以针对同一类网页,设定不同预定位XPath路径,以及一系列不同规则,并设定每种XPath路径和规则的优先级,进而更加精确地进行提取。程序会按优先级辨别出该网页符合那种预定位路径,以便提取出核心内容区域,而后再根据不同优先级匹配各个规则,直到提取出所要内容。

所有适合于特定网页类型的一系列不同优先级XPath路径和规则,都需要在xml文件格式的配置文件中写明,经过文件解析形成DOM Tree的格式进行处理。配置文件的书写格式为:

 <domain name=″www.FirstWebSite.com″>    <urlPattern regex=″^/title/tt[0-9]{7}$″            rank=″1″>      <entity name=″title″>        <location xpath=″//BODY[1]/DIV[2]″            rank=″1″/>     </entity>     <entity name=″outline″>       <location xpath=″//BODY/DIV[2]″rank=″1″/>           <Pattern regex=”^/title/tt”>     </entity>   </urlPattern>   <urlPattern regex=″″type=″ONE_MOVIE″rank=″1″>     <entity name=″title″>       <location xpath=″//BODY[1]/DIV[2]″           rank=″1″/>     </entity>   </urlPattern>   <urlPattern regex=″^/title/tt[0-9]{7}″rank=″1″>     <entity name=″title″>       <location xpath=″//BODY[1]/DIV[1]″           rank=″1″/>     </entity>   </urlPattern>   <urlPattern regex=″^/nowplaying/$″rank=″2″/>   <urlPattern regex=″.*″rank=″3″/> </domain><domain name=″www.SecondWebSite.com″>

配置文件的第一层为Domain(域)信息,也就是某一类网页的统一根网址;下一层给出在这个大的网址Domain下每种待处理网页的url规则,也就是使用正则表达式(Regular Expression)匹配网页地址,判断使用哪一套规则进行元数据提取;紧接着是不同的元数据提取域的指定,例如课程名称(title),课程大纲(outline)等;而后是针对每种信息域按照优先级不同给出各个预定位XPath,用于核心内容预定位;XPath后,是具体的提取规则,仍然使用正则表达式表示。

(3)信息精化

当前一步按照规则将所有元数据提取出来之后,信息域中的提取结果含有很多不相关的内容。众所周知,对于较为通用的元数据提取程序,是不可能做到百分之百的准确提取、准确分类的,不论是结构松散的HTML文档还是语义化的XML文档,都无法精确规定所有同一Domain下的网页在表示同一对象或同一属性时使用完全相同的表述方式。

为保证精确性,需要尽可能的将其中不相关的词语都剔除掉。在这一步骤中使用到基于机器学习的方法,学习过程如图2所示。经过观察发现,一般情况下那些多余的信息在内容和形式上都是经常重复的,因此,本模块中的训练数据将着重用来辨别哪些是多余信息。

首先确定哪些数据域需要信息精化步骤,因为有些数据域在指定了规则后就能够保证提取结果是十分精确的了,例如:课程id、课程名称、课程简介等,这些数据域的现实规则比较固定,描述方法也比较统一,因此提取后基本不会出现不相关词语混杂的情况,直接将第二步的结果作为最终提取结果输出即可。但是对于另外一些数据类,如:参考读物作者、参考读物题名、参考读物出处等,如果不进行信息精化,就会出现大量的冗余或杂乱信息,而机器学习的结果自然会将这些数据域指定为需要精化的类型。

采用二元组<word,feature>的形式表示学习过程中遇到的多余词语。其中,word即多余词语本身的记录,而feature是依据规定好的分类方法,对词语的类型进行判断和标记。在本模块中,对遇到的词语划分为如下4种类型:(1)所有字母均为小写,lowcase型;(2)包含数字和字母,或者只包含数字,in_number型;(3)该数据域的第一个单词,或一句话的第一个单词,并且该单词的第一个字母为大写,first_word型;(4)单词的第一个字母为大写,并且其前面一个单词或后面一个单词也为大写字母开头的单词,con_capital型。

在学习过程中,如果某个单词或某种单词类型在一个特定位置作为杂质出现的概率大于一个特定域值,则将单词或单词类型以及出现位置记录下来。在提取过程中,如果在固定匹配位置出现了杂质单词,即匹配<word,feature>中的第一项相同,则直接将其过滤掉。若出现了与杂质单词不相同,但与杂质类型相同的单词,则也将其判断为杂质并过滤掉。

因为本文针对的都是半结构化的教育类网站和资源,网页内容比较规范,很多时候,冗余信息是相似的或者相同的,因此,将针对word本身的判断作为首要判断标准,如果发现多余信息与已有记录相同或相似,则可以简单地做出判断,而不需要额外的工作。

性能评测

衡量一个元数据提取系统好坏的指标主要有以下三个:

查全率(Recall)

查准率(Precision)

F度量(F-measure) >>F>=>>>>(>>β>2>>+>1>)>>PR>>>>β>2>>P>+>R> > >

获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号