Повышение точности перевода
Чтобы повысить точность перевода:
- Укажите язык исходного текста. Некоторые слова пишутся одинаково в разных языках, но имеют разное значение. Если модель неправильно определит язык исходного текста, то и перевод будет другим.
- Укажите собственный глоссарий для перевода. Слово может переводиться по-разному. Например
oil
переводится какмасло
илинефть
. С помощью глоссария вы сможете указать, как правильно переводить слово или словосочетание. Подробнее о глоссариях.
Перед началом
Чтобы воспользоваться примерами, установите cURL и получите данные вашего аккаунта для авторизации:
- На странице биллинга убедитесь, что платежный аккаунт находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его. - Получите IAM-токен, необходимый для аутентификации.
- Получите идентификатор любого каталога, на который у вашего аккаунта есть роль
editor
или выше.
-
Выберите способ аутентификации:
-
Получите IAM-токен, используемый в примерах.
-
Создайте API-ключ. Передайте API-ключ в заголовке
Authorization
в следующем формате:Authorization: Api-Key <API-ключ>
-
-
Назначьте сервисному аккаунту роль
editor
или выше на каталог, в котором он был создан.Не указывайте в запросах идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.
-
Аутентифицируйтесь в CLI от имени федеративного пользователя.
-
С помощью CLI получите IAM-токен, необходимый для аутентификации:
yc iam create-token
-
Получите идентификатор любого каталога, на который у вашего аккаунта есть роль
editor
или выше.
Указать язык исходного текста
Есть слова, которые пишутся одинаково в разных языках, но переводятся по-разному. Например, слово angel
в английском языке означает духовное существо, а в немецком — удочку. Если переданный текст состоит из таких слов, то Translate может ошибиться при определении языка текста.
Чтобы избежать ошибки, укажите в поле sourceLanguageCode
язык, с которого необходимо перевести текст:
{
"folderId": "b1gvmob95yysaplct532",
"texts": ["angel"],
"targetLanguageCode": "ru",
"sourceLanguageCode": "de"
}
Сохраните тело запроса в файле, например в body.json
, и передайте файл с помощью метода translate:
export IAM_TOKEN=<IAM-токен>
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${IAM_TOKEN}" \
-d '<путь_до_файла_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=<IAM-токен>
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${IAM_TOKEN}" \
-d '<путь_до_файла_json>' \
"https://translate.api.cloud.yandex.net/translate/v2/translate"
В ответе будет перевод с использованием терминов из глоссария:
{
"translations": [
{
"text": "Детские кроссовки с липучкой"
}
]
}
Без использования глоссария перевод будет таким:
{
"translations": [
{
"text": "детская спортивная обувь с липучкой"
}
]
}