ホームページ >バックエンド開発 >PHPチュートリアル >PHPの2つの文字列間の類似性を比較するコード

PHPの2つの文字列間の類似性を比較するコード

WBOY
WBOYオリジナル
2016-07-25 08:43:131537ブラウズ

PHP での文字列類似度類似テキストと類似度レーベンシュタイン関数の計算の詳細な紹介

  1. $first = "abcdefg";
  2. $next = "aeg"; 結果 3.パーセントで表示したい場合は、次のように 3 番目のパラメータを使用できます。
  3. $first = "aeg"; $percent;
  4. //このコード スニペットは、http://www.sharejs.com/codes/php/6094
  5. コードをコピー
  6. similar_text 関数の使用法と実装プロセスからのものです。 like_text() 関数は、主に 2 つの文字列内の一致する文字の数を計算するために使用され、2 つの文字列の類似性 (パーセンテージ) を計算することもできます。今日紹介する levenshtein() 関数は、similar_text() 関数と比較して高速です。ただし、similar_text() 関数を使用すると、必要な変更が少なく、より正確な結果が得られます。速度は追求するが精度は低く、文字列の長さが制限されている場合は、levenshtein() 関数の使用を検討できます。
使用説明書 まずマニュアルの levenshtein() 関数の説明をお読みください。

levenshtein() 関数は、2 つの文字列間のレーベンシュタイン距離を返します。

編集距離としても知られるレーベンシュタイン距離は、2 つの文字列を一方の文字列にもう一方の文字列に変換するために必要な編集操作の最小数を指します。許可される編集操作には、ある文字を別の文字に置き換える、文字を挿入する、文字を削除するなどがあります。

たとえば、子猫を座らせるように変換します。

座る (k→s)
座ってます (e→i)
座っている (→g) levenshtein() 関数は、各操作 (置換、挿入、削除) に等しい重みを与えます。ただし、オプションの挿入、置換、および削除パラメータを設定することで、各操作のコストを定義できます。

文法:

レーベンシュタイン(文字列1,文字列2,挿入,置換,削除)

パラメータの説明

?string1 は必須です。比較する最初の文字列。
?string2 が必要です。比較する 2 番目の文字列。
?オプションを挿入します。キャラクターを挿入するコスト。デフォルトは 1 です。
?オプションで置き換えます。キャラクターを置き換えるのにかかるコスト。デフォルトは 1 です。
?削除はオプションです。キャラクターを削除するコスト。デフォルトは 1 です。
ヒントとメモ

?levenshtein() 関数は、文字列の 1 つが 255 文字を超える場合、-1 を返します。
?levenshtein() 関数は大文字と小文字を区別しません。
?levenshtein() 関数は、similar_text() 関数より高速です。ただし、similar_text() 関数を使用すると、修正が少なくて済み、より正確な結果が得られます。
コード例:





echo levenshtein("Hello World","ello World");
echo "
"
    echo levenshtein("Hello World","ello World"; ,10,20,30);
  1. 出力: 1 30
php

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。