Я пытаюсь выполнить скрипт python для тегов POS через PHP. Но его не возвращает полный выход.php exec missing output
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);
Команда:
питона /Library/WebServer/Documents/varticle/vcmdpos.py Ученые
Наблюдаемые Выход:
Array ([0] => Ученые)
Ожидаемое Ouput:
Array ([0] => Ученые [1] => «[(«Ученые», «NNS»)] «[2] =>« Готово! »)
Когда я запускаю команду вручную, она запускается около 5-10 секунд для запуска. [Это может быть связано с временем, требуемым для маркировки POS или импорта nltk.]
Но при запуске через PHP он немедленно возвращает и выводит из nltk.pos_tag или print заявление после того, как он не возвращается.
Я что-то упустил?
Какова стоимость $ tmp и вы уверены, что $ string2 установлен на «Ученые»? Что произойдет, если вы распечатаете что-то в верхней части скрипта python? –
@ msgmash.com $ tmp ничего не печатает. Все, что находится наверху, перед публикацией nltk.pos_tag. – vaichidrewar
2> & 1 необходимо добавить в команду, чтобы получить полный вывод. – vaichidrewar