【问题标题】:UIMA Ruta Creating annotation with features separated by some textUIMA Ruta 创建带有由一些文本分隔的特征的注释
【发布时间】:2014-07-08 16:43:28
【问题描述】:

我有一些带有如下注释的文本:

wewf.werwfwef. wewfwefwwew. wefewefwff
AnnotationA
asdfawece aefae eafewfaefa aefafe ceaewfae
adfcaecae acaeaet aegaegageg caeacdaefa
AnnotationB
sadaeceaee aef aewfaegg rresf ceeaefaeaeaf
adfcaecae acaeaet aegaegageg caeacdaefa
AnnotationA
adfcaecae acaeaet aegaegageg caeacdaefa
adfcaecae acaeaet aegaegageg caeacdaefa
AnnotationB
adfcaecae acaeaet aegaegageg caeacdaefa
adfcaecae acaeaet aegaegageg caeacdaefa

我想用 AnnotationA 及其最接近的 AnnotationB 作为特征创建一个注释。我应该如何用 Ruta 来表达?

我尝试了以下不正确的方法:

DECLARE Annotation TargetAnnotation (AnnotationA ana, AnnotationB anb);
Document {-> CREATE(TargetAnnotation, "ana" = AnnotationA, "anb" = AnnotationB)};

该规则涵盖整个文档。我只想要以 AnnotationA 及其最接近的 AnnotationB 作为特征的注释。 非常感谢您的任何回答。

【问题讨论】:

    标签: uima ruta


    【解决方案1】:

    在 UIMA Ruta 中有几种方法可以指定它,它们主要取决于创建的 TargetAnnotation 应该获得的偏移量。 CREATE 操作使用规则元素匹配的跨度来识别特征的值。

    如果创建的注解的偏移量并不重要,那么您可以简单地使用将注解 AnnotationA 和 AnnotationB 结合起来的跨度:

    (AnnotationA # AnnotationB){-> CREATE(TargetAnnotation, "ana" = AnnotationA, "anb" = AnnotationB)};
    

    请注意,此规则会在两个注释之间引入顺序依赖关系。您还可以指定不关心的规则,但它们可能会返回太多匹配项。这取决于你想完成什么。

    如果创建的注解的偏移量应该等于提供的注解之一,例如 AnnotationA,那么您应该使用 GATHER 而不是 CREATE。 GATHER 允许指定规则元素的索引,其匹配应分配给特征。

     AnnotationA{-> GATHER(TargetAnnotation, "ana" = 1, "anb" = 3)} # AnnotationB;
    

    (我是 UIMA Ruta 的开发者)

    【讨论】:

    • @Kluegl 很抱歉打错字了。我知道这是 TargetAnnotation 而不是 Annotation。我也很遗憾地说我没有完整地回答我的问题。我的需要更复杂,但我相信可以做到。我已经对我的问题进行了修改。谢谢你的回答。
    • 我更新了答案。当我被问到是否可以在 UIMA Ruta 中指定某些内容时,我的回答几乎每次都是肯定的。还有其他语言结构允许指定一些相当复杂的模式-动作组合。如果某事不可能但有用,那么通常很快就会实施。
    • @Kluegl 非常感谢您的回答,这是正确的。在我能够熟练使用 Ruta 之前,我还有很长的路要走。我已经知道 # 表示法,但还没有意识到它也可以这样使用。
    猜你喜欢
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多