Api проверка текста на ошибки

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

Что умеет API?

  • Проверка грамматики
  • Проверка орфографии
  • Автокоррекция
  • Читабельность
  • Анализ текста
  • Определение языка
  • Суммаризация текста
  • Определение ключевых слов

Документация для Postman

Вы можете скачать файл документации для Postman или других программ отладки HTTP-запросов. В Postman можно задать ключ сразу для всех запросов во вкладке Variables в настройках коллекции..

Download TextGears.postman.json

С чего начать

Все просто. API доступно для обычных запросов по протоколам HTTP и HTTPS.
Формат выходных данных — JSON.
Все запросы делаются к серверу api.textgears.com

Чтобы ускорить доступ из разных уголков мира мы расположили сервера
в 3 странах: США, Эстония и Сингапур. При отправке запроса на api.textgears.com
будет выбрал ближайший кластер. Но вы можете явно делать запросы к ближайшему к вам кластеру
чтобы точно уменьшить задержку получения ответа.

https://eu.api.textgears.com – Europe
https://us.api.textgears.com – America
https://sg.api.textgears.com – Asia

Все эндпойнты API — это независимые кластеры серверов.
Мы гарантируем работоспобосность каждого из них на уровне 99.9%.
Если это кажется вам недостаточным, вы можете менять кластер при возникновении ошибки подключения.

  • Javascript

                                                    
import textgears from 'textgears-api';

const textgearsApi = textgears('YOUR_KEY', {language: 'en-US'});
textgearsApi.checkGrammar('I is a engineer')
    .then((data) => {
        for (const error of data.errors) {
            console.log('Error: %s. Suggestions: %s', error.bad, error.better.join(', '));
        }
    })
    .catch((err) => {});
                                                    
                                                


Javascript library

Если вы реализовали библиотеку для работы с API на другом языке
или для другого фреймворка,
пришлите нам ссылку
на GitHub или GitLab
— мы с удовольствием ее опубликуем.

Поддерживаемые языки

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

Поддерживаемые диалекты (передаеются в параметре language): en-US, en-GB, en-ZA, en-AU, en-NZ, fr-FR, de-DE, de-AT, de-CH, pt-PT, pt-BR, it-IT, ru-RU, ar-AR, es-ES, ja-JP, zh-CN, el-GR

Авторизация и передача параметров

Авторизация запроса происходит посредством передачи вашего ключа
среди прочих параметров запроса одним из перечисленных способов:

  • POST parameter key
  • GET parameter key

    ?key=YOURKEY
  • Json-request

    {
        "key": "YOURKEY",
        // Other params
    }
  • HTTP Header

    Authorization: Basic YOURKEY

    Где YOURKEY — ваш ключ.

Коды ошибок

В случае ошибки параметр status будет false

{
    status : false,
    error_code : 600,  // API error code
    description : "Invalid license key. Go to https://textgears.com/signup.php to get one"
}
  • 600 — Некорректный ключ
  • 606 — Неподдерживаемый язык
  • 607 — Превышено разрешенное количество запросов
  • 500 — Неизвестная внутренняя ошибка сервиса
  • 501 — Длина текста превышает ограничение тарифа

API проверки текста

Проверка грамматики текста

https://api.textgears.com/grammar

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

Параметры запроса
Параметр Пример Описание
text Текст в кодировке UTF-8. Лучше отправлять голый текст без HTML-тегов с некорректных UTF-8 символов. Мавсимальная длина ограничена параметрами вашего тарифного плана.
language Код языка. Необязательный параметр, значение по-умолчанию en-US. Список поддерживаемых кодов
whitelist Необязательный параметр.
Массив слов, которые не нужно считать ошибками.
dictionary_id Необязательный параметр.
id словаря с кастомными правилами проверки.
Создание и редактирование словарей.
ai true, false, 1, 0. Использовать TextGears AI для улучшения качества анализа текста.
Важно! Работает не для всех языков. Запросы AI считаются отдельно, обратите внимание на их количество для каждого тарифа.
key Ваш API-ключ. Нет ключа? Получить в один клик!.
Пример запроса
https://api.textgears.com/grammar?key=DEMO_KEY&text=I+is+an+engeneer!&language=en-GB

Отправить запрос
Результат будет показан ниже

Ответ сервера
                                            
{
    status : true, // false in case of checking error
    response : {
        errors : [  // array of errors info
            0 : {
                id : "e492411846",  // unique error id
                offset : 2,  // error text offset
                length : 2,  // error text length
                bad : "is",  // error text
                better : [  // array of suggestions
                    0 : "am"
                ],
                type : "grammar"
            },
            1 : {
                id : "e627659964",  // unique error id
                offset : 8,  // error text offset
                length : 8,  // error text length
                bad : "engeneer",  // error text
                better : [  // array of suggestions
                    0 : "engineer",
                    1 : "engender"
                ],
                type : "spelling"
            }
        ]
    }
}
                                            
                                        

Проверка орфографии текста

https://api.textgears.com/spelling

Метод проверяет текст по актуальному словарю на опечатки

Параметры запроса
Параметр Пример Описание
text Текст в кодировке UTF-8. Лучше отправлять голый текст без HTML-тегов с некорректных UTF-8 символов. Мавсимальная длина ограничена параметрами вашего тарифного плана.
language Код языка. Необязательный параметр, значение по-умолчанию en-US. Список поддерживаемых кодов
whitelist Необязательный параметр.
Массив слов, которые не нужно считать ошибками.
dictionary_id Необязательный параметр.
id словаря с кастомными правилами проверки.
Создание и редактирование словарей.
ai true, false, 1, 0. Использовать TextGears AI для улучшения качества анализа текста.
Важно! Работает не для всех языков. Запросы AI считаются отдельно, обратите внимание на их количество для каждого тарифа.
key Ваш API-ключ. Нет ключа? Получить в один клик!.
Пример запроса
https://api.textgears.com/spelling?key=DEMO_KEY&text=I+is+an+engeneer!&language=en-GB

Отправить запрос
Результат будет показан ниже

Ответ сервера
                                            
{
    status : true, // false in case of checking error
    response : {
        errors : [  // array of errors info
            0 : {
                id : "e627659964",  // unique error id
                offset : 8,  // error text offset
                length : 8,  // error text length
                bad : "engeneer",  // error text
                description: "Error description",
                better : [  // array of suggestions
                    0 : "engineer",
                    1 : "engender"
                ],
                type : "spelling"
            }
        ]
    }
}
                                            
                                        

Автокоррекция текста

https://api.textgears.com/correct

Есть два метода для автоматического исправления текста.
Метод correct заметно точнее, но относится к AI-запросам.

Важно!

В данный момент метод работает только для английского языка

Параметры запроса
https://api.textgears.com/suggest

Система проверки автоматически исправляет ошибки в тексте и предлогает продолжение последнего предложения.

Важно!

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

Параметры запроса
Параметр Пример Описание
text Текст в кодировке UTF-8. Лучше отправлять голый текст без HTML-тегов с некорректных UTF-8 символов. Мавсимальная длина ограничена параметрами вашего тарифного плана.
language Код языка. Необязательный параметр, значение по-умолчанию en-US. Список поддерживаемых кодов
key Ваш API-ключ. Нет ключа? Получить в один клик!.
Пример запроса
https://api.textgears.com/suggest?key=DEMO_KEY&text=I+is+an+engeneer!+My+na

Отправить запрос
Результат будет показан ниже

Ответ сервера
                                            
{
    status : true,  // false in case of checking error
    response : {
        corrected : "My name is Seth. My family",  // corrected text
        suggestions : [  // array of suggested text endings
            0 : {
                text : "My name is Seth. My family wishes",
                next_word : "wishes"
            },
            1 : {
                text : "My name is Seth. My family traditions",
                next_word : "traditions"
            },
            2 : {
                text : "My name is Seth. My family together",
                next_word : "together"
            },
            3 : {
                text : "My name is Seth. My family support",
                next_word : "support"
            },
            4 : {
                text : "My name is Seth. My family respectfully",
                next_word : "respectfully"
            }
        ]
    }
}
                                            
                                        

Читабельность текста

https://api.textgears.com/readability

Расчет читабельности (readability) текста по наиболее распространенным алгоритмам и их адаптациям
для большинства языков. Более подробно о метриках читабельности можно
прочитать нашу отдельную статью.

Важно!

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

Параметры запроса
Параметр Описание
text Текст в кодировке UTF-8. Лучше отправлять голый текст без HTML-тегов с некорректных UTF-8 символов. Мавсимальная длина ограничена параметрами вашего тарифного плана.
language Код языка. Необязательный параметр, значение по-умолчанию en-US. Список поддерживаемых кодов
key Ваш API-ключ. Нет ключа? Получить в один клик!.
Пример запроса
https://api.textgears.com/readability?key=DEMO_KEY&text=...

Отправить запрос
Результат будет показан ниже

Ответ сервера
                                            
{
    status : true,  // false in case of checking error
    response : {
        stats : {
            fleschKincaid : { // Flesch–Kincaid index (https://en.wikipedia.org/wiki/Flesch–Kincaid_readability_tests)
                readingEase : 53.4, // Index value
                grade : "10th to 12th grade", // Flesch–Kincaid grade
                interpretation : "Fairly difficult to read" // index value interpretation
            },
            gunningFog : 12.2, // https://en.wikipedia.org/wiki/Gunning_fog_index
            colemanLiau : 12, // https://en.wikipedia.org/wiki/Coleman–Liau_index
            SMOG : 12, // https://en.wikipedia.org/wiki/SMOG
            vocabularySize : {
                active : null, // How many words author uses every day
                passive : null // How many words author knows
            },
            emotion : { // text emotion classifier
                positive : 0.79,
                negative : 0.21
            },
            counters : {
                length : 1128,
                clearLength : 936,
                words : 187,
                sentences : 10
            }
        }
    }
}
                                            
                                        

Анализ текста

https://api.textgears.com/analyze

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

Важно!

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

Параметры запроса
Параметр Описание
text Текст в кодировке UTF-8. Лучше отправлять голый текст без HTML-тегов с некорректных UTF-8 символов. Мавсимальная длина ограничена параметрами вашего тарифного плана.
language Код языка. Необязательный параметр, значение по-умолчанию en-US. Список поддерживаемых кодов
whitelist Необязательный параметр.
Массив слов, которые не нужно считать ошибками.
dictionary_id Необязательный параметр.
id словаря с кастомными правилами проверки.
Создание и редактирование словарей.
ai true, false, 1, 0. Использовать TextGears AI для улучшения качества анализа текста.
Важно! Работает не для всех языков. Запросы AI считаются отдельно, обратите внимание на их количество для каждого тарифа.
key Ваш API-ключ. Нет ключа? Получить в один клик!.
Пример запроса
https://api.textgears.com/analyze?key=DEMO_KEY&text=...

Ответ сервера
                                            
{
    status : true, // false in case of checking error
    response : {
        grammar: {
            errors : [  // array of errors info
                0 : {
                    id : "e492411846",  // unique error id
                    offset : 2,  // error text offset
                    length : 2,  // error text length
                    description: "Error description",
                    bad : "is",  // error text
                    better : [  // array of suggestions
                        0 : "am"
                    ],
                    type : "grammar"
                },
                1 : {
                    id : "e627659964",  // unique error id
                    offset : 8,  // error text offset
                    length : 8,  // error text length
                    bad : "engeneer",  // error text
                    description: "Error description",
                    better : [  // array of suggestions
                        0 : "engineer",
                        1 : "engender"
                    ],
                    type : "spelling"
                }
            ],
        },
        stats: {
             fleschKincaid : { // Flesch–Kincaid index (https://en.wikipedia.org/wiki/Flesch–Kincaid_readability_tests)
                readingEase: 63.3, // Index value
                grade : "8th or 9th grade", // Flesch–Kincaid grade
                interpretation: "Plain English. Easily understood by 13- to 15-year-old students", // index value interpretation
             }
            gunningFog : 9.4, // https://en.wikipedia.org/wiki/Gunning_fog_index
            colemanLiau : 12, // https://en.wikipedia.org/wiki/Coleman–Liau_index
            SMOG : 6.5, // https://en.wikipedia.org/wiki/SMOG
            vocabularySize : {
                active: 5000, // How many words author uses every day
                passinve: 60000, // How many words author knows
            }
            emotion: { // text emotion classifier
                positive: 0.79, // probability
                negative: 0.21,
            }
        }
    }
}
                                            
                                        

Определение языка

https://api.textgears.com/detect

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

Параметры запроса
Параметр Описание
text Текст в кодировке UTF-8. Лучше отправлять голый текст без HTML-тегов с некорректных UTF-8 символов. Мавсимальная длина ограничена параметрами вашего тарифного плана.
key Ваш API-ключ. Нет ключа? Получить в один клик!.
Пример запроса
https://api.textgears.com/detect?key=DEMO_KEY&text=...

Отправить запрос
Результат будет показан ниже

Ответ сервера
                                            
{
    status : true, // false in case of checking error
    response : {
        language : "en", // null if language was not detected
        dialect : "en-GB", // language dialect suggestion
        probabilities : { // descending
            "en" : 0.95,
            "fr" : 0.61,
            "ge" : 0.60,
            "fi" : 0.51,
        }
    }
}
                                            
                                        

Суммаризация и извлечение ключевых слов

https://api.textgears.com/summarize
Параметры запроса
Параметр Описание
text Текст в кодировке UTF-8. Лучше отправлять голый текст без HTML-тегов с некорректных UTF-8 символов. Мавсимальная длина ограничена параметрами вашего тарифного плана.
language Код языка. Необязательный параметр, значение по-умолчанию en-US. Список поддерживаемых кодов
max_sentences Необязательный параметр. Максимальное количество предложений в результате
key Ваш API-ключ. Нет ключа? Получить в один клик!.
Пример запроса
https://api.textgears.com/summarize?key=DEMO_KEY&language=en-GB&text=...

Отправить запрос
Результат будет показан ниже

Ответ сервера
                                            
{
    status : true,  // false in case of checking error
    response : {
        keywords : [
            0 : "text",
            1 : "readability",
            2 : "english",
            3 : "printing",
            4 : "fewer",
            5 : "words",
            6 : "terms",
            7 : "higher",
            8 : "features",
            9 : "indexes"
        ],
        highlight : [ // Most important paragraph, starting with main sentence
            0 : "The two main factors of readability are the printing and linguistic features of the text.",
            1 : "In other words, pages containing simple and clear text get higher positions in the search results."
        ],
        summary : [ // Text summary sentences
            0 : "The two main factors of readability are the printing and linguistic features of the text.",
            1 : "The Flesch Kinkaid Score is the most popular way to measure the readability of English text.",
            2 : "It works on the principle of “the fewer words in the text, and the fewer syllables in them, the easier it is to perceive” and is most often used for checking essays in schools and universities."
        ]
    }
}
                                            
                                        

Admin API

Данные тарифной квоты

https://api.textgears.com/account/resourcequota

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

Параметры запроса

Статистика использования

https://api.textgears.com/account/usage

Получение статистики использования API вашим аккаунтом с разбивкой по днях

Параметры запроса

Создание и редактирование словарей

https://api.textgears.com/custom/createdictionary

Если вам нужна гибкая настройка проверки текста на ошибки, воспользуйтесь настройкой кастомных исключений. Это будет особенно удобно компаниям, работающим с текстами, изобилующими специальной лексикой. Отмечайте слова или словосочетания как «правильные» чтобы система перестала считать их ошибочными или наоборот – чтобы система находила ошибку при появлении заданных вами слов.
Кастомные правила проверки можно объединять в словари. Чтобы, например, разные функции вашего продукта использовали разный набор правил. Или чтобы каждый пользователь вашего продукта мог иметь свой собственный набор исключений.

Параметры запроса
Параметр Описание
id Id создаваемого словаря. Да, вы сами задаете удобный вам id. Строка до 64 символов. Это может быть числом, GUID или даже null.
Словарь с id === null будет словарем по умолчанию. В него попадают исключения, созданные без указания dictionary_id.
title Название словаря. Максимальная длина 500 символов.
key Ваш API-ключ. Нет ключа? Получить в один клик!.
https://api.textgears.com/custom/updatedictionary
Параметр Описание
id Id словаря. Числом, GUID или даже null.
title Название словаря. Максимальная длина 500 символов.
key Ваш API-ключ. Нет ключа? Получить в один клик!.
https://api.textgears.com/custom/listdictionaries
Параметр Описание
limit Максимальное количество записей в результате. Не больше 500.
offset Сколько записей пропускается при поиске.
key Ваш API-ключ. Нет ключа? Получить в один клик!.
https://api.textgears.com/custom/deletedictionary
Параметр Описание
id Id словаря. Числом, GUID или даже null
key Ваш API-ключ. Нет ключа? Получить в один клик!.

Добавить исключение

https://api.textgears.com/custom/addexception

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

Параметры запроса
Параметр Описание
text Слово или текст которые будут обрабатываться особым образом. Максимальная длина 500 симоволов.
type Тип исключения. Значения: 2 — считать text ошибкой, 1 — не считать text ошибкой.
lang Код языка текста. Исключение будет применяться только для текстов на таком же языке. Если передать значение en, будет применяться для всех диалектов английского, de — немецкого, и.т.д.
description Необязательный параметр. Текст описания исключения.
dictionary_id Необязательный параметр. Идентификатор кастомного «словаря» — группы исключений. Строка не более 64 символов или NULL. При анализе текста можно передавать id словаря для включения исключений конкретной группы.
suggestions Необязательный параметр.
Варианты исправления текста. Массив строк или строка, разделенная запятыми. Максимальное количество: 16. Параметр учитывается только для ошибок.
key Ваш API-ключ. Нет ключа? Получить в один клик!.
Пример запроса
https://api.textgears.com/custom/addexception?text=foobaring&type=2&lang=en-US&key=DEMO_KEY

Ответ сервера
                                            
{
    status : true,
    response : {
        id: 20, // New exception id
        text: "foobaring",
        type: 1,
        lang: "en-US",
        creation_time: "2023-06-08T19:20:10+0000",
        suggestions: [],
        update_time: null,
        description: null,
    },
}
                                            
                                        

Список исключений

https://api.textgears.com/custom/listexceptions

Вывод списка ранее добавленных слов-исключений

Параметры запроса
Параметр Описание
limit Максимальное количество записей в результате. Не больше 500.
offset Сколько записей, упорядоченных по тексту, пропускается при выводе. Используется для постраничного вывода.
dictionary_id Необязательный параметр.
id группы исключений (словаря). Для получения исключений из группы по умолчанию допустимо передавать null.
text Необязательный параметр.
Фильтр по тексту исключения.
type Необязательный параметр.
Фильтр по типу исключения.
lang Необязательный параметр.
Фильтр по языку.
key Ваш API-ключ. Нет ключа? Получить в один клик!.
Пример запроса
https://api.textgears.com/custom/addexception?text=foobaring&key=DEMO_KEY

Ответ сервера
                                            
{
    status : true,
    response : {
        exceptions : [
            {
                id: 20,
                text: "foobaring",
                type: 1,
                lang: "en-US",
                creation_time: "2023-06-08T19:20:10+0000",
                update_time: null,
                description: null,
            },
        ],
    },
}
                                            
                                        

Удалить исключение

https://api.textgears.com/custom/deleteexception

Удалить слово-исключение для проверки. Если попытаться удалить ранее удаленное, то ошибки не возникает

Параметры запроса
Параметр Описание
id ID исключения для удаления..
dictionary_id Идентификатор словаря. Если не задан или передан null будет использован словарь по умолчанию.
key Ваш API-ключ. Нет ключа? Получить в один клик!.
Пример запроса
https://api.textgears.com/custom/deleteexception?id=20&key=DEMO_KEY

Ответ сервера
                                            
{
    status : true,
    response : {}
}
                                            
                                        

API проверкиРуководство по использованию

Взаимодействие через POST-запросы

Адрес для запросов:


Добавление текста на проверку уникальности и получение уникального идентификатора текста (uid)


Входные параметры:

  • text — проверяемый текст на уникальность от 100 до 150000 символов (обязательный);
  • userkey — ваш персональный секретный ключ (обязательный);
  • exceptdomain — домены, которые вы хотите исключить из проверки. Домены разделяются пробелами или запятыми (необязательный);
  • excepturl — ссылки, которые вы хотите исключить из проверки. Ссылки разделяются пробелами или запятыми (необязательный);
  • visible — доступность результатов проверки другим пользователям. По-умолчанию — результаты проверки (https://text.ru/antiplagiat/{your_text_uid}) доступны только вашему аккаунту. Если вы хотите, чтобы результаты проверок были открыты, необходимо передать значение vis_on (необязательный);
  • copying — если вы не хотите, чтобы формировалась ссылка с визуальным оформлением результатов проверки https://text.ru/antiplagiat/{your_text_uid}, то необходимо передать значение noadd (необязательный);
  • callback — ваш URL (ссылка), на которую мы отправим POST-запрос с результатами проверки сразу же после её окончания. Подробности указаны ниже (необязательный).


Выходные параметры:

Если текст успешно добавился, возвращается один параметр:

  • text_uid — уникальный идентификатор текста. Используется при последующем получении результатов проверки.

В случае возникновения ошибки возвращаются следующие параметры:

  • error_code — код ошибки;
  • error_desc — описание ошибки.
$body = [
    'userkey' => '<USERKEY>',
    // Проверяемый текст
    'text' => '<TEXT>',
    // Ссылка, на которую нужно отправить результат проверки
    'callback' => 'https://your-site.com/callback',
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.text.ru/post');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));

$rawResponse = curl_exec($ch);

if (curl_errno($ch)) {
    throw new Exception('Ошибка curl: ' . curl_error($ch));
}

curl_close($ch);

$response = json_decode($rawResponse, true);

print_r($response); // ['text_uid' => '63c129651c171']

const axios = require('axios');

const client = axios.create({
    baseURL: 'https://api.text.ru'
});

const body = {
    userkey: '<USERKEY>',
    // Проверяемый текст
    text: '<TEXT>',
    // Ссылка, на которую нужно отправить результат проверки
    callback: 'https://your-site.com/callback'
};

client
    .post('/post', body)
    .then((response) => {
        console.log(response.data);
    })
    .catch((err) => {
        console.error(err);
    })
;

Получение результатов проверки текста


Входные параметры:

  • uid — уникальный идентификатор текста. Берется из метода addText (обязательный);
  • userkey — ваш персональный секретный ключ (обязательный);
  • jsonvisible — если вы хотите получить более детальную информацию о результатах проверки (дополнительные параметры смотрите ниже), то необходимо передать значение detail (необязательный).


Выходные параметры:

Если текст успешно проверен, возвращаются два параметра:

  • text_unique — уникальность текста в процентах с точностью до 2 знаков после запятой;
  • result_json — дополнительная информация о результатах проверки на уникальность в формате json. Структура json-ответа расшифрована ниже;
  • spell_check — (доступен с опцией jsonvisible) дополнительная информация о результатах проверки на правописание в формате json.
    Структура json-ответа расшифрована ниже;
  • seo_check — (доступен с опцией jsonvisible) дополнительная информация о результатах проверки на SEO-анализ в формате json.
    Структура json-ответа расшифрована ниже.

Если текст ещё не проверился или произошла ошибка при проверке, возвращаются следующие параметры:

  • error_code — код ошибки;
  • error_desc — описание ошибки.
$body = [
    'userkey' => '<USERKEY>',
    'uid' => '<UID>',
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.text.ru/post');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));

$rawResponse = curl_exec($ch);

if (curl_errno($ch)) {
    throw new Exception('Ошибка curl: ' . curl_error($ch));
}

curl_close($ch);

$response = json_decode($rawResponse, true);

print_r($response);

const axios = require('axios');

const client = axios.create({
    baseURL: 'https://api.text.ru'
});

const body = {
    userkey: '<USERKEY>',
    uid: '<UID>'
};

client
    .post('/post', body)
    .then((response) => {
        console.log(response.data);
    })
    .catch((err) => {
        console.error(err);
    })
;

Структура JSON-ответа параметра result_json

  • date_check — дата окончания проверки текста на сервере;
  • unique — уникальность текста в процентах, с точностью до 2 знаков после запятой;
  • urls — массив ссылок, для которых известно:

    • url — текст ссылки;
    • plagiat — процент совпадения текста по ссылке;
    • words — (доступен с опцией jsonvisible) номера позиций «совпадающих» слов в тексте (clear_text — см. ниже). Нумерация начинается с 0.
  • clear_text — (доступен с опцией jsonvisible) очищенный от служебных символов и знаков препинания ваш текст, состоящий из слов, разделенных через пробел.


Посмотреть пример JSON-ответа

{
«date_check»:»29.03.2017 14:46:49″,
«unique»:0,
«clear_text»:»Wikipedia was launched оn January 15 2001 by Jimmy Wаles and Larry Sanger 11 Sanger coined its name 12 13 a portmanteau of wiki notes 4 and encyclopedia Therе was only the English language version initially but it quickly developed similar versions in other languages which differ in content and in editing practices With 5 466 824 articles notes 5 the English Wikipedia is the largest of the more than 290 Wikipedia encyclopedias Overall Wikipedia consists of more than 40 million articles in more than 250 different languages 15 and as of February 2014 it had 18 billion page views and nearly 500 million unique visitors each month»,
«mixed_words»:»4 10 29″,
«urls»:[
{
«url»:»https://en.wikipedia.org/wiki/Wikipedia»,
«plagiat»:100,
«words»:»0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107″
}
]
}

Структура JSON-ответа параметра spell_check

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

Проверка на правописание гарантированно не может найти все ошибки. Мы постоянно работаем над улучшением алгоритма. С примерами его работы вы можете ознакомиться в бесплатной версии через форму на сайте.

Если проверка на правописание ещё не завершена, то параметр spell_check будет равен пустой строке.
По завершению проверки параметр spell_check примет json-представление массива, элементы которого состоят из:

  • error_type — тип ошибки (‘Орфография’, ‘Пунктуация’ и т.д.);
  • reason — детальное описание ошибки;
  • error_text — текст фрагмента, в котором обнаружилась ошибка;
  • replacements — массив с предлагаемыми вариантами замены (может быть пустым);
  • start — начальная позиция фрагмента, в котором найдена ошибка;
  • end — конечная позиция фрагмента, в котором найдена ошибка.


Посмотреть пример JSON-ответа

[
{
«error_type»:»Spelling»,
«replacements»:[
«milk»,
«mild»,
],
«reason»:»Spelling error found»,
«error_text»:»mildd»,
«start»:255,
«end»:272
},
{
«error_type»:»Capital letters»,
«replacements»:[
«Hello»
],
«reason»:»This sentence doesn’t start with a capital letter»,
«error_text»:»hello»,
«start»:276,
«end»:287
}
]

Структура JSON-ответа параметра seo_check

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

Если проверка на SEO-анализ ещё не завершена, то параметр seo_check будет равен пустой строке.
По завершению проверки параметр seo_check примет следующее json-представление:

  • count_chars_with_space — количество символов с пробелами;
  • count_chars_without_space — количество символов без пробелов;
  • count_words — количество слов в тексте;
  • water_percent — процент воды;
  • spam_percent — процент заспамленности;
  • mixed_words — номера позиций слов в тексте, у которых присутствуют символы из разных алфавитов и имеющих схожее написание. Нумерация начинается с 0.
  • list_keys — список ключей в тексте, отсортированных по частоте встречаемости:

    • key_title — текст ключа;
    • count — количество вхождений ключа в текст во всех формах.
  • list_keys_group — список ключей в тексте, отсортированных по числу значимых слов и сгруппированных по составу слов:

    • key_title — текст ключа;
    • count — количество вхождений ключа в текст во всех формах.
    • sub_keys — список подключей:
      • key_title — текст подключа;
      • count — количество вхождений подключа в текст во всех формах.


Посмотреть пример JSON-ответа

{
«count_chars_with_space»:620,
«count_chars_without_space»:545,
«count_words»:77,
«water_percent»:11,
«spam_percent»:38,
«mixed_words»:[8,11,47],
«list_keys»:[
{
«key_title»:»check»,
«count»:6
},
{
«key_title»:»text»,
«count»:5
},
{
«key_title»:»antiplagiat»,
«count»:3
},
{
«key_title»:»check text»,
«count»:3
}
],
«list_keys_group»:[
{
«key_title»:»check text»,
«count»:3,
«sub_keys»:[
{
«key_title»:»check»,
«count»:6
},
{
«key_title»:»text»,
«count»:5
}
]
},
{
«key_title»:»antiplagiat»,
«count»:3,
«sub_keys»:[]
},
{
«key_title»:»check»,
«count»:6,
«sub_keys»:[]
},
{
«key_title»:»text»,
«count»:5,
«sub_keys»:[]
},
]
}

Callback получение результатов проверки

Проверка текста на уникальность занимает определенное (заранее неизвестное) время. Если вы хотите получить уведомление о факте завершения (вместе с результатами) проверки вашего текста, то вы можете при добавлении текста на API в параметре callback указать адрес вашего скрипта, который обработает наш POST-запрос с результатами проверки текста.

  • Чтобы убедиться, что вы успешно получили результат, на вашей странице должно отобразиться ok и ничего более (echo «ok»;).
  • Максимальное число попыток отправки результатов проверки — 3.
  • В callback POST-запросе отправляются 4 параметра: uid, text_unique, json_result, spell_check. Структура json-ответа такая же, что и при ручном запросе результата (без атрибутов clear_text и words).
  • Если проверка на правописание закончится позже проверки на уникальность, то будет отправлено 2 callback-запроса по мере окончания проверок (во время первого запроса параметр spell_check будет равен пустой строке).
  • Получить результаты проверки на уникальность также можно и вручную.

Перечень возможных ошибок при проверке на уникальность

Код ошибки Описание ошибки Код ошибки Описание ошибки
110 Отсутствует проверяемый текст 146 Доступ ограничен
111 Проверяемый текст пустой 150 Шинглов не найдено. Возможно текст слишком короткий
112 Проверяемый текст слишком короткий 151 Ошибка сервера. Попробуйте позднее
113 Проверяемый текст слишком большой. Разбейте текст на несколько частей 160 Отсутствует проверяемый uid текста
120 Отсутствует пользовательский ключ 161 Uid текста пустой
121 Пользовательский ключ пустой 170 Отсутствует пользовательский ключ
140 Ошибка доступа на сервере. Попробуйте позднее 171 Пользовательский ключ пустой
141 Несуществующий пользовательский ключ 180 Текущая пара ключ-uid отсутствует в базе
142 Нехватка символов на балансе 181 Текст ещё не проверен
143 Ошибка при передаче параметров на сервере. Попробуйте позднее 182 Текст проверен с ошибками. Деньги будут возвращены.
144 Ошибка сервера. Попробуйте позднее 183 Ошибка сервера. Попробуйте позднее
145 Ошибка сервера. Попробуйте позднее 429 Исчерпан текущий лимит запросов. Попробуйте позже. *

* Разрешено добавлять не более 3 млн. символов в час на проверку. При превышении данного лимита будет возвращена ошибка с кодом 429. Лимит восстанавливается в начале каждого часа.

Получение остатка символов на балансе

Адрес для запроса: http://api.text.ru/account

POST-параметры запроса:

  • method — ‘get_packages_info‘ (обязательный);
  • userkey — ваш персональный секретный ключ (обязательный);

Результат запроса (в формате json):

  • size — суммарный остаток символов по всем пакетам;

Внимание! В целях безопасности, чтобы ваш IP-адрес не заблокировался, не рекомендуется обращаться к данному методу чаще 2 раз в минуту.

$body = [
    'userkey' => '<USERKEY>',
    'method' => 'get_packages_info',
];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.text.ru/account');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-type: application/json']);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));

$rawResponse = curl_exec($ch);

if (curl_errno($ch)) {
    throw new Exception('Ошибка curl: ' . curl_error($ch));
}

curl_close($ch);

$response = json_decode($rawResponse, true);

print_r($response); // ['size' => 1000]

const axios = require('axios');

const client = axios.create({
    baseURL: 'https://api.text.ru'
});

const body = {
    userkey: '<USERKEY>',
    method: 'get_packages_info'
};

client
    .post('/account', body)
    .then((response) => {
        console.log(response.data);
    })
    .catch((err) => {
        console.error(err);
    })
;

Опубликовано:

19 сентября 2013 в 20:33

13

3

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

Решение не является уникальным, и идеальным, но свою работу делает.

Для работы необходим доступ в интернет.

if MessageBox(CONFIRMATION_CAPTION; "Проверить орфографию?"; 'Да|Нет'; 'Да'; 'Нет') == 'Нет'
   Exit()
endif

// Коды ошибок 
Коды = Массив("Слова нет в словаре.";
       "Повтор слова.";
       "Неверное употребление прописных и строчных букв.";
       "Текст содержит слишком много ошибок. При этом приложение может отправить Яндекс.Спеллеру оставшийся непроверенным текст в следующем запросе.")

if not VarIsNull(Object.Текст)
     Текст = "text=" & ЗамПодстр(trim(Object.Текст); ' '; '+')
    
     // ссылка 
     URL = "http://speller.yandex.net/services/spellservice/checkTexts"
     
     FreeException()
     ExceptionsOff()
 
     XMLHttp = CreateObject("Microsoft.XMLHTTP")
     XMLHttp.Open("POST"; URL; FALSE)
     xmlhttp.setRequestHeader("Content-Type"; "application/x-www-form-urlencoded")
     XMLHttp.Send(Текст)
     ResponseXML = XMLHttp.ResponseXML()
    
     XMLDoc = CreateObject("MSXML.DOMDocument")
     XMLDoc.LoadXML(ResponseXML.xml)
    
     ValutesNode = XMLDoc.selectNodes("ArrayOfSpellResult/SpellResult/error")
     i = 0
     
     while i < ValutesNode.Length
         word = ValutesNode.item(i).selectNodes("word")
         s = ValutesNode.item(i).selectNodes("s")
         code = ValutesNode.item(i).selectNodes("@code").Item(0).NodeValue
                  
         Сообщение = word.item(0).Text & CR & Коды[code - 1] & CR & "Выберите вариант для замены:"
         Варианты = "Пропустить"
         
         
         // Может быть несколько вариантов замены
         q = 0
         while q < s.Length
             Варианты = s.item(q).Text & "|" & Варианты      
             q = q + 1
         endwhile
         
         Результат = MessageBox(ATTENTION_CAPTION; Сообщение; Варианты)
          
         if (Результат <<>> 'НЕУДАЧА: ESC') AND (Результат <<>> 'Пропустить') 
            Object.Текст = ЗамПодстр(Object.Текст; word.item(0).Text; Результат)
         endif 
                
         i = i+1  
     endwhile
     ExceptionsOn()
     ShowMessage("Проверка окончена")
endif

Для проверки я сделал кнопку по нажатию на которую проверяется объект Object.Текст, как использовать данное решение, решать вам.

Существуют другие решения для проверки правописания, но они платные, и требуют установки словаря на каждое рабочее место, примером такого решения является Microsoft Office.

2021-05-23 19:34:10

Для доступа к api  необходимо войти в личный кабинет,  пополнить баланс и записать свои user_id и api_key.

Стоимость равна стоимости PRO версии. 

Ограничения — 60 запросов в минуту.

История проверок доступна в личном кабинете. 

Результат проверки хранится 7 дней.

Расставить запятые и проверка пунктуации

Отправка

Отправить текст на проверку пунктуации — POST https://textovod.com/api/punctuation/user/add (запросы в кодировке UTF-8, json в теле)
{ «user_id»: свой id, «api_key»:»свой key», «text»: “ваш текст”, “lang”: “ru, en, fr, es, de, it, pt” }

Ответы

Если Добавлен новый текст: {«status»: от 0 до 3, «text_id»:»id текста для получения статуса»}.

Статусы: 0 — ошибка, 3 — в очереди, 1 — обработка, 2 — готово.

Если текст уже проверяли: результат проверки (см. ниже)

Результат

Получить результат — POST https://textovod.com/api/punctuation/user/status
{ «user_id»: свой id, «api_key»:»свой key», «text_id»: «id текста» }

Ответы

Если статус проверки равен 2, то возвращается результат:

{«status»:2, «punctuation»:»результат проверки», «text_id»:»id текста»,

«result»: {

   «punctuation»: [

     {

       «paragraph»: [

         {

           «offset»: номер позиции

           «length»: длина,

           «mes»: «вид сообщения»

         },

           …

       ]

     },

….

        ],

   «statistics»: {

     «add»: количество добавлений,

     «delete»: количество удаленных,

     «register»: количество изменений регистра,

     «ok»: количество правильных знаков

   }

 },

 «text»: «Исходный текст»,

«resultText»: [

   «Используемый исходный текст с разбивкой на абзацы, относительно которого задаются положения знаков»

 ]

}

Знаки, которые расставила система находятся в теге <mark>.

Если текст превышает 100 тыс. символов, он будет обрезан до 100 тыс. символов.

Результат делится на абзацы. Для максимального совпадения разметки с api проверки орфографии необходимо оставлять в тексте только буквы, пробелы, переносы строк и знаки . , ? ! : ; — 

Проверка орфографии

Отправить текст на проверку орфографии — POST https://textovod.com/api/spelling/user/add (запросы в кодировке UTF-8, json в теле)
{ «user_id»: свой id, «api_key»:»свой key», «text»: «ваш текст» }

Ответ

{

 «status»: 1, (0 — ошибка, 1 — готово)

 «result»: «[{«offset»:Позиция, «length»:Длина,»mes»:»Описание»,»rep»:[варианты]},{«offset»:0, «length»:11, «mes»:»Описание»,»rep»:[]}]»,

 «count»:  Количество возможных ошибок, 

 «text»: «Ваш текст с обработкой на сервере»,

 «text_id»: «id текста»

}

Получить готовый результат

Получить результат — POST https://textovod.com/api/spelling/user/status
{ «user_id»: свой id, «api_key»:»свой key», «text_id»: «id текста» }

Ответ подобен ответу из add

Проверка уникальности текста

Отправка

Отправить текст на проверку пунктуации — POST https://textovod.com/api/unique/user/add (запросы в кодировке UTF-8, json в теле)
{ «user_id»: свой id, «api_key»:»свой key», «text»: «ваш текст» }

Ответы

Если Добавлен новый текст: {«status»: от 0 до 3, «text_id»:»id текста для получения статуса»}.

Статусы: 0 — ошибка, 3 — в очереди, 1 — обработка, 2 — готово.

Если текст уже проверяли: результат проверки (см. ниже)

Результат

Получить результат — POST https://textovod.com/api/unique/user/status
{ «user_id»: свой id, «api_key»:»свой key», «text_id»: «id текста» }

Ответы

Если статус проверки равен 2, то возвращается результат:

{

 «status»: 2,

 «text_id»: «id проверки»,

 «originality»: уникальность,

 «position»: «позиции слов»,

 «text»: «ваш текст «,

 «urls»: «[{«url»:»адрес источника», «domain»: «домен источника», «position»: «позиции слов», «similarity»: % совпадений}, …]» — источники

}

Минимальный объем текста — 100 символов.

Если текст превышает 200 тыс. символов, он будет обрезан до 200 тыс. символов.

Spell-checker.js

Простой гибкий иструмент для проверки орфографии.

npm
Travis branch

Readme: English Русский

Поддержка языков

  • Русский
  • Английский

Быстрый старт

Установка:
npm i spell-checker-js

Использование:

const spell = require('spell-checker-js')

// Подгрузка словаря
spell.load('en')

// Проверка орфографии
const check = spell.check('Some text to check, blahblahblah, olololo')

console.log(check)
// -> ['blahblahblah', 'olololo']

Методы и свойства

spell.load(dictionary) или spell.load(options) — загрузка файла со словарём

Примеры:

// Способы подгрузки стандартного словря:
spell.load('ru')
spell.load({ input: 'ru' })

// Подгрузка пользовательского словаря:
spell.load('./my_custom_dictionary.txt')

// Подгрузка пользовательского словаря с кодировкой:
spell.load({ input: './my_custom_dictionary.txt', charset: 'windows-1251' })

// Асинхронная подгрузка стандартного словаря
spell.load({ input: 'en', async: true }).then(len => {
    console.log(len);
    // len — количество подгруженных слов
    spell.check('something')
})

Список стандартных словарей:

  • en — словарь с английскими словами
  • ru — словарь с русскими словами
  • ru_surnames — словрь с русскими

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

spell.check(string) — проверка орфографии текста

Возвращает: массив с неправильными словами
Пример:

spell.load('en')

const check = spell.check('Some text to check, blahblahblah, olololo')

console.log(check)
// -> ['blahblahblah', 'olololo']

spell.clear() — очистка подгруженных словрей

Пример:

spell.load('en')

spell.clear()
spell.check('something')

// -> ERROR! Dictionaries are not loaded

spell.size — количество подгруженных слов

Пример

spell.load('en')
spell.load('ru')

console.log(spell.size)
// -> 1956898

Понравилась статья? Поделить с друзьями:
  • Api ms core synch l1 2 0 dll ошибка
  • Apex ошибка при запуске приложения 0xc0000007b
  • Apex ошибка клиент не использует средство противодействия мошенничеству
  • Apex ошибка engine error audio
  • Apex ошибка 408 не подключает к игре