首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误的levenshtein结果

错误的levenshtein结果
EN

Stack Overflow用户
提问于 2014-07-18 00:00:24
回答 1查看 115关注 0票数 0

我有一个基于levenshtein的字符串比较函数,但它不能正常工作。

代码语言:javascript
复制
function levenshteinTest($input, $array)
{
 $shortest = -1;
 foreach ($array as $word)
 {    
  $lev = levenshtein($input, $word);
   if ($lev == 0)
   {
    $closest = $word;
    $shortest = 0;
    break;
   }
   if ($lev <= $shortest || $shortest < 0)
   {
    $closest  = $word;
    $shortest = $lev;
   }
  }
 return $closest;
}
$test=array(
       "Richard Bürstmayr",
       "Sandra Ebner"
      );
var_dump(levenshteinTest("brstmyr", $test); //Sandra Ebner
var_dump(levenshteinTest("rd brstmyr", $test); //Richard Bürstmayr

正如您所看到的,我在第一个转储中得到了一个不好的结果,但在第二个转储中得到了一个好结果。我认为这个问题与单词长度有关,但我真的不知道如何解决这个问题。我的数组值包含所有至少两个单词。

EN

回答 1

Stack Overflow用户

发布于 2014-07-18 00:11:51

你不会得到一个奇怪的结果。

通过http://writecodeonline.com/php进行测试。

我得到的Levenshtein距离比数组中第二个结果的距离小。

请记住,Levenshtein distance是您必须对字符串进行编辑的次数,以使相应的字符串成为与之进行比较的字符串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24808369

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档