【问题标题】:Accessing combined UIMA Ruta Annotations in Java在 Java 中访问组合的 UIMA Ruta 注释
【发布时间】:2018-07-09 16:15:46
【问题描述】:

我在访问组合的 Ruta Annotations 时遇到问题。

我的注释基于之前的模块,该模块生成 NormalizedNamedEnitites (NNE) 并根据规则集对其进行标记,效果很好:

NormalizedNamedEntity{REGEXP(NormalizedNamedEntity.concept.identifier,"XXX") -> MARK(XXX)};
NormalizedNamedEntity{REGEXP(NormalizedNamedEntity.concept.identifier,"YYY") -> MARK(YYY)};

然后我继续将这两者结合到一个新的注释中:

(XXX){-> CREATE(CCC, "YYY" = YYY, "XXX" = XXX)};

这也很好用。

在我的 IDE (Eclipse) 中,我可以在 Ruta 编辑器视图中访问这些新规则,并且一切正常。 但在那之后,我想访问“封装”注释并将所有“嵌套”注释添加到数组中,我只是不知道如何。我很迷失在文档中,希望有人已经完成了这项工作,并且可以帮助我解决这个问题。

再次重申:我使用的是 Java (1.8)。

非常感谢!

编辑:更多信息

  • 封装注释:Med
  • 嵌套注释:名称剂量方案

示例文本:

Paracetamol 40mg daily

注释(借助之前的模型/模块,见上文):

Paracetamol 40mg daily
Name------- Dose Scheme

现在我想介绍一个名为“Med”的封装注释,如果所有三个嵌套注释都存在,它将封装这些注释。

“Med”类型将每个嵌套类型定义为可访问的特征。

现在我想首先访问 Med Annotations(这对我来说不是问题),然后是每个嵌套的 Annotation(我不知道该怎么做)。 我仍在翻阅 UIMA 的文档以寻找提示。

【问题讨论】:

  • 能否请您扩展您的问题,说明哪些注释被封装,哪些是嵌套的,类型是如何定义的(例如,特征范围),以及示例应该在哪些文本段落上起作用。通常,如果特征范围是 FSArray,您可以简单匹配封装注释类型并使用类型表达式设置其特征。
  • @PeterKluegl:添加了更多信息。一旦我能掌握 TypeSystem 定义,我会尽快添加更多内容。

标签: java uima ruta


【解决方案1】:

有很多方法可以访问嵌套注释。目前,我更喜欢以下内容:

DECLARE Name, Dose, Scheme;

// some mocked annotations
"Paracetamol" -> Name;
"40mg" -> Dose;
"daily" -> Scheme;

DECLARE Med (Name name, Dose dose, Scheme scheme);

(n:Name d:Dose s:Scheme){-> CREATE(Med, "name" = n, "dose" = d, "scheme" = s)};

DECLARE Test1, Test2, Test3;

Med.name{-> Test1}; 

m:Med ->{
    m.name{-> Test1};
    m.dose{-> Test2};
    m.scheme{-> Test3};
    };


FOREACH(med) Med{}{
    med.name{-> Test1};
    med.dose{-> Test2};
    med.scheme{-> Test3};
}

免责声明:我是 UIMA Ruta 的开发人员

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-27
    • 2017-11-07
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多