Встал на извилистую тропинку "русификации" поиска

Сегодня 2 часа трепались с сэром Аксёновым, чего можно улучшить в русском поиске сфинкса. Самое веселое, что он сказал, что из нашего разговора вынес для себя что-то полезное. А мне казалось, что процесс был исключительно односторонний. В смысле, он учил меня уму-разуму.

В общем, смысл такой, что в итоге куча проблем упирается в базы (всякие словари). Которых нет. Причем для natural language search базы слепить почти нереально, но для более узких задач можно обойтись словарями попроще. Хотя нарабатывать их все равно понадобится.

Чисто условно, процесс можно поделить на 2 части - индексирование и ранжирование. Для хорошей индексации надо хотя бы правильно разбирать фразы на слова. Причем, если учесть, что у нас Savage пишут как савадж, и еще склоняют - получается весело. Есть тонны нюансов с дробными числами, которые пишут то через точку, то через запятую. И вообще много интересного и противоречивого.

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

github.com/rcdesign/search-tune/

С ранжированием, как ни смешно, несколько проще. Надо сделать оценку результатов по паре-тройке сотен запросов - это вполне быстро, силами нескольких человек. А потом начинаем крутить ранкеры, и скриптом смотрим, как у нас сместилась эталонная выдача. Fuzzi logic такой 😃 . Несмотря на кажущуюся сложность, процесс очень легко автоматизируется. С ранкерами в новом сфинксе стало посвободнее - можно быстро заколачивать свои, почти произвольные алгоритмы.

Пока договорились о небольшом таймауте, потому что надо предварительно обработать мои выборки, и оценить чего не хватает в сфинксе.

  • 1068
Comments

а всякие aspell’овские словари не годятся?
хотя бы как сырьё для нужных?
там и некоторая разметка есть…

Vitaly

Стандартные лебедевские словари - это уровень какбэ пожЫже 😃 . Они не решают проблем со спецтерминами, числительными, названиями товаров, и кучей других моментов, связанных с качественным разбором фраз.

Да, но спецтерминов, числительных и товаров какбэ существенно меньше остальных слов.
А корректно определённый контекст, поди, лишним не будет.
Во фразе “продам дюжину красных флаперонов” - половина слов “общегражданские”…
Впрочем, я в запросы не смотрел, да.

Vitaly

Во-во. Запросы не просто так лежат. В репозитории тонны ценной информации для людей в теме.