levenshtein()とは? わかりやすく解説

Weblio 辞書 > コンピュータ > PHP関数リファレンス > levenshtein()の意味・解説 

levenshtein

(PHP 4 >= 4.0.1, PHP 5)
levenshtein — 二つの文字列のレーベンシュタイン距離を計算する

説明

int levenshtein ( string str1, string str2 [, int cost_ins, int cost_rep, int cost_del] )
この関数は、引数で指定した二つの文字列のレーベンシュタイン距離を返します。 引数文字列の一つが 255 文字の制限より長い場合に -1 を返します。
レーベンシュタイン距離は、str1str2 に変換するために置換、挿入、削除 しなければならない最小の文字数として定義されます。アルゴリズムの複雑さは、 O(m*n) です。 ただし、n および m は、 str1 および str2 の長さです (O(max(n,m)**3) となる similar_text() よりは良いですが、 まだかなりの計算量です)。
上記の最も簡単な形式では、この関数はパラメータとして引数を二つだけとり、 str1 から str2 に変換する際に必要な 挿入、置換、削除演算の数のみを計算します。
2 番目の形式では、挿入、置換、削除演算のコストを定義する 3 番目のパラメータが追加されます。この形式は 1 番目の形式より一般的で 汎用性が高いですが、効率的ではありません。
例 2271. levenshtein() の例
<?php
// スペルミスした単語を入力する
$input = 'carrrot';

// チェックするための単語の配列
$words  = array('apple','pineapple','banana','orange',
               'radish','carrot','pea','bean','potato');

// まだ最短距離は見つかっていない
$shortest = -1;

// 最短距離を見つけるため単語をループ
foreach ($words as $word) {

   // 入力した単語と現在の単語の距離を
   // 計算する
   $lev = levenshtein($input, $word);

   // マッチするかどうかチェックする
   if ($lev == 0) {

       // 最短な単語はこれだ (マッチした)
       $closest = $word;
       $shortest = 0;

       // ループを抜ける; マッチしたものを見つけた
       break;
   }

   // もし距離が次に見つけた最短距離よりも短い場合、
   // もしくは次の最短の単語がまだ見つかっていない場合
   if ($lev <= $shortest || $shortest < 0) {
       // 最短のマッチと最短距離をセットする
       $closest  = $word;
       $shortest = $lev;
   }
}

echo "入力した単語: $input\n";
if ($shortest == 0) {
   echo "一致するものが見つかりました: $closest\n";
} else {
   echo "もしかして: $closest\n";
}

?>
上の例の出力は以下となります。

入力した単語: carrrot
もしかして: carrot

      


soundex(), similar_text(), metaphone() も参照ください。


このページでは「PHP関数リファレンス」からlevenshtein()を検索した結果を表示しています。
Weblioに収録されているすべての辞書からlevenshtein()を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からlevenshtein() を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「levenshtein()」の関連用語

levenshtein()のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



levenshtein()のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2025 by the PHP Documentation Group.

©2025 GRAS Group, Inc.RSS