GATE 如何注释除列表中的每个动词

GATE how to annotate each verb except those in the list

我有这个任务:我在 GATE 中有包含动词列表的 .lst 文件。有注释 Inner_predicates。我需要将其他动词注释为Outer_predicates。你能帮我写这条规则吗?

我试过这个:

Phase:  Outer_Pred
Input: Morph Inner_Pred
Options: control = appelt

Rule: Outer_Pred

(
    ({Morph.pos == verb}, Morph.baseForm !=Inner_Pred)
):tag
-->
:tag.Outer_Pred = {rule = "Outer_Pred"}

但是没有用。我怎样才能找到一个动词,检查它是否已经有注释 Inner_Pred,如果没有,将这个动词注释为 Outer_Pred? 在 inner_pred.lst 中,我有基本形式的动词列表。

提前致谢。如果你能告诉我在哪里可以自己查看这些信息,那就太好了。我只找到 GATE Jape Manual,但它很短,没有提供很多答案。

您可以在 RHS 中使用 Java 编写一个简单的 JAPE 规则,它将:

a) 取任何动词(Token.category==VB | Token.category==VBD | 等等)。您可以在 GATE tao.pdf

末尾找到可能的动词 POS 标签列表

b) 获取此 Token 的开始和停止节点并检查覆盖当前 Token

的 Inner_Pred 注释

c) 如果为 Inner_Pred 返回的 AnnotationSet 为空,则创建一个新的 Annotation Outer_Verb,其边界来自 b)

如果您有基本形式的动词列表,您应该尝试 flexible gazetteer。它将在匹配的地方创建 "Lookup" 个注释(不仅在动词上)。

然后匹配不在列表中的每个动词:

Phase: Outer_Pred
Input: Morph Lookup
Options: control = appelt

Rule: Outer_Pred (
  {Morph.pos == "verb", !Lookup.majorType == "yourInnerPredType"}
):tag
-->
:tag.Outer_Pred = {rule = "Outer_Pred"}

这将匹配每个 "verb" 与主要类型 "yourInnerPredType".

的查找不在相同偏移量处开始的每个 "verb"

此外,请确保您的 Morph 注释具有正确的位置特征。

这是JAPE规则的源代码:

Phase:  Verb
Input: Token
Options: control = appelt
Macro:VERB
(
  ({Token.category==VBD}|{Token.category==VBG}|{Token.category==VBN}|{Token.category==VBP}|{Token.category==VB}|{Token.category==VBZ})
)
Rule:Verb
(
 (VERB)
):verb

-->
{
AnnotationSet set = (AnnotationSet) bindings.get("verb");
Node startNode = set.firstNode();
Node stopNode = set.lastNode();
AnnotationSet innerAnnotations = outputAS.get(startNode.getOffset(), stopNode.getOffset()).get("Inner_Pred");
if (innerAnnotations == null || innerAnnotations.isEmpty()) {
outputAS.add(startNode, stopNode, "Outer_Pred", Factory.newFeatureMap());
}
}