
Как поисковые системы нас понимают. Основы текстового анализа
- Select a language for the TTS:
- Russian Female
- Russian Male
- Language selected: (auto detect) - RU
Play all audios:

Наш великий и могучий русский язык не только красив, но и очень сложен. Зачастую даже интуитивное представление носителей языка идет вразрез с формальным. Результаты машинного разбора еще
разительнее отличаются от нашего интуитивного представления. В этой статье мы разберем, как поисковые системы понимают запросы пользователя, находят соответствующие документы и как из
запроса извлекается его семантическое значение. Казалось, прежде чем Google представил RankBrain, а Яндекс — Королев, SEO продвижение и жизнь SEO специалистов были намного проще. Теперь мы
подвержены потоку противоречивой информации от влиятельных лиц отрасли. Ситуация усугубляется тем, что представители Яндекс и Google дают малопонятную информацию о качественных сигналах и в
голос твердят одно и то же: «Делайте сайты для людей». Как отличить бесполезные советы и предположения о работе алгоритмов от реальных действующих методов? Ниже вы найдете ответы на вопросы,
которые помогут понять, как устроены поисковые системы и суть работы SEO оптимизатора. Читайте и становитесь настоящим гуру поисковой оптимизации… СЛОВО ДЛЯ ПОИСКОВОЙ СИСТЕМЫ Слово — это
самая маленькая смысловая единица речи, которая служит для выражения отдельного понятия. Для начала выясним, как слова представлены в компьютерных программах, и выявим сильные и слабые
стороны данных подходов. В простейшем случае компьютерная программа видит текст как последовательность буквенно-цифровых символов и знаков препинания. Это так называемое необработанное
представление текста. «Программы программиста были запрограммированы». Некоторые слова могут быть разделены пробелами или пунктуацией. В результате мы получаем список символов. Знаки
препинания рассматриваются тоже как отдельные символы. Стоит отметить такую особенность любого текста как заглавные буквы. Кажется разумным заменить все символы на нижний регистр. В конце
концов, «Какой» и «какой» представляют собой одно и то же слово, а именно местоимение. Но как насчет слова «вера» и имени «Вера», которое в зависимости от контекста может быть именем
собственным или нарицательным. Необработанные символы сохраняют всю лингвистическую информацию, но в то же время возникает больше вопросов при вводе. Дальнейшая пост-обработка проводится для
избавления от лишней информации. > Программы программиста были > запрограммированы. Слова могут иметь разные формы. Например, слово «программы» является формой существительного
множественного числа от «программа». «Запрограммированный» — это причастие прошедшего времени, образованное от глагола «программировать». Неизмененная, исходная форма слова называется лемма.
Для существительных это именительный падеж и единственное число, для глаголов — форма слова, отвечающая на вопрос «что делать?» Первый логический шаг в обработке запроса — преобразовать
слова в их соответствующие леммы. > Программа программиста должна быть > программной. Поисковые системы используют стоп-слова для предварительной обработки вводимых запросов. Список
стоп-слов — это набор символов, которые удаляются из текста. Стоп-слова могут включать функциональные слова и знаки препинания. Функциональные слова — это слова, которые не имеют
самостоятельного значения, например, вспомогательные глаголы или местоимения. Для примера попробуем отбросить функциональные слова из предложения. В результате исходное высказывание содержит
только содержательные слова (слова, имеющие смысловое значение). Однако сложно сказать, как программа в запросе связана с программистом. > программист программа программа Также поисковые
системы могут понимать слова, исходя из их оснований, то есть корней. Корень слова — это его главная значимая часть, в которой заключено общее значение всех однокоренных слов. Например, мы
можем добавить суффикс «-ист» к основному корню «программ» и получим кого-то, кто выполняет действие. Теперь посмотрим на преобразованный запрос при замене всех слов на их леммы. >
программа программа программа После сокращения изначального запроса мы получили, казалось бы, не очень информативную последовательность. Существует три способа представления слов: * символ;
* лемма; * корень. Кроме того, мы можем удалить все функциональные слова и преобразовать оставшиеся в нижний регистр. Такие обработки и их комбинации используются в зависимости от языка
поставленной задачи. Например, будет нецелесообразно сокращать функциональные слова, если нам нужно дифференцировать тексты на английском и французском языках. А если же при запросе мы имели
в виду именно собственное имя существительного, то разумно будет сохранить исходный регистр символов. Эти лингвистические составляющие являются строительными блоками для более крупных
структур, таких как документы. Что нужно знать SEO-специалисту * Важно понимать, зачем необходимо разбивать предложения на лингвистические составляющие. Эти единицы являются частью метрики,
которую знают и используют оптимизаторы. Они составляют такой показатель, как плотность ключевых слов. Хотя многие SEO-оптимизаторы выступают против этого показателя и утверждают, что
плотность ключевых слов ни на что не влияет. В качестве альтернативы они предлагают использовать показатель TF-IDF, поскольку он связан с семантическим поиском. Далее мы увидим, что как
необработанные, так и взвешенные количества слов могут использоваться и для лексического и для семантического поисков. * Плотность ключевых слов — это удобная и простая метрика, которая
имеет право на существование. Однако не стоит зацикливаться на ней. * Также имейте ввиду, что грамматические формы рассматриваются поисковыми системами как один и тот же тип слова, поэтому
не имеет смысла оптимизировать веб-страницу, например, для единственного и множественного числа одного ключевого слова. > Аудит архитектуры и текстовой > оптимизации МЕШОК СЛОВ Мешок
слов (bag-of-words) — это модель, которая используется при обработке естественного языка для представления текста (от поискового запроса до полномасштабной книги). Хотя эта концепция
восходит к 1950-м годам, она все еще используется для классификации текста и поиска информации. Если мы хотим представить текст как большой набор слов, т.е. «мешок слов», мы просто
посчитаем, сколько раз каждое отдельное слово появляется в тексте, и перечислим эти значения. В математике это называется вектор. Перед подсчетом можно применить методы предварительной
обработки, описанные в выше. В результате теряется вся информация о текстовой структуре, синтаксисе и грамматике текста. > программы программиста были > запрограммированы > {: 1,
программист: 1, s: 1, программы: 1, > имели: 1, были: 1, запрограммированы: 1} > или > [1, 1, 1, 1, 1, 1, 1] > programmer program program > {программист: 1, программа: 2} или
> [1, 2] Представлять отдельный текст в виде списка цифр практически нет смысла. Однако, если у нас есть список документов (например, все веб-страницы, проиндексированные определенной
поисковой системой), мы можем построить так называемую векторную модель из доступных текстов. Звучит пугающе, но на самом деле все просто. Представьте себе электронную таблицу, в которой
каждый столбец представляет собой набор слов (вектор текста), а каждая строка представляет слово из набора этих текстов (вектор слова). Количество столбцов равно количеству документов в
списке. Количество строк равно количеству уникальных слов, которые встречаются во всем списке документов. Значение в пересечении каждой строки и столбца — это количество раз, когда
соответствующее слово появляется в соответствующем тексте. В таблице ниже изображена векторная модель для пьес Шекспира. Для простоты восприятия мы используем всего четыре слова. Как мы уже
говорили ранее, мешок слов на самом деле является вектором. Преимущество векторов в том, что мы можем измерить расстояние или угол между ними. Чем меньше расстояние или угол — тем больше
«похожих» векторов и документов, которым они соответствуют. Это осуществляется с помощью показателя косинусного сходства. Результат варьируется от 0 до 1. Чем выше значение, тем больше
похожих документов. ПОИСК СООТВЕТСТВУЮЩЕГО ДОКУМЕНТА Допустим, пользователь вводит запрос «битва при Азенкуре». Это небольшой документ, который может быть встроен в векторное пространство,
как в примере выше. Соответствующий вектор равен [1, 0, 0, 0]. «Отличный», «дурачить» и «остроумие» имеют нулевое число. Затем мы можем вычислить сходство поискового запроса с каждым
документом в списке. Результаты приведены в таблице ниже. Видно, что Генрих V лучше всего соответствует запросу. Это неудивительно, поскольку слово «битва» встречается в этом тексте чаще.
Этот документ можно считать более релевантным запросу. Также совсем необязательно, чтобы все слова в поисковом запросе присутствовали в тексте. У такого подхода есть несколько очевидных
недостатков: * Уязвимый показатель плотности ключевых слов. Можно существенно повысить релевантность документа поисковому запросу, просто повторяя требуемое слово столько раз, сколько
необходимо, чтобы превзойти конкурирующие документы в коллекции. Именно так работали поисковые системы на старте, в конце 1990-х. Достаточно было перенасытить текст ключевыми словами и
первое место в выдаче гарантированно. * Подбор документов для мешков слов типа _Меня впечатлило, это было неплохо!_ и _Я не был впечатлен, это было плохо! _будет абсолютно одинаковым, хотя
они имеют разные значения. Помните, что модель мешка слов не различает всю структуру, лежащую в основе документа. * Модель мешка слов с частотой встречаемости слова — не лучшая мера.
Результаты поиска искажаются документами с высокой плотностью вводимых ключевых слов, хотя по факту эти документы могут не содержать нужной в себе информации. В следующей части статьи мы
подробно рассмотрим пункты: * Проверка по закону Ципфа и метод TF-IDF. * Как осуществляется семантический поиск.