Как поисковые системы нас понимают. Основы текстового анализа

Как поисковые системы нас понимают. Основы текстового анализа


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. * Как осуществляется семантический поиск.