2

我正在寻找这样的东西:

WORDLIST lemmas = 'lemmas.txt';
DECLARE Test;    
BLOCK(AnnotateTests) Token{} {
    STRING lemma;
    Token{->GETFEATURE("lemma", lemma)};
    INLIST(lemma, lemmas) -> MARK(Action); // <- How to do this?
}

我知道这是损坏的代码,但我想知道如何通过文本文件提供术语列表并注释所有实例,例如 Token,这些实例具有某个特征(示例中的引理)值在列表中。我知道字符串相等是可能的,但我无法在文档中找到或找出我自己的成员列表。

谢谢!

4

1 回答 1

3

UIMA Ruta 2.1.0:不幸的是,INLIST 条件不接受其他参数,而仅检查匹配注释的覆盖文本。所以你不能使用它。CONTAINS 条件接受附加参数,但不接受单词列表。您也不能使用 MARKFAST 应用词表,因为字典检查是基于标记的。

这个问题的最佳解决方案是要求开发人员添加功能,或者添加提供功能的外部条件。

在 UIMA Ruta 2.1.0 中,您可以使用 StringListExpressions 代替单词列表:

STRINGLIST LemmaSL = {"cat", "dog"}; // the content of the wordlist
Token{CONTAINS(LemmaSL, Token.lemma) -> MARK(Action)};

在 UIMA Ruta 2.2.0 中,INLIST 条件能够处理替换匹配注释的覆盖文本的附加参数,这应该可以解决您的问题:

WORDLIST LemmaList = 'lemmas.txt';
Token{INLIST(LemmaList, Token.lemma) -> MARK(Action)};

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

于 2014-03-05T09:26:45.427 回答