levenshtein
(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)
levenshtein — Обчислює відстань Левенштейна між двома рядками
Опис
levenshtein( string $string1, string $string2, int $insertion_cost = 1, int $replacement_cost = 1, int $deletion_cost = 1): int
Відстань Левенштейна - це мінімальна кількість вставок, замін та видалень символів, необхідна для перетворення string1
вstring2
. Складність алгоритму дорівнює O(m*n)
, гдеn
иm
- Довжини рядків string1
иstring2
(неплохо по сравнению сsimilar_text(), що має складність O(max(n,m)**3)
, Але все ж таки досить багато).
Якщо insertion_cost
replacement_cost
и/илиdeletion_cost
не рівні алгоритм адаптується для вибору найдешевших перетворень. Наприклад. якщо $insertion_cost + $deletion_cost < $replacement_cost
, заміни не будуть виконуватися, натомість будуть виконуватися вставки та видалення.
Список параметрів
string1
Один із рядків, для яких обчислюється відстань Левенштейна.
string2
Один із рядків, для яких обчислюється відстань Левенштейна.
insertion_cost
Визначає вартість вставки.
replacement_cost
Визначає вартість заміни.
deletion_cost
Визначає вартість видалення.
Значення, що повертаються
Ця функція повертає відстань Левенштейна між двома рядками.
список змін
Версия | Опис |
---|---|
8.0.0 | До цієї версії levenshtein() треба було викликати із двома чи п'ятьма аргументами. |
8.0.0 | До цієї версії, levenshtein() повертала значення -1 якщо один з рядків аргументу більше 255 символів. |
Приклади
Приклад #1 Приклад використання levenshtein()****
Loading...
Результат виконання наведеного прикладу:
Вы ввели: carrrot
Вы не имели в виду: carrot?
Дивіться також
- soundex() - Повертає ключ soundex для рядка
- similar_text() - обчислює ступінь схожості двох рядків
- metaphone() - Повертає ключ metaphone для рядка