Сравнение фраз
Posted in: Многофайловые сценарии PHP, By: admin, At: Ноябрь 30th, 2007
Другие функции сравнения работают с целыми фразами. Например, функция levenshtein() вычисляет “расстояние” между двумя фразами, определяя минимальное число дополнений, удалений и замен, необходимых для трансформации одной строки в другую:
echo levenshtein (’Tabini’, ‘Tabani’); echo “\n”;
Этот сценарий вернет 41, поскольку необходимо изменить только одну первую букву ‘\’ в слове ‘Tabini’ на ‘а’, чтобы получить строку ‘Tabani’. Несмотря на то что меньшее значение levenshiein-расстояиия обычно означает большее сходство между двумя параметрами, значение, возвращаемое этой функцией, дает лучшее представление о близости двух предложений, когда вы сравниваете его с длиной первого параметра:
Slev = levenshtein (’Tabini’, ‘Tabani’); $per = $lev / strlen (’Tabini’) * 100; echo “Sper\n”;
Результатом будет значение, которое приближенно представляет процент расстояния между двумя параметрами. Предьщущий сценарий вернет расстояние в 16,67 %, которое может быть транслировано в степень сходства между строками в 83,33 %, если вычесть разницу из 100 %.
Другой способ определения сходства между двумя строками представлен функцией sitrtilar_text (), которая вычисляет количество совпадений между двумя строками и таким образом определяет их сходство:
Smatches = similar_text (’Tabini1, ‘Tabani1, &Sper); echo “Совпадений: Smatches - в процентах: SperNn”;
Достаточно интересно то, что, запустив этот сценарий, мы получим следующий результат:
Совпадений: 5 - в процентах: 83.333333333333
Что как раз равно значению, которое мы вычислили ранее, приведя к процентам совпадения расстояние, полученное от функции levenstein ().
Leave a Reply