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

GATE结合Ontology的使用方式 Gate developer 结合 Ontology 的使用方式,以及基于本体进行资源的语义标注 阅读详情

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中文自然语言处理系列之三 中文分句也是自然语言处理的基础之一,一般来说,中文中每个句子都表达了一个完整的意思。GATE的ANNIE提供了一个ANNIE Sentence Split资源,可以用于划分英文句子,但对中文的划分效果很不好(整篇文章分成了一个句子)。 GATE提供了两种句子划分的方法:基于JAPE规则和基于正则表达式,分别对应于类gate.creole.splitter. SentenceSplitter和gate.creole.splitter.RegexSentenceSplitter。本文先来讲述如何基于JAPE规则进行中文句子划分 立即下载

相关推荐

GATE自然语言处理框架官方文档

GATE是一个用于开发和部署自然语言处理组件的集成环境,包括:GATE IDE、GATE Cloud、GATE Teamware等内容。

GATE--文本处理的通用平台

      GATE系统是谢菲尔德大学自然语言处理研究小组开发的免费、开源通用文本工程通用框架,其是一个类似eclipse的开发平台,是一个可以利用添加插件来扩充系统功能的文本处理的平台。在其下有以一个IE的插件叫做ANNIE。IE,即Information Extraction,是一个以普通文本作为输入,输出拥有固定格式、意义明确的数据。这些输出数据可以直接展示给用户,或者存储在数据库或电子表格

CLOCK 5160

Gate信息抽取文档

该指导手册包含对信息抽取对介绍,ANNIE的使用,以及GATE的多种组件。

GATE 中引入JAPE文件错误的原因

由于研究需要,使用GATE框架来处理网页内容,在使用JAPE进行注释匹配后,RHS中如果出现Java代码错误,则会出现下面的提示。 gate.creole.ResourceInstantiationException: Error while parsing the grammar (file:/E:/SemanticAnnotation/japea.jape):  at gate.creol

ljiangbig2的专栏 1466

自己总结的GATE功能介绍

自己总结的Sheffield大学的自然语言处理平台Gate功能介绍

GATE 8 使用指南

自然语言处理框架GATE(General Architecture for Text Engineering,文本工程通用框架),是目前自然语言处理领域比较受推崇 的一个开源项目,它是一个应用非常广泛的自然语言处理开放型基础架构,为用户提供了图形化的开发环境,被许多自然语言处理项目尤其是信息抽取的项目所采用。

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

GATE:gate.ac.uk/ 1 GATE介绍 GATE是一个应用广泛的信息抽取的开放型基础架构,为用户提供图形化的开发环境,被许多自然语言处理项目尤其是信息抽取研究项目所采用。该系统对语言处理的各个环节――从语料收集、标注、重用到系统评价均能提供很好的支持。 GATE设计的三个主要目的是: 1) 为语言处理软件提供基础架构,提供文本处理的总体组织结构。 2) 提供...

weixin_33910759的博客 203

CCF201803-2 碰撞的小球 python

一些话:已经不知道是第几次做这道题了(大概第三次吧),真的常做常新,每次都有新的细节想法。虽然方法简单粗暴,但好在方便理解,对于我这种菜鸟选手而言。 但在做的过程中,最开始还忽略了输入的小球初始位置有可能是无序的,输出的时候要保持相对位置。CCF真的考验细节,希望上考场时能够认真仔细一点。就酱… #碰撞的小球 #当小球坐标为0或L时,会朝相反方向移动 #当两个小球坐标相等时,会分别转向相反的方向 #计算t秒之后小球的位置 n,L,t = map(int,input().split()) location .

tanya_dre的博客 350

语料库软件——GATE (General Architecture for Text Engineering)

按照安装向导的指引进行安装。:使用 GATE 的可视化界面配置 NLP 处理管道,包括分词、词性标注、命名实体识别等步骤。:如果需要将 GATE 集成到其他应用程序中,可以使用 GATE 提供的 API 进行开发。:如果需要额外的功能,可以安装 GATE 的插件。:GATE 可以处理不同格式的文档,包括纯文本、HTML、PDF 等。:GATE 采用插件架构,可以通过安装额外的插件来扩展其功能。:在 GATE 中创建一个新的项目,并加载需要处理的文档。:支持多种语言的处理,包括英语、德语、法语、西班牙语等。

2403_86762465的博客 1205

[代码开源]基于DistFlow的IEEE33和IEEE69节点最优潮流模型(OPF)实现与性能分析

本文详细介绍了基于DistFlow的IEEE33和IEEE69节点最优潮流模型(OPF)的实现与性能分析。通过代码开源,展示了如何从零搭建电力系统优化模型,解决配电网中的发电成本最小化问题。文章涵盖数据准备、模型实现细节、性能优化建议及常见问题解答,为电力系统研究者提供实用参考。

weixin_29103191的博客 707

使用项目管理画布启动项目

许多人对商业模式画布并不陌生,它是亚历山大·奥斯特瓦德(Alexander Osterwalder)、伊夫·皮尼厄(Yves Pigneur)在《商业模式新生代》(Business Model Generation)中提出的一种用来描述商业模式、可视化商业模式、评估商业模式以及改变商业模式的通用语言。 在我们做敏捷软件项目inception(项目启动规划)的时候经常会用到商业画布,此时它的作用是帮助我们快速了解客户的业务、产品和市场,帮助客户梳理自己的资源、优势和盈利模式,总的来说,商业画布是一种简单实用的

IDEAL Garden 1224

从GATE看跨语言NLP:如何让AI理解不同语言的深层结构?

本文探讨了GATE(Graph Attention Transformer Encoder)模型在跨语言NLP中的应用,通过融合图结构与自注意力机制,有效解决了不同语言间的深层语义理解问题。实验显示,GATE在英语、中文和阿拉伯语的多语言任务中表现优异,尤其在事件抽取和关系抽取任务上显著提升性能。文章还提供了GATE模型的实现指南和实战建议,助力开发者构建高效的多语言信息抽取系统。

weixin_29079743的博客 236

Visual MODFLOW Flex 6.1新手入门:从数据导入到3D建模的完整工作流解析

本文为Visual MODFLOW Flex 6.1新手提供了从零开始构建地下水数值模型的完整工作流指南。详细解析了从项目规划、数据准备与导入,到构建三维概念模型、生成并运行数值模型,直至结果可视化与校准的核心步骤。帮助水文地质与环工领域初学者快速掌握这一专业软件,高效完成从数据到三维建模的全过程。

a1b2c的博客 800

java GUI调用信息抽取工具Gate的方法

几个月前,尝试在JavaWeb项目中调用Gate API(关于Gate点这里了解更多),在那里其安装配置很简单,根据官方手册很快可以搞定。由于项目需求的变,现在要把项目改为桌面版,所以又要考虑在Java GUI中调用 Gate API的问题。根据官方手册完全行不通,各种报错,谷歌上可参考的内容也极少,我甚至还给开发人员发邮件询问,也没得到回复,相当吭爹,浪费老汗整整24小时的时间! 后来根据前

3301

SpringDoc 基本使用指南

SpringDoc 凭借零配置启动注解简洁和深度兼容 Spring 生态的优势,已成为 Spring Boot API 文档的首选工具。自动化- 减少手动维护文档的成本;标准化- 严格遵循 OpenAPI 3 规范;可扩展- 分组、安全控制灵活适配复杂项目。访问即可查看交互式文档(默认路径)

墨鸦的博客 1万+

9 硬件工程师笔面试高频知识考点真题解析——运算放大器

运算放大器(运放)摘要 运放是一种高增益、差分输入的模拟集成电路,具有虚短(线性区输入电压相等)和虚断(输入电流为零)特性,支持负反馈(线性放大)和开环/正反馈(饱和区比较)两种工作模式。关键特性包括高输入阻抗、低输出阻抗,理想运放参数(如无限增益)与实际参数(如有限带宽)的差异。 选型要点: 信号特性:直流/低频信号关注失调电压(Vos)、温漂;高频信号侧重带宽(GBW)和压摆率(SR)。 电源条件:单/双电源供电、电压范围及功耗需求(如电池设备需低静态电流)。 精度与噪声:微弱信号需低噪声运放,高精度场

XU157303764的博客 1673

基于Gate的中文信息抽取API调用方式--未成功

学习Gate快一周了,一直在看官方的英文文档,却一直收获不到,想在自己的程序中通过API的方式实现调用Gate完成信息抽取。Gate中的ANNIE可以实现英文的命名实体识别,但是却不支持中文,后来发现Gate提供了中文的插件即放于目录plugins下的Lang_Chinese文件夹中的内容,并且提供了分词的功能,然后尝试了一下,具体思路如下。 1.设置Gate的home等系统变量。 2.调

uzY)&PHd!cqj 4785

四足机器人关节电机控制器实现(附C++代码)

本文先对做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 461

【论文阅读笔记|AAAI2021】GATE: Graph Attention Transformer Encoder for Cross-lingual Relation and Event Extr

跨语言,关系和事件抽取,AAAI2021,有代码,ACE2005

@ 1477

Android框架WiFi架构

动平台,它主要是用来支持WEP,WPA/WPA2和WAPI无线协议和加密认证的,而实际上工作内容是通过socket(不管是wpa_supplicant与上层还是wpa_spplicant与驱动都采用socket通讯)与驱动交互上报数据给用户,而用户可以通过socket发送命令给wpa_supplicant调试来对wifi芯片操作,简单的说,二、android wifi 系统架构:andtoid wifi 系统引入了wpa_supplicant,它的整个wifi系统。

手机-手表蓝牙开发工程师的博客 3459

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

基于Gate的ANNIE插件的中文信息抽取

在上一篇文章《基于Gate的中文信息抽取API调用方式--未成功》中本来想采用Gate中的中文插件进行命名实体识别,但是没有成功,最后只能通过扩展Gate中的ANNIE插件来实现了。        ANNIE是Gate中用于英文信息抽取的插件,可以实现英文中的诸如命名实体识别等任务。要想处理中文信息需要对ANNIE进行扩展,包括扩展词表以及规则。ANNIE的主要词表为主目录是ANNIE\reso

uzY)&PHd!cqj 5180

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: 新手入门:在JSP页面中的几种传参方式
hellojzz
博客等级 码龄20年 9粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值