Поделиться через


Быстрый старт: проверка правописания с помощью Bing Spell Check REST API и Python

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

30 октября 2020 г. API поиска Bing перемещены из служб ИИ Azure в службы поиска Bing. Эта документация предоставляется только для справки. Для получения обновленной документации, см. документацию по API поиска Bing. Инструкции по созданию ресурсов Azure для поиска Bing см. в статье "Создание ресурса поиска Bing" с помощью Azure Marketplace.

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

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

Предпосылки

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

Начните использовать API проверки орфографии Bing, создав один из следующих ресурсов Azure:

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

  • Доступен на портале Azure до тех пор, пока вы не удалите ресурс.
  • Используйте бесплатный тарифный план, чтобы попробовать услугу, и перейдите на платный тариф для использования в работе.
  • API проверки орфографии Bing также предлагается на некоторых уровнях ресурса Bing Search версии 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
            }
         ]
      }
   ]
}

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