Как использовать cTAKES из командной строки?

Интересно, как использовать Apache cTAKES из командной строки.

Например:

  • У меня есть файл note.txt, в котором есть текст типа "У пациента повышенный уровень сахара в крови, но анализы не подтверждают диабет. У отца пациента был диабет у взрослых".
  • Я хочу использовать предоставленный механизм анализа\apache-ctakes-3.2.2-bin\apache-ctakes-3.2.2\desc\ctakes-clinical-pipeline\desc\analysis_engine\AggregatePlaintextUMLSProcessor.xml

Как я могу получить выходные данные механизма анализа (а именно аннотации) с помощью командной строки (то есть без использования графических пользовательских интерфейсов, таких как UIMA CAS Visual Debugger или механизм обработки коллекций)? Я бы предпочел использовать предоставленные файлы JAR, а не компилировать код.

Вопрос довольно простой, но я не смог найти информацию в README cTAKES или на Confluence.

2 ответа

Пожалуйста, попробуйте выполнить следующие шаги, чтобы использовать cTAKES CPE из командной строки (класс ключа "org.apache.uima.examples.cpe.SimpleRunCPE"):

  1. Перейдите в каталог $CTAKES_HOME/desc/ctakes-клинический конвейер /desc/collection_processing_engine/

  2. Скопируйте test_plaintext.xml в другой файл (например, "test_plaintext_test.xml").

  3. Отредактируйте "test_plaintext_test.xml", чтобы установить входной каталог; найдите "nameValuePair" с name = "InputDirectory" и установите строку значений в каталог ввода. В следующем примере входной каталог устанавливается как "$CTAKES_HOME/note_input":

    <nameValuePair>
        <name>InputDirectory</name>
        <value>
            <string>note_input</string>
        </value>
    </nameValuePair>
    
  4. Аналогично, отредактируйте файл "test_plaintext_test.xml", чтобы установить выходной каталог ("$CTAKES_HOME/result_output" в следующем примере):

    <nameValuePair>
        <name>OutputDirectory</name>
        <value>
            <string>result_output</string>
        </value>
    </nameValuePair>
    
  5. Сохраните "test_plaintext_test.xml" и измените каталог на $CTAKES_HOME/bin.

  6. Скопируйте runctakesCPE.sh в другой файл (например, "runctakesCPE_CLI.sh").

  7. Отредактируйте "runctakesCPE_CLI.sh"; замените последнюю строку ("java ...") на следующую строку ("USER" и "PW" должны быть заменены вашими именем пользователя и паролем UMLS, а настройки памяти Xms и Xms могут быть скорректированы в зависимости от объема памяти на твоей машине):

    java -Dctakes.umlsuser=USER -Dctakes.umlspw=PW -cp $CTAKES_HOME/lib/*:$CTAKES_HOME/desc/:$CTAKES_HOME/resources/ -Dlog4j.configuration=file:$CTAKES_HOME/config/log4j.xml -Xms2g -Xmx3g org.apache.uima.examples.cpe.SimpleRunCPE $CTAKES_HOME/desc/ctakes-clinical-pipeline/desc/collection_processing_engine/test_plaintext_test.xml
    
  8. Сохраните "runctakesCPE_CLI.sh", а затем создайте входной каталог ("$CTAKES_HOME/note_input") и выходной каталог ("$CTAKES_HOME/result_output").

  9. Поместите ваш note.txt во входной каталог (например, "$CTAKES_HOME/note_input/note.txt"), а затем запустите "runctakesCPE_CLI.sh".

  10. cTAKES CPE запустится в режиме командной строки, и результирующий файл будет создан в выходном каталоге (например, "$CTAKES_HOME/result_output/note.txt.xml").

Я на самом деле использовал ваш note.txt для выполнения описанных выше шагов, и вот первые несколько строк сгенерированного note.txt.xml:

    <?xml version="1.0" encoding="UTF-8"?><CAS version="2">
        <uima.cas.Sofa _indexed="0" _id="3" sofaNum="1" sofaID="_InitialView" mimeType="text" sofaString="Patient had elevated blood sugar but tests confirm no diabetes. Patient's father had adult onset diabetes.&#10;"/>
        <org.apache.ctakes.typesystem.type.structured.DocumentID _indexed="1" _id="1" documentID="note.txt"/>
        <uima.tcas.DocumentAnnotation _indexed="1" _id="10" _ref_sofa="3" begin="0" end="107" language="x-unspecified"/>
        <org.apache.ctakes.typesystem.type.textspan.Segment _indexed="1" _id="15" _ref_sofa="3" begin="0" end="107" id="SIMPLE_SEGMENT"/>
        <org.apache.ctakes.typesystem.type.textspan.Sentence _indexed="1" _id="21" _ref_sofa="3" begin="0" end="63" sentenceNumber="0"/>

Надеюсь это поможет:-)

java -Dctakes.umlsuser=USER -Dctakes.umlspw=PW -cp $CTAKES_HOME/lib/*;$CTAKES_HOME/desc/;$CTAKES_HOME/resources‌​/ - Dlog4j.configuration=file:$CTAKES_HOME/config/log4j.xml -Xms2g -Xmx3g to_replace $CTAKES_HOME/desc/ctakes-clinical-pipeline/desc/collection_p‌​rocessing_engine/tes‌​t_plaintext_test.xml

замените "to_replace" либо

org.apache.ctakes.ytex.tools.RunCPE or org.apache.ctakes.core.cpe.CmdLineCpeRunner

Другие вопросы по тегам