php levenshteinでレーベンシュタイン距離を取得する

  • 作成日 2021.10.13
  • php
php levenshteinでレーベンシュタイン距離を取得する

phpで、levenshteinを使用して、2つの文字列がどの程度異なっているのかを表すレーベンシュタイン距離を取得するサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

levenshtein使い方

levenshteinを使用すれば、2つの文字列がどの程度異なっているのかを表すレーベンシュタイン距離を取得することが可能です。

levenshtein(文字列,文字列,挿入コスト,置換コスト,削除コスト);
// 第三引数からのコストを無視する場合は、「0」に設定する

以下は、2つの文字列がどの程度異なっているのかを表すレーベンシュタイン距離を取得するサンプルコードとなります。

<?php

$str1 = "mebee";
$str2 = "embee";

$result = levenshtein($str1, $str2);

echo $result; // 2 ← 2回置換

なので、第三引数以降に置換を無視する設定にすると「0」となります。

<?php

$str1 = "mebee";
$str2 = "embee";

$result = levenshtein($str1, $str2, 1, 0, 1);

echo $result; // 0