PHP - similar_text
Třída
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ázev | Datový typ | Výchozí hodnota | Popis |
---|---|---|---|
$first | string | První textový řetězec, který chceme porovnat. | |
$second | string | Druhý textový řetězec, který chceme porovnat. | |
&$percent | float | 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