Использование переводчика Azure для перевода текста с японского на английский sh, но с ошибкой '400003' - PullRequest
0 голосов
/ 26 мая 2020

Я изучал когнитивные услуги Azure текстового переводчика для перевода текста из одного источника в другой. В моем случае я хочу перевести японский текст на английский sh.

Я следил за документацией и использовал код python для выполнения вышеуказанной задачи. Однако я получил ошибку при получении ответа от API.

Код ошибки: 400003
Сообщение: один из указанных языков недействителен.

Не нашел особой помощи по коду ошибки. Прикрепляем код для справки. Любые предложения / обходные пути будут полезны.

    import os, requests, uuid, json
     key_var_name =subscription_key
     endpoint_var_name =endpoint_details_of_API
     path = '/transliterate?api-version=3.0'
     params = '&to=en'
     constructed_url = endpoint_var_name + path + params
     headers = {
     'Ocp-Apim-Subscription-Key':subscription_key',
     'Content-type': 'application/json',
     'Ocp-Apim-Subscription-Region': 'eastasia',
     'X-ClientTraceId': str(uuid.uuid4())
      }
      body =[{
      'text': 'こんにちは'
      }]
      request=requests.post(constructed_url,headers=headers,json=body)
      response=request.json()
      print(response)

1 Ответ

0 голосов
/ 26 мая 2020

Есть разница в переводе и транслитерации, а также в способе вызова соответствующих API.

Поскольку вы используете API транслитерации, вам необходимо указать скрипт, в который вы хотите выполнить транслитерацию.

  • Код языка для японского - ja
  • Скрипт для японского: Jpan
  • Код языка для английского sh - en
  • Скрипт для латиницы: Latn

Дополнительная информация: Поддержка языков и регионов для переводчика .

Создание URL-адрес API в python должен выглядеть примерно так:

path = '/transliterate?api-version=3.0'
params = '&language=ja&fromScript=jpan&toScript=latn'
constructed_url = endpoint_var_name + path + params

Более подробную информацию об этом можно найти в Quickstart: Используйте переводчик для транслитерации текста .

Дополнительные сведения об API транслитерации см. В документации Translator 3.0: Transliterate . Это показывает, что требуются параметры api-version, language, fromScript и toScript.

EDIT:
Я только что протестировал перевод ( not транслитерация) с японского на английский sh, и это работает. По крайней мере, если это: こんにちは означает «Привет», так и есть. Транслитерация может не потребоваться.

私 は こ れ が 役 立 つ こ と を 願 て い ま す。

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...