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

Эта новая серия статей посвящена работе с LLM для масштабирования ваших задач SEO. Мы надеемся помочь вам интегрировать искусственный интеллект в SEO, чтобы вы могли повысить свои навыки.

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

После этого пора напрячь свои “искусственные знания об искусственном интеллект” научившись использовать встроенные тексты, чтобы найти каннибализацию ключевых слов.

Мы начнем с текстовых вставок OpenAI’ и сравним их.

<таблица style="width: 100%;"> <тела>

Модель Размерность Цены Примечания text-embedding-ada-002 1536 $0,10 за 1 млн токенов Прекрасно подходит для большинства случаев использования. text-embedding-3-small 1536 $0,002 за 1 млн токенов Быстрее и дешевле, но менее точно text-embedding-3-large 3072 $0,13 за 1 млн токенов Точнее для сложных задач, связанных с длинным текстом, медленнее

(*токены можно рассматривать как слова слова.)

Но прежде чем мы начнем, вам нужно установить Python и Jupyter на вашем компьютере.

Jupyter — это веб-инструмент для профессионалов и исследователей. Это позволяет выполнять сложный анализ данных и разработку модели машинного обучения с помощью любого языка программирования.

Не волнуйтесь – это очень легко и занимает немного времени, чтобы завершить установку. И помните, что ChatGPT — ваш друг, когда речь идет о программировании.

Кратко:

  • Загрузите и установите Python.
  • Откройте командную строку Windows или терминал на Mac.
  • Введите эти команды pip install jupyterlab и pip install notebook
  • Запустите Jupiter этой командой: jupyter lab

Мы будем использовать Jupyter для экспериментов с вставкой текста; вы увидите, как весело с ним работать!

Но перед тем, как мы начнем, вы должны зарегистрироваться в OpenAI’s API и настроить выставление счетов, пополнив свой баланс.

Find Keyword Cannibalization Using OpenAI's Text Embeddings with Examples

Открыть настройки оплаты AI Api

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

Потом получите ключи API в Dashboard > Ключи API, которые следует хранить частными и никогда не публиковать их публично.

Find Keyword Cannibalization Using OpenAI's Text Embeddings with Examples

ключи API OpenAI

Теперь у вас есть все необходимые инструменты, чтобы начать играть со вставками.

  • Откройте командный терминал компьютера и введите jupyter lab.
  • Вы должны увидеть что-то вроде изображения ниже в вашем браузере.
  • Нажмите Python 3 в Notebook.

Find Keyword Cannibalization Using OpenAI's Text Embeddings with Examples

jupyter lab

В открывшемся окне вы напишете свой код.

Как небольшая задача, давайте сгруппируем похожие URL-адреса из CSV. Образец CSV имеет два столбца: URL-адрес и заголовок. Задача нашего сценария состоит в том, чтобы группировать URL-адреса с похожими семантическими значениями на основе названия, чтобы мы могли объединить эти страницы в одну и исправить проблемы каннибализации ключевых слов.

Вот шаги, которые вам нужно выполнить:

Установите необходимые библиотеки Python с помощью следующих команд в терминале вашего ПК (или в ноутбуке Jupyter)

pip установить pandas openai scikit-learn numpy unidecode

&ls;openai’ библиотека нужна для взаимодействия с OpenAI API, чтобы получить встраивание, и ‘pandas’ используется для обработки данных и операций с файлами CSV.

Приложение ‘scikit-learn’ библиотека необходима для вычисления косинусного подобия, а ‘numpy’ необходим для числовых операций и обработки массивов. Наконец, unidecode используется для очистки текста.

Затем загрузите образец листа как CSV, переименуйте файл на pages.csv и загрузите его в папку Jupyter, где находится ваш сценарий.

Установите для своего ключа API OpenAI ключ, который вы получили на шаге выше, и скопируйте и вставьте следующий код в блокнот.

Запустите код, нажав значок треугольника воспроизведения в верхней части блокнота.

В задании каннибализации ключевого слова мы используем порог подобия 0,9, что означает, что если косинус подобия меньше 0,9, мы будем считать статьи разными. Чтобы визуализировать это в упрощенном двухмерном пространстве, он будет выглядеть как два вектора с углом примерно 25 градусов между ними.

Find Keyword Cannibalization Using OpenAI's Text Embeddings with Examples

В вашем случае вы можете использовать другое пороговое значение, например 0,85 (примерно 31 градус между ними), и запустить его на выборке ваших данных, чтобы оценить результаты и общее качество совпадений. Если он неудовлетворительный, вы можете увеличить порог, чтобы сделать его более строгим для лучшей точности.

Вы можете установить ‘matplotlib’ через терминал.

pip установить matplotlib

И используйте приведенный ниже код Python в отдельном блокноте Jupyter, чтобы самостоятельно визуализировать подобия косинусов в двумерном пространстве. Попробуй это; это весело!

импортировать matplotlib.pyplot как plt импортировать numpy как np # Определите угол косинусного сходства 0,9. Измените желаемое значение. тета = np.arccos(0,9) # Определите векторы u = np.array([1, 0]) v = np.array([np.cos(тета), np.sin(тета)]) # Определите матрицу поворота на 45 градусов матрица_вращение = np.array([ [np.cos(np.pi/4), -np.sin(np.pi/4)], [np.sin(np.pi/4), np.cos(np.pi/4)] ]) # Применить вращение к обоим векторам u_rotated = np.dot(rotation_matrix, u) v_rotated = np.dot(rotation_matrix, v) # Построение векторов plt.figure() plt.quiver(0, 0, u_rotated[0], u_rotated[1], angles='xy', scale_units='xy', scale=1, color= 'r') plt.quiver(0, 0, v_rotated[0], v_rotated[1], angles='xy', scale_units='xy', scale=1, color= 'b') # Установка ограничений графика только на положительные диапазоны plt.xlim(0, 1,5) plt.ylim(0, 1,5) # Добавление меток и сетки plt.xlabel('ось X') plt.ylabel('Ось Y') plt.grid(Правда) plt.title('Визуализация векторов с косинусным подобием 0,9') # Показать сюжет plt.show()

Я обычно использую 0,9 и выше для выявления проблем каннибализации ключевых слов, но вам может понадобиться установить значение 0,5, когда вы имеете дело с перенаправлениями старых статей, поскольку старые статьи могут не иметь почти идентичных статей, которые являются более свежими, но частично близкими .

Также может быть лучше иметь мета-описание, объединенное с заголовком в случае перенаправления, в дополнение к заголовку.

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

Теперь давайте просмотрим результаты с тремя моделями, упомянутыми выше, и увидим, как они смогли определить близкие статьи из нашей выборки данных из статей Search Engine Journal&rsquo.< /p>

Find Keyword Cannibalization Using OpenAI's Text Embeddings with Examples

Образец данных

Из списка мы уже видим, что 2-я и 4-я статьи охватывают ту же тему ‘мета-тегов.’ Статьи в 5-й и 7-й строках почти одинаковы – обсуждение важности тегов H1 в SEO – и могут быть объединены.

Статья в 3-й строке не имеет никакого сходства с какой-либо из статей в списке, но содержит такие общие слова, как “Тег” или “SEO.”

Статья в 6-й строке снова касается H1, но не совсем так, как важность H1 для SEO. Он представляет мнение Google относительно того, должны ли они отвечать.

Статьи в 8-й и 9-й строках довольно близки, но все же разные; их можно комбинировать.

встраивание текста-ada-002

Используя ‘text-embedding-ada-002,’ мы точно нашли 2-й и 4-й статьи с косинусным подобием 0,92 и 5-й и 7-й статьи с подобием 0,91.

Find Keyword Cannibalization Using OpenAI's Text Embeddings with Examples

Снимок экрана из журнала Jupyter, показывающий косинус

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

Find Keyword Cannibalization Using OpenAI's Text Embeddings with Examples

Исходящий лист с сгруппированными URL-адресами

Для 2-го и 3-го статей, которые имеют общие слова “Тег” и “SEO” но не связаны, косинусное сходство составляло 0,86. Это показывает, почему необходим высокий порог сходства 0,9 или больше. Если мы установим значение 0,85, это будет полно ложных срабатываний и может предложить объединение несвязанных статей.

текст-встраивание-3-маленький

Используя ‘text-embedding-3-small,’ довольно странно, что он не нашел никаких совпадений за нашим порогом сходства 0,9 или выше.

а для 5-го и 7-го статей с сходством 0,77.

Чтобы лучше понять эту модель путем экспериментов, я добавил несколько измененную версию 1-й строки из 15’15’ по сравнению с ’14’ к образцу.

<ол>

  • “14 важнейших мета- и HTML-тегов, которые вам нужно знать для SEO”
  • “15 важнейших мета- и HTML-тегов, которые вам нужно знать для SEO”
  • Find Keyword Cannibalization Using OpenAI's Text Embeddings with Examples

    Пример, показывающий результаты text-embedding-3-small

    Напротив, ‘text-embedding-ada-002’ дало 0,98 косинусного сходства между этими версиями.

    <тела>

    Здесь мы видим, что эта модель не очень хорошо подходит для сравнения заголовков.

    текст-встраивание-3-большой

    Размерность этой модели составляет 3072, что вдвое больше, чем у ‘text-embedding-3-small’ и ‘text-embedding-ada-002′, с размерностью 1536.

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

    Однако это дало косинусное сходство 2-го и 4-го статей 0,70, а 5-го и 7-го статей — 0,75.

    Я проверил это еще раз с несколько измененными версиями первой статьи из ’15’ по сравнению с ’14’ и без ‘Важнейших’ в заголовке.

    <ол>

  • “14 важнейших мета- и HTML-тегов, которые вам нужно знать для SEO”
  • “15 важнейших мета- и HTML-тегов, которые вам нужно знать для SEO”
  • “14 мета- и HTML-тегов, которые вам нужно знать для SEO”
  • <таблица style="border-collapse: collapse; width: 100%;"> <тела>

    Итак, мы видим, что ‘text-embedding-3-large’ является более низким по сравнению с ‘text-embedding-ada-002’ когда мы вычисляем косинусное сходство между заголовками.

    Я хочу заметить, что точность ‘text-embedding-3-large’ увеличивается вместе с длиной текста, но ‘text-embedding-ada-002’ все еще работает лучше в целом.

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

    Наилучший способ определить, улучшает ли удаление стоп-слов точность для вашей конкретной задачи и набора данных, это эмпирически протестировать оба подхода и сравнить результаты.

    Вывод

    Благодаря этим примерам вы научились работать с моделями встраивания OpenAI’ и уже можете выполнять широкий спектр задач.

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

    Обратите внимание, что код, который мы имеем в этой статье, не является оптимальным для больших наборов данных, поскольку вам нужно создавать вставление текста статей всякий раз, когда происходит изменение в вашем наборе данных, чтобы сравнить его с другими строками.< /p>

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

    Название 1 Заголовок 2 Косинус подобия
    14 Важнейшие мета- и HTML-теги, которые вам нужно знать для SEO 15 Важнейшие мета- и HTML-теги, которые вам нужно знать для SEO 0,92
    14 Важнейшие мета- и HTML-теги, которые вам нужно знать для SEO Мета-теги: что вам нужно знать для SEO 0,76
    Название 1 Название 2 Косинус подобия
    14 Важнейшие мета- и HTML-теги, которые вам нужно знать для SEO 15 Важнейшие мета- и HTML-теги, которые вам нужно знать для SEO 0,95
    14 важнейших мета- и HTML-тегов, которые вам нужно знать для SEO 14 Важнейшие мета- и HTML-теги, которые вам нужно знать для SEO 0,93
    14 Важнейшие мета- и HTML-теги, которые вам нужно знать для SEO Мета-теги: что вам нужно знать для SEO 0,70
    15 Важнейших мета- и HTML-тегов, которые вам нужно знать для SEO 14 Важнейшее  Мета- и HTML-теги, которые вам нужно знать для SEO 0,86