Доступ к объединенным аннотациям UIMA Ruta в Java - PullRequest
0 голосов
/ 04 июля 2018

У меня проблема с доступом к объединенным аннотациям Ruta.

Мои аннотации основаны на предыдущем модуле, который генерирует NormalizedNamedEnitites (NNE) и помечает их в соответствии с набором правил, который работает просто отлично:

NormalizedNamedEntity{REGEXP(NormalizedNamedEntity.concept.identifier,"XXX") -> MARK(XXX)};
NormalizedNamedEntity{REGEXP(NormalizedNamedEntity.concept.identifier,"YYY") -> MARK(YYY)};

Затем я приступаю к объединению этих двух в новой аннотации:

(XXX){-> CREATE(CCC, "YYY" = YYY, "XXX" = XXX)};

Что тоже очень хорошо работает.

В моей IDE (Eclipse) я могу получить доступ к этим новым правилам в представлении Ruta Editor, и все отлично работает. Но после этого я хочу получить доступ к аннотации «encasing» и добавить все «вложенные» аннотации в массив, что я просто не могу понять, как. Я довольно потерян в документации и надеюсь, что кто-то уже сделал это и может помочь мне в этом деле.

Опять же: я использую Java (1.8).

Большое спасибо!

Редактировать: Дополнительная информация

  • Encasing Аннотация: Med
  • Вложенные аннотации: Имя , Доза , Схема

Образец текста:

Paracetamol 40mg daily

Аннотации, сделанные (с помощью предыдущих моделей / модулей, см. Выше):

Paracetamol 40mg daily
Name------- Dose Scheme

Теперь я хочу представить аннотацию оболочки, называемую «Med», которая, в случае наличия всех трех вложенных аннотаций, будет инкапсулировать их.

Тип "Med" имеет каждый из вложенных типов в качестве доступной функции.

Теперь я хочу получить доступ сначала к аннотациям Med (что для меня здесь не проблема), а затем к каждой вложенной аннотации (о которой я пока не знаю, как это сделать - пока). Я все еще просматриваю документацию UIMA, чтобы найти подсказку.

1 Ответ

0 голосов
/ 09 июля 2018

Существует много способов доступа к вложенным аннотациям. В настоящее время я предпочитаю что-то вроде следующего:

DECLARE Name, Dose, Scheme;

// some mocked annotations
"Paracetamol" -> Name;
"40mg" -> Dose;
"daily" -> Scheme;

DECLARE Med (Name name, Dose dose, Scheme scheme);

(n:Name d:Dose s:Scheme){-> CREATE(Med, "name" = n, "dose" = d, "scheme" = s)};

DECLARE Test1, Test2, Test3;

Med.name{-> Test1}; 

m:Med ->{
    m.name{-> Test1};
    m.dose{-> Test2};
    m.scheme{-> Test3};
    };


FOREACH(med) Med{}{
    med.name{-> Test1};
    med.dose{-> Test2};
    med.scheme{-> Test3};
}

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я разработчик UIMA Ruta

...