Повышение точности перевода
Чтобы повысить точность перевода:
- Укажите язык исходного текста. Некоторые слова пишутся одинаково в разных языках, но имеют разное значение. Если модель неправильно определит язык исходного текста, то и перевод будет другим.
- Укажите собственный глоссарий для перевода. Слово может переводиться по-разному. Например
oil
переводится какмасло
илинефть
. С помощью глоссария вы сможете указать, как правильно переводить слово или словосочетание. Подробнее о глоссариях.
Перед началом работы
Чтобы воспользоваться примерами, установите cURL
Примеры ниже разработаны для выполнения в операционных системах MacOS и Linux. Чтобы выполнить их в системе Windows, ознакомьтесь с особенностями работы с Bash в Microsoft Windows.
Для работы с API Translate необходимо отправлять данные для аутентификации в каждом запросе. Способ аутентификации зависит от типа аккаунта, от имени которого вы будете отправлять запросы:
-
Получите IAM-токен для аккаунта на Яндексе или федеративного аккаунта, необходимый для аутентификации. Передавайте полученный токен в заголовке
Authorization
каждого запроса в формате:Authorization: Bearer <IAM-токен>
-
Получите идентификатор любого каталога, на который у вашего аккаунта есть роль
ai.translate.user
или выше. Идентификатор каталога должен передаваться в теле каждого запроса в полеfolderId
.
-
Выберите один из способов аутентификации:
-
Получите IAM-токен. Передавайте IAM-токен в заголовке
Authorization
в формате:Authorization: Bearer <IAM-токен>
-
Создайте API-ключ. Передайте API-ключ в заголовке
Authorization
в следующем формате:Authorization: Api-Key <API-ключ>
-
-
Назначьте сервисному аккаунту роль
ai.translate.user
или выше на каталог, в котором он был создан.Не указывайте в запросах идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.
Указать язык исходного текста
Есть слова, которые пишутся одинаково в разных языках, но переводятся по-разному. Например, слово angel
в английском языке означает духовное существо, а в немецком — удочку. Если переданный текст состоит из таких слов, то Translate может ошибиться при определении языка текста.
Чтобы избежать ошибки, укажите в поле sourceLanguageCode
язык, с которого необходимо перевести текст:
{
"folderId": "<идентификатор_каталога>",
"texts": ["angel"],
"targetLanguageCode": "ru",
"sourceLanguageCode": "de"
}
Где:
folderId
— идентификатор каталога, полученный перед началом работы.texts
— текст для перевода в виде списка из строк.targetLanguageCode
— язык, на который переводится текст. Вы можете узнать код языка вместе со списком поддерживаемых языков.sourceLanguageCode
— язык, с которого переводится текст.
Сохраните тело запроса в файле, например в body.json
, и передайте файл с помощью метода translate:
export IAM_TOKEN=<IAM-токен>
curl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${IAM_TOKEN}" \
--data '@<путь_до_файла_json>' \
"https://translate.api.cloud.yandex.net/translate/v2/translate"
Где IAM_TOKEN
— IAM-токен, полученный перед началом работы.
В ответе будет перевод с корректно распознанного языка:
{
"translations": [
{
"text": "удочка"
}
]
}
Указать собственный глоссарий для перевода
Слово может переводиться по-разному. Например, oil
переводится как масло
или нефть
. Чтобы повысить точность перевода, используйте глоссарий со своим набором терминов и фраз, и однозначным переводом для них.
Глоссарий укажите в поле glossaryConfig
. Сейчас глоссарий можно передать только в виде массива текстовых пар.
В поле sourceLanguageCode
укажите язык, с которого необходимо перевести текст. Это поле обязательно при использовании глоссариев:
{
"sourceLanguageCode": "tr",
"targetLanguageCode": "ru",
"texts": [
"cırtlı çocuk spor ayakkabı"
],
"folderId": "<идентификатор_каталога>",
"glossaryConfig": {
"glossaryData": {
"glossaryPairs": [
{
"sourceText": "spor ayakkabı",
"translatedText": "кроссовки"
}
]
}
}
}
Где:
sourceLanguageCode
— язык, с которого переводится текст. Вы можете узнать код языка вместе со списком поддерживаемых языков.targetLanguageCode
— язык, на который переводится текст.texts
— текст для перевода в виде списка из строк.folderId
— идентификатор каталога, полученный перед началом работы.
Сохраните тело запроса в файле, например в body.json
, и передайте файл с помощью метода translate:
export IAM_TOKEN=<IAM-токен>
curl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${IAM_TOKEN}" \
--data '@<путь_до_файла_json>' \
"https://translate.api.cloud.yandex.net/translate/v2/translate"
Где IAM_TOKEN
— IAM-токен, полученный перед началом работы.
В ответе будет перевод с использованием терминов из глоссария:
{
"translations": [
{
"text": "Детские кроссовки с липучкой"
}
]
}
Без использования глоссария перевод будет таким:
{
"translations": [
{
"text": "детская спортивная обувь с липучкой"
}
]
}
Экранировать текст
Чтобы определенные фрагменты текста не переводились, в теле запроса укажите формат текста HTML
и экранируйте не требующие перевода фрагменты тегом <span>
с атрибутом translate=no
. Например:
{
"format": "HTML",
"texts": [
"The e-mail has been changed. The new password is **<span translate=no>**%\$Qvd14aa2NMc**</span>**"
]
}
Где:
format
— формат текста.texts
— текст для перевода в виде списка из строк.
В ответе текст внутри тега <span>
останется без перевода:
{
"translations": [
{
"text": "L'e-mail a été modifié. Le nouveau mot de passe est **<span translate="no">**%\$Qvd14aa2NMc**</span>**"
}
]
}
Проверить опечатки
Слова с опечатками могут быть переведены неправильно или транслитерированы. Например, слово hellas
переводится как эллада
. Это же слово, написанное с ошибкой — helas
, будет переводиться как хелас
. Чтобы проверить правильность написания слов, используйте параметр speller
:
{
"sourceLanguageCode": "en"
"targetLanguageCode": "ru",
"texts": [
"helas"
],
"folderId": "<идентификатор_каталога>",
"speller": true
}
Где:
sourceLanguageCode
— язык оригинала. Вы можете узнать код языка вместе со списком поддерживаемых языков.targetLanguageCode
— целевой язык перевода.texts
— текст для перевода в виде списка строк.folderId
— идентификатор каталога, полученный перед началом работы.speller
— параметр, который включает проверку орфографии.
Сохраните тело запроса в файле, например в body.json
, и передайте файл с помощью метода translate:
export IAM_TOKEN=<IAM-токен>
curl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${IAM_TOKEN}" \
--data '@<путь_до_файла_json>' \
"https://translate.api.cloud.yandex.net/translate/v2/translate"
Где IAM_TOKEN
— IAM-токен, полученный перед началом работы.
В ответе будет перевод слова, проверенного на наличие ошибок:
{
"translations": [
{
"text": "эллада"
}
]
}
Без проверки ошибок в слове ("speller": false
) перевод будет таким:
{
"translations": [
{
"text": "хелас"
}
]
}