这个小问题让我睡了几个晚上。
我有以下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)}
;它应该与以下句子相匹配:
我想要有关金卡的信息
所需的结果应该是具有以下特性的CompAction注释:
不幸的是,我得到的结果是:
也就是说,我得到相同的ServiceItem两次,这似乎是一个引用问题,除非我做了非常错误的事情。
发布于 2014-01-16 14:10:06
对于UIMARuta2.1.0: FILL操作考虑功能值的完全规则匹配,因此,第二个FILL操作还选择第一个合适的注释。解决这个问题的方法可以是对不同的ServiceItem注释使用不同的类型(子类型)来区分它们。
对于UIMA,Ruta2.2.0:该功能已经实现,并且已经在当前主干中可用。这条规则应该按照自己的意愿行事。
https://stackoverflow.com/questions/20983243
复制相似问题