Разработчик Александр Грушецкий рассказал в корпоративном блоге о реализации технологии поиска с учетом морфологии русского языка.
"Реализовать морфологию было довольно просто, но традиционные подходы имеют множество недостатков, — пишет разработчик. — Мы же выбираем алгоритмы, которые в первую очередь улучшают качество результатов реальных пользовательских запросов и избавляют вас как от необходимости набирать различные варианты одного запроса, так и от просмотра множества не интересующих вас страниц.
Мы постоянно изменяем и совершенствуем наши алгоритмы и пополняем арсенал трюков по обработке слов. Например, традиционная реализация русской морфологии не поддерживает множество других полезных преобразований слов. Теперь же, например, для запроса "как лечить ожог" будут также найдены страницы, содержащие лечение ожогов, для "звон колокола" — колокольный звон, для "футбол английский чемпионат" — чемпионат Англии по футболу, а для "русификация ICQ" — русификатор ICQ.
Также чрезмерное увлечение морфологией чаще вредит, чем помогает. Поэтому мы стараемся использовать словоформы там и тогда, где это действительно нужно, и делать это как можно аккуратней. Например, "готов к войне" не имеет отношения к запросу "война с готами", ответом на вопрос "кто такие таты" будет явно не тату, а для запроса "мыть кошку" больше подойдет "мытье кошек", чем "моя кошка".
Кстати, вы всегда можете полностью отключить использование форм слова, поставив оператор "+" перед словом или взяв слово в кавычки. Например, для запроса "звон +колокола" или "звон колокола", будет найдено только точное вхождение слова "колокола", а вот колокольный звон найден не будет".
Материалы по теме: