2015-10-04 43 views
2

我想知道如何从命令行使用Apache cTAKES如何从命令行使用cTAKES?

E.g. :

  • 我有一个文件note.txt包含一些文本,如“病人有 血糖升高,但检查确认无糖尿病患者的父亲 成年发病型糖尿病。”
  • 我想使用所提供的分析引擎 \apache-ctakes-3.2.2-bin\apache-ctakes-3.2.2\desc\ctakes-clinical-pipeline\desc\analysis_engine\AggregatePlaintextUMLSProcessor.xml

我怎样才能使用 命令行(分析发动机的输出(即注释),即不使用图形用户界面,比如UIMA CAS 可视调试器或收集处理引擎)?我宁愿 使用提供的JAR文件,而不必编译代码。

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

回答

5

请尝试以下步骤,从命令行中使用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”设置输入目录;找到名称为“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 /箱。

  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"/> 

希望这有助于:-)

+1

感谢您的步骤,但我在运行脚本时遇到了这个问题“错误:无法找到或加载主类org.apache.uima.tools.cpm.CpmFrame”注意:我正在使用cygwin windows 10 –

+0

@MokhtarAshour你可以试试这个:java -Dctakes.umlsuser = USER -Dctakes.umlspw = PW -classpath $ 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 –

+1

我试过了,现在它给了我“错误:无法找到或加载主类org.apache.uima.examples.cpe.SimpleRunCPE”。你认为我应该在Linux上尝试吗? –

3

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

+1

后@郭振挺的步骤有其他人遇到的错误,“错误:无法找到或加载主类org.apache.uima.examples.cpe.SimpleRunCPE”,用org.apache.ctakes.ytex代替它.tools.RunCPE,它运作良好! – beeCwright