引用具有多个匹配相同注释类型的元素的规则的问题

时间:2014-01-07 22:25:34

标签: uima ruta

这个小问题让我现在待了几个晚上。

我有以下UIMA Ruta脚本:

(Action.type=="info_req"{->CREATE(CompAction,"type"=Action.type)}
Preposition? Article? ServiceItem{->FILL(CompAction,"target"=ServiceItem, "num_targets"=1),SHIFT(CompAction,1,4)}
(Preposition? Article? ServiceItem)?{
    ->FILL(CompAction, "target2"=ServiceItem, "num_targets"=2, "selection"="OR") })
    {->SHIFT(CompAction,1,1)}
    ;

它应符合以下句子:

  

我想了解有关黄金信用卡的信息

  • 注释操作匹配“我想要信息”
  • 注释介词匹配“about”
  • 注释文章与“the”
  • 匹配
  • 注释ServiceItem匹配“card”和“gold credit card”

期望的结果应该是具有以下特征的CompAction Annotation:

  • 功能目标:(类型ServiceItem)卡
  • 功能目标2 :(类型ServiceItem)黄金信用卡

不幸的是,我得到的结果是:

  • 功能目标:(类型ServiceItem)卡
  • 功能target2 :(类型ServiceItem)卡

即。我得到两次相同的ServiceItem,这似乎是一个引用问题,除非我做了一些非常错误的事情。

1 个答案:

答案 0 :(得分:0)

对于UIMA Ruta 2.1.0:FILL操作考虑了要素值的完整规则匹配,因此,第二个FILL操作也会选择第一个合适的注释。此问题的解决方案可能是为不同的ServiceItem注释使用不同的类型(子类型),以区分它们。

对于UIMA Ruta 2.2.0:该功能已实施,并且已在当前主干中使用。规则应该按照要求进行。