shell — выполнить команду linux через переполнение стека

Я использую инструмент для анализа языка под названием Freeling. Для идентификации языка я использую analyzer команда в консоли Linux:

analyzer -f /usr/share/freeling/config/ident.cfg --outlv ident --fidn /usr/share/freeling/common/lang_ident/ident.dat

Когда я выполняю эту команду, она ждет текстовых записей (предложений) и определяет, на каком языке они находятся.
Когда я пишу строку текста на испанском языке: «la casa es azul» и нажимаю клавишу ввода, возвращается ES, что означает, что она написана на испанском языке. Если я пишу «дом синий», он возвращает EN для английского языка. Чтобы прервать его выполнение, нажмите Ctrl + С.

Когда я выполняю эту команду в консоли Linux, первое предложение занимает некоторое время, а другое — быстро.

Я использую этот код для выполнения этой команды php, но для возврата результата требуется много секунд:

<?php
$cmd = "analyzer -f /usr/share/freeling/config/ident.cfg --outlv ident --fidn /usr/share/freeling/common/lang_ident/ident.dat";

$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("pipe", "w"),
);

$process = proc_open($cmd, $descriptorspec, $pipes);

$oracion[0]="we are the word";
$oracion[1]="somos el mundo";

if (is_resource($process)) {

fwrite($pipes[0], $oracion[0]);
fwrite($pipes[0], $oracion[1]);
fclose($pipes[0]);

while($pdf_content = fgets($pipes[1]))
{
echo $pdf_content . "<br>";
}
fclose($pipes[1]);
$return_value = proc_close($process);

}
?>

Как я могу улучшить время отклика?

0

Решение

При запуске программы необходимо загрузить статистические модели для всех языков. Вот почему первое предложение занимает больше времени.

Программа «Анализатор», поставляемая с FreeLing, является просто демонстрацией. Лучший способ использовать библиотеку — написать собственную программу, как показано в руководстве по FreLing. https://talp-upc.gitbooks.io/freeling-tutorial/content/

Если вы хотите вызывать FreeLing из PHP, API не существует, поэтому вам, вероятно, следует прибегнуть к «режиму сервера», когда фрилинг загружается один раз, и тогда он будет принимать запросы.

Вы найдете больше информации в руководстве пользователя FreeLing https://talp-upc.gitbooks.io/freeling-4-1-user-manual/content/

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector