На www.yandex.ru обновлена поисковая программа -- теперь там работает "Арзамас" (ранее известный как "Анадырь"). В серии постингов мы расскажем, что сделано за это время.
Снятие омонимии
Яндекс научился еще лучше понимать русский язык, разрешая неоднозначности слов в запросах.
Как известно, знание русской морфологии позволяет поиску Яндекса находить больше полезных ответов. Если вы спросили [реконструкция Маяковской], мы покажем также страницу со словами [станция Маяковская открылась после реконструкции]. Но русский язык -- тонкий, сложный и неоднозначный. Тем, кто ищет [фото львов], могут быть нужны как фотографии животных, так и фотографии города Львова. Человек может уточнить свое высказывание, добавив к нему одно или несколько слов: [фото африканских львов] или [фото город львов]. Теперь эти уточнения наш поиск научился понимать.
Мы реализовали алгоритм снятия омонимии, позволяющий во многих случаях определить, какое слово имеется в виду, и предлагаем в ответ только документы с формами нужного слова. По запросу [фото африканских львов] пользователь получит в ответ документы со словами "лев", "льва", "льву", но не получит документы, где встречаются лишь слова "Львова" или "Львову".
Как мы научили машину отличать, когда речь идет о животных, а когда -- о городах? Алгоритм снятия омонимии основан на анализе данных запросов наших пользователей, учитывает частоту слов в Интернете и их сочетаемость, а также опирается на лексическую статистику слов из Национального корпуса русского языка -- академического проекта, разрабатываемого при поддержке Яндекса. При анализе неоднозначного запроса мы выбираем наиболее частотную модель. Выбор в пользу наиболее вероятной конструкции помогает понять, что "день рыбака" -- это не призыв, а праздник, а "платья придворных дам" -- не обещание поделиться одеждой.
А любимый наш вопрос -- тот, на который мы знаем целых два правильных ответа. Звучит он так: "Сколько голов у Павлюченко?"
Александр Садовский и команда поиска