Boroda aka Hamster (fantaseour) wrote,
Boroda aka Hamster
fantaseour

Category:

Наивный поиск

Пока умные френды пишут (yandex, google) про поиск настоящий, бородатые фантазеры открывают для себя поиск наивный.


По случаю возможного проекта на Symfony я произвел довольно глубокий экскурс в систему. В учебном проекте "Задай мне вопрос" реализуется простейшая поисковая система со стеммингом (выделение корня слова).

Я до сих пор видел только одну реализацию поиска в системах CMS, в частности NetCat. Принцип ее описан моим полным тезкой (Дмитрием Смирновым). Однако такой поиск весьма сомнительный, потому, что русский язык своими словоформами убивает его на корню.

В симфоническом примере был использован английский стемминг, что показалось мне интересным, и меня сильно порадовал яндекс, найдя несложный русский стемминг на PHP (Дмитрий Котеров). Он же прикручен сейчас к CMS Drupal.

Далее совсем неожиданно порадовал Хабр! Случайно наткнулся на статью, где все мною перечисленное выше использовано, плюс проведен эксперимент -- автор пробует угадывать ошибки (возможно вы искали велосипед) с помощью англоязычной версии фонетического алгоритма soundex, примененного к русскому слову в английской транскрипции. Утверждает, что очень часто срабатывает правильно. Текст примера также есть в статье.

Из ссылок в комментариях:
Статья о стемминге с исходниками Андрея Коваленка
Статья Питера Норвига об угадывании ошибок

Ну раз тема сама собой на меня набежала я посмотрел еще как обстоят дела с поисковиком Zend Lucene из Zend Framework (переписанная на php апачевская Lucene). Скорее всего самый хороший вариант для наивного поиска, на PHP. Имеется интерфейс для вставки собственного синтаксического анализатора, куда как раз и можно будет воткнуть русский стемминг.

Другие движки, которые надо посмотреть (компилируемые, скорее всего тот же наивный алгоритм):
Sphinx
DataparkSearch Engine
mnoGoSearch

Яндекс XML я смотрел, и написал для него небольшой класс, но все же это немного другое -- это покупаемый сервис, а не самостоятельный движок.
Tags: development, tech
Subscribe

  • Пока меня не было ЖЖ поменялся

    Прожив в ЖЖ неделю обнаружил изменения: 1. Старые темы устарели -- например нет лайков. Сменил. 2. Раньше ведь клали невидимые пикселы, чтобы…

  • Платный vs Бесплатный ЖЖ

    Вот упустил оплату и мой эккаунт перешел в бесплатный режим. Сразу ощутил это, хотя когда-то Антон Носик, давая кому-то апгрейженный до платного…

  • Яндекс блоги стали похожи на непроходимый твиттер

    Я тех друзей, которых нет в ЖЖ читаю через фид ридер. А в яндексе есть такая фенька — сменить настроение. И каждая такая смена летит в фид. И…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments