在Ruta

时间:2019-04-17 23:05:11

标签: ruta

我正在使用在CLAMP(https://clamp.uth.edu/)中实现的Ruta创建规则。作为步骤之一,我想识别所有包含温度注释的句子。

所以我希望能够在这样的CONTAINS函数中为注释指定属性值:

Sentence{CONTAINS(ClampNameEntityUIMA{"semanticTag", "Temperature"}) 
 -> CREATE( ClampNameEntityUIMA , "semanticTag" = "TemperatureSentence")};

有效的语句是:

Sentence{CONTAINS(ClampNameEntityUIMA) 
 -> CREATE( ClampNameEntityUIMA , "semanticTag" = "TemperatureSentence")};

但这会标记所有句子,无论包含的注释的功能值如何。 CLAMP不允许即时创建类型,因此我无法将新类型声明为满足条件的注释的占位符。因此,我只需要使用现有的ClampNameEntityUIMA类型,就只能检查要素值来区分注释类。

是否可以在CONTAINS函数中包含其他条件?还是可以在不声明新类型的情况下操纵注释?

1 个答案:

答案 0 :(得分:0)

CONTAINS条件不支持您所需要的。如果像示例中那样需要更复杂的条件,则需要切换到内联规则作为条件。如下所示的规则可以解决您的问题:

Sentence{-> CREATE(ClampNameEntityUIMA, "semanticTag" = "TemperatureSentence")}
  <- {e:ClampNameEntityUIMA{e.semanticTag == "Temperature"};};

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