6 กุมภาพันธ์ 2559

Published 2/06/2559 by with 0 comment

ทำโปรแกรมแปลภาษาอังกฤษให้เป็นภาษาลาวด้วยภาษา Python

สวัสดี (สะบายดี) ผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปทำโปรแกรมแปลภาษาอังกฤษให้เป็นภาษาลาวด้วยภาษา Python กันครับ 
สำหรับ ภาษาอังกฤษ แปลเป็น ภาษาไทย อ่านได้จากบทความ : เขียนโปรแกรมแปลภาษา dictionary บน Python 3

บทความนี้ใช้ความรู้และเครื่องมือจากบทความ

ผมใช้ฐานข้อมูลภาษาอังกฤษกับภาษาลาว ที่ชื่อว่า Lao-English dictionary from the Lao Ministry of Post and Telecommunications ใช้ MIT License ซึ่งปรากฎอยู่บนหน้าเพจ https://github.com/googlei18n/language-resources/tree/master/third_party เป็นหนึ่งในโครงการของ Google Internationalization

ผมทำการโหลดไฟล์ lao-eng-dictionary.csv มาไว้โฟลเดอร์เดียวกันกับโค้ด Python (โหลดไฟล์ lao-eng-dictionary.csv ได้จาก https://github.com/googlei18n/language-resources/raw/master/third_party/lo_dictionary_by_mopt_laos/lao-eng-dictionary.csv )

โครงสร้างภายในไฟล์ lao-eng-dictionary.csv มีรูปแบบดังนี้
'ID', 'LaoWord', 'English', 'Pronunciation', 'Type'

และเนื่องจากภาษาลาว Font ส่วนใหญ่บนคอมมาไลน์ ไม่มีอักษรภาษาลาวอยู่ ทำให้เราไม่สามารถใช้คำสั่ง print ใน cmd หรือคอมมาไลน์อื่น ๆ ได้ จึงต้องใช้ GUI เข้ามาช่วยแสดงผลลัพธ์เป็นอักษรภาษาลาว ผมจึงใช้โมดูล easygui เข้ามาช่วยแสดงผลอักษรภาษาลาวในภาษา Python

โค้ด :

[python]
import csv
import easygui

msg = "Enter your word"
title = "Eng to lao"
word = easygui.enterbox(msg,title) # แสดงกล่องรับคำภาษาอังกฤษที่ต้องการแปลเป็นภาษาลาว

#word = 'hello'
data = []
filename = 'lao-eng-dictionary.csv'
with open(filename, newline='', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
data.append(row) # เพิ่มข้อมูลเข้าไปยัง data
a = {}
i = 0
del data[0]
while i < len(data):
a.update({data[i][2]:data[i][1]}) # ตัดข้อมูลให้เหลือเพียง 'English' กับ 'LaoWord' เป็นข้อมูลชนิด dict
i+=1 # เพื่อค่าอีก 1
b = a.get(word) # รับค่าจากคำที่ค้นหา
easygui.msgbox(b, 'Eng to Lao') # แสดงผลลัพธ์
[/python]

ผลลัพธ์

[caption id="" align="aligncenter" width="398"] หน้าต่างให้กรอกคำภาษาอังกฤษที่ต้องการแปลให้เป็นภาษาลาว[/caption]

[caption id="" align="aligncenter" width="413"]ทำโปรแกรมแปลงภาษาอังกฤษให้เป็นภาษาลาวด้วยภาษา Python แสดงผลลัพธ์คำภาษาลาวที่พบ[/caption]

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)