SỐ 208
KINH NGHIỆM LẬP TRÌNH

Phiên dịch tiếng Anh sang tiếng Việt bằng VB

Viết ứng dụng để dịch một đoạn văn tiếng Anh sang tiếng Việt dường như là việc quá ư khó khăn. Tuy nhiên, nếu ta chỉ xét những câu đàm thoại thông thường thì việc "phiên dịch tự động" không phức tạp lắm. Xin trình bày một ý tưởng để giúp bạn... học tiếng Anh tốt hơn.

Bạn hãy tạo dự án mới trong VB rồi bấm Ctrl+T. Trên hộp thoại vừa hiện ra, bạn chọn Microsoft Rich Textbox Control 6.0 và nhấn OK. Tiếp theo, bạn thiết kế giao diện như hình 1 với các thuộc tính như trong bảng 1 và bảng 2 rồi đánh đoạn mã 1.

Sau khi lưu ứng dụng, bạn tạo 3 tập tin văn bản TXT trong thư mục của ứng dụng:
- phrases.txt: chứa các mệnh đề đặc biệt hay thành ngữ tiếng Anh (at night, at times,...).
- verbs.txt: chứa các chủ ngữ và động từ tiếng Anh (I am, he is, we do,...).
- words.txt: chứa các từ tiếng Anh thông dụng (I, hello, you,...).
Cả ba tập tin như vậy có dạng thức như sau:
"tu_tieng_Anh_1","nghia_1"
"tu_tieng_Anh_2","nghia_2"
...
Bạn chạy thử và đánh câu tiếng Anh ở khung văn bản phía trên xem sao. Thật ngạc nhiên, phía dưới xuất hiện câu tiếng Việt tương ứng! Bạn chú ý, ứng dụng hoạt động tốt hay không là do cơ sở dữ liệu (CSDL) từ ngữ của ta có phong phú hay không. Bạn nên đưa nhiều thành ngữ vào tập tin phrases.txt. Bạn có thể tải mã nguồn và CSDL của ứng dụng tại: www.echip.com.vn. Chúc bạn thành công.
H1

Bảng 1

Control

Name

Font

RichTextbox1

txtenglish

14, Bold

RichTextbox2

txtvietnam

14, Bold

Bảng 2

Control

Name

Interval

Timer1

t_1

5

Timer2

t_2

1

Đoạn mã 1
Dim vn_words(1 To 1000)
Dim en_words(1 To 1000)
Dim dotime As String
Dim strings As String
Dim check_verbs As Integer
Dim check_phrases As Integer
Dim englishtext, vietnamtext

Private Sub Form_Load()
Form1.Show
t_1.Enabled = False
t_2.Enabled = True
listwords = 1

Open (App.Path & "\phrases.txt") For Input As #1
Do While Not EOF(1)
Input #1, englishtext, vietnamtext
en_words(listwords) = englishtext
vn_words(listwords) = vietnamtext
listwords = listwords + 1
Loop
Close #1
check_phrases = listwords

Open (App.Path & "\verbs.txt") For Input As #1
Do While Not EOF(1)
Input #1, englishtext, vietnamtext
en_words(listwords) = englishtext
vn_words(listwords) = vietnamtext
listwords = listwords + 1
Loop
Close #1
check_verbs = listwords - check_phrases

Open (App.Path & "\words.txt") For Input As #1
Do While Not EOF(1)
Input #1, englishtext, vietnamtext
en_words(listwords) = englishtext
vn_words(listwords) = vietnamtext
listwords = listwords + 1
Loop
Close #1
End Sub

Private Sub t_1_Timer()
If txtvietnam.Text = "" Then Exit Sub
If dotime = txtvietnam.Text Then Exit Sub
txtenglish.Text = ""
whereareweat = 1
dotime = txtvietnam.Text
strings = txtvietnam.Text
For i = 1 To 13
strings = Replace(strings, vn_words(i), en_words(i) & " ")
Next i
For i = 1 To 1000
strings = Replace(strings, vn_words(i), en_words(i) & " ")
Next i
txtvietnam.Text = strings
End Sub

Private Sub t_2_Timer()
If txtenglish.Text = "" Then Exit Sub
If dotime = txtenglish.Text Then Exit Sub
txtvietnam.Text = ""
whereareweat = 1
dotime = txtenglish.Text
strings = txtenglish.Text
For i = 1 To check_phrases
strings = Replace(strings, vn_words(i), en_words(i) & " ")
Next i
For i = check_phrases To check_verbs
strings = Replace(strings, vn_words(i), en_words(i) & " ")
Next i
For i = 1 To 1000
strings = Replace(strings, en_words(i), vn_words(i) & " ")
Next i
txtvietnam.Text = strings
End Sub

Lê Khắc Như (Bình Định)
Lời bàn của CHƯƠNG CAN CHÍP
Bạn Như có ý tưởng rất vui, nhưng bạn nên tung thêm một số “chiêu thức” bổ sung nữa. Tui có mần theo lời dụ dỗ của bạn. Nhờ thói quen... cẩu thả (gõ lộn xộn chữ thường và chữ hoa), tui phát hiện đôi điều:
• Khi muốn chào, tui gõ HI, thì nhận được phần dịch là HTôi.
• Nếu muốn "everybody" trở thành “mọi người”, tui phải gõ ký tự trắng trước khi nện dấu phẩy.
• Nếu gõ "AM", tui hổng nhận được “là” mà chương trình thẩy lại cho tui y như dzậy!
Vậy là chương trình hổng chịu phân biệt chữ thường với chữ hoa, hổng phân biệt chữ I đứng riêng và I đứng trong từ khác và cũng hổng phân biệt dấu cách giữa các từ nữa. Nào, bà con vén tay áo nhào dzô xem!
[Đầu trang]
Trang chủ
Nội lực "Peter Pan"
Cầu nối Intel Việt Nam
Chuyện trong tuần
Cõi người ta
Bình luận thị trường
Cõi Mô-bai
Chuyên đề
Bổ ngửa
Túi càn khôn IT
Hồ lô biến
Cảm về Game
Nhật ký e-CHÍP
Bản quyền Công ty Phần mềm & Truyền thông VASC
 99 Triệu Việt Vương HN; Tel: (04) 9782235 • email: echip@vasc.com.vn
Mọi chi tiết về kinh doanh và quảng cáo xin liên hệ Phòng Quảng cáo. Tel: (04) 9782077 kd@vasc.com.vn