更新:我认为 cakePhp updateAll 是问题所在。如果我取消注释 updateAll 和 pr 结果,我会在 1-2 秒内得到如此多的语言检测,比如 5 分钟!!!!我只需要更新一行,就可以确定该行的作者和标题...有没有更好更快的方法???
我正在使用detectlanguage.com来检测我的 sql 数据库中的所有英文文本。我的数据库由大约 500.000 行组成。我尝试了很多方法来更快地检测我所有文本的语言。现在需要很多天......:/
- 我只发送 20% 的文本(看看我的代码)
- 我试图复制我的函数并多次运行该函数。复制的代码显示了标题以 A 开头的所有文本的功能
我只能同时运行 6 个功能...(本地主机)...我在新选项卡中尝试了第 7 个功能,但是
等待可用的套接字....
public function detectLanguageA()
{
set_time_limit(0);
ini_set('max_execution_time', 0);
$mydatas = $this->datas;
$alldatas = $mydatas->find('all')->where(['SUBSTRING(datas.title,1,1) =' => 'A'])->where(['datas.lang =' => '']);
foreach ($alldatas as $row) {
$text = $row->text;
$textLength = round(strlen($text)*0.2);
$text = substr($text,0,$ltextLength);
$title = $row->title;
$author = $row->author;
$languageCode = DetectLanguage::simpleDetect($text);
$mydatas->updateAll(
['lang' => $languageCode], // fields
['author' => $author,'textTitle' => $title]); // conditions*/
}
}
我希望有人对我的问题有想法......现在我所有文本的语言检测将需要一个多星期的时间:/:/
我的电脑运行了 20 多个小时,几乎没有中断……但我只检测到大约 13.000 条文本的语言……而我的数据库中有 500.000 条文本……
- 现在我尝试批量发送文本,但它也很慢......我总是在一个数组中发送 20 个文本,我认为这是最多的......
cakePhp 3.X updateAll-function 是否有可能让它变得如此缓慢?