`

基于GATE的信息抽取系统介绍

阅读更多
 

1 GATE介绍

GATE是一个应用广泛的信息抽取的开放型基础架构,为用户提供图形化的开发环境,被许多自然语言处理项目尤其是信息抽取研究项目所采用。该系统对语言处理的各个环节――从语料收集、标注、重用到系统评价均能提供很好的支持。

GATE设计的三个主要目的是:

1) 为语言处理软件提供基础架构,提供文本处理的总体组织结构。

2) 提供可重用的用于自然语言处理的组件和类库,从而能够嵌入到各种不同语言处理的应用程序中。

3) 提供语言工程的开发环境,为语言处理软件的研究和开发提供一种方便的图形化的环境,为用户提供全面的开发帮助和可视化的调试机制。

1.1 CREOLE

GATE平台的核心是可重用组件――CREOLE(a Collection of REusable Objects for Language Engineering),CREOLE基于Java Bean实现,有三种类型:

Language Resources(LRs):LR可以理解成IE要处理的文本,在GATE中用Document对象表示可处理的文本,目前支持XML,HTML,PDF等格式,Corpus则是一组Document的集合,可以作为一个整体来处理。

Processing Resources(PRs):PR是GATE中进行语言处理的模块,不同的PR可以完成不同的具体任务,比如分词,模式匹配等。

VisualResources(VRs):VR是GUI中的可视化编辑部件。

1.2 ANNIE

GATE中的所有可重用资源的集合,被整体地的用在了基于规则方法的英文信息抽取系统ANNIE(A Nearly-New IE system)中。简单来说,ANNIE是一个可重用并且易扩展的组件集合,任务是完成信息抽取和标注。

在 GATE的GUI中ANNIE对应于Application,它把一组PR拼接起来组成一个PipeLine作用于一个Corpus或者Document 上以产生对文本的标注结果。具体来讲,就是一篇待处理文档,经过类似流水线一般的处理,严格按照规定顺序经过英文分词、英文词表查询、英文分句、英文词性 标注、英文抽取规则定义、英文命名实体识别和英文共指消解处理之后,实现整篇文档的信息抽取。

下面举个简单例子来说明ANNIE 的信息抽取过程。

ANNIE对于文本中的标注可以通过以下三步来完成:以标注"July 31, 2000"为例说明:

1)分词(tokeniser):被拆为"July""31"",""2000"

2)词典查找(gazetteer):在日期词典中查找,找到"July"是月份。

3)命名实体语法检查(named entity grammar):使用关于日期的语法规则(通过

JAPE 定义),"July 31, 2000"被识别为一个日期。

1.3 JAPE

JAPE(a Java Annotation Patterns Engine)的功能是建立规则库,用正则表达式匹配文本中的信息并作好标注,用于实现分词分句和较准确的命名实体识别。JAPE表现为一组规则语法文 件,这个语法文件可以经过GATE里提供的一个JAPE Compiler转换成一个标准的PR。

一个jape语法文件包括若干个Phase,每个Phase由若干个rule组成,每条rule由左侧和右侧两部分组成。

左 侧部分(LHS, Left Hand Side)是一个包含正则表达式操作符(*,?,+)的标注模式。每条规则的右侧部分(RHS, Right Hand Side)包含了标注集操作描述。与左侧部分匹配上的标注集将会按照右侧的操作执行。下面举一个例子来说明:

Rule: GazLocation

(

{Lookup.majorType == location}

)

:location -->

:location.Enamex = {kind="location", rule=GazLocation}

其 中GazLocation是这条规则的名字,-->左侧就是LHS,右侧就是RHS。LHS中括号表示一个匹配,后面的:location是该匹配 的标签,标签的作用是用于把左侧匹配上的字符串传递给右侧做标注(Annotation),location.Enamex中的Enamex就是一个 GATE中的Annotation对象,每个Annotation会对应一个Feature对象的Map集合,kind和rule就是Enamex的 Feature,表示标注的属性。

内置对象Lookup实际也是一个Annotation,它是由ANNIE中的Gazetteer PR标注上的,Gazetteer PR主要进行一个词典查找操作,Lookup标注就表示该单词在词典中查到,其属性(Feature)majorType是词典中定义的该单词属于的类 别。另外还有一个LHS用到的重要对象是Token,是由ANNIE中的English Tokeniser PR标注上的,表示的是每一个单词,Token.string表示的单词的文本信息。

RHS中还可以包含复杂的Java代码进行更复杂的标注操作,需要使用的API可以参考[1]中的Chapter 5,比如为了消歧需要删掉已经作好的标注然后改为正确的标注。JAPE的详细用法可以参考[2]中Chapter 7。

在GATE使用JAPE的方式是新建一个Jape Transducer的PR,然后把jape文件路径作为它的grammarURL参数传入。这个PR就能完成语法文件中定义的标注操作。

1.4 基于GATE的开发方式

使 用GATE开发信息抽取系统主要有两种方式:一种在GATE的GUI中添加合适的PR(可以是已有的Plugin也可以是符合CREOLE标准的自己编写 的PR)组成一个流水线形式的Application,调用它对一个Document的LR或者一个Corpus的LR处理。这种方式需要依赖GATE的 GUI,但在开发初期快速的构建原型系统和调试程序很方便。

另外的一种方式就把GATE作为Lib来构建脱离GATE GUI的独立程序,这时一般的操作就是按照GATE的API依次对GATE框架,ANNIE Application及其中的PR,Corpus等LR初始化(这些PR,LR实质都是JavaBean),然后运行并处理输出的结果。例子代码可以参 考[3]中的GoldFish Example。

2 GATE中的Machine Learning PR

2.1 ML API介绍

信息抽取的一种重要实现手段是采用基于学习系统的方式,这种方式需要使用基于统计的机器学习算法和大量标注好的训练数据。

在 GATE中机器学习主要由Machine Learning PR提供,这个PR实现了很多已有学习算法的封装,比如WEKA,MAXENT,SVM Light,它主要工作是把LR中标注属性等语言特征的信息转换为各种学习算法的输入格式,然后调用相应的算法执行产生输出,再把它们作一个后处理转换为 GATE中使用的标注格式,此外还可以对算法的效果进行评估。

在GATE的Machine Learning中,基于SVM的命名实体识别主要基于[4]的工作。SVM Light Wrapper需要提供SVM Light[5]的 可执行文件svm_learn和svm_classify,两者不在GATE的发布包里,可以从其项目主页单独下载。使用SVM Light Wrapper来标注文本需要二个阶段的处理,第一阶段是用标注好的训练数据由svm_learn生成SVM模型,第二阶段使用这个SVM模型来对预处理 的特征向量进行分类。这两个阶段也对应于ML PR的两种模式:Training和Application。

ML API可以把GATE里作好标记的Document对象作为输入转换成SVM learner需要的语言特征和特征向量,包含特征向量的文件会被单独保存起来,以便用在其他地方。要使用ML API,首先需要提供一组作好标记的文档,然后需要对这些文档进行预处理以获取用于学习的语言特征,GATE中各种基于JAPE的PR使得这些处理操作变 得更容易,最后还需要为ML API提供一个配置文件。

2.2 ML PR的配置文件

ML PR采用外部的xml配置文件来设置具体使用的算法和需要的数据集。这个配置文件格式如下:

<?xml version="1.0" encoding="windows-1252"?>

<ML-CONFIG>

<DATASET> … </DATASET>

<ENGINE>…</ENGINE>

<ML-CONFIG>

DATASET和ENGINE的格式如下:

<DATASET>

<INSTANCE-TYPE>Token</INSTANCE-TYPE>

<ATTRIBUTE>

<NAME>POS_category(0)</NAME>

<TYPE>Token</TYPE>

<FEATURE>category</FEATURE>

<POSITION>0</POSITION>

<VALUES>

<VALUE>NN</VALUE>

<VALUE>NNP</VALUE>

<VALUE>NNPS</VALUE>

</VALUES>

[<CLASS/>]

</ATTRIBUTE>

</DATASET>

<ENGINE>

<WRAPPER>gate.creole.ml.svmlight.SVMLightWrapper</WRAPPER>

<OPTIONS>

<CLASSIFIER-OPTIONS>-c 0.7 -t 0 -m 100 -tau 0.4</CLASSIFIER-OPTIONS>

</OPTIONS>

</ENGINE>

注 意GATE v3和v4中的配置文件定义变化比较大,尤其是<ENGINE>部分。<DATASET>中<INSTANCE- TYPE>是某一特定的Annotation,它的<ATTRIBUTE>既可以是该Annotation的一个Feature也可以 是另外一个Annotation,其<POSITION>子节点定义了该<ATTRIBUTE>到<INSTANCE- TYPE>的相对位置,也就是说这个节点定义可以反应出若干个Annotation的相对关系。<ATTRIBUTE>有三种类 型:Boolean,Nominal,Numeric。Nominal类型需要在<VALUE>节点列举出所有可能的值。

Reference:

[1] GATE programmers guide[EB/OL]. http://gate.ac.uk/sale/pg/pg.pdf, .

[2] Developing Language Processing Components with GATE Version 4 (a User Guide)[EB/OL]. http://gate.ac.uk/sale/tao/index.html, .

[3] GATE Example Code[EB/OL]. http://gate.ac.uk/gate-examples/doc/index.html, .

[4] Li Y, Bontcheva K, Cunningham H. SVM Based Learning System for Information Extraction[J]. Deterministic and Statistical Methods in Machine Learning, 2005, : 319~339.

[5] SVM Light[EB/OL]. http://svmlight.joachims.org, .

[6] 李飒. 基于GATE的中文信息抽取系统的开发和实现[硕士]. 北京: 中国科学院研究生院(文献情报中心), 2006.

分享到:
评论

相关推荐

    Gate信息抽取文档

    信息抽取(Information Extraction,简称IE)是自然语言...通过其内置的ANNIE和JAPE,以及多语言工具和评估组件,GATE不仅有助于研究人员和开发者进行语言学分析,还能够支持在实际应用中快速开发和部署信息抽取系统。

    用于中英文信息抽取gate软件的英文说明

    本文将基于“用于中英文信息抽取的GATE软件的英文说明”这一主题,深度剖析GATE的核心功能、技术原理以及其在Java环境下的应用实践。 GATE:文本工程的通用架构 GATE由英国谢菲尔德大学计算机科学系开发,是一款...

    基于python+Django的《专家信息管理与抽取系统》.zip

    《基于Python+Django的专家信息管理与抽取系统》是一个典型的Web应用开发案例,它结合了Python编程语言和Django框架的优势,用于构建一个高效、可靠的专家信息管理系统。这个系统可能包括专家信息的录入、查询、修改...

    GATE组件类型、语料库,文档和标注、信息抽取.doc

    ### GATE组件类型、语料库、文档和标注:深入解析信息抽取技术 #### GATE组件模型:CREOLE GATE(General Architecture for Text Engineering)是一个开源框架,旨在支持文本处理的各种任务,如自然语言处理(NLP...

    GATE系统关键组件的应用开发接口研究和应用

    基于对GATE应用开发接口的研究,文章还展示了一个基于GATE扩展的知识抽取系统的应用实例,这不仅体现了GATE在知识抽取领域的潜力,也为相关领域的研究人员提供了实际操作的参考。 总之,《GATE系统关键组件的应用...

    GATE0介绍与安装

    1. GATE IDE(integrated development environment):它捆绑了一个使用非常广泛的信息抽取系统和其他插件集合的语言处理组件,称为 GATE Developer。 2. 为服务器托管的大型文本处理提供了一个云计算解决方案:称为 ...

    GATE 自然语言处理

    这些插件极大地扩展了GATE的功能,使其能够处理多种语言和任务,如信息抽取、句法分析和机器学习模型的训练。 第四部分“GATE家族”则关注了GATE的云服务GATE Cloud,提供大规模文本处理的解决方案;GATE Teamware...

    基于FPGA的FIR抽取滤波器设计

    本篇文章重点介绍了一种基于Xilinx XC2V1000 FPGA的3阶FIR抽取滤波器设计。抽取滤波器是一种降采样技术,通过减少连续信号的采样率来降低数据处理的复杂度,同时保持信号质量。在这个设计中,抽取率为2,意味着每两...

    基于FPGA视频合成系统设计与实现

    本文将详细介绍一种基于现场可编程门阵列(Field Programmable Gate Array, FPGA)技术的视频合成系统设计与实现方案。 #### 系统需求与设计目标 该系统旨在将6路BT656视频信号无失真地合并成一路BT1120视频输出。...

    3500基于k-均值的正文抽取.zip

    标题中的“3500基于k-均值的正文抽取”指的是一个使用k-均值算法来实现的文本摘要系统,可能是一个Java编程项目。k-均值算法是一种常见的无监督学习方法,常用于数据聚类,这里被应用于正文抽取,即从文本中找出关键...

    Gate 6用户手册

    - **操作系统兼容性**:GATE 6支持多种操作系统,包括Windows、Linux和Mac OS。 - **软件依赖**:确保计算机上已经安装了Java运行环境,因为GATE是基于Java编写的。 - **安装步骤**:运行安装程序并按照提示进行...

    自动抽取文章的中心思想

    在IT行业中,自动抽取文章中心思想是一项重要的自然语言处理任务,它涉及到文本挖掘、信息检索以及人工...通过不断优化和调整算法,我们可以实现更高效、准确的文章摘要提取系统,为信息时代的知识获取提供强大助力。

    GATE 13 词表.doc

    总结,GATE 13 词表是文本分析和信息抽取的关键组件,通过定义和管理词表,可以高效地识别和标注文本中的关键实体,从而支持复杂的自然语言处理任务。ANNIE词表编辑器提供了一种用户友好的方式来创建、修改和管理...

    基于FPGA的高速数字下变频系统设计.pdf

    在讨论基于FPGA的高速数字下变频系统设计时,首先需要了解数字下变频(Digital Down Conversion,DDC)的概念及其在软件无线电系统中的作用。DDC是一种可以将高频数据流信号转换为低频数据流信号的技术,以适应后端...

    项目方案-基于FPGA医学超声数据采集处理分析系统的研发.docx

    该项目是关于基于FPGA(Field-Programmable Gate Array,现场可编程门阵列)的医学超声数据采集处理分析系统的研发。FPGA在医疗成像领域的应用因其灵活性和高性能而受到重视,尤其是在超声诊断设备中,它可以提高...

    浅谈基于OpenCV的人脸识别技术在智能卫浴系统的应用.pdf

    文章提到使用FPGA(Field-Programmable Gate Array)图像编译处理技术和OpenCV库来构建一个嵌入式系统,这个系统基于Android平台。嵌入式开发允许在硬件设备中直接集成人脸识别功能,使得智能卫浴系统更加紧凑和高效...

    基于FPGA的直扩信号同步设计与实现.pdf

    本文重点讨论了一种基于FPGA(Field-Programmable Gate Array)的全数字直扩信号同步系统的设计与实现方法。 该系统的核心在于实现伪码同步和载波同步,以确保接收端能够准确地恢复发送的信息。伪码同步是通过一个...

    forgetit-gate-rdfa-import:用于 GATE 的 RDFa 导入器

    总的来说,"forgetit-gate-rdfa-import"是一个基于Java的GATE插件,它允许用户在GATE的文本处理任务中利用RDFa数据,增强了对语义网和链接数据的理解和操作,这对于研究、数据分析和信息抽取等领域具有重要意义。...

Global site tag (gtag.js) - Google Analytics