私は、ユーザーから自然言語の入力を受け取り、テーブルに格納するDjangoフレームワークを使用して設計したシンプルなインターフェイスを用意しています。djangoフレームワークでJavaコードを使用する
また、名前付きエンティティ認識を実行するためにcTAKESライブラリを使用してJavaで構築したパイプラインがあります。つまり、ユーザーが送信したテキスト入力を受け取り、関連するUMLSタグで注釈を付けます。
私がしたいことは、ユーザーから与えられた入力を受け取り、それをjava-cTAKESパイプラインに送り、注釈付きの出力をデータベースに戻すことです。
私はこのウェブ開発面ではかなり新しいので、この意味でのスクリプトの統合については何も見つかりません。ですから、誰かが私を有用なリソースに導いたり、一般的な正しい方向に向けると非常に役立ちます。
========================= UPDATE:
わかりましたので、私はサブプロセスがそのモジュールであることを考え出しました私は、この文脈で使用したいと私は、ドキュメントに基づいていくつかの簡単なコードを実装しようとしているが、私は私が何をしようとしているの簡単な概要
Exception Type: OSError
Exception Value: [Errno 2] No such file or directory
Exception Location: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py in _execute_child, line 1335.
を取得しています:
はこれがありますコード私はビューにあります。その目的は、モデルのフォームからテキスト入力を受け取り、POSTをDBに渡し、その入力をスクリプト内に渡します。このスクリプトは、DBの別の列に格納されたXMLファイルを生成します。私は非常にdjangoには新しかったので、これは単純な修正だと申し訳ありませんが、参考になったdjangoのサブプロセスに関するドキュメントは見つかりませんでした。
def queries_create(request):
if not request.user.is_authenticated():
return render(request, 'login_error.html')
form = QueryForm(request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
p=subprocess.Popen([request.POST['post'], './path/to/run_pipeline.sh'])
p.save()
context = {
"title":"Create",
"form": form,
}
return render(request, "query_form.html", context)
モデルのコードスニペット:
class Query(models.Model):
problem/intervention = models.TextField()
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
UPDATE 2: オーケーコードは、もはやしかし、私は今取得しています
def queries_create(request):
if not request.user.is_authenticated():
return render(request, 'login_error.html')
form = QueryForm(request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
p = subprocess.Popen(['path/to/run_pipeline.sh'], stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
(stdoutdata, stderrdata) = p.communicate()
instance.processed_data = stdoutdata
instance.save()
context = {
"title":"Create",
"form": form,
}
return render(request, "query_form.html", context)
以下のようにサブプロセスコードを変更することにより、破壊されていないので、 "メインクラスのパイプラインを見つけたり読み込めませんでした.CtakesPipeline"は、スクリプトがこの作業ディレクトリのシェルからうまく動作するのでわかりません。これは私がサブプロセスで呼び出そうとしているスクリプトです。
#!/bin/bash
INPUT=$1
OUTPUT=$2
CTAKES_HOME="full/path/to/CtakesClinicalPipeline/apache-ctakes-3.2.2"
UMLS_USER="####"
UMLS_PASS="####"
CLINICAL_PIPELINE_JAR="full/path/to/CtakesClinicalPipeline/target/
CtakesClinicalPipeline-0.0.1-SNAPSHOT.jar"
[[ $CTAKES_HOME == "" ]] && CTAKES_HOME=/usr/local/apache-ctakes-3.2.2
CTAKES_JARS=""
for jar in $(find ${CTAKES_HOME}/lib -iname "*.jar" -type f)
do
CTAKES_JARS+=$jar
CTAKES_JARS+=":"
done
current_dir=$PWD
cd $CTAKES_HOME
java -Dctakes.umlsuser=${UMLS_USER} -Dctakes.umlspw=${UMLS_PASS} -cp
${CTAKES_HOME}/desc/:${CTAKES_HOME}/resources/:${CTAKES_JARS%?}:
${current_dir}/${CLINICAL_PIPELINE_JAR} -
-Dlog4j.configuration=file:${CTAKES_HOME}/config/log4j.xml -Xms512M -Xmx3g
pipeline.CtakesPipeline $INPUT $OUTPUT
cd $current_dir
私はこのエラーを解決する方法についてはわかりませんので、何か助けに感謝します。
私はcTAKESに精通していないので、これは無知な質問である場合はお詫び申し上げます。既存のマシンでこのJavaサービスを既に実行していて、Webアプリケーションからデータをパイプしたいのですか? WebアプリケーションとJavaアプリケーションの両方をデプロイしますか? – souldeux
私は、Webアプリケーションの一部としてパイプラインを配備しようとしています。私は内部的にJavaスクリプトを使いたい。 – jdv12