5

我想知道如何从命令行使用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 或 Collection Processing Engine 等图形用户界面)获取分析引擎的输出(即注释)?我宁愿使用提供的 JAR 文件,而不必编译代码。

这个问题相当简单,但我在cTAKES 的 READMEConfluence上找不到信息 。

4

2 回答 2

6

请尝试以下步骤从命令行使用 cTAKES CPE(关键类是“org.apache.uima.examples.cpe.SimpleRunCPE”):

  1. 将目录更改为 $CTAKES_HOME/desc/ctakes-clinical-pipeline/desc/collection_processing_engine/

  2. 将 test_plaintext.xml 复制到另一个文件(例如,“test_plaintext_test.xml”)。

  3. 编辑“test_plaintext_test.xml”设置输入目录;找到 name = "InputDirectory" 的 "nameValuePair",并将值字符串设置为输入目录。以下示例将输入目录设置为“$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"/>

希望这可以帮助 :-)

于 2015-10-07T03:38:16.627 回答
4

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

于 2017-06-13T08:32:51.420 回答