textanalyser SEO-анализ текста
Разбирает текст как SEO-специалист: считает слова и символы, частоту слов и словосочетаний, вхождения и плотность заданных ключевых фраз, заспамленность, соответствие закону Ципфа, долю стоп-слов и частей речи. По желанию проверяет уникальность и орфографию. Метод асинхронный: постановка возвращает report_id. То же в интерфейсе — текстовый анализатор.
- Режим
- асинхронный:
report_id - Стоимость
- 10 лимитов; с проверкой уникальности — +50 за каждые начатые 1000 символов
- Длина текста
- анализируются первые 25 000 символов
Постановка задачи
/api/textanalyser
Текст и ключевые фразы передаются в теле формы, ключ — в query.
Параметры query и тело формы
-
textstring обязательныйТекст для анализа. Длиннее 25 000 символов — обрезается. -
requestsstringКлючевые фразы, вхождения которых нужно посчитать, — по фразе на строку (или массивrequests[]). Из фразы-элемента массива берутся первые 10 слов. -
text_uniqueintПроверить уникальность. Включается самим наличием параметра — любое значение, даже0; если проверка не нужна, не передавайте его. -
text_errorsintПроверить орфографию. Как иtext_unique, включается наличием параметра.
Ответ
-
report_idintID задачи для получения результата.
Получение результата
/api/textanalyser
Пока задача выполняется, приходит список с одним элементом [{"type": "in_progress", "code": 50, "message": "In progress"}], иногда с progress и time.
Параметры query
-
report_idint обязательныйID задачи из ответа на постановку.
Ответ
-
status, msgstringsuccessиcompleted. -
timestringВремя готовности, Unix timestamp. -
costintСтоимость задачи в лимитах. -
requestobjectПараметры задачи:text,requests,text_unique,text_errors. -
response.count_wordsintСлов в тексте. -
response.count_symbols_with_spaces, count_symbols_without_spacesintСимволов с пробелами и без. -
response.words_frequencyobjectСлово (лемма) → число употреблений. -
response.find_phrasesobjectПо каждой фразе изrequests:found,count— точные вхождения,morph— морфологические,density— плотность, %,sub_words— по отдельным словам. -
response.words_spamfloatЗаспамленность, %. -
response.segmentsobjectwords_1— слова,words_n— словосочетания,stopwords_density— стоп-слова: частота и плотность, по убыванию частоты в двух колонках. -
response.zipffloatСоответствие закону Ципфа, 0–100. -
response.zipf_wordsobjectПо словам: ожидаемая (zipf) и фактическая (current) частота, совпадение в %, сколько добавить или убрать (recommend). -
response.zipf_chart_datastringJSON для графика Ципфа по 20 самым частым словам. -
response.compressed_percentstringСтепень сжатия текста, % — косвенный признак повторов. -
response.stopwords_percentfloatДоля стоп-слов, %. -
response.average_words_length, average_sentences_length, variance_sentences_lengthfloatСредняя длина слова, предложения и разброс длины предложений. -
response.speech_partsobjectЧасть речи → доля, %. -
response.uniqueobjectСtext_unique:result.unique_value— уникальность, %,result.top10Urls— источники совпадений,raw_result— полный ответ проверки (с водностью, академической тошнотой, индексами читаемости). -
response.text_errorsobjectС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.