我正在尝试执行Python脚本以通过PHP进行POS标记.
但是它没有返回完整的输出.
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科学家
观察到的输出:
数组([0] =>科学家)
预期的输出:
数组([0] =>科学家[1] =>“ [(‘Scientists’,’NNS’)]” [2] =>“完成!”)
当我手动运行命令时,大约需要5到10秒才能运行. [这可能是由于进行POS标记或导入nltk所需的时间.]
但是当通过PHP运行时,它立即返回并从nltk.pos_tag或print语句输出,但未返回.
我想念什么吗?
解决方法:
需要在命令中添加2& 1,以获取完整的输出.
这解决了我的问题.
标签:nltk,exec,python,php
来源: https://codeday.me/bug/20191201/2081034.html