1

假设我从以下文本开始:

I love Toyota Camrys and hate Ferraris

我使用像 Stanford CoreNLP 这样的 POS 标记器并获得以下注释:

I_PRP love_VBP Toyota_NNP Camrys_NNPS and_CC hate_VB Ferraris_NNP

让我们假设我有一个命名实体识别器,并且能够从上述符号中识别出凯美瑞和法拉利。

我希望能够推理上面的句子,例如我推断出以下内容:

  • 我讨厌凯美瑞
  • 我爱法拉利

甚至可能:

  • 我讨厌丰田制造的东西
  • 我讨厌法拉利制造的东西

我目前正在使用手动编码的启发式和插槽匹配来执行上述操作。

问题:有没有更标准的方法来完成这个?

例如,我从 Gate 跑到 JAPE Java Annotation Patterns Engine —— 工具链的那部分是否会做这样的事情。

4

1 回答 1

2

有两种方法可以做到这一点:

1) 编写自己的 JAPE 语法。这并不像看起来那么难。网上有很多 JAPE 手册。第一个谷歌链接似乎可以"gate jape manual"启动。此外,GATE ANNIE 现有的 JAPE 语法可以为您的任务提供很好的示例和想法。

一开始,您会尝试为 GATE Gazetteer 创建自己的字典,其中包含品牌名称(Toyota、Ferrary 等)的条目,以创建“查找”注释。那么您的 JAPE 规则将包含如下规则

Rule: LoveBrand ( {Token.kind == word, Token.string = "I"} {Token.kind == word, Token.string = "love"} {Lookup.majorType == "brand"} ): label --> :label.Prefererence = {rule= "LoveBrand" }

2)在 GATE 中使用Parser_Stanford 插件。它将为 Dependencies 和 TreeNodes 创建两种类型的注解。依赖关系是词对之间的类型链接,TreeNodes 是折叠成树的依赖关系。只需尝试在 GATE Developer GUI 中使用 Parser_Stanford 插件,您就会了解如何将它用于您的任务。

你可以"I love Toyota Camrys and hate Ferraris."这个演示页面上处理你的,看看斯坦福解析器可以做什么。特别是您需要 type 的依赖项dobj。如果您想使用其他斯坦福依赖项,有一个斯坦福依赖项手册,其中描述了所有可能的依赖项。

GATE 的 Parser_Stanford 插件只是将斯坦福依赖项的注释添加到您的文档中。您可以使用 JAPE 语法添加 GATE 转换器处理资源,并将其添加到 Parser_Stanford 之后的 GATE Developer 中的处理资源序列中,以处理为斯坦福依赖项创建的注释。

于 2014-06-10T16:45:39.253 回答