Если вы работаете в SEO/PPC, то ежедневно имеете дело с тысячами строк данных. Речь идет не только об аналитике и управлении рекламными кампаниями, в работе часто возникает необходимость в группировке ключевых слов.
Чтобы создать рекламную кампанию или сгруппировать запросы по посадочным страницам, подготовить коммерческое предложение или прикинуть бюджет – нужно перебрать 1000-5000 ключевых слов.
Например, у нас есть список из таких ключевых слов:
и еще несколько сотен/тысяч строк …
Нужно распределить ключевые слова по группам:
Сгруппировав слова – можно создать группы рекламных объявлений, подобрать общие посадочные страницы и многое другое. Не говоря о том, что такие слова как «туры болгария» и «болгария туры» попадут в одну группу – то есть, проще заметить такие «дубли».
Если у нас всего лишь 20-30 ключевых – их можно сгруппировать вручную. Сотня-две – с помощью Excel. Однако, ежедневно работая с тысячами ключевых слов - проще и удобнее использовать собственные инструменты автоматизации. Так я и поступил - подготовил ТЗ, обсудил детали с php-программистом, и через несколько дней скрипт был готов.
У нас есть некий набор ключевых слов:
Перед составлением индекса, скрипт нормализует все словоформы. Для этого применяется простой и эффективный инструмент - MyStem Яндекса.
Сразу скажу, что нормализация очень сильно выручает, так как избавляет нас от лишних групп состоящих из разных словоформ.
На следующем этапе скрипт группировки определяет частоты для всего индекса документа и выстраивает рейтинг. Частоты считаются для каждого слова (после нормализации). Если у нас есть «отдых в тунисе» то скрипт считает частоты для «отдых» и «тунис».
*Кстати, в настройках скрипта можно задавать минимальные значения частот для групп и подгрупп. Т.е. можно регулировать количество ключевых слов в группах и подгруппах. Если слово встречается редко (в документе), то оно не сможет создать «свою» группу или подгруппу.
На данном этапе – рейтинг слов выстраивается от наиболее частотных к менее частотным. Зачем это нужно? Чтобы создать основные группы. Скажем так, если слово «египет» встречается чаще чем слово «отель» то поисковый запрос (например, [недорогие отели египта]) включающий слово «отель» будет отнесен к группе «египет» а не наоборот.
Рейтинг слов образует названия групп. Ключевые слова «привязываются» к соответствующим группам:
В списке может быть обнаружено и слово с ошибкой. Сейчас поисковый запрос с ошибкой отнесен к группе «египет», но уже на следующем этапе – попадет с отдельную подгруппу, так что обнаружить такие запросы можно будет легко и просто (если одни и те же ошибки не встречаются слишком часто).
Итак, мы сгруппировали слова, но довольно примитивно. Далее – нам нужна более точная группировка.
*Кстати, все эти этапы существуют лишь на уровне работы скрипта. Пользователь просто добавляет ключевые слова и получает на выходе уже сгруппированный список.
Между прочим, если на входе подавать tsv содержащий не только ключевые слова, но и разные данные (например – частоты, оценочные ставки), на выходе мы получим сгруппированный список с тем же набором параметров.
Более точная группировка означает, что внутри каждой группы скрипт создаст подгруппы и распределит слова между ними.
На данном этапе точно также будет выстраиваться рейтинг слов по частоте. При этом рейтинг будет создаваться только внутри группы, основное слово группы (оно же – название группы) не будет принимать участие в рейтинге. Кроме того, рейтинг слов в группе выстраивается по обратной частотности. Т.е. слово с наименьшей частотностью – первым создаст «свою» подгруппу.
Конечно, создать свои подгруппы могут только те слова, которые встречаются не менее N-раз (задается в настройках скрипта, но обычно это не менее 4-5).
Именно такой подход работает очень эффективно, когда основные группы создаются на основе рейтинга от наиболее частотных слов к наименее частотным, а подгруппы – от наименее частотных к наиболее частотным.
На выходе получаем сгруппированный список:
К слову сказать, такие необычные названия подгрупп вроде «анталий» и подобное – результат работы MyStem. Стеммер не всегда корректно выбирает начальную словоформу.
Слова с неправильным написанием (если такие слова редко встречаются) и те слова, что встречаются в документе 1-2 раза – попадают в подгруппу «Прочее».
Эти слова тоже пригодны для работы, но с ними нужно будет разбираться отдельно. Некоторые можно перенести в подходящие подгруппы, от других – отказаться.
Вот и все. Скрипт использует довольно примитивный алгоритм, основная хитрость которого (не считая нормализации) состоит в выстраивании рейтинга для групп – от наиболее частотных слов к наименее частотным, а внутри подгрупп – наоборот.
Скрипт позволяет очень быстро справляться с солидными объемами данных. 5000-20000 ключевых слов группируются за несколько секунд, еще не более 5-10 минут уходит на то чтобы разобрать ключевые слова, попавшие в группу «Прочее».
Что дает использование скрипта? Дело ведь не просто в скорости обработки данных. Практическая выгода складывается из нескольких пунктов:
• Появляется возможность уже на этапе рассмотрения заявки или подготовки коммерческого предложения использовать полноценные выборки ключевых слов, а не «обзорные» списки из 50-100 строк.
• На подготовку базовых таблиц (бюджеты, группы поисковых запросов/посадочных страниц) затраты времени сократились с 2-6 часов до 1-1,5 часа. И это при значительном (в 5-10 раз) увеличении объема обрабатываемых данных.
• Автоматизация труда позитивно сказывается на отношении к работе.
• Уже на на этапе подготовки (рассмотрении заявки от клиента/подготовки коммерческого предложения) можно показать серьезный объем работ, без существенного увеличения затрат времени.
Автор: Андрей Шувалов, shuvaloff.com
Комментарии