2015-10-04 79 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