Определение языка текста с помощью Translate
Чтобы определить, на каком языке написан текст, воспользуйтесь методом detectLanguage.
Примечание
Метод detectLanguage возвращает код языка заданного текста. Если определить язык невозможно, поле кода языка в ответе будет пустым.
Перед началом работы
Чтобы воспользоваться примерами, установите 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
или выше на каталог, в котором он был создан.Не указывайте в запросах идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.
Распознать язык фразы
В этом примере мы определим, на каком языке написана фраза Hello, world
.
Чтобы определить, на каком языке написан текст, передайте его в теле запроса detectLanguage:
export FOLDER_ID=<идентификатор_каталога>
export IAM_TOKEN=<IAM-токен>
export TEXT="Hello, world"
curl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${IAM_TOKEN}" \
--data "{\"folderId\": \"${FOLDER_ID}\", \"text\": \"${TEXT}\"}" \
"https://translate.api.cloud.yandex.net/translate/v2/detect"
Где:
FOLDER_ID
— идентификатор каталога, полученный перед началом работы.IAM_TOKEN
— IAM-токен, полученный перед началом работы.
В ответе сервис вернет код языка, на котором написан текст:
{
"languageCode": "en"
}
Указать наиболее вероятные языки
В некоторых языках одно и то же слово пишется одинаково. Например, слово рука
пишется одинаково в английском, немецком, шведском и голландском языках — hand
. Если переданный текст состоит из таких слов, то Translate может ошибиться при определении языка текста.
Чтобы избежать ошибки, вы можете указать языки в поле languageCodeHints
, которым надо отдать приоритет при определении языка текста:
{
"folderId": "<идентификатор_каталога>",
"languageCodeHints":["ru", "de"],
"text": "hand"
}
Где:
folderId
— идентификатор каталога, полученный перед началом работы.languageCodeHints
— языки, которым отдается приоритет при определении языка текста.text
— текст для перевода в виде строки.
Сохраните тело запроса в файле, например body.json
, и передайте его с помощью метода detectLanguage:
export IAM_TOKEN=<IAM-токен>
curl \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${IAM_TOKEN}" \
--data '@body.json' \
"https://translate.api.cloud.yandex.net/translate/v2/detect"
{
"languageCode": "de"
}
Где IAM_TOKEN
— IAM-токен, полученный перед началом работы.