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 Console จะสร้างสตริงที่ไม่ซ้ำกันโดยอัตโนมัติ ปกติแล้วคุณไม่สนว่าอะไรเป็นอะไร ใน Codelab ส่วนใหญ่ คุณจะต้องอ้างอิงรหัสโปรเจ็กต์ (โดยปกติจะระบุเป็น
PROJECT_ID
) หากคุณไม่ชอบรหัสที่สร้างขึ้น คุณสามารถสร้างรหัสแบบสุ่มอื่นได้ หรือคุณจะลองดำเนินการเองแล้วดูว่าพร้อมให้ใช้งานหรือไม่ คุณจะเปลี่ยนแปลงหลังจากขั้นตอนนี้ไม่ได้และจะยังคงอยู่ตลอดระยะเวลาของโปรเจ็กต์ - สำหรับข้อมูลของคุณ ค่าที่ 3 คือหมายเลขโปรเจ็กต์ ซึ่ง API บางตัวใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับค่าทั้ง 3 ค่าได้ในเอกสารประกอบ
- ถัดไป คุณจะต้องเปิดใช้การเรียกเก็บเงินใน Cloud Console เพื่อใช้ทรัพยากร/API ของระบบคลาวด์ การใช้งาน Codelab นี้จะไม่มีค่าใช้จ่ายใดๆ หากมี หากต้องการปิดทรัพยากรเพื่อหลีกเลี่ยงการเรียกเก็บเงินที่นอกเหนือจากบทแนะนำนี้ คุณสามารถลบทรัพยากรที่คุณสร้างหรือลบโปรเจ็กต์ได้ ผู้ใช้ Google Cloud ใหม่มีสิทธิ์เข้าร่วมโปรแกรมช่วงทดลองใช้ฟรี$300 USD
เริ่มต้น Cloud Shell
แม้ว่าคุณจะดำเนินการ Google Cloud จากระยะไกลได้จากแล็ปท็อป แต่คุณจะใช้ Cloud Shell ใน Codelab ซึ่งเป็นสภาพแวดล้อมบรรทัดคำสั่งที่ทำงานในระบบคลาวด์
เปิดใช้งาน Cloud Shell
- คลิกเปิดใช้งาน Cloud Shell จาก Cloud Console
หากเริ่มต้นใช้งาน Cloud Shell เป็นครั้งแรก คุณจะเห็นหน้าจอตรงกลางที่อธิบายว่านี่คืออะไร หากระบบแสดงหน้าจอตรงกลาง ให้คลิกต่อไป
การจัดสรรและเชื่อมต่อกับ Cloud Shell ใช้เวลาเพียงไม่กี่นาที
เครื่องเสมือนนี้โหลดด้วยเครื่องมือการพัฒนาทั้งหมดที่จำเป็น โดยมีไดเรกทอรีหลักขนาด 5 GB ถาวรและทำงานใน Google Cloud ซึ่งช่วยเพิ่มประสิทธิภาพของเครือข่ายและการตรวจสอบสิทธิ์ได้อย่างมาก งานส่วนใหญ่ใน Codelab นี้สามารถทำได้โดยใช้เบราว์เซอร์
เมื่อเชื่อมต่อกับ 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.
ตอนนี้คุณสามารถใช้ API การแปลได้แล้ว
ตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้ (ที่จะใช้ในแอปพลิเคชันของคุณ)
export PROJECT_ID=$(gcloud config get-value core/project) echo "→ PROJECT_ID: $PROJECT_ID"
ไปที่ไดเรกทอรีหน้าแรก
cd ~
สร้างสภาพแวดล้อมเสมือนของ Python เพื่อแยกทรัพยากร Dependency ต่อไปนี้
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.11.0 ...
ตอนนี้คุณก็พร้อมที่จะใช้ไลบรารีของไคลเอ็นต์ Translation API แล้ว
ในขั้นตอนถัดไป คุณจะต้องใช้ล่าม Python แบบอินเทอร์แอกทีฟที่ชื่อ IPython ซึ่งคุณติดตั้งไว้ก่อนหน้านี้ เริ่มเซสชันโดยการเรียกใช้ ipython
ใน Cloud Shell:
ipython
คุณควรจะเห็นบางสิ่งเช่นนี้:
Python 3.9.2 (default, Feb 28 2021, 17:03:44) Type 'copyright', 'credits' or 'license' for more information IPython 8.12.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: 136 ---------------------- af Afrikaans ak Akan sq Albanian am Amharic ar Arabic ... cy Welsh xh Xhosa yi Yiddish yo Yoruba zu Zulu
คุณสามารถดูสิ่งที่คุณได้มาจากภาษาที่แสดงในภาษาฝรั่งเศส:
print_supported_languages("fr")
คุณจะเห็นรายชื่อเดียวกัน โดยจัดเรียงตามชื่อภาษาฝรั่งเศส ซึ่งมีลักษณะคล้ายกับด้านล่างนี้
---------------------- Languages: 136 ---------------------- af Afrikaans sq Albanais de Allemand am Amharique en Anglais ... vi Vietnamien xh Xhosa yi Yiddish yo Yorouba 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. ตรวจหาภาษา
คุณยังสามารถใช้ 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: 80% | 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 ให้กลับไปที่ Shell:
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
ใบอนุญาต
ผลงานนี้ได้รับอนุญาตภายใต้ใบอนุญาตทั่วไปครีเอทีฟคอมมอนส์แบบระบุแหล่งที่มา 2.0