Tải bản đầy đủ (.docx) (77 trang)

Nghiên cứu mô hình ngôn ngữ NGRAM cho tiếng Việt và ứng dụng sửa lỗi dấu thanh trong tiếng Việt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (844.1 KB, 77 trang )

1


2

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC ĐẠI
CÔNG
NGHỆ
THÔNG
TIN & TRUYỀN THÔNG
HỌC
THÁI
NGUYÊN
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN & TRUYỀN THƠNG

VŨ CHÍ HIẾU

VŨ CHÍ HIẾU

NGHIÊNCỨU
CỨUMƠ
MƠHÌNH
HÌNHNGƠN
NGƠNNGỮ
NGỮN-GRAM
N-GRAMCHO
CHOTIẾNG
TIẾNG
NGHIÊN
VIỆTVÀ


VÀỨNG
ỨNGDỤNG
DỤNGSỬA
SỬALỖI
LỖIDẤU
DẤUTHANH
THANHTRONG
TRONGTIẾNG
TIẾNG
VIỆT
VIỆT
VIỆT

Chun ngành: Khoa học máy tính
Mã số:

60 48 0101

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Giáo viên hướng dẫn: TS. VŨ TẤT THẮNG

Thái Nguyên - 2016
Thái Nguyên – 2016


3



1

LỜI CAM ĐOAN
Tơi xin cam đoan, tồn bộ nội dung liên quan tới đề tài được trình bày
trong luận văn là bản thân tơi tự tìm hiểu và nghiên cứu, dưới sự hướng dẫn
khoa học của TS. Vũ Tất Thắng Viện công nghệ thông tin thuộc Viện Khoa
học và Công nghệ Việt Nam.
Các tài liệu, số liệu tham khảo được trích dẫn đầy đủ nguồn gốc.
Thái Nguyên, ngày 20 tháng 3 năm 2016
Học viên

Vũ Chí Hiếu


2

LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn tới trường Đại học CNTT&TT – Đại học Thái
Nguyên đã tạo điều kiện và tổ chức khóa học này để tơi có thể có điều kiện
tiếp thu kiến thức mới và có thời gian để hồn thành Luận văn Cao học này.
Tơi xin được cảm ơn TS.Vũ Tất Thắng, người đã tận tình chỉ dẫn tơi
trong suốt q trình xây dựng đề cương và hồn thành luận văn.
Tơi xin chân thành cảm ơn các thày cô đã truyền đạt cho em những
kiến thức quý báu trong quá trình học Cao học và làm Luận văn.
Tôi chân thành cảm ơn các bạn bè, anh chị em trong lớp cao học K13
đã giúp đỡ, đóng góp ý kiến chia sẽ những kinh nghiệm học tập, nghiên cứu
trong suốt khóa học.
Cuối cùng tơi kính gửi thành quả này đến gia đình và người thân của
tơi, những người đã hết lịng chăm sóc, dạy bảo và động viên tơi để tơi có kết
quả ngày hơm nay.

Mặc dù tơi đã cố gắng hồn thành Luận văn trong phạm vi và khả
năng cho phép nhưng chắc chắn không tránh khỏi những thiếu sót. Xin kính
mong nhận được sự cảm thơng và tận tình chỉ bảo của q Thầy Cô và các
bạn.
Thái Nguyên, ngày 20 tháng 3 năm 2016
Học viên

Vũ Chí Hiếu


3

MỤC LỤC
LỜI CAM ĐOAN.......................................................................................................i
LỜI CẢM ƠN...........................................................................................................ii
LỜI NĨI ĐẦU...........................................................................................................1
CHƯƠNG I: MƠ HÌNH NGƠN NGỮ N-GRAM....................................................3
1.1. Giới thiệu chung:............................................................................................3
1.2. Cơng thức tính “xác suất thơ”:..................................................................4
1.3. Vấn đề khó khăn khi xây dựng mơ hình ngơn ngữ N-gram:...........5
1.3.1. Phân bố khơng đều:.............................................................................................5
1.3.2. Kích thước bộ nhớ của mơ hình ngơn ngữ:..................................................6

1.4. Các phương pháp làm mịn:.........................................................................6
1.4.1. Các thuật toán chiết khấu (discounting):...................................................7
1.4.1.1. Phương pháp làm mịn Add-One:..................................................................7
1.4.1.2. Phương pháp làm mịn Witten - Bell:...........................................................9
1.4.1.3. Phương pháp làm mịn Good - Turing:.......................................................10

1.4.2. Phương pháp truy hồi:.......................................................................................10

1.4.3. Phương pháp nội suy:........................................................................................12
1.4.4. Phương pháp làm mịn Kneser - Ney:............................................................13
1.4.5. Phương pháp làm mịn Chen - GoodMan:....................................................14

1.5. Kỹ thuật làm giảm kích thước dữ liệu:..................................................15
1.5.1. Đồng hóa (Quantization):.................................................................................16
1.5.2. Loại bỏ (pruning):................................................................................................16
1.5.2.1. Cắt bỏ (cut-off):.................................................................................................17
1.5.2.2. Sự khác biệt trọng số (Weighted difference):.......................................18

1.5.3. Nén (Compression):............................................................................................19

1.6. Độ đo trong đánh giá mơ hình:...............................................................19
1.6.1. Entropy - Độ đo thơng tin:...............................................................................19
1.6.2. Perplexity - Độ hỗn loạn thông tin:...............................................................21
1.6.3. Error rate - Tỉ lệ lỗi:.............................................................................................22

CHƯƠNG II: XÂY DỰNG N-GRAM CHO TIẾNG VIỆT...................................23
2.1. Giới thiệu:..............................................................................................................23


4

2.2. Công cụ tách từ cho tiếng Việt - vnTokenizer:.......................................................23
2.3. Bộ công cụ SRILM:...............................................................................................27
2.3.1. N-gram-count:..............................................................................................................27
2.3.2. N-gram:........................................................................................................................29

2.4. Bộ công cụ trợ giúp xây dựng tập văn bản huấn luyện:.........................................30
2.5. Phương pháp tách câu, tách từ, gán nhãn từ loại và phân tích cú pháp:.................31

2.5.1. Tách câu:......................................................................................................................31
2.5.2. Tách từ:.........................................................................................................................33
2.5.3. Gán nhãn từ loại:..........................................................................................................36
2.5.4. Phân tích cú pháp:........................................................................................................38

2.6. Dữ liệu huấn luyện:................................................................................................39
2.7. Kết quả xây dựng mơ hình:........................................................................39
2.7.1. Số lượng các cụm N-gram với tiếng Việt dựa trên âm tiết:..........................................39
2.7.2. Số lượng các cụm N-gram với tiếng Việt dựa trên từ:.................................................41

2.8. Phân bố thống kê của tần số các cụm N-gram:......................................................42
2.8.1. Với âm tiết....................................................................................................................42
2.8.2. Với từ:...........................................................................................................................43

2.9. Phương pháp loại bỏ (Cut-off ):.............................................................................44
2.9.1. Với âm tiết....................................................................................................................44
2.9.2.Với từ:............................................................................................................................45

2.10. Các phương pháp làm mịn:..................................................................................45
2.10.1. Với âm tiết:.................................................................................................................46
2.10.2. Với từ:.........................................................................................................................46

CHƯƠNG III: ỨNG DỤNG N-GRAM TRONG BÀI TOÁN BÀI TOÁN
SỬA LỖI DẤU THANH TRONG TIẾNG VIỆT...................................................48
3.1. Tổng quan:.............................................................................................................48
3.2. Bài toán sửa lỗi dấu thanh trong tiếng Việt:...........................................................49
3.2.1. Phát biểu bài toán:.........................................................................................................49
3.2.2. Đặc điểm:......................................................................................................................49
3.2.3. Hướng giải quyết:.......................................................................................................50


3.3. Các hệ thống thêm dấu ứng dụng về N-gram đã có:..............................................50
3.3.1. Cơng cụ AMPad:...........................................................................................................50


5

3.3.2. VietPad:.........................................................................................................................51

3.4. Đề xuất hệ thống:...................................................................................................52
3.5. Cài đặt thử nghiệm và đánh giá hệ thống...............................................................55

KẾT LUẬN.............................................................................................................58
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI...................................................................60


6

DANH MỤC Ả
Hình 2 - 1: Quy trình tách từ............................................................................23
Hình 2 - 2: Số lượng các cụm N-gram với âm tiết khi tăng kích thước dữ
liệu.......................................................................................................................... 38
Hình 2 - 3: số lượng các cụm N-gram với từ khi tăng kích thước dữ liệu
................................................................................................................................. 39
Hình 2 - 4: Số lượng các cụm N-gram (âm tiết) có tần số từ 1 đến 10.....................41
Hình 2 - 5: Số lượng các cụm Ngram (từ) có tần số từ 1 đến 10...........................42Y
Hình 3 - 1: Thêm dấu tiếng Việt tự động bằng AMPad............................................49
Hình 3 - 2: Gõ tiếng Việt khơng dấu trên VietPad.....................................50
Hình 3 - 3: Lưu đồ thực hiện của mơ hình đề xuất...................................51
Hình 3 - 4: Giao diện chương trình..........................................................................55
Hình 3 - 5: Chương trình thực hiện khi văn bản đầu vào hồn tồn khơng có dấu..............56

Hình 3 - 6: Chương trình thực hiện khi văn bản đầu vào có các từ có dấu
xen kẽ.................................................................................................................... 56


7

DANH MỤC BẢNG BIỂU
Bảng 2- 1: Số lượng các cụm N-gram trong văn bản huấn luyện với âm tiết..............37
Bảng 2- 2: Số lượng các cụm N-gram trong văn bản huấn luyện với
từ............................................................................................................................. 39
Bảng 2- 3: Tần số của tần số các cụm N-gram áp dụng cho âm tiết........................40
Bảng 2- 4: Tần số của tần số các cụm Ngram với từ...............................................41
Bảng 2- 5: Bộ nhớ và độ hỗn loạn thông tin khi áp dụng loại bỏ trong âm tiết...........43
Bảng 2- 6: Bộ nhớ và độ hỗn loạn thông tin khi áp dụng loại bỏ với từ..................43
Bảng 2- 7: Độ hỗn loạn thông tin của các phương pháp làm mịn cho âm tiết.............44
Bảng 2- 8: Độ hỗn loạn thông tin của các phương pháp làm mịn cho từ.................44


1

LỜI NĨI ĐẦU
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. 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 rất sâu sắc về
ngơn ngữ học.
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.
Nói một cách đơ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à có xác suất sinh ra là bao nhiêu.
Ví dụ: khi áp dụng mơ hình ngơn ngữ cho tiếng Việt, ta có thể có
một kết quả có dạng tương tự như sau:
P[“ngày mai trời sẽ mưa”] ~ 0.001 = 10-3
P[“trời mưa sẽ mai ngày”] ~ 10-11
Với các vấn đề của xử lí ngơn ngữ tự nhiên, việc sử dụng các mơ
hình ngôn ngữ để xác định xác suất xẩy ra như trên sẽ giúp giới hạn lại
khơng gian tìm kiếm, để có thể tìm ra các giải pháp tốt nhất trong một
khoảng thời gian đủ ngắn.
Như vậy, cốt lõi nhất của các phương pháp để máy tính xử lý ngơn
ngữ tự nhiên chính là việc xây dựng mơ hình ngơn ngữ, mà ngày nay
người ta thường dùng ở dạng mơ hình thống kê. 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ự


2

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. Trong
các mơ hình ngơn ngữ tiếng nói, thì N-gram là một trong số những mơ
hình được sử dụng rộng rãi nhất.
Mục tiêu của luận văn, là nghiên cứu nắm bắt được những vấn đề
cốt lõi của mơ hình ngơn ngữ N-gram, đặc biệt là các kỹ thuật làm trơn
các phân bố xác suất thống kê (Smoothing techniques), nhằm nâng cao
chất lượng về lượng giá xác suất bởi mơ hình. Ngồi ra, luận văn hướng
tới việc đưa ra một ứng dụng cụ thể của mơ hình này cho tiếng Việt, mà

cụ thể là bài toán sửa lỗi dấu thanh trong tiếng Việt.


3

CHƯƠNG I: MƠ HÌNH NGƠN NGỮ N-GRAM
1.1. Giới thiệu chung:
Mơ hình ngơn ngữ thống kê cho phép gán (ước lượng)
xác suất cho một chuỗi m phần tử (thường là từ) P(w 1w2…
wm) tức là cho phép dự đoán khả năng một chuỗi từ xuất
hiện trong ngơn ngữ đó. Theo cơng thức Bayes: P(AB) =
P(B|A) * P(A).
Với:
+ P(A): Xác suất xảy ra sự kiện A
+ P(B): Xác suất xảy ra sự kiện B
+ P(B|A): Xác suất (có điều kiện) xảy ra sự kiện B nếu biết rằng sự
kiện A đã xảy ra.
Thì ta dễ dàng suy ra được.
P(w1w2…wm) = P(w1) * P(w2|w1) * P(w3|w1w2) *…* P(wm|
w1w2…wm-1).
Theo cơng thức này thì bài tốn tính xác suất của mỗi
chuỗi từ quy về bài tốn tính xác suất của một từ với điều
kiện biết các từ trước nó (có thể hiểu P(w1)=P(w1|start) là
xác suất để w1 đứng đầu chuỗi hay nói cách khác người ta
có thể đưa thêm ký hiệu đầu dịng start vào mỗi chuỗi).
Trong thực tế, dựa vào giả thuyết Markov người ta chỉ
tính xác suất của một từ dựa vào nhiều nhất n từ xuất hiện
liền trước nó, và thơng thường n=0,1,2,3. Vì vậy nhiều
người gọi mơ hình ngơn ngữ là mơ hình N-gram, trong đó n
là số lượng từ (bao gồm cả từ cần tính và các từ ngữ cảnh

phía trước).
- Với n = 1, unigram.


4

- Với n = 2, ta có khái niệm bigram.
- Với n = 3, ta có trigram. Nhưng vì n càng lớn thì số
trường hợp càng lớn nên thường người ta chỉ sử dụng với n
= 1,2 hoặc đôi lúc là 3.
Theo cơng thức Bayes, 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 tồ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ừ. Các
mơ hình N-gram được hình dung thơng qua ví dụ như sau.
Ví dụ 1.1: Giả sử cần tính xác suất của P(nên|Có chí
thì nên).

- Mơ hình 1-Gram (Uni-gram): Tính xác suất của 1 từ
mà không phụ thuộc vào từ trước nó, tức là khơng có ngữ
cảnh.


5

P=P(nên)
- Mơ hình 2-gram (Bi-gram): Tính xác suất của 1 từ dựa
vào 1 từ liền ngay trước nó.
P=P(nên|thì)
- Mơ hình 3-gram (Tri-gram): Tính xác suất của 1 từ
dựa vào 2 từ liền ngay trước nó.
P=P(nên|chí thì)
1.2. Cơng thức tính “xác suất thơ”:
Để sử dụng được, mơ hình N-gram cần được cung cấp
nhiều thông tin về xác suất. Các thông tin này được rút
trích từ một kho ngữ liệu cho trước, gọi là kho ngữ liệu
huấn luyện.
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.
Ta có cơng thức tính xác suất như sau:
P(w|w...w) = \f(,
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) = \f(,
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.


6

1.3. Vấn đề khó khăn khi xây dựng mơ hình ngơn ngữ
N-gram:
1.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ả khơng
tốt. Với V là kích thước bộ từ vựng, ta sẽ có V cụm Ngram 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 tố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 N-gram 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 hồn

tồ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 1.4
1.3.2.

Kích thước bộ nhớ của mơ hình ngơn ngữ:


7

Khi kích thước tập văn bản huấn luyện lớn, số lượng
các cụm N-gram 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 mơ hình ngơn ngữ mà vẫn đảm bảo độ chính xác. Vấn
đề này sẽ được giải quyết ở phần 1.5
1.4. Các phương pháp làm mịn:
Để khắc phục tình trạng các cụm N-gram phân bố
không đều người ta đã đưa ra các phương pháp “làm mịn”
các kết quả thống kê nhằm đánh giá chính xác hơn (mịn
hơn) xác suất của các cụm N-gram. Các phương pháp “làm
mịn” đánh giá lại xác suất của các cụm N-gram bằng cách:
● Gán cho các cụm N-gram có xác suất 0 (khơng xuất
hiện trong tập huấn luyện) một giá trị khác 0.
● Thay đổi lại giá trị xác suất của các cụm N-gram có
xác suất khác 0 khác (có xuất hiện khi thống kê) thành
một giá trị phù hợp (tổng xác suất của tất cả các khả năng

N-gram khác nhau phải đảm bảo là không đổi, với giá trị là
100%).
Các phương pháp làm mịn có thể được chia ra thành
một số loại như sau:
● Chiết khấu (Discounting): Giảm (lượng nhỏ) xác suất
của các cụm N-gram có xác suất lớn hơn 0 để bù cho các
cụm N-gram không xuất hiện trong tập huấn luyện.


8

● Truy hồi (Back-off): Tính tốn xác suất các cụm Ngram không xuất hiện trong tập huấn luyện dựa vào các
cụm N-gram thành phần có độ dài ngắn hơn và có xác suất
lớn hơn 0.
● Nội suy (Interpolation): Tính tốn xác suất của tất cả
các cụm N-gram dựa vào xác suất của các cụm N-gram
ngắn hơn.
1.4.1.

Các thuật toán chiết khấu (discounting):
Nguyên lý của các thuật toán chiết khấu là giảm xác

suất của các cụm N-gram có xác suất lớn hơn 0 đề bù cho
các cụm N-gram chưa từng xuất hiện trong tập huấn luyện.
Các thuật toán này sẽ trực tiếp làm thay đổi tần số xuất
hiện của tất cả các cụm N-gram. Ở đây đề cập đến 3 thuật
toán chiết khấu phổ biến:
● Thuật toán Add-One
● Thuật toán Witten-Bell
● Thuật toán Good-Turing

1.4.1.1. Phương pháp làm mịn Add-One:
Phương pháp này sẽ cộng thêm vào số lần xuất hiện
của mỗi cụm N-gram lên 1, khi đó xác suất của cụm Ngram sẽ được tính lại là:

p

c 1
  
n  v (1.4.1)

Trong đó, � là của số lần xuất hiện cụm N-gram trong
tập ngữ liệu mẫu, � là số cụm N-gram, � là kích thước của
tồn bộ từ vựng. (Ở đây,

�c  n

vì thế sau khi thêm 1 vào


9

tần suất xuất hiện mỗi cụm N-gram, tổng này trở thành

�(c  1)  n  v , do đó ta cập nhật lại cơng thức tính xác suất
của cụm N-gram như trên)
Với Unigram, ta có thể viết lại (1.4) như sau:

p

Ta có ,


f

(1)

(1)

c (1)  1
 (1)
n v

n(1)
 (c  1) (1)
n  v là tần suất của unigram, c(1) là
(1)

số lần xuất hiện của Unigram trước khi làm mịn bằng
phương pháp Add-one.
Với cụm N-gram w=w1w2...wi, i>1, ta có ,

�C (w w ...w
1

i 1

2

w)  C (w1w2 ...wi 1 )

w


Do đó:
P ( wi | w1w2 ...wi 1 ) 

C ( w1w2 ...wi )  1
C ( w1w2 ...wi 1 )  V (1.4.2)

Để ý rằng, có rất nhiều cụm N-gram khơng nhìn thấy
(bậc thấp) so với những N-gram nhìn thấy (bậc cao). Trong
khi đó, có những cụm N-gram có nghĩa (cần thiết) bị giảm
đi còn những cụm N-gram tối nghĩa lại có xác suất tăng
lên. Để hạn chế điều này, người ta đưa thêm hệ số � thay
vì cộng 1 nhằm cân đối lại xác suất (Phương pháp làm mịn
Add-�).
p

c
n  v (1.4.3)


10

1
Trong đó, �<1. Đặc biệt, khi = 2 , được gọi là phương
pháp Jeffreys – Perks.
Đặt �= ��, khi đó (1.4.2) có thể viết lại thành:
1
C ( w1w2 ...wi )  M ( )
V
P ( wi | w1w2 ...wi 1 ) 

C ( w1w2 ...wi 1 )  M

1
Dễ thấy với một Unigram, tỷ số V

chính là xác suất

xảy ra của mỗi unigram Hay
P ( wi | wi1 ) 

C ( wi 1wi )  MP ( wi )
C (wi 1 )  M

1.4.1.2. Phương pháp làm mịn Witten - Bell:
Thuật toán Witten-Bell hoạt động dựa trên nguyên tắc:
Khi gặp những cụm N-gram có tần số 0, ta coi đây là
lần đầu tiên cụm từ này xuất hiện. Như vậy, xác suất của
cụm N-gram có tần số bằng 0 có thể tính dựa vào xác suất
gặp một cụm N-gram lần đầu tiên.
Với Uni-gram, gọi T là số cụm Uni-gram khác nhau đã
xuất hiện, còn M là tổng số các cụm Uni-gram đã thống kê,
khi đó tổng số sự kiện sẽ là (T+M), và xác suất để gặp cụm
Uni-gram lần đầu tiên (hay tổng xác suất của các cụm Unigram chưa xuất hiện lần nào) được tính bằng: \f(T,T+M
Gọi V là kích thước bộ từ vựng, cịn Z là số cụm Unigram chưa xuất hiện lần nào: Z = V - T
Xác suất xuất hiện của một cụm Uni-gram chưa xuất
hiện lần nào (có tần số bằng 0) được tính bằng:


11


P* = \f(T,
Và xác suất xuất hiện của các cụm Uni-gram có tần số
khác 0 được tính lại theo cơng thức:
P(w) = \f(,T+M với c(w) là số lần xuất hiện của cụm w
Cũng giống thuật toán Add-One, khi xét các cụm Ngram với N>1, thay M bằng C(w...w) thì xác suất của cụm
w...ww với C(w...ww) = 0 được tính theo cơng thức sau:
P(w|w...w) = \f(,
Với C(w...ww) > 0, thì xác suất cụm w...ww tính bằng
cơng thức:
P(w|w...w) = \f(,
1.4.1.3. Phương pháp làm mịn Good - Turing:
Thuật toán Good - Turing dựa trên việc tính tốn Nc,
với Nc là số cụm N-gram xuất hiện c lần. Như vậy:
N là số cụm N-gram có tần số 0 (số cụm N-gram khơng
xuất hiện lần nào)
N là số cụm N-gram có tần số 1 (số cụm N-gram xuất
hiện 1 lần)

N có thể hiểu đơn giản là: N =



w : count ( w)  c

Khi đó, thuật toán Good-Turing sẽ thay thế tần số c
bằng một tần số mới c* theo công thức:
c* = (c+1) * \f(N,N
Xác suất của một cụm N-gram với tần số là c được tính
lại theo cơng thức:
P(w) = \f(c*,N với N = Nc = Nc* = N(c+1)



12

Trên thực tế, người ta khơng tính tốn và thay thế mọi
tần số c bởi một tần số mới c*. Người ta chọn một ngưỡng
k nhất định, và chỉ thay thế tần số c bởi tần số mới c* khi c
nhỏ hơn hoặc bằng k, còn nếu c lớn hơn k thì giữ nguyên
tần số. Để đơn giản, người ta chọn k đủ lớn dựa vào kết
quả huấn luyện (ví dụ giá trị lớn nhất)
1.4.2.

Phương pháp truy hồi:
Trong các phương pháp chiết khấu như Add-One hay

Witten-Bell, nếu cụm w...ww không xuất hiện trong tập
huấn luyện, và cụm w...w cũng không xuất hiện, thì xác
suất của cụm w...ww sau khi làm mịn vẫn bằng 0. Phương
pháp truy hồi tránh rắc rối trên bằng cách ước lượng xác
suất các cụm N-gram chưa xuất hiện lần nào dựa vào xác
suất của các cụm N-gram ngắn hơn có xác suất khác 0.
Cụ thể, xác suất của cụm w...ww được tính lại theo cơng
thức sau:
P(w|w...w) =
Áp dụng cho Bi-gram, ta có:
P(w|w) =
Cơng thức trên có thể viết lại thành:
P(w|w) = P(w|w) + (ww) *  * P(w) với u(x) =
Tương tự, khi áp dụng cho Tri-gram ta có:
P(w|ww) =

Cơng thức trên cũng có thể viết lại thành:
P(w|ww) = P(w|ww) + (www)**P(w|w) + (ww)*
 * P(w)


13

Sự chính xác của mơ hình truy hồi phụ thuộc vào các
tham số  và  Có vài kỹ thuật giúp lựa chọn được những
tham số này, tùy theo tập huấn luyện và mơ hình ngơn
ngữ.
Một cách đơn giản, có thể chọn  và  là các hằng số.
Tuy nhiên rất khó có thể chọn được hai hằng số để tổng
xác suất của tất cả các cụm N-gram không thay đổi. Việc
chọn hằng số khơng chính xác, sẽ làm ảnh hưởng lớn đến
độ chính xác của cả mơ hình ngơn ngữ. Do đó, ta có thể
chọn tham số  như một hàm của N-gram:
 = (ww) và  = (ww)
Tuy nhiên, trong phương pháp truy hồi, tổng xác suất
của tất cả các cụm N-gram sẽ luôn lớn hơn 1, do xác suất
của các cụm N-gram đã xuất hiện thì khơng thay đổi,
trong khi xác suất của các cụm N-gram chưa xuất hiện
thì được tăng lên. Do đó, để thuật tốn chính xác hơn, thì
ta cần kết hợp nó với một thuật toán chiết khấu như
Witten-Bell hay Good-Turing để làm giảm xác suất của
các cụm N-gram đã xuất hiện. Do đó, trong thực tế,
chúng ta có cơng thức sau:
P(w|ww) =
Trong đó P’ chính là xác suất của cụm N-gram khi áp
dụng thuật toán làm mịn chiết khấu.

1.4.3.

Phương pháp nội suy:
Phương pháp này có chung nguyên lý với phương pháp

truy hồi: “sử dụng các cụm N-gram ngắn hơn để tính xác


14

suất của cụm N-gram dài hơn”. Tuy nhiên, phương pháp
này khác phương pháp truy hồi ở điểm: phương pháp này
không phụ thuộc vào sự xuất hiện của các cụm N-gram.
Công thức tính xác suất theo phương pháp nội suy như
sau:
P(w|w...w) = P(w|w...w) + (1-)P(w|w...w)
Áp dụng cho Bi-gram và Tri-gram ta có:
P(w|w) = P(w|w) + (1-)P(w)
P(w|w...w) = P(w|ww)+P(w|w) + P(w) với  = 1
Ở công thức trên, do tổng của tất cả các tham số 
bằng 1 nên để đơn giản ta có thể chọn tất cả  bằng nhau
và bằng \f(1,3.
Tuy nhiên, cũng có thể chọn các tham số  như là một
hàm của N-gram:
 = (www),  = (ww) và  = (w)
1.4.4.

Phương pháp làm mịn Kneser - Ney:
Thuật tốn Kneser - Ney xây dựng theo hai mơ hình:


truy hồi và nội suy, tuy nhiên trong thuật toán này khơng
cần phải áp dụng các thuật tốn chiết khấu trước khi áp
dụng cơng thức truy hồi.
a) Mơ hình truy hồi:
P(w|w..w)= \f(,

Trong đó:
o P(w) = \f(, với N(vw) là số lượng từ v khác nhau xuất
hiện trước w trong tập huấn luyện
o (w..w) = \f(,\f(,


15

Như vậy:
P(w|ww) = \f(,
P(w|w) = \f(,
P(w) = \f(,
b) Mơ hình nội suy:
P(w|w..w) = \f(, + (w..w)P(w|w..w)
Trong đó:
o (w..w) =

\f(, với N(w..wv) là số lượng từ v khác nhau

xuất hiện liền sau cụm w..w trong tập huấn luyện
o P(w) =

\f(, +  \f(1,V với N(vw) là số lượng từ v khác


nhau xuất hiện liền trước từ w trong tập huấn luyện.
o  = \f(,
Như vậy:
P(w|ww) = \f(, + (ww)P(w|w)
P(w|w) = \f(, + (w)P(w)
P(w) = \f(, +  \f(1,V
Trong cả 2 mô hình nội suy và truy hồi, D được chọn:
D = \f(N,N1+2N
1.4.5.

Phương pháp làm mịn Chen - GoodMan:
Cơng thức tính tốn của thuật toán Kneser - Ney cải

tiến bởi Chen và GoodMan giống cơng thức của thuật tốn
Kneser - Ney, tuy nhiên hằng số D bị thay đổi.
Chen và GoodMan chọn D như sau:
D=
Với Y = \f(N,


×