Использование Microsoft Custom Translator в Python - PullRequest
1 голос
/ 16 апреля 2020

Я подготовил специальную модель для немецкого языка - английский язык sh перевод текста из индустрии естественных наук.

Я написал небольшой Python скрипт для тестирования, но это выдает ошибку.

Любые подсказки, чтобы найти рабочий пример (может быть любой другой язык)?

import http.client, urllib.parse, uuid, json

subscriptionKey = 'xxxxxxxxxxxxxxx'
host = 'api.cognitive.microsofttranslator.com'
path = '/translate?api-version=3.0'

ToLanguage = "&to=en"
Category = "yyyyyy"

text = 'Klinische Anwendung'


def translate (content, cat):
    headers = {
        'Ocp-Apim-Subscription-Key': subscriptionKey,
        'Content-type': 'application/json',
        'X-ClientTraceId': str(uuid.uuid4())
    }

    conn = http.client.HTTPConnection(host)
    conn.request("POST", path + ToLanguage + "&category=" + cat, content, headers)
    response = conn.getresponse()
    print(response.readlines())
    return response.read()

requestBody = [{
    'Text' : text,
}]

content = json.dumps(requestBody, ensure_ascii=False).encode('utf-8')

# Translate
result2 = translate(content, Category)
output2 = json.dumps(json.loads(result2), indent=4, ensure_ascii=False)
print('translation with custom model')
print(output2)

Error looks like this:
[b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r\n', b'<html xmlns="http://www.w3.org/1999/xhtml">\r\n', b'<head>\r\n', b'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>\r\n', b'<title>404 - File or directory not found.</title>\r\n', b'<style type="text/css">\r\n', b'<!--\r\n', b'body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}\r\n', b'fieldset{padding:0 15px 10px 15px;} \r\n', b'h1{font-size:2.4em;margin:0;color:#FFF;}\r\n', b'h2{font-size:1.7em;margin:0;color:#CC0000;} \r\n', b'h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;} \r\n', b'#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;\r\n', b'background-color:#555555;}\r\n', b'#content{margin:0 0 0 2%;position:relative;}\r\n', b'.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}\r\n', b'-->\r\n', b'</style>\r\n', b'</head>\r\n', b'<body>\r\n', b'<div id="header"><h1>Server Error</h1></div>\r\n', b'<div id="content">\r\n', b' <div class="content-container"><fieldset>\r\n', b'  <h2>404 - File or directory not found.</h2>\r\n', b'  <h3>The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.</h3>\r\n', b' </fieldset></div>\r\n', b'</div>\r\n', b'</body>\r\n', b'</html>\r\n']
b''

1 Ответ

0 голосов
/ 16 апреля 2020

Сообщение, которое вы получили, это 404, не найден, поэтому ваш звонок не указывает на правильную конечную точку.

Первое, что я имею в виду, это https:// отсутствует в начале значения вашего хоста : вы можете изменить:

host = 'api.cognitive.microsofttranslator.com'

на

host = 'https://api.cognitive.microsofttranslator.com'

Поскольку я не привык к Python, этого может быть недостаточно. Если это не работает, вы можете поделиться более подробной информацией о ваших переменных?

Для вашей информации, с Почтальоном, когда вместо https используется http, я также получил 404:

Sample with http

Просто добавив S, все работает:

enter image description here

...