我正在使用名为Freeling的语言分析工具。对于语言识别,我在Linux控制台中使用analyzer
命令:
analyzer -f /usr/share/freeling/config/ident.cfg --outlv ident --fidn /usr/share/freeling/common/lang_ident/ident.dat
当我执行此命令时,它等待文本条目(句子)并确定它们所使用的语言。 当我用西班牙语写一行文字时:" la casa es azul"然后按回车键返回ES,这意味着它是用西班牙语写的。如果我写'#34;房子是蓝色的"它返回EN,用于英语。要中断其执行,请按 Ctrl + C 。
当我在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 :(得分:0)
运行程序时,需要加载所有语言的统计模型。这就是第一句话需要更长时间的原因。
FreeLing提供的“分析器”程序只是一个演示。使用该库的最佳方法是编写自己的程序,如FreLing教程中所示https://talp-upc.gitbooks.io/freeling-tutorial/content/
如果你想从PHP调用FreeLing,没有API,所以你应该采用“服务器模式”,其中加载一次freeling,然后它将接受请求。
您可以在FreeLing用户手册https://talp-upc.gitbooks.io/freeling-4-1-user-manual/content/
中找到更多信息