duancha1065 2016-02-12 08:56
浏览 26

PHP Levenshtein距离

I want to display Did you mean alternative when user searches for incorrect word. This code works, but some results are irrelevant. Example: I have an apple record in my table. If user searches for apple1 result is: Did you mean apple?, but if user searches for aple result is: Did you mean Dole? Is there any way to display more relevant results? Here is a code:

$search = $_GET ['search'];

$results = array();
foreach ($db->query("SELECT id FROM table") as $name) {
$results[] = $name['id'];
}

$shortest = -1;
foreach ($results as $word) {
$lev = levenshtein($search, $word);

if ($lev <= $shortest || $shortest < 0) {
    $closest  = $word;
    $shortest = $lev;
}
}
echo $closest;
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 自适应 AR 模型 参数估计Matlab程序
    • ¥100 角动量包络面如何用MATLAB绘制
    • ¥15 merge函数占用内存过大
    • ¥15 Revit2020下载问题
    • ¥15 使用EMD去噪处理RML2016数据集时候的原理
    • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
    • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数
    • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
    • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
    • ¥15 如何在炒股软件中,爬到我想看的日k线