首页 > 解决方案 > UIMA RUTA - 如何以特定顺序处理单词?

问题描述

我用 Java 编写了一个 UIMA 注释引擎,我想将 Java 中的规则移到 RUTA 中。我的 Java 引擎所做的一件事是处理单词并以特定顺序应用规则,这与句子中的单词顺序不同。

使用例句“系统请求用户名和密码”。不会按该顺序处理。相反,我的规则是根据依赖注释的结构应用的,所以句子是按这个顺序处理的 [requests, The, system, username, ., a, and, password]

因此,我想知道是否有一种简单的方法可以以不同的顺序应用 RUTA 规则,而无需重新排序 CAS,也许使用索引?我可以继续使用 Java 来创建这样的索引注释:(2)系统(3)请求(1)a(6)用户名(4)和(7)密码(8)。(5)但我不能t 弄清楚如何使用 forEach BLOCK 或其他一些 RUTA 逻辑来按索引顺序处理这些。

如果您想知道为什么我需要按顺序处理它们,原因是我的规则的应用需要依赖层次结构。依赖项的注释由州长/父项的注释驱动。

标签: javauimaruta

解决方案


我找到了一种使用块的方法。由于块可以递归,我首先创建一个子块,它查找项目父项,然后调用父块。例如使用依赖结构,我可以在依赖之前注释调控器(当你到达根时使用特殊逻辑)。

d:dep.Dependency{d.DependencyType!="ROOT"}->{
    d.Governor{-IS(MyItem)}->{
        CALL(myPackage.AnnotateGovernor);
    };
};

推荐阅读