Определение языка текста
Чтобы определить, на каком языке написан текст, воспользуйтесь методом detectLanguage.
Перед началом
Чтобы воспользоваться примерами, установите cURL и получите данные вашего аккаунта для авторизации:
- На странице биллинга убедитесь, что платежный аккаунт находится в статусе
ACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его. - Получите IAM-токен, необходимый для аутентификации.
- Получите идентификатор любого каталога, на который у вашего аккаунта есть роль
editor
или выше.
-
Выберите способ аутентификации:
-
Получите IAM-токен, используемый в примерах.
-
Создайте API-ключ. Передайте API-ключ в заголовке
Authorization
в следующем формате:Authorization: Api-Key <API-ключ>
-
-
Назначьте сервисному аккаунту роль
editor
или выше на каталог, в котором он был создан.Не указывайте в запросах идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.
-
Аутентифицируйтесь в CLI от имени федеративного пользователя.
-
С помощью CLI получите IAM-токен, необходимый для аутентификации:
$ yc iam create-token
-
Получите идентификатор любого каталога, на который у вашего аккаунта есть роль
editor
или выше.
Распознать язык фразы
В этом примере мы определим, на каком языке написана фраза Hello, world
.
Чтобы определить, на каком языке написан текст, передайте его в теле запроса detectLanguage:
$ export FOLDER_ID=b1gvmob95yysaplct532
$ export IAM_TOKEN=CggaATEVAgA...
$ export TEXT="Hello, world"
$ curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ${IAM_TOKEN}" \
-d "{\"folder_id\": \"${FOLDER_ID}\", \"text\": \"${TEXT}\"}" \
"https://translate.api.cloud.yandex.net/translate/v2/detect"
В ответе сервис вернет код языка, на котором написан текст. Код языка указывается в формате ISO 639-1:
{
"languageCode": "en"
}
Указать наиболее вероятные языки
В некоторых языках одно и то же слово пишется одинаково. Например, слово рука
пишется одинаково в английском, немецком, шведском и голландском языках — hand
. Если переданный текст состоит из таких слов, то Translate может ошибиться при определении языка текста.
Чтобы избежать ошибки, вы можете указать языки в поле languageCodeHints
, которым надо отдать приоритет при определении языка текста:
{
"folder_id": "b1gvmob95yysaplct532",
"languageCodeHints":["ru", "de"],
"text": "hand"
}
Сохраните тело запроса в файле, например body.json
, и передайте его с помощью метода detectLanguage:
$ 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/detect"
{
"languageCode": "de"
}