UIMA ruta - Использование аннотаций с разных точек зрения - PullRequest
0 голосов
/ 24 октября 2018

У меня есть документ, после нескольких аннотаций я записываю его в новое представление с помощью HTMLConverter

Пример ввода:

<p class="MsoNormal"><span data-bkmark="para10121"></span><span style="font-family:Arial; font-size:10pt; color:#color: #000000">[1] SJ. Goetsch,BD. Murphy,R. Schmidt,et al. "Physics of rotating gamma systems for stereotactic radiosurgery. "</span> <span style="font-family:Arial; font-size:10pt; color:#color: #000000">International Journal of Radiation Oncologybiologyphysics,</span> vol.<span style="font-family:Arial; font-size:10pt; color:#color: #000000">43, no.3, pp.689-696, 1999.</span><span data-bkmark="para10121"></span></p>

Я использую htmlconvertorсоздать новый вид "Plaintextview"

 CONFIGURE(HtmlAnnotator, "onlyContent" = false);
                 Document{-> EXEC(HtmlAnnotator)};
                 Document { -> CONFIGURE(HtmlConverter, "inputView" = "_InitialView","outputView" = "plaintextview"),
                 EXEC(HtmlConverter,{TAG})};

После чего я запускаю свой собственный движок и выполняю несколько ручных аннотаций

try {
          for (AnnotationFS afs : CasUtil.select(cas.getView("plaintextview"), type))
          {
            Feature bookmarkFtr = type.getFeatureByBaseName("RefBookmark");
            System.out.println("\n Ref is " + afs.getCoveredText());
            System.out.println("STart is " + afs.getBegin());
            System.out.println("End is " + afs.getEnd());
            String test = " vol.43, no.3, pp.689-696, 1999.";
            if (afs.getCoveredText().contains(test)) {
              int start = afs.getCoveredText().indexOf(test) + afs.getBegin();
              int end = start + test.length();
              testanno annotation = new testanno(cas.getView("plaintextview").getJCas());
              annotation.setBegin(start);             
              annotation.setEnd(end);
              annotation.addToIndexes();
              
            }
          }
        }
        catch (Exception e)
        {
          e.printStackTrace();
        }

Этот код будет аннотировать конкретный текст в plaintextview (Почему? - потому что документ _initialview будет иметь html промежутки между текстом Пример: том 43, № 3, <некоторые теги html>, стр. 689-696, 1999. )

Так как мне получить мои аннотации из открытого текста в начальный вид или использовать эти аннотации внутримой сценарий рута, использующий мои аннотации из разных представлений (например, _initialview и plaintextview)?

1 Ответ

0 голосов
/ 30 ноября 2018

В Руте вы не можете напрямую писать правила для определенных видов CAS.(Вы можете использовать EXEC для применения механизма анализа к другому представлению из скрипта Ruta.)

Обычный способ достичь этого - на уровне платформы, либо применить сопоставление диванов в модуле агрегированного анализа, либо скопироватьпросмотр _initialView нового CAS.

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

...