Невозможно изменить язык в программе проверки правописания Microsoft Cognitive Services - PullRequest
0 голосов
/ 02 июня 2018

Ниже приведен пример использования API проверки правописания в Microsoft Python:

import http.client, urllib.parse, json

text = 'Hollo, wrld!'

data = {'text': text}

# NOTE: Replace this example key with a valid subscription key.
key = 'MY_API_KEY'

host = 'api.cognitive.microsoft.com'
path = '/bing/v7.0/spellcheck?'
params = 'mkt=en-us&mode=proof'

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

# The headers in the following example 
# are optional but should be considered as required:
#
# X-MSEdge-ClientIP: 999.999.999.999  
# X-Search-Location: lat: +90.0000000000000;long: 00.0000000000000;re:100.000000000000
# X-MSEdge-ClientID: <Client ID from Previous Response Goes Here>

conn = http.client.HTTPSConnection(host)
body = urllib.parse.urlencode(data)
conn.request ("POST", path + params, body, headers)
response = conn.getresponse()
output = json.dumps(json.loads(response.read()), indent=4)
print (output)

И он хорошо работает для mkt = en-us.Но если я попытаюсь изменить его, например, на «FR-FR».Он всегда отвечает мне пустым ответом на любой вводимый текст.

{
    "_type": "SpellCheck",
    "flaggedTokens": []
}

Кто-нибудь сталкивался с подобной проблемой?Может ли это быть связано с моим пробным ключом API (хотя они не упоминают, что пробная версия поддерживает только английский)?

1 Ответ

0 голосов
/ 03 июня 2018

Ну, я выяснил, в чем проблема.'mode = proof' - расширенная проверка орфографии в настоящее время доступна, только если 'mkt = en-us' (по некоторым причинам Microsoft она недоступна, даже если 'mkt = en-uk').Для всех других языков вы должны использовать «mode = spell».

Основное различие между «proof» и «spell» описывается так:

Режим Spell находит большинствоорфографические ошибки, но не находит некоторые грамматические ошибки, которые улавливает Proof (например, заглавные буквы и повторяющиеся слова).

...