Создание функции поиска на моем сайте с использованием php / sql достаточно просто – просто используя запрос SELECT ALL в базе данных с помощью предложения LIKE и повторяя результат на странице. Мой вопрос в том, как я могу добавить предложения о орфографии в случае, если пользователь опечатал их поисковый запрос. Mysql ничего не возвращает, если поисковый запрос точно не совпадает с содержимым базы данных, например, «Dofs» не вернет «Собаки». Итак, как добавить предложения о правописании?
Благодарю.
После этого вы найдете замечательную статью Питера Норвига о том, как написать проверку орфографии:
http://www.norvig.com/spell-correct.html
и следующие две ссылки – это реализации в PHP кода, найденного в статье:
http://www.phpclasses.org/browse/package/4859.html http://soundofemotion.com/spellcorrect.txt
Надеюсь это поможет.
Как насчет расширения pspell от PHP?
<?php $pspell_link = pspell_new("en"); if (!pspell_check($pspell_link, "dofs")) { $suggestions = pspell_suggest($pspell_link, "dofs"); foreach ($suggestions as $suggestion) { echo "Possible spelling: $suggestion<br />"; } } ?>
Это расширение PHP требует наличия установленных библиотек aspell .
Вам нужно проверить что-то вроде следующего:
http://phpir.com/spelling-correction
В основном вам нужен словарь и функция levenstien.
в дополнение к превосходному решению Joe , вы можете сделать призыв к мылу, чтобы предоставить альтернативные варианты написания (на основе материала языка поисковой системы)
Yahoo Spelling Suggestion: http://developer.yahoo.com/search/web/V1/spellingSuggestion.html
Запрос на правописание Google: http://code.google.com/apis/soapsearch/reference.html#1_3