Краткое руководство. Проверка орфографии с помощью REST API проверки орфографии Bing и Python

Предупреждение

30 октября 2020 г. API Поиск Bing перенесены из служб ИИ Azure в Поиск Bing Services. Эта документация приводится только для справки. Обновленную информацию см. в документации по API Поиска Bing. Инструкции по созданию ресурсов Azure для Поиска Bing приведены в статье Создание ресурса для Поиска Bing с помощью Azure Marketplace.

В этом кратком руководстве показано, как отправить первый вызов к REST API "Проверка орфографии Bing". Это простое приложение Python отправляет запрос к API и возвращает список предлагаемых исправлений.

Это приложение создано на языке Python. Но API представляет собой веб-службу на основе REST, совместимую с большинством языков программирования. Исходный код этого приложения доступен на GitHub.

Предварительные требования

Создание ресурса Azure

Чтобы начать работу с API Проверки орфографии Bing, создайте один из следующих ресурсов Azure.

Ресурс проверки орфографии Bing

  • доступен на портале Azure до удаления.
  • Используйте бесплатную ценовую категорию, чтобы опробовать службу, а затем выполните обновление до платного уровня для рабочей среды.
  • API Проверки орфографии Bing также предоставляется на некоторых уровнях ресурса Поиска Bing версии 7.

Ресурс для нескольких служб

  • доступен на портале Azure до удаления.
  • Используйте один ключ и конечную точку для приложений в нескольких службах ИИ Azure.

Инициализация приложения

  1. Создайте файл Python в любой интегрированной среде разработки или редакторе и добавьте следующие инструкции импорта:

    import requests
    import json
    
  2. Создайте переменные для текста, орфографию которого необходимо проверить, ключ подписки и конечную точку Проверки орфографии Bing. Вы можете использовать глобальную конечную точку, указанную в коде ниже, или конечную точку личного поддомена, которая отображается на портале Azure для вашего ресурса.

    api_key = "<ENTER-KEY-HERE>"
    example_text = "Hollo, wrld" # the text to be spell-checked
    endpoint = "https://api.cognitive.microsoft.com/bing/v7.0/SpellCheck"
    

Создание параметров для запроса

  1. Создайте словарь, указав text как ключ и текст, который необходимо проверить, как значение.

    data = {'text': example_text}
    
  2. Добавьте к запросу параметры:

    1. Назначьте код рынка для параметра mkt с помощью оператора =. Код рынка — это код страны или региона, из которого выполняется запрос.

    2. Добавьте параметр mode с оператором & и назначьте режим проверки орфографии. Можно указать режим proof (выявляет большинство орфографических и грамматических ошибок) или spell (выявляет большинство орфографических ошибок, но не так много грамматических ошибок).

    params = {
        'mkt':'en-us',
        'mode':'proof'
        }
    
  3. Добавьте заголовок Content-Type и ключ подписки в заголовок Ocp-Apim-Subscription-Key.

    headers = {
        'Content-Type': 'application/x-www-form-urlencoded',
        'Ocp-Apim-Subscription-Key': api_key,
        }
    

Отправка запроса и считывание ответа

  1. Отправьте запрос POST с помощью библиотеки запросов.

    response = requests.post(endpoint, headers=headers, params=params, data=data)
    
  2. Получите ответ в формате JSON и выведите его.

    json_response = response.json()
    print(json.dumps(json_response, indent=4))
    

Выполнение приложения

При использовании командной строки выполните приведенные ниже команды для запуска приложения:

python <FILE_NAME>.py

Пример ответа в формате JSON

Успешный ответ возвращается в формате JSON, как показано в примере ниже.

{
   "_type": "SpellCheck",
   "flaggedTokens": [
      {
         "offset": 0,
         "token": "Hollo",
         "type": "UnknownToken",
         "suggestions": [
            {
               "suggestion": "Hello",
               "score": 0.9115257530801
            },
            {
               "suggestion": "Hollow",
               "score": 0.858039839213461
            },
            {
               "suggestion": "Hallo",
               "score": 0.597385084464481
            }
         ]
      },
      {
         "offset": 7,
         "token": "wrld",
         "type": "UnknownToken",
         "suggestions": [
            {
               "suggestion": "world",
               "score": 0.9115257530801
            }
         ]
      }
   ]
}

Дальнейшие действия