Повышение точности перевода

Чтобы повысить точность перевода:

Перед началом

Чтобы воспользоваться примерами, установите cURL и получите данные вашего аккаунта для авторизации:

  1. На странице биллинга убедитесь, что платежный аккаунт находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его.
  2. Получите IAM-токен, необходимый для аутентификации.
  3. Получите идентификатор любого каталога, на который у вашего аккаунта есть роль editor или выше.
  1. Выберите способ аутентификации:

    • Получите IAM-токен, используемый в примерах.

    • Создайте API-ключ. Передайте API-ключ в заголовке Authorization в следующем формате:

      Authorization: Api-Key <API-ключ>
      
  2. Назначьте сервисному аккаунту роль editor или выше на каталог, в котором он был создан.

    Не указывайте в запросах идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.

  1. Аутентифицируйтесь в CLI от имени федеративного пользователя.

  2. С помощью CLI получите IAM-токен, необходимый для аутентификации:

    $ yc iam create-token
    
  3. Получите идентификатор любого каталога, на который у вашего аккаунта есть роль editor или выше.

Указать язык исходного текста

Есть слова, которые пишутся одинаково в разных языках, но переводятся по-разному. Например, слово angel в английском языке означает духовное существо, а в немецком — удочку. Если переданный текст состоит из таких слов, то Translate может ошибиться при определении языка текста.

Чтобы избежать ошибки, укажите в поле sourceLanguageCode язык, с которого необходимо перевести текст:

{
    "folder_id": "b1gvmob95yysaplct532",
    "texts": ["angel"],
    "targetLanguageCode": "ru",
    "sourceLanguageCode": "de"
}

Сохраните тело запроса в файле, например в body.json, и передайте файл с помощью метода translate:

$ export IAM_TOKEN=CggaATEVAgA...
$ curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${IAM_TOKEN}" \
    -d '@body.json' \
    "https://translate.api.cloud.yandex.net/translate/v2/translate"

В ответе будет перевод с корректно распознанного языка:

{
    "translations": [
        {
            "text": "удочка"
        }
    ]
}

Указать собственный глоссарий для перевода

Слово может переводиться по-разному. Например, oil переводится как масло или нефть. Чтобы повысить точность перевода, используйте глоссарий со своим набором терминов и фраз, и однозначным переводом для них.

Глоссарий укажите в поле glossaryConfig. Сейчас глоссарий можно передать только в виде массива текстовых пар.

В поле sourceLanguageCode укажите язык, с которого необходимо перевести текст. Это поле обязательно при использовании глоссариев:

{
    "sourceLanguageCode": "tr",
    "targetLanguageCode": "ru",
    "texts": [
        "cırtlı çocuk spor ayakkabı"
    ],
    "folderId": "b1gvmob95yysaplct532",
    "glossaryConfig": {
        "glossaryData": {
            "glossaryPairs": [
                {
                    "sourceText": "spor ayakkabı",
                    "translatedText": "кроссовки"
                }
            ]
        }
    }
}

Сохраните тело запроса в файле, например в body.json, и передайте файл с помощью метода translate:

$ export IAM_TOKEN=CggaATEVAgA...
$ curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ${IAM_TOKEN}" \
    -d '@body.json' \
    "https://translate.api.cloud.yandex.net/translate/v2/translate"

В ответе будет перевод с использованием терминов из глоссария:

{
 "translations": [
  {
   "text": "Детские кроссовки с липучкой"
  }
 ]
}

Без использования глоссария перевод будет таким:

{
 "translations": [
  {
   "text": "детская спортивная обувь с липучкой"
  }
 ]
}