Chủ Nhật, 9 tháng 2, 2014

Xây dựng mô hình ngôn ngữ cho tiếng việt

TÓM TẮT
Mô hình ngôn ngữ là một bộ phận quan trọng của lĩnh vực xử
lý ngôn ngữ tự nhiên. Có rất nhiều lĩnh vực trong xử lý ngôn ngữ tự
nhiên sử dụng mô hình ngôn ngữ như: kiểm lỗi chính tả, dịch máy
hay phân đoạn từ Trên thế giới đã có rất nhiều nước công bố
nghiên cứu về mô hình ngôn ngữ áp dụng cho ngôn ngữ của họ
nhưng ở Việt Nam, việc nghiên cứu và xây dựng một mô hình ngôn
ngữ chuẩn cho tiếng Việt vẫn còn mới mẻ và gặp nhiều khó khăn.
Chính điều này đã gợi ý và thúc đẩy chúng tôi lựa chọn và tập trung
nghiên cứu vấn đề này để có thể tạo điều kiện cho việc xử lý ngôn
ngữ tiếng Việt vốn vô cùng phong phú của chúng ta.
Luận văn sẽ trình bày khái quát về mô hình ngôn ngữ, đồng
thời chỉ ra các khó khăn còn tồn tại để rồi đưa ra những phương
pháp khắc phục, trong đó trọng tâm nghiên cứu các phương pháp
làm mịn. Trong luận văn này này, chúng tôi sử dụng chủ yếu bộ
công cụ mã nguồn mở SRILIM để xây dựng mô hình ngôn ngữ cho
tiếng Việt, sau đó áp dụng mô hình ngôn ngữ đã tạo ra để tính toán
độ hỗn loạn thông tin của văn bản và dịch máy thống kê. Kết quả có
được sẽ là cơ sở chính để chúng tôi chỉ ra phương pháp làm mịn nào
là tốt nhất khi sử dụng trong việc xây dựng mô hình ngôn ngữ tiếng
Việt.
MỤC LỤC
Chương 1 Giới thiệu vấn đề 1
1.1 Đặt vấn đề: 1
1.2 Mục tiêu: 1
1.3 Cấu trúc của luận văn: 2
Chương 2 Mô hình ngôn ngữ Ngram: 3
2.1 Khái quát: 3
2.2 Công thức tính “xác suất thô”: 3
2.3 Khó khăn khi xây dựng mô hình ngôn ngữ N-gram 4
2.3.1 Phân bố không đều: 4
2.3.2 Kích thước bộ nhớ của mô hình ngôn ngữ 4
2.4 Các phương pháp làm mịn 5
2.4.1 Các thuật toán chiết khấu (discounting): 5
2.4.2 Phương pháp truy hồi: 8
2.4.3 Phương pháp nội suy: 9
2.4.4 Phương pháp làm mịn Kneser - Ney: 9
2.4.5 Phương pháp làm mịn Kneser - Ney cải tiến bởi Chen -
GoodMan: 11
2.5 Kỹ thuật làm giảm kích thước dữ liệu: 11
2.5.1 Loại bỏ (pruning): 11
2.5.2 Đồng hóa (Quantization): 13
2.5.3 Nén (Compression): 14
2.6 Độ đo: 14
2.6.1 Entropy – Độ đo thông tin: 14
2.6.2 Perplexity – Độ hỗn loạn thông tin: 15
2.6.3 Error rate – Tỉ lệ lỗi: 16
Chương 3 Ứng dụng của mô hình ngôn ngữ trong mô hình
dịch máy thống kê: 17
3.1 Dịch máy: 17
3.2 Dịch máy thống kê: 17
3.2.1 Giới thiệu: 17
3.2.2 Nguyên lý và các thành phần: 17
3.2.3 Mô hình dịch: 18
3.2.4 Bộ giải mã: 22
3.3 Các phương pháp đánh giá bản dịch: 23
3.3.1 Đánh giá trực tiếp bằng con người: 23
3.3.2 Đánh giá tự động: phương pháp BLEU 23
Chương 4 Thực nghiệm: 25
4.1 Công cụ: 25
4.1.1 Bộ công cụ trợ giúp xây dựng tập văn bản huấn luyện: 25
4.1.2 Công cụ tách từ cho tiếng Việt - vnTokenizer: 25
4.1.3 Bộ công cụ xây dựng mô hình ngôn ngữ - SRILM: 26
4.1.4 Bộ công cụ xây dựng mô hình dịch máy thống kê – MOSES: . 29
4.2 Dữ liệu huấn luyện: 31
4.3 Kết quả: 31
4.3.1 Số lượng các cụm ngram: 31
4.3.2 Tần số của tần số: 33
4.3.3 Cut-off (loại bỏ): 35
4.3.4 Các phương pháp làm mịn: 37
4.3.5 Áp dụng vào mô hình dịch máy thống kê: 38
Chương 5 Kết luận 40
Tài liệu tham khảo 41
Danh sách các bảng sử dụng trong luận văn:
Bảng 4-1: số lượng các cụm Ngram trong văn bản huấn luyện
với âm tiết 32
Bảng 4-2: số lượng các cụm Ngram trong văn bản huấn luyện
với từ 33
Bảng 4-3: tần số của tần số các cụm Ngram áp dụng cho âm
tiết 34
Bảng 4-4: tần số của tần số các cụm Ngram với từ 35
Bảng 4-5: bộ nhớ và độ hỗn loạn thông tin khi áp dụng loại bỏ
trong âm tiết 36
Bảng 4-6: bộ nhớ và độ hỗn loạn thông tin khi áp dụng loại bỏ
với từ 37
Bảng 4-7: độ hỗn loạn thông tin của các phương pháp làm
mịn cho âm tiết 37
Bảng 4-8: độ hỗn loạn thông tin của các phương pháp làm
mịn cho từ 38
Bảng 4-9: điểm BLEU của bản dịch máy với mô hình ngôn
ngữ sử dụng dữ liệu huấn luyện có kích thước nhỏ (50Mb) 38
Bảng 4-10: điểm BLEU của bản dịch máy với mô hình Ngram
sử dụng dữ liệu huấn luyện có kích thước lớn (300Mb) 38

Danh sách các hình sử dụng trong luận văn:
Hình 3-1: mô hình dịch máy thống kê từ tiếng Anh sang tiếng
Việt 18
Hình 3-2: sự tương ứng một - một giữa câu tiếng Anh và câu
tiếng Pháp 19
Hình 3-3: sự tương ứng giữa câu tiếng Anh với câu tiếng Tây
Ban Nha khi cho thêm từ vô giá trị (null) vào đầu câu tiếng
Anh 20
Hình 3-4: sự tương ứng một - nhiều giữa câu tiếng Anh với
câu tiếng Pháp 20
Hình 3-5: sự tương ứng nhiều - nhiều giữa câu tiếng Anh với
câu tiếng Pháp 20
Hình 3-6: mô hình dịch dựa trên cây cú pháp 22
Hình 3-7: sự trùng khớp của các bản dịch máy với bản dịch
mẫu 24
Hình 4-8: số lượng các cụm Ngram với âm tiết khi tăng kích
thước dữ liệu 32
Hình 4-9: số lượng các cụm Ngram với từ khi tăng kích thước
dữ liệu 33
Hình 4-10: số lượng các cụm Ngram (âm tiết) có tần số từ 1
đến 10 34
Hình 4-11: số lượng các cụm Ngram (từ) có tần số từ 1 đến 10
35
Chương 1Giới thiệu vấn đề
1.1 Đặt vấn đề:
Ngôn ngữ tự nhiên là những ngôn ngữ được con người sử dụng trong các giao tiếp
hàng ngày: nghe, nói, đọc, viết [10]. Mặc dù con người có thể dễ dàng hiểu và học các
ngôn ngữ tự nhiên; việc làm cho máy hiểu được ngôn ngữ tự nhiên không phải là
chuyện dễ dàng. Sở dĩ có khó khăn là do ngôn ngữ tự nhiên có các bộ luật, cấu trúc ngữ
pháp phong phú hơn nhiều các ngôn ngữ máy tính, hơn nữa để hiểu đúng nội dung các
giao tiếp, văn bản trong ngôn ngữ tự nhiên cần phải nắm được ngữ cảnh của nội dung
đó. Do vậy, để có thể xây dựng được một bộ ngữ pháp, từ vựng hoàn chỉnh, chính xác
để máy có thể hiểu ngôn ngữ tự nhiên là một việc rất tốn công sức và đòi hỏi người thực
hiện phải có hiểu biết sâu về ngôn ngữ học.
Các phương pháp xử lý ngôn ngữ tự nhiên dựa trên thống kê không nhắm tới việc
con người tự xây dựng mô hình ngữ pháp mà lập chương trình cho máy tính có thể
“học” nhờ vào việc thống kê các từ và cụm từ có trong các văn bản. Cốt lõi nhất của các
phương pháp xử lý ngôn ngữ tự nhiên dựa trên thống kê chính là việc xây dựng mô hình
ngôn ngữ.
Mô hình ngôn ngữ là một phân bố xác suất trên các tập văn bản [2][10]. Nói đơn
giản, mô hình ngôn ngữ có thể cho biết xác suất một câu (hoặc cụm từ) thuộc một ngôn
ngữ là bao nhiêu.
Ví dụ: khi áp dụng mô hình ngôn ngữ cho tiếng Việt:
P[“hôm qua là thứ năm”] = 0.001
P[“năm thứ hôm là qua”] = 0
Mô hình ngôn ngữ được áp dụng trong rất nhiều lĩnh vực của xử lý ngôn ngữ tự
nhiên như: kiểm lỗi chính tả, dịch máy hay phân đoạn từ Chính vì vậy, nghiên cứu mô
hình ngôn ngữ chính là tiền đề để nghiên cứu các lĩnh vực tiếp theo.
Mô hình ngôn ngữ có nhiều hướng tiếp cận, nhưng chủ yếu được xây dựng theo
mô hình Ngram. Vấn đề này sẽ trình bày rõ ràng hơn trong chương 2.
1.2 Mục tiêu:
Mục tiêu chính của luận văn là tìm hiểu lý thuyết về mô hình Ngram và các vấn đề
trong đó, đặc biệt là các phương pháp làm mịn. Về thực nghiệm, luận văn có sử dụng bộ
1
công cụ SRILM để xây dựng mô hình ngôn ngữ cho tiếng Việt với các phương pháp
làm mịn khác nhau. Bằng việc áp dụng các mô hình ngôn ngữ khác nhau đó vào dịch
máy thống kê, chúng tôi đã chỉ ra được phương pháp làm mịn nào là tốt nhất khi áp
dụng cho mô hình ngôn ngữ. Để đạt được thành tựu đó, chúng tôi cũng đã phải tìm hiểu
lý thuyết dịch máy thống kê và thực nghiệm dựa trên bộ công cụ Moses.
1.3 Cấu trúc của luận văn:
Luận văn có cấu trúc như sau:
Chương 2 xem xét các vấn đề liên quan đến mô hình ngôn ngữ Ngram, các sự cố
gặp phải và cách khắc phục.
Chương 3 đề cập đến lý thuyết mô hình dịch máy thống kê.
Chương 4, luận văn tập trung vào việc mô tả thực nghiệm, bao gồm công việc xây
dựng và cài đặt những chương trình hỗ trợ việc xây dựng được mô hình ngôn ngữ, mô
hình dịch máy thống kê và các kết quả đạt được
Chương 5 tổng kết lại những gì luận văn đạt được và đưa ra kế hoạch nghiên cứu
trong tương lai.
2
Chương 2Mô hình ngôn ngữ Ngram:
2.1 Khái quát:
Nhiệm vụ của mô hình ngôn ngữ là cho biết xác suất của một câu ww w là bao
nhiêu. Theo công thức Bayes: P(AB) = P(B|A) * P(A), thì:
P(ww…w) = P(w) * P(w|w) * P(w|ww) *…* P(w|ww…w)
Theo công thức này, mô hình ngôn ngữ cần phải có một lượng bộ nhớ vô cùng lớn
để có thể lưu hết xác suất của tất cả các chuỗi độ dài nhỏ hơn m. Rõ ràng, điều này là
không thể khi m là độ dài của các văn bản ngôn ngữ tự nhiên (m có thể tiến tới vô
cùng). Để có thể tính được xác suất của văn bản với lượng bộ nhớ chấp nhận được, ta
sử dụng xấp xỉ Markov bậc n:
P(w|w,w,…, w) = P(w|w,w, …,w)
Nếu áp dụng xấp xỉ Markov, xác suất xuất hiện của một từ (w) được coi như chỉ
phụ thuộc vào n từ đứng liền trước nó (ww…w) chứ không phải phụ thuộc vào toàn bộ
dãy từ đứng trước (ww…w). Như vậy, công thức tính xác suất văn bản được tính lại
theo công thức:
P(ww…w) = P(w) * P(w|w) * P(w|ww) *…* P(w|ww …w)* P(w|ww…w)
Với công thức này, ta có thể xây dựng mô hình ngôn ngữ dựa trên việc thống kê
các cụm có ít hơn n+1 từ. Mô hình ngôn ngữ này gọi là mô hình ngôn ngữ N-gram.
Một cụm N-gram là một dãy con gồm n phần tử liên tiếp của 1 dãy các phần tử
cho trước (trong bộ dữ liệu huấn luyện) [2].
Ví dụ: cụm 2-gram “tôi đã” thuộc câu “tôi đã từng đọc quyển sách ấy”.
Các phần tử được xét ở đây thường là kí tự, từ hoặc cụm từ; tùy vào mục đích sử
dụng. Dựa vào số phần tử của 1 cụm N-gram, ta có các tên gọi cụ thể:
N = 1: Unigram
N = 2: Bigram
N = 3: Trigram
2.2 Công thức tính “xác suất thô”:
Gọi C(w ww) là tần số xuất hiện của cụm w ww trong tập văn bản huấn luyện.
Gọi P(w|w w) là xác suất w đi sau cụm w ww.
3
Ta có công thức tính xác suất như sau:
P(w|w w) =
Dễ thấy, C(w ww) chính là tần số xuất hiện của cụm w w trong văn bản huấn
luyện. Do đó công thức trên viết lại thành:
P(w|w w) =
Tỉ lệ ở vế phải còn gọi là tỉ lệ tần số. Cách tính xác suất dựa vào tỉ lệ tần số còn
gọi là ước lượng xác suất cực đại. Cũng có thể gọi đây là công thức tính “xác suất thô”
để phân biệt với các cách tính xác suất theo các thuật toán sẽ xét ở phần sau.
2.3 Khó khăn khi xây dựng mô hình ngôn ngữ N-gram
2.3.1 Phân bố không đều:
Khi sử dụng mô hình N-gram theo công thức “xác suất thô”, sự phân bố không đều
trong tập văn bản huấn luyện có thể dẫn đến các ước lượng không chính xác. Khi các N-
gram phân bố thưa, nhiều cụm n-gram không xuất hiện hoặc chỉ có số lần xuất hiện nhỏ,
việc ước lượng các câu có chứa các cụm n-gram này sẽ có kết quả tồi. Với V là kích
thước bộ từ vựng, ta sẽ có V cụm N-gram có thể sinh từ bộ từ vựng. Tuy nhiên, thực tế
thì số cụm N-gram có nghĩa và thường gặp chỉ chiếm rất ít.
Ví dụ: tiếng Việt có khoảng hơn 5000 âm tiết khác nhau, ta có tổng số cụm 3-gram
có thể có là: 5.000 = 125.000.000.000 Tuy nhiên, số cụm 3-gram thống kê được chỉ xấp
xỉ 1.500.000. Như vậy sẽ có rất nhiều cụm 3-gram không xuất hiện hoặc chỉ xuất hiện
rất ít.
Khi tính toán xác suất của một câu, có rất nhiều trường hợp sẽ gặp cụm Ngram
chưa xuất hiện trong dữ liệu huấn luyện bao giờ. Điều này làm xác suất của cả câu bằng
0, trong khi câu đó có thể là một câu hoàn toàn đúng về mặt ngữ pháp và ngữ nghĩa. Đề
khắc phục tình trạng này, người ta phải sử dụng một số phương pháp “làm mịn” kết quả
thống kê mà chúng ta sẽ đề cập ở phần 2.5.
2.3.2 Kích thước bộ nhớ của mô hình ngôn ngữ
Khi kích thước tập văn bản huấn luyện lớn, số lượng các cụm Ngram và kích
thước của mô hình ngôn ngữ cũng rất lớn. Nó không những gây khó khăn trong việc lưu
trữ mà còn làm tốc độ xử lý của mô hình ngôn ngữ giảm xuống do bộ nhớ của máy tính
là hạn chế. Để xây dựng mô hình ngôn ngữ hiệu quả, chúng ta phải giảm kích thước của
4

Không có nhận xét nào:

Đăng nhận xét