levenshtein関数

kato770 18views 更新:2017年5月25日

攻撃判定を出力するスクリプトの文字列で $attack_judgement という文字列が使用されていたのですが、最後の方の肝心な記述で$attack_judgment と打たれているミスがありまして、なかなか発見できませんでした…PHPって使ってない文字列を突然使用しても空っぽのままエラーにならず通っちゃうんですね。

そこでスペルミス修正に使えそうな関数があるようなので調べました。

int levenshtein ( string $str1 , string $str2 )

int levenshtein ( string $str1 , string $str2 , int $cost_ins , int $cost_rep , int $cost_del)

レーベンシュタイン距離:文字列str1がstr2になるまでに必要な数が出力できます。

$str1 :ミスっている方の文字列

$str2 :目的となる正しい文字列

下の引数はまとめて省略するか、全部入れるかのどちらか

$cost_ins :挿入のコスト

$cost_rep :置換のコスト

$cost_del :削除のコスト  

<?php
    $result = levenshtein( "judgement", "judgment" , 1, 2, 3) ;
    var_dump( $result ) ;
>

結果
int(3)

スペルミスには気をつけよう!

コメント

  1. kato770 のコメント (2017年5月25日)

    judgementが米国語でjudgmentが英国語らしいので正確にはスペル「ミス」じゃないっぽいです

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません