NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

PHP - similar_text

Třída

Kořen \ Bez třídy

Metoda - similar_text

(PHP 4, PHP 5, PHP 7)

Funkce počítá podobnost dvou textových řetězců pomocí algoritmu z World's Best Algorithms by Oliver. Implementace nepoužívá zásobník, ale rekurzi. Časová složitost algoritmu je O(n3), kde n je délka delšího řetězce.

Procedurální

  • function similar_text (string $first, string $second, float &$percent) : int

Parametry

NázevDatový typVýchozí hodnotaPopis
$firststring

První textový řetězec, který chceme porovnat.

$secondstring

Druhý textový řetězec, který chceme porovnat.

&$percentfloat

Proměnná předaná referencí, do které se uloží procentuální podobnost zadaných textových řetězců.

Návratové hodnoty

Vrací: int

Funkce vrací počet shodných znaků v zadaných textových řetězcích.

Příklady

Porovnáváme dva rozdílné řetězce. Procentuální podobnost ukládáme do proměnné $procenta.

<?php
$text1 = "Děti chodí spát v pyžamu se Spidermanem. Spiderman v pyžamu s Chuckem Norrisem.";
$text2 = "Když Abraham Bell vynalezl telefon, zjistil, že má 2 zmeškané hovory od Chucka Norrise.";
echo similar_text($text1, $text2, $procenta) . "<br>";
echo $procenta . "<br>";

// Výsledek také záleží na pořadí vět.
echo similar_text($text2, $text1, $procenta) . "<br>";
echo $procenta . "<br>";

// Funkce může být užitečná při vyhledávání.
$text3 = "Chuck Norris";
$text4 = "Chuck Noris";
echo similar_text($text3, $text4, $procenta) . "<br>";
echo $procenta . "<br>";

// Výsledek dvou prázdných řetězců je 0 (0%).
echo similar_text("", "", $procenta) . "<br>";
echo $procenta . "<br>";

// Výsledek dvou stejných řetězců je 1 (100%);
echo similar_text(" ", " ", $procenta) . "<br>";
echo $procenta . "<br>";

Související manuály

      • function levenshtein (string $str1, string $str2, int $cost_ins, int $cost_rep, int $cost_del) : int
      Aktivity