Комплексный маркетинг сайта: продвижение сайта, контекстная реклама, соц. сети, аналитика. От 15.000 рублей в месяц.
Главная » Полезные статьи » Раскрутка сайта » Делим большое семантическое ядро на темы (регулярные выражения)

Делим большое семантическое ядро на темы (регулярные выражения)

Допустим, у нас есть большой экселевский файл, в котором 1000+ строк с ключевыми словами. Может быть, таких строк 20.000. Эта табличка может быть собрана из Вордстата, либо комплексно через Key Collector, либо быть импортирована из "поисковых запросов" за длительный период времени в Метрике или Google Analytics.

Цель - выбрать из этой таблицы все важные используемые ключевые слова.

Конечно, все точные вхождения слов мы использовать на сайте не сможем (если их тысячи), это будет жёсткий переспам. Но, как минимум, мы можем выделить общеупортебляемые отдельные слова и выражения, которые необходимо занести в шаблон сайта, либо использовать на каждой странице непосредственно в контенте, либо использовать в каком-то разделе на каждой подстранице, либо.... Короче, у нас есть, допустим, 5000 слов, с которыми нужно сделать что-то полезное.

Если этого не сделать, то можно забыть написать кроме "московская область" ещё и "мо", либо "московская обл" и т.п. И ведь всё это ищут, и вордстат (+статистика сайта) - яркий тому пример.

Итак, берём нашу таблицу

Сразу оговорюсь. Мы сразу забиваем на частотность слов. Частотность это великолепно, хотелось бы её отслеживать, но это реально усложнит работу. Поэтому просто откидываем этот вопрос.

Переносим столбик со словами в notepad++

Теперь мы будем долго и нудно делать 3 вещи

1. Убирать целиком строки, в которым есть то, что нам не нужно, например, английские буквы, либо спецсимволы.

2. Убирать из строк ненужные слова, предлоги, местоимения и др., постепенно уменьшая общий вес нашего файла.

3. Убирать пустые строки, а также мусорные строки, в которых все слова уже вырезаны, и осталась либо пустота, либо всякие предлоги, цифры и другой мусор.

Итак, начнём

В Notepad нажимаем ctrl+f, нажимаем вкладку "Заменить", в первую строчку ставим вот эту строку:

^[^\r\n]*[a-zA-Z]+[^\r\n]*$

Ниже ставим галочку "регулярные выражения".

Справа жмём "заменить всё". Из таблицы автоматически удаляются все строки с английскими буквами (на данном сайта они нам 100% не нужны).

На этом этапе у меня убралось: 35 строк, осталось: 4921 строка.

Сразу меняем на пробел все символы кроме букв, цифр, дефисов и пробелов.

[^\w\d\s\-]

Предлоги

Предлоги бывают между словами, а также после предыдущих операций (или по ошибке) могут быть в начале или в конце строки. Меняем на пробел.

(^| )\s*(с|в|под|из|для|по|на|и|без|что|чем|как)\s*($| )

Лайфхак. Макрос 1. Разовый. Запускаем сразу как только скопировали текст.

Макрос 1 и Макрос 2 можно скачать в одном файле и использовать в Notepad++. Для этого "C:\Program Files\Notepad++\shortcuts.xml" вот это меняем на вот это. Либо просто добавляем блок макросов из файла в свой файл макросов.

А. Меняем на пробел все символы кроме букв, цифр, пробела и дефиса.

[^\w\d\s\-]

Заменяем на пробел.

Б. Удаляем строки с английскими буквами

^[^\r\n]*[a-zA-Z]+[^\r\n]*$

Заменяем на ничто.

В. Меняем на пробелы все предлоги

(^| )\s*(с|в|под|из|для|по|на|и|без|что|чем|как)\s*($| )

Заменяем на пробел.

Лайфхак. Макрос 2. Периодический

Запускаем в процессе работы так часто как хочется, чтобы код был красивее

А. На месте удалённых слов возникают двойные пробелы. Заменяем их все на один пробел.

( )+

Б. Пробелы также возникают в начале строки, в конце строки. Заменяем их на ничто.

(^ )|( $)

В. Удалить пустые строки, в которых могут быть пробелы и tab. Меняем их на ничто.

^\s*$\r\n

Ещё раз повторюсь! Пункты в макросах можно и не делать вручную. Качайте файл, заменяйте на оригинальный, и после перезапуска программы макросы появятся в разделе "Макросы".

Теперь можем приступить к основной долгой части работы

Любое слово может быть либо в начале строки, либо быть в середине строки после пробела. После любого слова стоит или пробел или конец строки.

Можно использовать регулярное выражение для того, чтобы убрать любое слово из текста.

(^| )слово($| )

В таком виде удаляется как слово, так и пробел до и\или после него. Слово меняется на пробел.

Окончания

Окончания у слов могут быть разные: мусор, мусора, мусорный, мусорить.

При сборе слов нам важно сохранить прилагательные ("мусорный"), глаголы ("мусорить") и существительные ("мусор"). Причастя, деепричастия, наречия и прочее - не используем.

В итоге в нашей окончательной табличке можно указать все три слова: мусор, мусорить, мусорный. Второй вариант - указать слово без окончания, но с указанием на то, что оно может быть (а может и не быть). Записываем это слово через регулярное выражение: мусор\w*

"Мусор" - это корень, "\w" - это обозначение любой буквы, "*" - буква встречается любое количестов раз от 0 до бесконечности.

Подставим это слово в нашу прошлую регулярку. Получается вот что:

(^| )мусор\w*($| )

В поле "заменить на" обязательно ставим пробел.

Жмём "заменить всё". За долю секунды происходит более 2000 автозамен, и получилось вот что:

Слово "мусор\w*" выписываем в отдельный файл. Позже нам просто нужно будет догадаться использовать все три формы слова.

Обрабатываем дальше

Убираю слова "вывоз\w*", "контейнер\w*" и уже даже на этом этапе получается следующая картина.

Видно, что начали появляться пустые строки, а количество слов, в общем, сильно уменьшилось.

С цифрами поступаем так же

(^| )8\w*($| )

Также, в конкретно моём случае, я убираю цифры 20, 27. Ещё убираю м3, м 3, куб\w*, москв\w*, москов\w*, област\w*.

Убираю "цена, цены" без окончания, потому что в выбору может попасть какое-нибудь важное слово, вроде "ценный", и про него я точно забуду тогда.

Получаем вот такую красивую картинку.

Ещё пару частов занимаемся обработкой

...и в итоге получаем примерно это:

Во всех статьях в коде заменены:

[ на [

{ на {

< на &123;

Звоните +7 (812) 914-41-56, ответим на вопросы на тему работы с MODX Evolution или комплексного маркетинга.

Заказать эту или любую другую услугу вы можете на странице контактов.