快速入门:使用 Python 和必应拼写检查 REST API 进行拼写检查

警告

2020 年 10 月 30 日,必应搜索 API 从 Azure AI 服务迁移到必应搜索服务。 本文档仅供参考。 有关更新的文档,请参阅 必应搜索 API 文档。 有关为必应搜索创建新 Azure 资源的说明,请参阅 通过 Azure 市场创建必应搜索资源。

使用此快速入门对必应拼写检查 REST API 进行首次调用。 这个简单的 Python 应用程序向 API 发送请求,并返回建议的更正列表。

尽管此应用程序是用 Python 编写的,但 API 是一种 RESTful Web 服务,与大多数编程语言兼容。 此应用程序的源代码在 GitHub 上提供

先决条件

创建 Azure 资源

通过创建以下 Azure 资源之一开始使用必应拼写检查 API:

必应拼写检查资源

  • 可通过 Azure 门户使用,直到删除资源。
  • 使用免费定价层试用该服务,稍后升级到生产付费层。
  • 必应拼写检查 API 在 必应搜索 v7 资源的某些层中也提供。

多服务资源

  • 可通过 Azure 门户使用,直到删除资源。
  • 跨多个 Azure AI 服务对应用程序使用相同的密钥和终结点。

初始化应用程序

  1. 在偏好的 IDE 或编辑器中创建新的 Python 文件,并添加以下导入语句:

    import requests
    import json
    
  2. 为要拼写检查的文本、订阅密钥和必应拼写检查终结点创建变量。 可以在以下代码中使用全局终结点,也可以使用 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
            }
         ]
      }
   ]
}

后续步骤