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