2014-01-07 1 views
1

Эта небольшая проблема удержала меня на пару ночей.ссылка на правило с правилом, которое содержит несколько элементов, соответствующих одному и тому же типу аннотаций.

У меня есть следующий 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)} 
    ; 

Предполагается соответствовать следующему предложению:

Я хочу информации о карте о золотой кредитной карте

  • Аннотация Матчи «Я хочу информацию»
  • Аннотация Предлог соответствует «о»
  • Аннотация В статье соответствует «»
  • Аннотация ServiceItem соответствует «карты» и «Золотой кредитной карты»

Желаемый результат должен быть уплотнению аннотаций со следующими характеристиками :

  • Feature цель: (тип ServiceItem) карты
  • Характеристика target2: (тип ServiceItem) золотой кредитной карты

К сожалению, результат я получаю:

  • целевая функция: (тип ServiceItem) карты
  • Характеристика target2: (тип ServiceItem) карты

т.е. я получаю то же ServiceItem дважды, что, похоже, является проблемой ссылок, если я не делаю что-то очень неправильное.

ответ

0

Для UIMA Ruta 2.1.0: действие FILL учитывает полное совпадение правил для значений признаков, и, таким образом, второе действие FILL также выбирает первую подходящую аннотацию. Решением этой проблемы может быть использование разных типов (подтипов) для различных аннотаций ServiceItem, чтобы их отличить.

Для UIMA Ruta 2.2.0: функциональность реализована и уже доступна в текущей магистрали. Правило должно действовать по желанию.

Смежные вопросы