Ключевое слово Cluster: Использование коэффициента Dice & Gephi • Антуан Бриссет

  1. 1-й шаг: получить ключевые слова и их объем поиска
  2. 2-й шаг: вычислить сходство между каждым ключевым словом
  3. Рассчитать коэффициент кости
  4. 3-й шаг: визуализация данных в Gephi
  5. Игра с настройками Gephi
  6. Экспортная визуализация

SEO блог / семантика

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

В предыдущем посте Я представил метод, основанный на алгоритме K-Means, для разделения набора ключевых слов. Хотя этот метод очень прост в обращении, его недостатком является необходимость заранее знать количество кластеров, которые вы хотите создать. Не отлично

Поэтому я продолжил свои исследования: сначала я приобрел работы Масси-Резы Амини и Эрика Гауссуера, Поиск информации - Приложения, модели и алгоритмы. Интеллектуальный анализ данных, принятие решений и большие данные которая посвящает очень интересную главу разделению данных, и параллельно я стал больше интересоваться Gephi. Я придумал конкретную методологию для визуализации набора ключевых слов, основанную на коэффициенте Dice , а также на Gephi и его встроенных алгоритмах кластеризации.

1-й шаг: получить ключевые слова и их объем поиска

Конечно, первый шаг будет состоять в том, чтобы получить как можно больше ключевых слов в теме, которую вы хотите изучить. Для этого я не буду вдаваться в подробности, использую планировщик ключевых слов, SemRush или любой другой инструмент, который может дать вам соответствие между ключевым словом и ежемесячным объемом поиска.

Отформатируйте файл следующим образом: 1-й столбец с меткой «Id», 2-й столбец с надписью «Label» и последний столбец с надписью «Weight». В первом столбце появятся ваши ключевые слова, во втором столбце снова ваши ключевые слова (простое копирование / вставка), а в третьем столбце - объемы поиска. Сохраните ваш файл в формате CSV как node.csv . Ваш файл "узлов" готов к импорту в Gephi. Мы вернемся к этому позже.

2-й шаг: вычислить сходство между каждым ключевым словом

Нормализовать ключевые слова

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

ключевые слова = ["seo consultant", "естественные ссылки", "seo expert", "естественные ссылки", "консультант по ссылкам", "SEO консультант", "SEO агентство", "SEO агентство", "SEO консультант", "SEO-эксперт", "SEO-агентство", "SEO-консультант", "SEO-агентство", "SEO-консультант", "SEO-агентство", "Seo SEO", "Эксперты по ссылкам", "Внештатный SEO", "Консультант" Интернет-ссылки "," эксперт по ссылкам "," консультант по естественным ссылкам "," консультант по естественным SEO "," SEO-консалтинг "," внештатный SEO "," специалист по SEO "," поисковая оптимизация для чайников "," SEO-ссылки " , "консультант по естественным ссылкам", "цитата по ссылкам", "лучшая SEO компания", "эксперт по естественным SEO"]

Первый шаг - превратить каждую ключевую фразу в токены. Вот как я это делаю: я вырезаю каждую строку символов, как только нахожу пробел.

def get_tokens_from (string) tokens = string. конец разделенных ('') токенов

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

Приведенный ниже метод находит в базе данных для каждого токена связанную с ним лемму, затем сохраняет все в таблице и удаляет акценты и стоп-слова (для этих операций используются две очень простые функции: remove_accents_from и delete_stop_words_from, которые я не буду здесь подробно описывать).

def get_lemmatised_words_from (tokens) Keywords = Array. новые (0) токены. каждый делает | ш | begin word_str = $ client. escape (w) rows = $ client. запрос («ВЫБЕРИТЕ лемму, слово, категорию ИЗ лемм, ГДЕ слово = = # # word_str}» СОБИРАЙТЕ utf8_bin AND category = '# {w. category}' LIMIT 1 "), если строки. размер> 0 ключевых слов << remove_accents_from (rows.map {| row | row ["lemma"]} first) else ключевые слова << remove_accents_from (word_str) end rescue => e ставит "# {w} => # {e} «конец следующего конца delete_stop_words_from (ключевые слова) конец

Рассчитать коэффициент кости

Теперь мы можем перейти к первому этапу разбиения. Как объяснил в книге Масси-Реза Амини и Эрика Гауссуера В любой работе с разделами первым шагом является выбор «меры сходства» между документами. В этой книге представлено несколько показателей сходства, в том числе коэффициент Костей , который я сохранил для анализа. Он довольно близок к индексу Жакара и рассчитывается путем деления двойного пересечения двух множеств на объединение этих двух множеств.

Приведенный ниже метод проверяет каждое ключевое слово, вычисляет их сходство по одному через коэффициент Dice и сохраняет результаты в таблице.

def get_results_from (data) results = Array. новые (0) данные. каждый делает | k, v | данные. DUP. каждый делает | кб, вб | кости = 2 * (v & vb). сосчитать. to_f / (v. count + vb. count) dice = dice. раунд (2) результаты << [k, kb, dice] конец конец результаты конец

Осталось только создать файл edge.csv , который укажет Gephi степень «притяжения» между каждым узлом.

def make_edges_csv_file_from (массив) CSV. open ("./edges.csv", "wb", {: col_sep => ";"}) do | CSV | csv << ["source", "target", "weight"] массив. каждый делает | ряд | csv << [строка [0], строка [1], строка [2]] конец конец конец

И теперь у нас теперь есть все необходимые данные, давайте перейдем к использованию Gephi! Для тех, кто заинтересован, полный код здесь: https://gist.github.com/ABrisset/661a87fb11a16807cf4ae984e7df8c13 ,

3-й шаг: визуализация данных в Gephi

Импортировать данные

Откройте Gephi, нажмите «Файл> Новый проект», затем перейдите в «Лабораторию данных» и нажмите «Импортировать электронную таблицу».

Иди ищи свой файл edge.csv . Именно он скажет Гефи, какова степень притяжения между каждой парой слов. Выберите «Как таблицу ссылок», выберите правильный разделитель и нажмите «Далее». В следующем окне выберите «Создать отсутствующие узлы» и нажмите «Готово».

В следующем окне выберите «Создать отсутствующие узлы» и нажмите «Готово»

Затем повторите ту же операцию, но на этот раз для узлов. Вы должны выбрать «Как таблицу узлов», затем в следующем окне ввести «Целое число» в качестве типа данных для поля «Вес» и не снимать флажок «Принудительные узлы должны быть новыми узлами». ,

Благодаря столбцу «Id» файла вашего узла Gephi может определить, какие узлы находятся в ссылках «Источник» и «Цель».

Игра с настройками Gephi

Последний шаг - настроить узлы и ссылки в соответствии с нашей целью кластеризации. Увидимся в «Обзор».

Сначала запустите алгоритм «Модульность» через правую панель. Этот позволяет идентифицировать сообщества в структуре графа. Больше информации здесь , Затем на панели слева нажмите «Раздел», затем «Узлы» и выберите «Класс модульности». Было найдено три разных кластера: узлы окрашены в соответствии с их «сообществом» привязанности.

Было найдено три разных кластера: узлы окрашены в соответствии с их «сообществом» привязанности

Перейдите на вкладку «Рейтинг», выберите «Узлы», а в разделе «Размер / вес» выберите «Вес»: узлы теперь пропорциональны объему поиска. Вы можете продолжить таким же образом для размера меток.

Вы можете продолжить таким же образом для размера меток

Осталось только добавить немного пространственности. Для этого воспользуемся Force Atlas 2 с параметрами ниже.

Для этого воспользуемся Force Atlas 2 с параметрами ниже

Экспортная визуализация

Пусть сила Атласа повернется на несколько мгновений. Направление теперь вкладка «Визуализация». Вы должны получить визуализацию ниже, с 3 кластерами:

  • ключевые слова вокруг "SEO" + "сайт"
  • ключевые слова вокруг "SEO"
  • ключевые слова вокруг "SEO" + "агентство", "натуральный" и т. д.

Совет: откройте изображение в новой вкладке и загрузите расширение Chrome SVG Navigator для увеличения;)

Что вы думаете об этой визуализации? Со своей стороны, я считаю, что это хороший способ разобраться с темой и быстро определить приоритетные проекты SEO, то есть семантические территории, на которых можно сконцентрировать свои усилия.

Я думаю, однако, что мы могли бы получить более детальную детализацию, сравнивая n-граммы между ними, а не только слова. Следовать;)

комментарии предоставлены