Я использую API переводчика Azure для перевода шведского на английский.
Удивительно, но это не так для очень простого слова: man
(это шведский, это означает man
на английском языке: P).
Вместо перевода на man
он переводится на to
с уверенностью 1.
Вы можете воспроизвести поведение, используя их API, например, с этим кодом Python: https://github.com/MicrosoftTranslator/Text-Translation-API-V3-Python/blob/master/DictionaryLookup.py
Я также вставляю приведенный ниже код, уже настроенный для шведского языка и man
. Но вам понадобится ключ API Azure:
# -*- coding: utf-8 -*-
import http.client, urllib.parse, uuid, json
# **********************************************
# *** Update or verify the following values. ***
# **********************************************
# Replace the subscriptionKey string value with your valid subscription key.
subscriptionKey = 'TODO: enter your key here'
host = 'api.cognitive.microsofttranslator.com'
path = '/dictionary/lookup?api-version=3.0'
params = '&from=sv&to=en';
text = 'man'
def lookup (content):
headers = {
'Ocp-Apim-Subscription-Key': subscriptionKey,
'Content-type': 'application/json',
'X-ClientTraceId': str(uuid.uuid4())
}
conn = http.client.HTTPSConnection(host)
conn.request ("POST", path + params, content, headers)
response = conn.getresponse ()
return response.read ()
requestBody = [{
'Text' : text,
}]
content = json.dumps(requestBody, ensure_ascii=False).encode('utf-8')
result = lookup (content)
# Note: We convert result, which is JSON, to and from an object so we can pretty-print it.
# We want to avoid escaping any Unicode characters that result contains. See:
# https://stackoverflow.com/questions/18337407/saving-utf-8-texts-in-json-dumps-as-utf8-not-as-u-escape-sequence
output = json.dumps(json.loads(result), indent=4, ensure_ascii=False)
print (output)
Удивительно, но на сайте перевода bing проблемы нет.
Могу ли я получить доступ к тому же бэкэнду, что и у Bing?
Это ошибка в Azure или я что-то упустил?