gpt4 book ai didi

java - 在 GATE 中创建新注释集

转载 作者:太空宇宙 更新时间:2023-11-04 11:18:02 26 4
gpt4 key购买 nike

我已经开始学习 GATE 应用程序,我想用它从非结构化文档中提取信息。我感兴趣的信息是日期、地点、事件信息和人名。我想获取有关特定日期特定地点发生的事件以及人员姓名的信息。我一直在阅读 GATE 手册,这就是我如何了解如何构建管道的方式。但是,我不知道如何创建新的注释类型并确保将它们注释到新的注释集,该新的注释集应显示在右侧的注释集下方。我发现类似的问题如 GATE - How to create a new annotation SET?但这也没有帮助我。

让我解释一下到目前为止我做了什么:

  1. 为我的新 NE 创建 .lst 文件并将它们放在 ANNIE resources/gazetteer 目录下
  2. 我在 list.def 文件中添加了 .lst 文件描述
  3. 我在文档中确定了我的模式,例如 ddmm、dd.mm.yyyy 等日期格式

  4. 我在单独的 .jape 文件中为每个模式编写了 JAPE 规则

  5. 将 JAPE 文件名添加到 main.jape 文件中
  6. 将 PR 和我的文档加载到 GATE
  7. 运行应用程序

这就是我的 JAPE 规则对于一种日期格式的样子:

    Phase: datesearching
Input: Token Lookup SpaceToken
Options: control = appelt

////////////////////////////////////Macros
//Initialization of regular expressions
Macro: DAY_ONE
({Token.kind == number,Token.category==CD, Token.length == "1"})

Macro: C
({Token.kind == number,Token.category==CD, Token.length == "2"})

Macro: YEAR
({Token.kind == number,Token.category==CD, Token.length == "4"})

Macro: MONTH
({Lookup.majorType=="Month"})

Rule: ddmmyyydash
(
(DAY_ONE|DAY_TWO)
({Token.string == ","}|{Token.string == "."} |{Token.string == "-"})
(MONTH)
({Token.string == ","}|{Token.string == "."} |{Token.string == "-"})
(YEAR)
)
:ddmmyyyydash
-->
:ddmmyyyydash.DateMonthYearDash= {rule = "ddmmyyyydash"}

有人可以帮我做什么,以确保 DateMonthYearDash 创建为新的注释集吗?我该怎么做?非常感谢。

当我更改 Jape 传感器的 outputAsName 时,新组的显示方式与其他组不同。它看起来是这样的:

annotation set list

最佳答案

正如您提到的问题( GATE - How to create a new annotation SET? )中所链接或引用的那样,您有两个选择:

  1. 更改您的 JAPE 转换器 PR 的 outputASName
  2. 使用注释集转移 PR将所需注释从一个注释集复制或移动到另一个注释集。
<小时/>

JAPE 函数 - 说明

JAPE 转换器(与许多其他 GATE PR 类似)只需接受一些输入注释,并基于它们创建一些新的输出注释。输入和输出注释集名称可以通过inputASNameoutputASName运行时参数进行配置。 inputASName 表示应在何处查找输入注释,outputASName 表示应在何处放置输出注释。

什么应该在哪里

在执行 JAPE 传感器 PR 之前,输入注释集必须包含必要的输入注释。这些注释通常是由管道中之前的 PR 创建的。否则,它将看不到必要的输入注释,也不会生成任何内容。

输出注释集可能为空,也可能在 JAPE 执行之前包含任何内容。没关系。重要的是,当 JAPE 传感器 PR 执行完成时,新的输出注释(在您的例子中为 DateMonthYearDash)会在那里创建。
因此,在成功执行 JAPE 后您应该会看到新的注释

一些术语

请注意,注释集具有名称
注释具有类型id偏移功能以及它们所属的注释集

<小时/>

JAPE 修正

我发现您的 JAPE 语法存在一些问题:

  1. 不要包含 SpaceToken 除非您在语法中明确使用它们,或者您确定模式中不会包含它们...另请参阅:Concept of Space Token in JAPE
  2. ({Lookup.majorType=="月份"}) -> ({Lookup.minorType=="月份"})
  3. (DAY_ONE|DAY_TWO) -> (DAY_ONE)

更正后 + 文档 9 - 2017 年 1 月 - ANNIE 管道之后: GATE doc output

修正后的JAPE语法:

Phase: datesearching
Input: Token Lookup
Options: control = appelt

Macro: DAY_ONE
({Token.kind == number,Token.category==CD, Token.length == "1"})

Macro: YEAR
({Token.kind == number,Token.category==CD, Token.length == "4"})

Macro: MONTH
({Lookup.minorType=="month"})

Rule: ddmmyyydash
(
(DAY_ONE)
({Token.string == ","}|{Token.string == "."} |{Token.string == "-"})
(MONTH)
({Token.string == ","}|{Token.string == "."} |{Token.string == "-"})
(YEAR)
)
:ddmmyyyydash
-->
:ddmmyyyydash.DateMonthYearDash= {rule = "ddmmyyyydash"}
<小时/>

当 JAPE 不产生任何东西时该怎么办

您必须研究输入注释并“调试”您的 JAPE 语法。通常会缺少一些预期的输入注释,或者存在一些您不希望出现的额外注释。为此,GATE 有一个很好的 View : annotation stack 。此外,输入注释的某些功能可能具有与您预期不同的名称或值(例如,什么是正确的:{Lookup.majorType=="Month"}{Lookup.minorType=="month"}?)。

通过“调试”JAPE 语法,我的意思是:尝试简化规则,直到它开始工作。继续在一个简单的文档上尝试它应该肯定匹配。因此,就您的情况而言,您可以尝试不使用 (DAY_ONE) 部分。如果仍然不起作用,请仅尝试 (MONTH)({Token.string == "-"})(YEAR),甚至仅尝试 (MONTH) 等等。直到找到语法错​​误...

关于java - 在 GATE 中创建新注释集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45250678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com