1. Tổng quan
Translation API cung cấp một giao diện lập trình đơn giản để dịch động một chuỗi tuỳ ý sang bất kỳ ngôn ngữ nào được hỗ trợ bằng công nghệ Dịch máy dùng mạng nơ-ron nhân tạo hiện đại. Bạn cũng có thể dùng công cụ này để phát hiện ngôn ngữ trong trường hợp không xác định được ngôn ngữ nguồn.
Trong hướng dẫn này, bạn sẽ sử dụng API Dịch bằng Python. Các khái niệm được đề cập bao gồm cách liệt kê các ngôn ngữ có sẵn, dịch văn bản và phát hiện ngôn ngữ của một văn bản nhất định.
Kiến thức bạn sẽ học được
- Cách thiết lập môi trường
- Cách liệt kê các ngôn ngữ có sẵn
- Cách dịch văn bản
- Cách phát hiện ngôn ngữ
Bạn cần có
- Một dự án trên Google Cloud
- Một trình duyệt, chẳng hạn như Chrome hoặc Firefox
- Quen thuộc với việc sử dụng Python
Bài khảo sát
Bạn sẽ sử dụng hướng dẫn này như thế nào?
Bạn đánh giá thế nào về trải nghiệm của mình với Python?
Bạn đánh giá thế nào về trải nghiệm sử dụng các dịch vụ của Google Cloud?
2. Cách thiết lập và yêu cầu
Thiết lập môi trường theo tốc độ của riêng bạn
- Đăng nhập vào Google Cloud Console rồi tạo một dự án mới hoặc sử dụng lại một dự án hiện có. Nếu chưa có tài khoản Gmail hoặc Google Workspace, bạn phải tạo một tài khoản.
- Tên dự án là tên hiển thị cho người tham gia dự án này. Đây là một chuỗi ký tự không được API của Google sử dụng. Bạn luôn có thể cập nhật thông tin này.
- Mã dự án là duy nhất trên tất cả các dự án Google Cloud và không thể thay đổi (không thể thay đổi sau khi đặt). Cloud Console sẽ tự động tạo một chuỗi duy nhất; thường thì bạn không cần quan tâm đến chuỗi này. Trong hầu hết các lớp học lập trình, bạn sẽ cần tham chiếu đến Mã dự án (thường được xác định là
PROJECT_ID
). Nếu không thích mã được tạo, bạn có thể tạo một mã ngẫu nhiên khác. Ngoài ra, bạn có thể thử dùng email của riêng mình để xem có thể sử dụng hay không. Bạn không thể thay đổi thông tin này sau bước này và thông tin này sẽ được giữ nguyên trong suốt thời gian diễn ra dự án. - Xin lưu ý rằng có một giá trị thứ ba là Mã dự án mà một số API sử dụng. Tìm hiểu thêm về cả ba giá trị này trong tài liệu.
- Tiếp theo, bạn cần bật tính năng thanh toán trong Cloud Console để sử dụng các tài nguyên/API trên Cloud. Việc tham gia lớp học lập trình này sẽ không tốn kém nhiều chi phí, nếu có. Để tắt các tài nguyên nhằm tránh bị tính phí sau khi hoàn tất hướng dẫn này, bạn có thể xoá các tài nguyên đã tạo hoặc xoá dự án. Người dùng mới của Google Cloud đủ điều kiện tham gia chương trình Dùng thử miễn phí 300 USD.
Khởi động Cloud Shell
Mặc dù có thể điều khiển Google Cloud từ xa trên máy tính xách tay, nhưng trong lớp học lập trình này, bạn sẽ sử dụng Cloud Shell, một môi trường dòng lệnh chạy trên đám mây.
Kích hoạt Cloud Shell
- Trên Cloud Console, hãy nhấp vào Kích hoạt Cloud Shell
.
Nếu đây là lần đầu tiên bạn khởi động Cloud Shell, bạn sẽ thấy một màn hình trung gian mô tả về Cloud Shell. Nếu bạn thấy một màn hình trung gian, hãy nhấp vào Tiếp tục.
Quá trình cấp phép và kết nối với Cloud Shell chỉ mất vài phút.
Máy ảo này được tải sẵn tất cả các công cụ phát triển cần thiết. Ứng dụng này cung cấp một thư mục gốc 5 GB ổn định và chạy trong Google Cloud, giúp cải thiện đáng kể hiệu suất mạng và xác thực. Bạn có thể thực hiện hầu hết (nếu không phải tất cả) công việc trong lớp học lập trình này bằng trình duyệt.
Sau khi kết nối với Cloud Shell, bạn sẽ thấy mình đã được xác thực và dự án được đặt thành mã dự án của bạn.
- Chạy lệnh sau trong Cloud Shell để xác nhận rằng bạn đã được xác thực:
gcloud auth list
Kết quả của lệnh
Credentialed Accounts ACTIVE ACCOUNT * <my_account>@<my_domain.com> To set the active account, run: $ gcloud config set account `ACCOUNT`
- Chạy lệnh sau trong Cloud Shell để xác nhận rằng lệnh gcloud biết về dự án của bạn:
gcloud config list project
Kết quả của lệnh
[core] project = <PROJECT_ID>
Nếu không, bạn có thể đặt giá trị này bằng lệnh sau:
gcloud config set project <PROJECT_ID>
Kết quả của lệnh
Updated property [core/project].
3. Thiết lập môi trường
Trước khi bạn có thể bắt đầu sử dụng API Dịch, hãy chạy lệnh sau trong Cloud Shell để bật API:
gcloud services enable translate.googleapis.com
Bạn sẽ thấy như sau:
Operation "operations/..." finished successfully.
Giờ đây, bạn có thể sử dụng Translator API!
Thiết lập biến môi trường sau (để sử dụng trong ứng dụng):
export PROJECT_ID=$(gcloud config get-value core/project)
echo "PROJECT_ID: $PROJECT_ID"
Chuyển đến thư mục gốc:
cd ~
Tạo môi trường ảo Python để tách biệt các phần phụ thuộc:
virtualenv venv-translate
Kích hoạt môi trường ảo:
source venv-translate/bin/activate
Cài đặt IPython và thư viện ứng dụng API Dịch:
pip install ipython google-cloud-translate
Bạn sẽ thấy như sau:
... Installing collected packages: ..., ipython, google-cloud-translate Successfully installed ... google-cloud-translate-3.16.0 ...
Giờ thì bạn đã sẵn sàng sử dụng thư viện ứng dụng API Dịch!
Trong các bước tiếp theo, bạn sẽ sử dụng một trình thông dịch Python tương tác có tên IPython mà bạn đã cài đặt ở bước trước. Bắt đầu một phiên bằng cách chạy ipython
trong Cloud Shell:
ipython
Bạn sẽ thấy như sau:
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]:
Sao chép mã sau vào phiên IPython:
from os import environ
from google.cloud import translate
PROJECT_ID = environ.get("PROJECT_ID", "")
assert PROJECT_ID
PARENT = f"projects/{PROJECT_ID}"
Bạn đã sẵn sàng gửi yêu cầu đầu tiên và liệt kê các ngôn ngữ được hỗ trợ...
4. Liệt kê các ngôn ngữ có sẵn
Trong phần này, bạn sẽ liệt kê tất cả ngôn ngữ có sẵn trong API Dịch.
Để liệt kê các ngôn ngữ có sẵn, hãy sao chép mã sau vào phiên 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}")
Gọi hàm:
print_supported_languages("en")
Bạn sẽ thấy kết quả như sau:
---------------------- Languages: 137 ---------------------- af Afrikaans sq Albanian am Amharic ar Arabic hy Armenian ... cy Welsh xh Xhosa yi Yiddish yo Yoruba zu Zulu
Hãy xem những gì bạn nhận được khi sử dụng ngôn ngữ hiển thị là tiếng Pháp:
print_supported_languages("fr")
Bạn sẽ nhận được danh sách tương tự, được sắp xếp theo tên tiếng Pháp, tương tự như sau:
---------------------- Languages: 137 ---------------------- af Afrikaans sq Albanais de Allemand am Amharique en Anglais ... vi Vietnamien xh Xhosa yi Yiddish yo Yoruba zu Zoulou
Bạn có thể thử với một mã ngôn ngữ khác.
Tóm tắt
Ở bước này, bạn đã có thể liệt kê tất cả ngôn ngữ có sẵn trong API Dịch. Bạn có thể xem danh sách đầy đủ các ngôn ngữ được hỗ trợ trên trang hỗ trợ ngôn ngữ.
5. Dịch văn bản
Bạn có thể sử dụng API Dịch để dịch văn bản từ ngôn ngữ này sang ngôn ngữ khác. Văn bản được dịch bằng mô hình Dịch máy dùng mạng nơ-ron nhân tạo (NMT). Nếu mô hình NMT không được hỗ trợ cho cặp ngôn ngữ dịch được yêu cầu, thì mô hình Dịch máy dựa trên cụm từ (PBMT) sẽ được sử dụng. Để biết thêm thông tin về Google Dịch và các mô hình dịch của công cụ này, hãy xem bài đăng thông báo về công nghệ dịch máy tính.
Để dịch văn bản, hãy sao chép mã sau vào phiên 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]
Gọi hàm để dịch cùng một văn bản bằng nhiều ngôn ngữ:
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}")
Bạn sẽ thấy kết quả như sau:
------------------ 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 : 안녕하세요!
Tóm tắt
Ở bước này, bạn có thể sử dụng API Dịch để dịch văn bản sang nhiều ngôn ngữ. Đọc thêm về cách dịch văn bản.
6. Phát hiện ngôn ngữ
Bạn cũng có thể sử dụng API Dịch để phát hiện ngôn ngữ của một chuỗi văn bản.
Sao chép mã sau vào phiên IPython:
def detect_language(text: str) -> translate.DetectedLanguage:
client = translate.TranslationServiceClient()
response = client.detect_language(parent=PARENT, content=text)
return response.languages[0]
Gọi hàm để phát hiện ngôn ngữ của các câu khác nhau:
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=" | ",
)
Bạn sẽ thấy kết quả như sau:
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 | 안녕하세요!
Tóm tắt
Trong bước này, bạn đã có thể phát hiện ngôn ngữ của một đoạn văn bản bằng cách sử dụng API Dịch. Đọc thêm về cách phát hiện ngôn ngữ.
7. Xin chúc mừng!
Bạn đã tìm hiểu cách sử dụng API Dịch bằng Python!
Dọn dẹp
Cách dọn dẹp môi trường phát triển trong Cloud Shell:
- Nếu bạn vẫn đang ở trong phiên IPython, hãy quay lại shell:
exit
- Ngừng sử dụng môi trường ảo Python:
deactivate
- Xoá thư mục môi trường ảo:
cd ~ ; rm -rf ./venv-translate
Cách xoá dự án trên Google Cloud trong Cloud Shell:
- Truy xuất mã dự án hiện tại của bạn:
PROJECT_ID=$(gcloud config get-value core/project)
- Đảm bảo đây là dự án bạn muốn xoá:
echo $PROJECT_ID
- Xoá dự án:
gcloud projects delete $PROJECT_ID
Tìm hiểu thêm
- Tài liệu về Cloud Translation: https://cloud.google.com/translate/docs
- Python trên Google Cloud: https://cloud.google.com/python
- Thư viện ứng dụng Cloud cho Python: https://github.com/googleapis/google-cloud-python
Giấy phép
Tác phẩm này được cấp phép theo Giấy phép chung Ghi công theo Creative Commons 2.0.