尝试使用HPSG PET Parser

时间:2010-10-13 18:40:51

标签: parsing utf-8 nlp pos-tagger

您好我正在尝试使用PET Parser,但提供的使用文档不足。谁能指点我使用PET的好文章或教程?它支持utf-8吗?

2 个答案:

答案 0 :(得分:11)

要使用PET解析器,首先必须为感兴趣的语言加载语法。必须使用TDL语言编写语法,如DELPH-IN consortiumwiki here)中所使用的那样。大型兼容语法可用于多种语言,包括英语,日语和德语。还有更小的语法可供选择,您可以自己编写。

为此 - 以及与这些语法合作 - 你最好的选择是Ann Copestake的书,"Implementing Typed Feature Structure Grammars"(CSLI 2002)。本书提供了对TDL和语法的全面介绍,这些语法通过类型化特征结构的统一起作用。语法支持语法(表面字符串)和语义之间的双向映射(“含义”,根据Copestake的MRS - Minimal Recursion Semantics 表示)。请注意,这些是精确语法,这意味着它们通常不如统计系统容忍不合语法的输入。

English Resource Grammar (ERG)是一个很大的英语语法,具有广泛的通用域名覆盖。它是开源的,您可以从网站下载它。可以找到由PET解析器驱动的在线演示here

PET解析器分两步运行。第一个叫做翻转,产生语法的“编译”版本。第二步是实际解析,它使用廉价程序。您需要为Linux机器获取这两个PET二进制文件,或者自己构建它们。如果您不熟悉在Linux上构建软件,这一步可能并不容易。根据我的知识,PET不能在Windows(或Mac)上运行。

轻松运行翻牌。只需转到/ erg目录,然后键入:

$ flop english.tdl

这将生成 english.grm 文件。现在,您可以通过运行廉价

来解析句子
$ echo the child has the flu. | cheap --mrs english.grm

此示例以MRS(最小递归语义)格式生成句子的单个语义表示:

 [ LTOP: h1
   INDEX: e2 [ e SF: PROP TENSE: PRES MOOD: INDICATIVE PROG: - PERF: - ]
   RELS: <
          [ _the_q_rel<-1:-1>
            LBL: h3
            ARG0: x6 [ x PERS: 3 NUM: SG IND: + ]
            RSTR: h5
            BODY: h4 ]
          [ "_child_n_1_rel"<-1:-1>
            LBL: h7
            ARG0: x6 ]
          [ "_have_v_1_rel"<-1:-1>
            LBL: h8
            ARG0: e2
            ARG1: x6
            ARG2: x9 [ x PERS: 3 NUM: SG ] ]
          [ _the_q_rel<-1:-1>
            LBL: h10
            ARG0: x9
            RSTR: h12
            BODY: h11 ]
          [ "_flu_n_1_rel"<-1:-1>
            LBL: h13
            ARG0: x9 ] >
   HCONS: < h5 qeq h7 h12 qeq h13 > ]

Copestake的书解释了与PET兼容的语法中使用的特定语法和语言形式。它还可以作为开源LKB系统的用户手册,这是一个更具交互性的系统,也可以解析这些语法。除了解析之外,LKB还可以反过来:从MRS语义表示生成句子。 LKB目前仅在Linux / Unix上受支持。实际上总共有四个符合DELPH-IN的语法处理引擎,包括LKB和PET。

对于Windows,有 同意 ,我为.NET开发的multi-threaded parser/generator(和here);它还支持生成和解析。如果您需要以交互方式使用语法,您可能需要考虑使用LKB或同意除了 - 或代替 - PET。 同意的交互式客户端前端主要是基于WPF的,但引擎和简单的控制台客户端可以在任何Mono平台上运行。

ACE是另一个开源的DELPH-IN兼容解析和生成系统,专为高性能而设计,可用于Linux和MacOS。

LKB是用Lisp编写的,而PET和ACE是C / C ++,因此后者是生产使用的速度更快的解析器。 同意也比LKB快得多,但在解析复杂的句子时只会比PET快,其中来自同意的无锁并发的开销会摊销。

[11/25/2011编辑:同意现在支持生成和解析]

答案 1 :(得分:0)

PET确实支持UTF-8,具体取决于编译时的配置方式。除了维基页面,还可以查看或发布问题到mailing list

确实存在几种输入法,我建议使用FSC(XML)或YY(s-exp)作为最现代的。我不知道任何简短的教程,但您也可以查看Heart of Gold以获得完整的端到端NLP包,其中PET是一个组件。

您正在使用ERG解析吗?