1. ภาพรวม
Translation API มีอินเทอร์เฟซแบบเป็นโปรแกรมที่ใช้งานง่ายสำหรับการแปลสตริงแบบไดนามิกเป็นภาษาใดก็ได้ที่รองรับโดยใช้การแปลด้วยระบบนิวรัลของคอมพิวเตอร์ที่ทันสมัย นอกจากนี้ยังใช้ตรวจหาภาษาได้ในกรณีที่ไม่รู้จักภาษาต้นทาง
ในบทแนะนำนี้ คุณจะใช้ Translation API กับ Python หัวข้อที่ครอบคลุม ได้แก่ วิธีแสดงภาษาที่ใช้ได้ แปลข้อความ และตรวจหาภาษาของข้อความหนึ่งๆ
สิ่งที่จะได้เรียนรู้
- วิธีตั้งค่าสภาพแวดล้อม
- วิธีแสดงภาษาที่พร้อมใช้งาน
- How to translate text
- วิธีตรวจหาภาษา
สิ่งที่ต้องมี
แบบสํารวจ
คุณจะใช้บทแนะนำนี้อย่างไร
คุณจะให้คะแนนประสบการณ์การใช้งาน Python เท่าใด
คุณจะให้คะแนนประสบการณ์การใช้งานบริการ Google Cloud เท่าใด
2. การตั้งค่าและข้อกำหนด
การตั้งค่าสภาพแวดล้อมด้วยตนเอง
- ลงชื่อเข้าใช้ Google Cloud Console และสร้างโปรเจ็กต์ใหม่หรือใช้โปรเจ็กต์ที่มีอยู่ซ้ำ หากยังไม่มีบัญชี Gmail หรือ Google Workspace คุณต้องสร้างบัญชี
- ชื่อโปรเจ็กต์คือชื่อที่แสดงสำหรับผู้เข้าร่วมโปรเจ็กต์นี้ ซึ่งเป็นสตริงอักขระที่ Google APIs ไม่ได้ใช้ คุณจะอัปเดตได้ทุกเมื่อ
- รหัสโปรเจ็กต์จะต้องไม่ซ้ำกันสำหรับโปรเจ็กต์ Google Cloud ทั้งหมดและจะเปลี่ยนแปลงไม่ได้ (เปลี่ยนแปลงไม่ได้หลังจากตั้งค่าแล้ว) คอนโซล Cloud จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ซึ่งปกติแล้วคุณไม่จำเป็นต้องสนใจว่าสตริงนั้นจะเป็นอะไร ในโค้ดแล็บส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (ปกติจะระบุเป็น
PROJECT_ID
) หากไม่ชอบรหัสที่สร้างขึ้น คุณอาจสร้างรหัสอื่นแบบสุ่มได้ หรือจะลองใช้อุปกรณ์ของคุณเองเพื่อดูว่าอุปกรณ์พร้อมใช้งานหรือไม่ก็ได้ คุณจะเปลี่ยนแปลงชื่อหลังจากขั้นตอนนี้ไม่ได้ และชื่อนี้จะคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - โปรดทราบว่ามีค่าที่ 3 ซึ่งเป็นหมายเลขโปรเจ็กต์ที่ API บางรายการใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 รายการนี้ได้ในเอกสารประกอบ
- ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของ Cloud การทำตามโค้ดแล็บนี้จะไม่เสียค่าใช้จ่ายมากนัก หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินหลังจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่สร้างไว้หรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud รายใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรีมูลค่า$300 USD
เริ่ม Cloud Shell
แม้ว่า Google Cloud จะทำงานจากระยะไกลจากแล็ปท็อปได้ แต่ในโค้ดแล็บนี้ คุณจะใช้ Cloud Shell ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
เปิดใช้งาน Cloud Shell
- จาก Cloud Console ให้คลิกเปิดใช้งาน Cloud Shell
หากนี่เป็นครั้งแรกที่คุณเริ่มใช้ Cloud Shell คุณจะเห็นหน้าจอกลางที่อธิบายเกี่ยวกับ Cloud Shell หากเห็นหน้าจอกลาง ให้คลิกต่อไป
การจัดสรรและเชื่อมต่อกับ Cloud Shell ใช้เวลาเพียงไม่กี่นาที
เครื่องเสมือนนี้โหลดเครื่องมือการพัฒนาที่จำเป็นทั้งหมดไว้แล้ว ซึ่งจะมีไดเรกทอรีหลักขนาด 5 GB ถาวรและทำงานใน 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. การตั้งค่าสภาพแวดล้อม
ก่อนที่จะเริ่มใช้ Translation API ให้เรียกใช้คําสั่งต่อไปนี้ใน Cloud Shell เพื่อเปิดใช้ API
gcloud services enable translate.googleapis.com
คุณควรเห็นข้อมูลในลักษณะนี้
Operation "operations/..." finished successfully.
ตอนนี้คุณใช้ Translation 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 และไลบรารีของไคลเอ็นต์ Translation API โดยทำดังนี้
pip install ipython google-cloud-translate
คุณควรเห็นข้อมูลในลักษณะนี้
... Installing collected packages: ..., ipython, google-cloud-translate Successfully installed ... google-cloud-translate-3.16.0 ...
ตอนนี้คุณก็พร้อมใช้ไลบรารีของไคลเอ็นต์ Translation 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. แสดงรายการภาษาที่พร้อมให้บริการ
ในส่วนนี้ คุณจะแสดงภาษาทั้งหมดที่ใช้ได้ในส่วน Translation 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
คุณลองใช้รหัสภาษาอื่นได้
สรุป
ในขั้นตอนนี้ คุณสามารถแสดงรายการภาษาทั้งหมดที่มีใน Translation API ดูรายการภาษาที่รองรับทั้งหมดได้ในหน้าการรองรับภาษา
5. แปลข้อความ
คุณสามารถใช้ Translation API เพื่อแปลข้อความจากภาษาหนึ่งเป็นภาษาอื่น ระบบจะแปลข้อความโดยใช้โมเดลการแปลด้วยระบบนิวรัลของคอมพิวเตอร์ (NMT) หากระบบไม่รองรับโมเดล NMT สำหรับคู่ภาษาที่ขอ ระบบจะใช้โมเดลการแปลด้วยคอมพิวเตอร์ตามวลี (PBMT) ดูข้อมูลเพิ่มเติมเกี่ยวกับ Google แปลภาษาและโมเดลการแปลได้ที่โพสต์ประกาศเกี่ยวกับ 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 : 안녕하세요!
สรุป
ในขั้นตอนนี้ คุณสามารถใช้ Translation API เพื่อแปลข้อความเป็นหลายภาษา อ่านเพิ่มเติมเกี่ยวกับการแปลข้อความ
6. ตรวจหาภาษา
นอกจากนี้ คุณยังใช้ Translation 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 | 안녕하세요!
สรุป
ในขั้นตอนนี้ คุณสามารถตรวจหาภาษาของข้อความได้โดยใช้ Translation API อ่านเพิ่มเติมเกี่ยวกับการตรวจหาภาษา
7. ยินดีด้วย
คุณก็ได้เรียนรู้วิธีใช้ Translation 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
ดูข้อมูลเพิ่มเติม
- เอกสารประกอบของ Cloud Translation: https://cloud.google.com/translate/docs
- Python ใน Google Cloud: https://cloud.google.com/python
- ไลบรารีไคลเอ็นต์ Cloud สำหรับ Python: https://github.com/googleapis/google-cloud-python
ใบอนุญาต
ผลงานนี้ได้รับอนุญาตภายใต้สัญญาอนุญาตครีเอทีฟคอมมอนส์สำหรับยอมรับสิทธิของผู้สร้าง (Creative Commons Attribution License) 2.0 ทั่วไป