[Image] Понедельник, 18.11.2024, 11:55 [Image]
SEO, технологии, игры, IT новости
[Image] Главная Регистрация Вход [Image]
[Image] Приветствую Вас, Гость · RSS [Image]
Меню сайта

Форма входа
 Блог
Главная » 2010 » Декабрь » 18 » Усовершенствованное сравнение строк
19:50
Усовершенствованное сравнение строк

Довольно трудно научить компьютер "понимать" строки так же, как это делает человек. Типичный пример этой проблемы — ошибки правописания, в частности, когда вы имеете дело с именами.
Несмотря на то что не существует решений, которые хотя бы в начальной степени приближались к возможностям человеческого мозга, все же некоторые алгоритмы в течении многих лет были разработаны для определения "сходства" между строками в виде полутонов, вместо "черно-белого" подхода.
Одним из примеров этого является алгоритм soundex, изначально разработанный
для применения в процессе переписи населения США в конце XIX века. Этот алгоритм работает за счет присвоения значения каждому гласному звуку алфавита и последующего вычисления общего значения слова на основе его начала и составляющих его слогов. Результирующее soundex-значение представляется начальной буквой слова и комбинацией значений его слогов.
Этот алгоритм, который был реализован в РНР в функции soundex (), может оказаться чрезвычайно полезным при поиске имен на основе их фонетических представлений. Например, слова "Tabini" и "Tabani" имеют одинаковые soundex-значения:

echo soundex ('Tabini');
echo "\n";
echo soundex ('Tabani');
echo "\n";
?>

Приведенный выше сценарий вернет следующее:

Т150
Т150

В результате поиск имен становится намного легче, даже если их точное написание неизвестно.
Более совершенный алгоритм для сравнения двух слов базируется на их фонетическом представлении — метафоиический (metaphone), который был представлен в 1990 году Лоуренсом Филипсом (Lawrence Philips). Метафонический алгоритм работает методом присвоения фонетического значения комбинациям символов, на базе их типичного применения в английском языке.
В РНР доступна реализация этого алгоритма в виде функции metaphone ():

echo metaphone ('Tabini');
echo "\n";
echo metaphone ('Tabani') ;
echo "\n";
?>

Этот сценарий вернет метафоническое значение "TBN" для обеих строк. 


Категория: Все о PHP | Просмотров: 1239 | Добавил: witkom8382 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright MyCorp © 2024
Категории
Оптимизация сайта [591]
Создание сайтов [355]
Заработать в интернете [508]
Технологии [46]
Полезное [391]
Услуги и сервисы [317]
Автоблог [105]
Скрипты для Ucoz [39]
Движок на сайт [10]
Все о Joomla и Drupal [20]
Все о PHP [91]
Поиск
Пользовательский поиск
Статистика


Онлайн всего: 2
Гостей: 2
Пользователей: 0
Seo сайт, технологии продвижения, мета теги, оптимизация сайтов, новости сео, Скрипты, Ucoz

Рейтинг@Mail.ru