Как добавить орфографические предложения в поисковый скрипт PHP / SQL - PullRequest
2 голосов
/ 16 января 2010

Создание функции поиска на моем сайте с использованием php / sql, достаточно просто - просто с помощью запроса SELECT ALL к базе данных с помощью предложения LIKE и отображение результата на странице. У меня вопрос, как я могу добавить предложения по правописанию, если пользователь неправильно набрал свой поисковый запрос. Mysql ничего не возвращает, если поисковый запрос не совпадает точно с содержанием базы данных, например, «Dofs» не вернет «собак». Так как же добавить предложения по написанию?

Спасибо.

Ответы [ 4 ]

5 голосов
/ 16 января 2010

После вы найдете отличную статью Питера Норвига о том, как написать программу проверки орфографии:

http://www.norvig.com/spell-correct.html

и следующие две ссылки - реализации в PHP кода, найденного в статье:

http://www.phpclasses.org/browse/package/4859.html http://soundofemotion.com/spellcorrect.txt

Надеюсь, это поможет.

2 голосов
/ 16 января 2010

А как насчет расширения PHP pspell ?

<?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 библиотеки.

0 голосов
/ 16 января 2010

в дополнение к отличное решение Джо , вы можете сделать мыльный вызов, чтобы обеспечить альтернативное написание (на основе языкового корпуса поисковой системы)

Предложение по правописанию в Yahoo: http://developer.yahoo.com/search/web/V1/spellingSuggestion.html

Запрос правописания Google: http://code.google.com/apis/soapsearch/reference.html#1_3

0 голосов
/ 16 января 2010

Вам нужно проверить что-то вроде следующего:

http://phpir.com/spelling-correction

Вам понадобится словарь и функция levenstien.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...