我正在尝试通过PHP执行POS的python脚本。但它没有返回全部输出。
Python脚本:
import nltk
import sys
text = sys.argv[1]
tokenize_into_words = nltk.word_tokenize(text)
print text
result = nltk.pos_tag(tokenize_into_words)
print result
print "Done!"PHP脚本
$cmd = 'python /Library/WebServer/Documents/varticle/vcmdpos.py ' . $string2;
$tmp = exec($cmd,$output);
print_r($output);命令:
python /Library/WebServer/Documents/varticle/vcmdpos.py科学家
观测输出:
阵列( =>科学家)
预期输出:
数组( => => 1 => (“科学家”,“NNS”)“2=>”完成!)
当我手动运行命令时,运行大约需要5-10秒。这可能是由于进行POS标记或导入nltk所需的时间。
但是,当通过PHP运行时,它会在未返回之后立即返回nltk.pos_tag或print语句的输出。
我是不是遗漏了什么?
发布于 2012-04-15 18:45:02
需要在命令中添加2>&1以获得完整的输出。这解决了我的问题。
发布于 2012-04-15 11:15:25
尝试使用exec --或者,如果您想拥有更多的控制,则使用proc_open --而不是使用exec()。
https://stackoverflow.com/questions/10159898
复制相似问题