1. Обзор
API перевода предоставляет простой программный интерфейс для динамического перевода произвольной строки на любой поддерживаемый язык с использованием современного нейронного машинного перевода. Его также можно использовать для определения языка в тех случаях, когда исходный язык неизвестен.
В этом руководстве вы будете использовать API перевода с Python. Рассматриваемые концепции включают в себя составление списка доступных языков, перевод текста и определение языка данного текста.
Что вы узнаете
- Как настроить свою среду
- Как вывести список доступных языков
- Как перевести текст
- Как определить языки
Что вам понадобится
Опрос
Как вы будете использовать этот урок?
Как бы вы оценили свой опыт работы с Python?
Как бы вы оценили свой опыт работы с сервисами Google Cloud?
2. Настройка и требования
Самостоятельная настройка среды
- Войдите в Google Cloud Console и создайте новый проект или повторно используйте существующий. Если у вас еще нет учетной записи Gmail или Google Workspace, вам необходимо ее создать .
- Имя проекта — это отображаемое имя для участников этого проекта. Это строка символов, не используемая API Google. Вы всегда можете обновить его.
- Идентификатор проекта уникален для всех проектов Google Cloud и является неизменяемым (невозможно изменить после его установки). Cloud Console автоматически генерирует уникальную строку; обычно тебя не волнует, что это такое. В большинстве лабораторий кода вам потребуется указать идентификатор проекта (обычно идентифицируемый как
PROJECT_ID
). Если вам не нравится сгенерированный идентификатор, вы можете создать другой случайный идентификатор. Альтернативно, вы можете попробовать свой собственный и посмотреть, доступен ли он. Его нельзя изменить после этого шага и он сохраняется на протяжении всего проекта. - К вашему сведению, есть третье значение — номер проекта , которое используют некоторые API. Подробнее обо всех трех этих значениях читайте в документации .
- Затем вам необходимо включить выставление счетов в Cloud Console, чтобы использовать облачные ресурсы/API. Прохождение этой кодовой лаборатории не будет стоить много, если вообще что-то стоить. Чтобы отключить ресурсы и избежать выставления счетов за пределами этого руководства, вы можете удалить созданные вами ресурсы или удалить проект. Новые пользователи Google Cloud имеют право на участие в программе бесплатной пробной версии стоимостью 300 долларов США .
Запустить Cloud Shell
Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лаборатории вы будете использовать Cloud Shell , среду командной строки, работающую в облаке.
Активировать Cloud Shell
- В Cloud Console нажмите «Активировать Cloud Shell». .
Если вы запускаете Cloud Shell впервые, вы увидите промежуточный экран с описанием того, что это такое. Если вам был представлен промежуточный экран, нажмите «Продолжить» .
Подготовка и подключение к Cloud Shell займет всего несколько минут.
Эта виртуальная машина загружена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог объемом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Большую часть, если не всю, работу в этой лаборатории кода можно выполнить с помощью браузера.
После подключения к Cloud Shell вы увидите, что вы прошли аутентификацию и что для проекта установлен идентификатор вашего проекта.
- Выполните следующую команду в Cloud Shell, чтобы подтвердить, что вы прошли аутентификацию:
gcloud auth list
Вывод команды
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Выполните следующую команду в Cloud Shell, чтобы убедиться, что команда gcloud знает о вашем проекте:
gcloud config list project
Вывод команды
[core] project = <PROJECT_ID>
Если это не так, вы можете установить это с помощью этой команды:
gcloud config set project <PROJECT_ID>
Вывод команды
Updated property [core/project].
3. Настройка среды
Прежде чем вы сможете начать использовать API перевода, выполните следующую команду в Cloud Shell, чтобы включить API:
gcloud services enable translate.googleapis.com
Вы должны увидеть что-то вроде этого:
Operation "operations/..." finished successfully.
Теперь вы можете использовать API перевода!
Установите следующую переменную среды (которая будет использоваться в вашем приложении):
export PROJECT_ID=$(gcloud config get-value core/project)
echo "PROJECT_ID: $PROJECT_ID"
Перейдите в свой домашний каталог:
cd ~
Создайте виртуальную среду Python, чтобы изолировать зависимости:
virtualenv venv-translate
Активируйте виртуальную среду:
source venv-translate/bin/activate
Установите IPython и клиентскую библиотеку API перевода:
pip install ipython google-cloud-translate
Вы должны увидеть что-то вроде этого:
... Installing collected packages: ..., ipython, google-cloud-translate Successfully installed ... google-cloud-translate-3.16.0 ...
Теперь вы готовы использовать клиентскую библиотеку API перевода!
На следующих шагах вы будете использовать интерактивный интерпретатор Python под названием IPython , который вы установили на предыдущем шаге. Запустите сеанс, запустив ipython
в Cloud Shell:
ipython
Вы должны увидеть что-то вроде этого:
Python 3.10.12 (main, Jul 29 2024, 16:56:48) [GCC 11.4.0] Type 'copyright', 'credits' or 'license' for more information IPython 8.27.0 -- An enhanced Interactive Python. Type '?' for help. In [1]:
Скопируйте следующий код в свой сеанс IPython:
from os import environ
from google.cloud import translate
PROJECT_ID = environ.get("PROJECT_ID", "")
assert PROJECT_ID
PARENT = f"projects/{PROJECT_ID}"
Вы готовы сделать свой первый запрос и перечислить поддерживаемые языки...
4. Список доступных языков
В этом разделе вы перечислите все доступные языки в API перевода.
Чтобы просмотреть список доступных языков, скопируйте следующий код в сеанс IPython:
def print_supported_languages(display_language_code: str):
client = translate.TranslationServiceClient()
response = client.get_supported_languages(
parent=PARENT,
display_language_code=display_language_code,
)
languages = response.languages
print(f" Languages: {len(languages)} ".center(60, "-"))
for language in languages:
language_code = language.language_code
display_name = language.display_name
print(f"{language_code:10}{display_name}")
Вызовите функцию:
print_supported_languages("en")
У вас должно получиться что-то вроде этого:
---------------------- Languages: 137 ---------------------- af Afrikaans sq Albanian am Amharic ar Arabic hy Armenian ... cy Welsh xh Xhosa yi Yiddish yo Yoruba zu Zulu
Посмотрите, что вы получаете с языком отображения на французском языке:
print_supported_languages("fr")
Вы должны получить тот же список, отсортированный по французским именам, примерно такой:
---------------------- Languages: 137 ---------------------- af Afrikaans sq Albanais de Allemand am Amharique en Anglais ... vi Vietnamien xh Xhosa yi Yiddish yo Yoruba zu Zoulou
Вы можете попробовать использовать другой код языка .
Краткое содержание
На этом этапе вы смогли перечислить все доступные языки в API перевода. Полный список поддерживаемых языков можно найти на странице языковой поддержки .
5. Перевести текст
Вы можете использовать API перевода для перевода текста с одного языка на другой. Текст переводится с использованием модели нейронного машинного перевода (NMT). Если модель NMT не поддерживается для запрошенной пары языкового перевода, используется модель машинного перевода на основе фраз (PBMT). Дополнительную информацию о Google Translate и его моделях перевода см . в объявлении NMT .
Чтобы перевести текст, скопируйте следующий код в сеанс IPython:
def translate_text(text: str, target_language_code: str) -> translate.Translation:
client = translate.TranslationServiceClient()
response = client.translate_text(
parent=PARENT,
contents=[text],
target_language_code=target_language_code,
)
return response.translations[0]
Вызовите функцию, чтобы перевести один и тот же текст на разные языки:
text = "Hello World!"
target_languages = ["tr", "de", "es", "it", "el", "zh", "ja", "ko"]
print(f" {text} ".center(50, "-"))
for target_language in target_languages:
translation = translate_text(text, target_language)
source_language = translation.detected_language_code
translated_text = translation.translated_text
print(f"{source_language} → {target_language} : {translated_text}")
Вы должны получить следующее:
------------------ Hello World! ------------------ en → tr : Selam Dünya! en → de : Hallo Welt! en → es : ¡Hola Mundo! en → it : Ciao mondo! en → el : Γεια σου Κόσμο! en → zh : 你好世界! en → ja : 「こんにちは世界」 en → ko : 안녕하세요!
Краткое содержание
На этом этапе вы смогли использовать API перевода для перевода текста на несколько языков. Подробнее о переводе текста читайте .
6. Обнаружение языков
Вы также можете использовать API перевода для определения языка текстовой строки.
Скопируйте следующий код в свой сеанс IPython:
def detect_language(text: str) -> translate.DetectedLanguage:
client = translate.TranslationServiceClient()
response = client.detect_language(parent=PARENT, content=text)
return response.languages[0]
Вызовите функцию, чтобы определить язык разных предложений:
sentences = [
"Selam Dünya!",
"Hallo Welt!",
"¡Hola Mundo!",
"Ciao mondo!",
"Γεια σου Κόσμο!",
"你好世界!",
"「こんにちは世界」",
"안녕하세요!",
]
for sentence in sentences:
language = detect_language(sentence)
confidence = language.confidence
language_code = language.language_code
print(
f"Confidence: {confidence:4.0%}",
f"Language: {language_code:5}",
sentence,
sep=" | ",
)
Вы должны получить следующее:
Confidence: 100% | Language: tr | Selam Dünya! Confidence: 81% | Language: de | Hallo Welt! Confidence: 100% | Language: es | ¡Hola Mundo! Confidence: 100% | Language: it | Ciao mondo! Confidence: 100% | Language: el | Γεια σου Κόσμο! Confidence: 100% | Language: zh-CN | 你好世界! Confidence: 100% | Language: ja | 「こんにちは世界」 Confidence: 100% | Language: ko | 안녕하세요!
Краткое содержание
На этом этапе вы смогли определить язык фрагмента текста с помощью API перевода. Узнайте больше об обнаружении языков .
7. Поздравляем!
Вы узнали, как использовать API перевода с помощью Python!
Очистить
Чтобы очистить среду разработки из Cloud Shell:
- Если вы все еще находитесь в сеансе IPython, вернитесь в оболочку:
exit
- Прекратите использовать виртуальную среду Python:
deactivate
- Удалите папку виртуальной среды:
cd ~ ; rm -rf ./venv-translate
Чтобы удалить проект Google Cloud из Cloud Shell:
- Получите текущий идентификатор проекта:
PROJECT_ID=$(gcloud config get-value core/project)
- Убедитесь, что это именно тот проект, который вы хотите удалить:
echo $PROJECT_ID
- Удалить проект:
gcloud projects delete $PROJECT_ID
Узнать больше
- Документация по облачному переводу: https://cloud.google.com/translate/docs.
- Python в Google Cloud: https://cloud.google.com/python
- Облачные клиентские библиотеки для Python: https://github.com/googleapis/google-cloud-python.
Лицензия
Эта работа доступна под лицензией Creative Commons Attribution 2.0 Generic License.