Как уже говорилось выше, при индексировании текстов и поиске по запросам поисковая машина волей-неволей должна производить лингвистическую обработку слов. Причина этого кроется в устройстве языка.
Во многих языках слова имеют несколько различных окончаний (в так называемых флективных языках; от лат. flexio — окончание). Поэтому у каждого слова очень много различных форм, которые называются словоформами. Бывают, конечно, во флективных языках и неизменяемые слова (предлоги, наречия, союзы и пр.), но их меньшинство.
Словоформы по смыслу являются одним и тем же словом, но по форме могут очень сильно различаться из-за окончаний, а также чередований букв в основе (например, видеть — вижу
, бобер — бобры
, fight — fought
). А в некоторых особых случаях (так называемый супплетивизм) словоформы одного и того же слова могут вообще не иметь ни единой общей буквы (например, идти — шел
, go — went
).
Как видно из примеров, русский и английский языки — флективные. Однако окончаний и разных словоформ в английском языке сравнительно мало. Лингвистическая обработка окончаний в английском очень проста, а часто и вовсе не делается поисковиками.
А вот русский язык, напротив, — высокофлективный, так как его слова имеют очень много форм. Например, существительное в общем случае имеет двенадцать словоформ (шесть падежей единственного числа и шесть падежей множественного). Есть и неизменяемые существительные, такие как кофе
, пальто
, но их мало. У прилагательного — почти двадцать словоформ, а уж глаголы со всеми своими причастиями могут иметь до сотни форм.
Таким образом, если хранить в индексе все встречающиеся в Интернете слова русского языка во всех их формах, словарь получится просто огромным, включающим десятки миллионов словоформ, что, естественно, неудобно и неэффективно.
Кроме того, есть еще вопрос правильного поиска слов. Ведь хотелось бы, чтобы поисковая машина знала, что стол
и столы
— одно и то же слово! То есть поисковику нужно отождествлять между собой словоформы, являющиеся грамматическими формами одного и того же слова, чтобы при поиске не пропускать вхождений искомого слова.
Как это делается?
Естественным решением проблемы изменчивости слов является применение способа, при котором хранятся только основы слов, а окончания и чередования — отбрасываются и хранятся отдельно. Это дает не только значительную экономию, но и позволяет объединять при поиске разные грамматические формы одного и того же слова, что довольно важно для качества поиска.
Для этого в ходе индексации веб-страниц слова приводятся к своим начальным формам (условно говоря, к именительному падежу или инфинитиву), а чаще — вообще к основам (корням слов), и уже в таком виде добавляются в индекс поисковой машины. Для этого поисковик обычно применяет словарь, то есть работает только с известными ему словами. (Об обработке неизвестных слов рассказывается во врезке ниже в данном разделе.)
Если на этапе создания индекса все словоформы слова сводятся к его основе, то потом, при задании любой словоформы слова в запросе, она также будет сведена к основе и будут найдены все вхождения этой основы в тексте.
Самые старые российские поисковики — «Апорт», «Рамблер» и «Яндекс» — уже много лет применяют машинную морфологию при индексировании и поиске. С весны 2006 года русская машинная морфология подключена также и в Google.
Правда, в отличие от российских поисковиков, Google применяет машинную морфологию не на этапе индексирования, а только во время обработки запроса. Это означает, что Google записывает в индекс все словоформы отдельно, «как есть», а при обработке запроса применяет так называемое расширение запроса: слова запроса превращаются в веер словоформ, и все словоформы ищутся в индексе. Интересно, что делается это не каждый раз, а только тогда, когда поисковик сочтет это обоснованным, на основе анализа статистики вхождений заданного слова на веб-страницы. У каждой поисковой машины машинная морфология своя, особенная. Впрочем, обычные слова, такие как кондиционер, все они склоняют практически одинаково.
Для владельца сайта понимание того, что поисковик считает разные формы слова одним и тем же словом, довольно важно при составлении текстов сайта, управлении ссылками, а также при планировании продвижения сайта и контекстных рекламных компаний в системах контекстной рекламы «Бегун» и «Яндекс.Директ».
Неизвестные слова и “нечеткая” морфология
Аккуратно «отрезать» окончание и найти основу можно только у известного слова, которое есть в словаре поисковика. Но в языке, и особенно в Интернете, постоянно появляются новые слова, ибо словотворчество веб-мастеров не имеет границ. Как же поступает поисковик с неизвестными ему словами?
А вот как: с ними делают то же самое, что и с прочими несловарными элементами — цифрами, буквенно-цифровыми последовательностями, словами неизвестных языков: поисковик хранит их в индексе «как есть», как иероглиф, в той фиксированной форме, в который они были встречены в тексте при индексации. То же самое происходит и с опечатками — они хранятся «как есть». Это довольно очевидный факт, но он ведет к важному выводу — если требуется, чтобы слова на странице распознавались поисковиками во всех своих грамматических формах, их нужно писать без ошибок и по возможности использовать общеупотребительные слова, которые наверняка «знает» машинная морфология поисковиков.
Иногда поисковик пытается как-то разобраться со словоизменением неизвестного ему слова — построить гипотезу о его возможных окончаниях по форме слова. Например, если у вас на сайте использовано слово «квазистул», то можно предположить, что оно склоняется так же, как «стул». Этот алгоритм называется нечеткой морфологией. Такой алгоритм, в частности, применяют «Яндекс» и Google. Но это процесс во многом вероятностный, и рассчитывать на него при написании текстов сайта не стоит.
Графический текст | Какие сайты индексирует поисковая машина? |