Инструменты · key

textanalyser SEO-анализ текста

Разбирает текст как SEO-специалист: считает слова и символы, частоту слов и словосочетаний, вхождения и плотность заданных ключевых фраз, заспамленность, соответствие закону Ципфа, долю стоп-слов и частей речи. По желанию проверяет уникальность и орфографию. Метод асинхронный: постановка возвращает report_id. То же в интерфейсе — текстовый анализатор.

Режим
асинхронный: report_id
Стоимость
10 лимитов; с проверкой уникальности — +50 за каждые начатые 1000 символов
Длина текста
анализируются первые 25 000 символов

Постановка задачи

POST /api/textanalyser

Текст и ключевые фразы передаются в теле формы, ключ — в query.

Параметры query и тело формы

  • text string обязательный
    Текст для анализа. Длиннее 25 000 символов — обрезается.
  • requests string
    Ключевые фразы, вхождения которых нужно посчитать, — по фразе на строку (или массив requests[]). Из фразы-элемента массива берутся первые 10 слов.
  • text_unique int
    Проверить уникальность. Включается самим наличием параметра — любое значение, даже 0; если проверка не нужна, не передавайте его.
  • text_errors int
    Проверить орфографию. Как и text_unique, включается наличием параметра.

Ответ

  • report_id int
    ID задачи для получения результата.

Получение результата

GET /api/textanalyser

Пока задача выполняется, приходит список с одним элементом [{"type": "in_progress", "code": 50, "message": "In progress"}], иногда с progress и time.

Параметры query

  • report_id int обязательный
    ID задачи из ответа на постановку.

Ответ

  • status, msg string
    success и completed.
  • time string
    Время готовности, Unix timestamp.
  • cost int
    Стоимость задачи в лимитах.
  • request object
    Параметры задачи: text, requests, text_unique, text_errors.
  • response.count_words int
    Слов в тексте.
  • response.count_symbols_with_spaces, count_symbols_without_spaces int
    Символов с пробелами и без.
  • response.words_frequency object
    Слово (лемма) → число употреблений.
  • response.find_phrases object
    По каждой фразе из requests: found, count — точные вхождения, morph — морфологические, density — плотность, %, sub_words — по отдельным словам.
  • response.words_spam float
    Заспамленность, %.
  • response.segments object
    words_1 — слова, words_n — словосочетания, stopwords_density — стоп-слова: частота и плотность, по убыванию частоты в двух колонках.
  • response.zipf float
    Соответствие закону Ципфа, 0–100.
  • response.zipf_words object
    По словам: ожидаемая (zipf) и фактическая (current) частота, совпадение в %, сколько добавить или убрать (recommend).
  • response.zipf_chart_data string
    JSON для графика Ципфа по 20 самым частым словам.
  • response.compressed_percent string
    Степень сжатия текста, % — косвенный признак повторов.
  • response.stopwords_percent float
    Доля стоп-слов, %.
  • response.average_words_length, average_sentences_length, variance_sentences_length float
    Средняя длина слова, предложения и разброс длины предложений.
  • response.speech_parts object
    Часть речи → доля, %.
  • response.unique object
    С text_unique: result.unique_value — уникальность, %, result.top10Urls — источники совпадений, raw_result — полный ответ проверки (с водностью, академической тошнотой, индексами читаемости).
  • response.text_errors object
    С text_errors: type — слово → тип ошибки, true_spell — слово → вариант исправления.

Ошибки

КодСообщениеКогда
-50 Not set Не передан text. Ответ — объект {"text": "Not set", "code": "-50"}.
-51 No requests data. Задача поставлена не методом POST. Ответ — список [{"type": "request", "code": -51, "message": …}].
-60 Too many tasks from one user. Try again later. Идут больше 5 задач этого метода.
-68, -80…-83 Not enough … limits Не хватает лимитов на задачу; приходит списком из одного элемента с available и need.
50 In progress Задача ещё выполняется (type: in_progress).
-4 Access denied report_id чужой или от другого инструмента (type: processing_error).
-104…-107, -125 Processing error / Limits run out / … Задача завершилась ошибкой — см. асинхронные задачи.
-1, -2 Access denied Ключ не передан (HTTP 404) или не найден (HTTP 403).

Формат ошибок

Ошибки этого метода приходят в двух видах: ошибки параметров — объектом с полем-виновником и code, ошибки выполнения и статус «в работе» — списком объектов {type, code, message}. Проверяйте оба варианта.

Что не проверяет

Метод не определяет геозависимость запросов — так он был ошибочно описан раньше. Геозависимость и локализацию проверяет geo.

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