好使用Java代码,所以我有一个简单的界面,我设计了Django框架是需要从表中的用户,并将其存储自然语言输入。在Django框架
另外我有一个管道,我使用Java的cTAKES库做命名实体识别,即它需要提交用户输入的文本和相关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.
的什么,我试图做一个简要概述:
这是代码我有看法。它的目的是从模型表单获取文本输入,并将其发送到数据库,然后将该输入传递到我的脚本中,该脚本生成一个存储在数据库中另一列的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)
更新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)
但是打破,我现在越来越一个“无法找到或加载主类pipeline.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