尝试使用 HPSG PET 解析器

问题描述 投票:0回答:2

我正在尝试使用 PET 解析器,但给定的使用文档不足。谁能给我推荐一篇关于使用 PET 的好文章或教程?支持UTF-8吗?

parsing utf-8 nlp pos-tagger
2个回答
12
投票

要使用 PET 解析器,首先您必须加载感兴趣语言的语法。语法必须使用 TDL 语言编写,如DELPH-IN 联盟此处为 wiki)所使用。大型、兼容的语法可用于多种语言,包括英语、日语和德语。还有更小的语法可用,您可以编写自己的语法。

为此,以及使用这些语法,最好的选择是 Ann Copestake 的书,“实现类型化特征结构语法”(CSLI 2002)。本书全面介绍了 TDL 和语法,例如通过类型化特征结构的统一发挥作用的语法。语法支持语法(表面字符串)和语义(“含义”,根据 Copestake 的 MRS 表示的双向映射 - 最小递归语义)。请注意,这些是精确语法,这意味着它们通常比统计系统更难容忍不符合语法的输入。

英语资源语法 (ERG) 是一个大型英语语法,具有广泛的通用领域覆盖范围。它是开源的,您可以从网站下载。可以在此处找到由 PET 解析器提供支持的在线演示。

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

跑步失败很容易。只需转到您的 /erg 目录,然后输入:

$ flop english.tdl

这将生成 english.grm 文件。现在您可以通过运行 cheap:

来解析句子
$ 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 语义表示生成句子。目前仅 Linux/Unix 支持 LKB。实际上一共有四种符合 DELPH-IN 的语法处理引擎,包括 LKB 和 PET。

对于 Windows,有 agree,这是我为 .NET 开发的多线程解析器/生成器(以及此处);它还支持生成和解析。如果您需要交互地使用语法,您可能需要考虑使用 LKB 或 agree 作为 PET 的补充或替代。 agree 的交互式客户端前端主要基于 WPF,但引擎和简单的控制台客户端可以在任何 Mono 平台上运行。

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

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

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


0
投票

PET 确实支持 UTF-8,具体取决于编译时的配置方式。除了 wiki 页面之外,还可以查看或将问题发布到邮件列表

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

您正在使用 ERG 进行解析吗?

© www.soinside.com 2019 - 2024. All rights reserved.