BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
---------------------------------------
VŨ THÀNH BÚT
VŨ THÀNH BÚT
CÔNG NGHỆ THÔNG TIN
PHÁT HIỆN VÀ SỬA LỖI CHÍNH TẢ TIẾNG VIỆT
LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN
2015B
Hà Nội – Năm 2018
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------VŨ THÀNH BÚT
PHÁT HIỆN VÀ SỬA LỖI CHÍNH TẢ TIẾNG VIỆT
Chuyên ngành: Công nghệ thông tin
LUẬN VĂN THẠC SĨ KỸ THUẬT
CÔNG NGHỆ THÔNG TIN
NGƢỜI HƢỚNG DẪN KHOA HỌC :
PGS.TS. Lê Thanh Hƣơng
Hà Nội – Năm 2018
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn: Vũ Thành Bút
Đề tài luận văn: Phát hiện và sửa lỗi chính tả tiếng Việt
Chun ngành: Cơng nghệ thơng tin
Mã số SV: CB150303
Tác giả, Ngƣời hƣớng dẫn khoa học và Hội đồng chấm luận văn xác
nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày
27/10/2018 với các nội dung sau:
1. Chỉnh sửa, tinh lọc lại cho rõ nghĩa một số câu trong luận văn.
2. Sửa một số lỗi chính tả có trong luận văn.
3. Loại bỏ các tài liệu tham khảo không sử dụng và bổ sung các tài liệu tham
khảo đƣợc sử dụng trong luận văn.
Ngày 16 tháng 11 năm 2018
Giáo viên hƣớng dẫn
Tác giả luận văn
PGS.TS. Lê Thanh Hƣơng
CHỦ TỊCH HỘI ĐỒNG
PGS.TS. Nguyễn Thị Kim Anh
Vũ Thành Bút
LỜI CAM ĐOAN
Những kiến thức trình bày trong luận văn là do tơi tìm hiểu, nghiên cứu và
trình bày theo những kiến thức tổng hợp của cá nhân. Kết quả nghiên cứu trong luận
văn này chƣa từng đƣợc công bố tại bất kỳ cơng trình nào khác. Trong q trình làm
luận văn, tơi có tham khảo các tài liệu có liên quan và đã ghi rõ nguồn tài liệu tham
khảo. Tơi xin cam đoan đây là cơng trình nghiên cứu của tôi và không sao chép của
bất kỳ ai.
Tôi xin chịu hồn tồn trách nhiệm, nếu sai, tơi xin chịu mọi hình thức kỷ
luật theo quy định.
Hà Nội, ngày 18 tháng 10 năm 2018
Học viên
Vũ Thành Bút
LỜI CẢM ƠN
Trƣớc tiên, tơi xin bày tỏ lịng biết ơn sâu sắc tới PGS.TS. Lê Thanh Hƣơng
và các thầy cô Viện CNTT-TT, Trƣờng Đại học Bách Khoa Hà Nội đã nhiệt tình
hƣớng dẫn và đào tạo cho tơi để tạo điều kiện thuận lợi cho tôi nghiên cứu và học
tập, và giúp tơi có thể hồn thành luận văn một cách tốt nhất.
Cuối cùng tôi xin gửi lời cám ơn đến gia đình, bạn bè, những ngƣời đã ln
bên tơi, động viên và khuyến khích tơi trong q trình thực hiện đề tài nghiên cứu
của mình.
Học viên
Vũ Thành Bút
MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ..............................................1
DANH MỤC HÌNH VẼ ..............................................................................................2
DANH MỤC BẢNG ...................................................................................................3
MỞ ĐẦU .....................................................................................................................4
CHƢƠNG 1: Tổng quan về bài toán ..........................................................................6
1.1. Giới thiệu bài toán ............................................................................................6
1.2. Một số đặc điểm trong tiếng Việt .....................................................................7
1.2.1. Đặc điểm của tiếng Việt ............................................................................7
1.2.2. Các đơn vị của tiếng Việt ..........................................................................7
1.3. Một số lỗi chính tả cơ bản và phƣơng pháp kiểm lỗi mức độ âm tiết ..............9
1.3.1. Các nguyên nhân gây ra lỗi chính tả ..........................................................9
1.3.2. Phân loại lỗi chính tả .................................................................................9
1.3.3. Phát hiện lỗi chính tả ...............................................................................10
1.3.4. Sửa lỗi chính tả ........................................................................................11
1.4. Mục tiêu của luận văn.....................................................................................11
CHƢƠNG 2: Cơ sở lý thuyết mạng nơ-ron nhân tạo ...............................................13
2.1. Kiến trúc mạng nơ-ron nhân tạo ..................................................................13
2.2. Mạng nơ-ron hồi quy RNN .........................................................................14
2.2.1. Mạng nơ-ron hồi quy RNN ......................................................................14
2.2.2. Các ứng dụng của mạng RNN .................................................................15
2.2.3. Các mạng nơ-ron mở rộng .......................................................................17
2.3. Mạng Long Short-term Memory ....................................................................19
2.3.1. Vấn đề lƣu trữ thông tin ngữ cảnh phụ thuộc xa .....................................19
2.3.2. Mạng Long Short-term Memory .............................................................20
CHƢƠNG 3: Ứng dụng RNN cho bài tốn sửa lỗi chính tả tiếng Việt ....................26
3.1. Bài tốn sửa lỗi chính tả sử dụng RNN ..........................................................26
3.1.1. Mơ hình hóa ngơn ngữ .............................................................................26
3.1.2. Các bƣớc thực hiện của bài toán ..............................................................27
3.2. Áp dụng LSTM trong bài toán sửa lỗi chính tả tiếng Việt .............................31
3.2.1. Mơ hình seq2seq (LSTM Encoder - Decoder) và kỹ thuật attention ......32
CHƢƠNG 4: Cài đặt và thử nghiệm .........................................................................36
4.1. Cài đặt .............................................................................................................36
4.1.1. Thƣ viện tensorflow .................................................................................36
4.1.2. Xây dựng bộ dữ liệu ................................................................................37
4.1.3. Các bƣớc tiền xử lý ..................................................................................38
4.1.4. Tạo data noise ..........................................................................................39
4.1.5. Cài đặt cho mơ hình .................................................................................40
4.1.6. Tiến hành huấn luyện...............................................................................40
4.2. Thử nghiệm, đánh giá .....................................................................................41
4.2.1. Thử nghiệm ..............................................................................................41
4.2.2. Đánh giá ...................................................................................................43
KẾT LUẬN ...............................................................................................................46
TÀI LIỆU THAM KHẢO .........................................................................................47
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Viết tắt
Tiếng anh
Tiếng việt
CNTT
Information Technology
Công nghệ thông tin
ANN
Artificial neural network
Mạng nơ-ron nhân tạo
CPU
Central Processing Unit
Bộ xử lý trung tâm
GPU
Graphic Processing Unit
Bộ xử lý đồ họa
RNN
Recurrent neural network
Mạng nơ-ron hồi quy
LSTM
Long-short term memory network
Mạng bộ nhớ dài-ngắn
NLP
Natural Languague Processing
Xử lý ngôn ngữ tự nhiên
BPTT
Backpropagation Through Time
Lan truyền ngƣợc liên hồi
1
DANH MỤC HÌNH VẼ
Hình 2.1. Kiến trúc chung của một ANN gồm 3 thành phần đó là Input Layer,
Hidden Layer và Output Layer .................................................................................13
Hình 2.2. Mạng RNN ................................................................................................14
Hình 2.3. Dịch máy ....................................................................................................16
Hình 2.4. Mơ tả hình ảnh sử dụng RNN ...................................................................17
Hình 2.5. Bidirectional RNNs ...................................................................................17
Hình 2.6. Deep (Bidirectional) RNN ........................................................................18
Hình 2.7. RNN phụ thuộc long-term.........................................................................19
Hình 2.8. RNN với vấn đề phụ thuộc xa ...................................................................20
Hình 2.9. Mơ-đun lặp lại trong RNN chuẩn chứa một lớp đơn. ...................................21
Hình 2.10. Mơ-đun lặp lại trong một LSTM chứa bốn lớp tƣơng tác...........................21
Hình 2.11. Trạng thái tế bào trong mạng LSTM .........................................................22
Hình 2.12. Cổng (gate) trong LSTM .........................................................................23
Hình 2.13. Tầng cổng quên ........................................................................................24
Hình 2.14. Tầng cổng vào .........................................................................................24
Hình 2.15. Cập nhập trạng thái tế bào mới ...............................................................25
Hình 2.16. Đầu ra và trạng thái ẩn mới .....................................................................25
Hình 3.1. Bidirectional LSTM ..................................................................................32
Hình 3.2. Ví dụ về mơ hình seq2seq .........................................................................33
Hình 3.3. Minh họa mơ hình seq2seq dùng attention trong bài tốn dịch máy ........35
Hình 4.1. TensorFlow hỗ trợ tính tốn song song trên cả CPU và GPU ..................36
Hình 4.2. Ví dụ về một graph trong Tensorflow .......................................................37
Hình 4.3. Thực nghiệm 1 ..........................................................................................42
Hình 4.4. Thực nghiệm 2 ..........................................................................................42
Hình 4.5. Thực nghiệm 3 ..........................................................................................42
Hình 4.6. Thực nghiệm 4 ..........................................................................................42
Hình 4.7. Thực nghiệm 5 ..........................................................................................42
Hình 4.8. Thực nghiệm 6 ..........................................................................................43
2
DANH MỤC BẢNG
Bảng 1. Kết quả độ mất mát (loss) của mơ hình chỉnh sửa lỗi chính tả. ..................44
Bảng 2. Độ đo đánh giá chất lƣợng chƣơng trình. ....................................................44
3
MỞ ĐẦU
1. Cơ sở khoa học và thực tiễn của luận văn
Lý do lựa chọn đề tài.
Hiện nay công nghệ thông tin ngày càng phát triển, văn bản đƣợc soạn thảo
bằng hình thức viết tay dần đƣợc thay thế bằng hình thức đánh máy. Lỗi chính tả
xuất hiện là điều khơng thể tránh khỏi và có thể do nhiều nguyên nhân khác nhau:
lỗi đánh máy, ngƣời soạn thảo không biết mình đang viết sai... Những lỗi sai này,
ngƣời soạn thảo văn bản thƣờng khơng hoặc khó có thể nhận ra lỗi chính tả của
mình. Để phát hiện và sửa lỗi cho một văn bản có thể mất rất nhiều thời gian. Điều
này đã dẫn nhu cầu phát hiện và sữa lỗi chính tả tự động cho nhiều ngơn ngữ trên
các hệ soạn thảo văn bản khác nhau. Có hai loại lỗi chính tả tiếng Việt là lỗi sai âm
tiết và lỗi sai từ vựng. Luận văn sẽ phát hiện và sửa loại lỗi thứ nhất.
Tính cấp thiết của đề tài.
Phát hiện và sửa lỗi chính tả văn bản tự động là vấn đề đƣợc nhiều cá nhân,
đơn vị nghiên cứu và phát triển. Với tiếng Việt, hiện cũng đã có các cơng trình
nghiên cứu và ứng dụng để giải quyết bài toán, tuy nhiên các ứng dụng sửa lỗi
chính tả này chủ yếu sử dụng từ điển và các luật. Việc sử dụng thông tin ngữ cảnh
vào việc sửa lỗi chính tả cịn rất ít hoặc khơng đạt kết quả nhƣ mong đợi. Do đó,
nghiên cứu và phát triển một ứng dụng phát hiện và sửa lỗi chính tả tiếng Việt sử
dụng thông tin ngữ cảnh sẽ giúp cho việc sửa lỗi chính tả đạt hiệu quả cao hơn.
2. Mục đích của đề tài:
Tìm hiểu đặc điểm chính tả tiếng Việt, các lỗi chính tả cơ bản, các phƣơng
pháp phát hiện và sửa lỗi.
Nghiên cứu phƣơng pháp phát hiện và sửa lỗi chính tả tiếng Việt dựa trên từ
điển và ngữ cảnh.
Xây dựng ứng dụng để thử nghiệm.
Đánh giá hiệu quả, ƣu nhƣợc điểm và so sánh với các phƣơng pháp sửa lỗi
chính tả khác.
4
3. Nội dung của luận văn
Luận văn đƣợc chia ra làm 4 chƣơng cụ thể nhƣ sau:
CHƢƠNG 1: Tổng quan về bài toán
CHƢƠNG 2: Cơ sở lý thuyết mạng nơ-ron nhân tạo
CHƢƠNG 3: Ứng dụng RNN cho bài toán sửa lỗi chính tả tiếng Việt
CHƢƠNG 4: Cài đặt và thử nghiệm
5
NỘI DUNG
CHƢƠNG 1: Tổng quan về bài toán
1.1. Giới thiệu bài tốn
Bài tốn kiểm tra chính tả tự động cho văn bản tiếng Việt đã đƣợc quan tâm
nghiên cứu trong những năm gần đây, đặc biệt là với sự phát triển của CNTT cùng
một khối lƣợng khổng lồ những văn bản điện tử. Ứng dụng của bài tốn kiểm tra
chính tả tự động có ý nghĩa thực tế rất lớn đối với những hệ thống xử lý văn bản và
nhiều bài toán khác. Tại Việt Nam, những nghiên cứu về kiểm tra chính tả tiếng
Việt hiện nay cũng đã thu đƣợc một số kết quả, tuy nhiên còn gặp nhiều khó khăn
nhƣ: có nhiều chuẩn chính tả khác nhau và chƣa thống nhất chung trên cả nƣớc
trong mọi lĩnh vực, có chuẩn chính tả nhƣng chƣa có chuẩn chính âm,... Một số
phần mềm kiểm tra chính tả tiếng Việt cho văn bản điện tử cũng đã đƣợc công bố
nhƣ: VietSpell, Unikey, tích hợp trong MSWord 2003,… Tuy nhiên, ngồi
VietSpell, hầu hết chúng đều chƣa đƣợc áp dụng khả quan trong thực tế.
Chính tả là sự chuẩn hố hình thức chữ viết của ngơn ngữ. Đó là một hệ
thống các qui tắc về cách viết các âm tiết, từ, các dấu câu, tên riêng, từ nƣớc ngồi,
… Quan niệm về chính tả không phải do bản thân ngôn ngữ quy định mà do xã hội
quy định, và là các quy tắc đƣợc cộng đồng xã hội thừa nhận để viết. Khác với các
ngơn ngữ biến hình - ngơn ngữ mà các nội dung từ biểu hiện ngay ở mức từ khi
biến đổi hình thái từ nhƣ các ngơn ngữ Châu Âu (tiếng Anh, Pháp, ...) - là chính tả ở
mức “từ” thì chính tả tiếng Việt – ngơn ngữ đơn lập (nội dung của từ chỉ mang tính
từ vựng) - lại là chính tả ở mức “âm tiết”. Vì thế trong khi bƣớc đầu tiên của bài
tốn kiểm tra chính tả cho các ngơn ngữ biến hình là kiểm tra chính tả “từ” thì với
tiếng Việt sẽ phải tiến hành thêm một pha kiểm tra chính tả mức “âm tiết” ở trƣớc
pha kiểm tra mức “từ” này. Hay nói các khác mơ hình tổng quan kiểm tra chính tả
cho tiếng Việt sẽ bao gồm 3 pha:
- Pha kiểm tra chính tả ở mức “âm tiết”
6
- Pha kiểm tra chính tả ở mức “từ”
- Pha kiểm tra chính tả ở mức “câu” (mức ngữ pháp)
Nội dung của luận văn chỉ tập trung trình bày giải pháp cho pha kiểm tra
chính tả ở mức âm tiết.
Vấn đề kiểm tra lỗi chính tả là một trong những vấn đề quan trọng của xử lý
ngôn ngữ tự nhiên. Có nhiều ngun nhân tạo ra lỗi chính tả: lỗi do gõ sai từ, lỗi do
sử dụng từ điển sai. Tƣơng tự nhƣ những ngôn ngữ khác, phát hiện và sửa lỗi chính
tả tiếng Việt gồm hai giai đoạn: thứ nhất, tìm những từ sai lỗi chính tả và thứ hai là
tìm ra những từ gợi ý. Bởi vì mỗi ngơn ngữ có những đặc trƣng riêng, chi tiết mỗi
giai đoạn là khác nhau.
1.2. Một số đặc điểm trong tiếng Việt
1.2.1. Đặc điểm của tiếng Việt
Tiếng Việt là một ngôn ngữ đơn lập, quan hệ giữa các từ đƣợc biểu thị bằng
những phƣơng tiện nằm ngoài từ nhƣ trật tự từ, hƣ từ. Đặc điểm này đƣợc áp dụng
cho cả về ngữ âm, ngữ pháp và ngữ nghĩa.
1.2.2. Các đơn vị của tiếng Việt
Tiếng (âm tiết) là đơn vị phát âm tự nhiên nhỏ nhất trong ngôn ngữ. Trong
tiếng Việt, một âm tiết bao giờ cũng đƣợc phát ra với một thanh điệu, và khi
viết đƣợc tách rời với âm tiết khác bằng một khoảng trống. Trên chữ viết,
mỗi âm tiết tiếng Việt đƣợc ghi thành một “chữ” và đọc thành một “tiếng”.
Có nhiều cách mơ tả cấu trúc âm tiết tiếng Việt khác nhau: 3 thành phần, 4
hay 5 thành phần.
Từ: Từ là đơn vị ngôn ngữ có nghĩa hồn chỉnh. Từ tiếng Việt bao gồm một
hay nhiều âm tiết sắp xếp theo một thứ tự nhất định. Có từ đơn, từ ghép và từ
láy. Từ trong tiếng Việt có khả năng hoạt động tự do và độc lập về mặt cú
7
pháp. Từ tiếng Việt khơng có sự biến dạng (số nhiều, ngôi thứ, bị động...)
nhƣ trong nhiều ngôn ngữ khác.
Câu: Câu do các từ hợp thành theo những quy tắc nhất định. Trong tiếng
Việt, các quy tắc này rất đa dạng.
Dấu thanh: Tiếng Việt gồm có 6 thanh điệu nhƣ ngang, huyền, hỏi, ngã, sắc,
nặng. Trong đó có 5 dấu thanh, thanh ngang không đƣợc biểu diễn bởi dấu
thanh nào. Trong văn bản viết tay, dấu thanh đƣợc đánh khá tùy tiện, khơng
đặt vào đúng vị trí của âm chính. Tuy nhiên, trong văn bản đánh máy, việc
đánh dấu thanh cần tuân thủ một số quy tắc sau:
o Với những âm tiết chỉ có một con chữ nguyên âm, thì dấu thanh đƣợc
đặt vào con chữ nguyên âm đó. Vd: á à, ì ạch, ọ ẹ, ủ rũ, op ẹp, ục ịch,
hà, lún, gió, giục, quả, quỹ, quyt... (Chú ý: gi và qu đƣợc coi là phụ
âm).
o Với những âm tiết, mà trong âm tiết đó chỉ cần có một con chữ nguyên
âm mang dấu phụ (Ă, Â, Ê, Ơ, Ơ, U) và khơng kể kết thúc bằng con
chữ gì, thì dấu thanh bao giờ cũng đặt ở con chữ đó (riêng ƢƠ, dấu đặt
ở O). Ví dụ: thuyền, trƣờng...
o Với những âm tiết có hai con chữ nguyên âm và kết thúc bằng một con
chữ phụ âm hoặc tổ hợp con chữ phụ âm, thì dấu thanh đƣợc đặt vào
con chữ nguyên âm cuối cùng.
o Với những trƣờng hợp cịn lại thì dấu thanh đƣợc đặt vào con chữ
nguyên âm áp chót.
o Hiện tại với các trƣờng hợp ngun âm là oa, oe, uy mà khơng có phụ
âm kết thúc nhƣ oa, hịe, thùy... có hai cách đánh dấu thanh là: hịa
hoặc hồ.
8
1.3. Một số lỗi chính tả cơ bản và phƣơng pháp kiểm lỗi mức độ âm tiết
1.3.1. Các nguyên nhân gây ra lỗi chính tả
Có nhiều ngun nhân khác nhau gây ra lỗi chính tả, tuy vậy có thể tổng hợp
lại một số nguyên nhân nhƣ sau:
- Nguyên nhân do nhập liệu sai: Lỗi này có thể do gõ sai/ thiếu/ thừa phím
gây ra, do cách cài đặt bàn phím, loại bàn phím, do quy tắc gõ tiếng Việt của các
kiểu gõ khác nhau (Telex, VNI, TCVN, Unicode, ...).
- Nguyên nhân do phát âm sai: Lỗi này do sự nhầm lẫn giữa cách đọc và
cách viết của những từ đồng âm hoặc âm gần với nhau dẫn đến viết sai (nhƣ lỗi dấu
hỏi/ngã, lối sai âm đầu s/x, tr/ch, r/d/gi/v...). Với tiếng Việt, do có nhiều khác biệt
về cách phát âm giữa các vùng trong khi hệ thống chữ viết lại dựa trên hệ thống
phát âm của thủ đô Hà Nội nên dễ dẫn đến các lỗi sai loại này.
- Nguyên nhân do sử dụng từ vựng sai: Lỗi này do khi sử dụng từ sai với ý
nghĩa thực của nó. Đây là lỗi về vốn từ vựng của ngƣời sử dụng, nhƣng nhiều khi
vẫn địi hỏi trình bắt lỗi chính tả phải tìm ra những lỗi này.
- Các ngun nhân khác: Ngồi ra cịn các loại lỗi chính tả khác nhƣ viết
hoa, viết tên riêng, thuật ngữ, tên tiếng nƣớc ngồi khơng đúng qui cách, …
1.3.2. Phân loại lỗi chính tả
Có nhiều cách phân loại lỗi chính tả theo các tiêu chí khác nhau. Ta có thể
phân loại theo nguồn gốc sinh ra lỗi nhƣ ở trên. Nếu xét theo quan điểm của chƣơng
trình bắt lỗi chính tả ở mức từ thì lỗi chính tả có thể đƣợc phân làm hai loại là lỗi
non-word và lỗi real-word:
1.3.2.1. Lỗi non-word
Đây là lỗi tạo ra từ sai, nghĩa là từ đó hồn tồn khơng có trong từ điển từ
vựng tiếng Việt hoặc một số dữ liệu đầu vào cho quá trình tiền xử lý văn
9
bản nhƣ: từ điển tên riêng, từ điển viết tắt, từ điển vay mƣợn,... Đây là loại lỗi dễ
phát hiện.
1.3.2.2. Lỗi real-word
Đây là lỗi chính tả mà từ đó có trong từ điển nhƣng sử dụng từ sai. Nếu
không dựa vào ngữ cảnh xung quanh thì khơng thể xác định đƣợc đó có phải là lỗi
chính tả hay khơng. Đây là loại lỗi rất khó phát hiện và xử lý.
1.3.3. Phát hiện lỗi chính tả
Giải pháp đơn giản để phát hiện lỗi chính tả là dùng một cấu trúc dữ liệu để
lƣu tất cả các từ đã biết (đƣợc lƣu trong từ điển). Nếu khơng có trong từ điển có
nghĩa là từ đó bị sai. Giải pháp này cần một số heuristic để tránh xem các con số,
ngày tháng, … là lỗi sai.
Đối với trình bắt lỗi chính tả truyền thống thì từ điển là một phần rất quan
trọng. Từ điển có thể đƣợc lƣu theo dạng cấu trúc dữ liệu nhƣ bảng băm hoặc cấu
trúc dữ liệu dạng cây có thể đƣợc sử dụng.
Với những lỗi sai dạng từ vựng, ta phải dùng một số phƣơng pháp khác phức
tạp hơn để phát hiện.
Khi phát hiện lỗi chính tả, trình bắt lỗi chính tả khơng tránh khỏi các sai lầm.
Trình bắt lỗi chính tả có thể đƣợc đánh giá theo nhiều cách khác nhau. Nhƣng chủ
yếu vẫn dựa trên quan điểm của ngƣời dùng về khả năng phát hiện lỗi sai và khả
năng đề nghị những từ thay thế cho lỗi sai đó. Có thể phân ra làm hai loại nhầm lẫn
mà một trình chính tả thƣờng gây ra: nhầm lẫn tích cực và nhầm lẫn tiêu cực.
-Nhầm lẫn tích cực xảy ra khi trình bắt lỗi chính tả báo lỗi ở những từ hồn
tồn khơng sai chính tả.
- Nhầm lẫn tiêu cực xảy ra khi trình bắt lỗi chính tả bỏ qua những từ bị sai
chính tả. Nhầm lẫn tiêu cực có thể xem là lỗi khơng phát hiện đƣợc. Phần nhiều
10
những lỗi này địi hỏi phải “hiểu” văn bản (ít nhất là một phần trong văn bản) để có
thể phát hiện lỗi.
Những dạng lỗi sử dụng sai nghĩa từ vựng và lỗi cú pháp thƣờng rơi vào
dạng này. Trong hai loại nhầm lẫn thì nhầm lẫn tích cực thƣờng gây khó chịu cho
ngƣời sử dụng, dễ gây tâm lý khơng tin tƣởng vào trình bắt lỗi chính tả. Ngƣợc lại,
nhầm lẫn tiêu cực phản ánh tính hiệu quả của trình bắt lỗi chính tả. Nhầm lẫn tiêu
cực càng ít thì tính hiệu quả của trình bắt lỗi chính tả càng cao
1.3.4. Sửa lỗi chính tả
Sau khi đã phát hiện đƣợc lỗi chính tả, ta cần tiến hành bƣớc sửa lỗi chính
tả đó.
Ta có thể tạm chia ra hai phƣơng pháp sửa lỗi chính hiện nay đó là dựa vào
luật và dựa vào thống kê. Các phƣơng pháp dựa theo luật có ƣu điểm là khơng tốn
q nhiều tài ngun của thiết bị, tuy nhiên các chƣơng trình sử dụng phƣơng pháp
này khơng có khả năng học, và hiện tại kết quả chƣa cao đối với nhiều ngơn ngữ.
Có khá nhiều phƣơng pháp dựa vào thống kê khác nhau đã đƣợc đƣa ra để
kiểm tra lỗi chính tả tiếng Anh. Trong phạm vi giới hạn của luận văn, tôi xin chỉ liệt
kê một vài phƣơng pháp đƣợc đánh giá là nổi bật: “Một số nghiên cứu sử dụng mơ
hình kênh nhiễu nhƣ Mays và cộng sự (1990), Church và Gale (1991), Brill và
Moore (2001)”. “Phƣơng pháp lai Bayes, sử dụng hàm phân loại Naive Bayes”.
“Kết hợp mơ hình trigram từ loại và hàm phân loại Bayes”.
1.4. Mục tiêu của luận văn
Do nhƣợc điểm của phƣơng pháp kiểm lỗi chính tả tiếng Việt chỉ dựa theo
luật là khá phức tạp và không có khả năng học. Việc sử dụng thơng tin ngữ cảnh
vào việc sửa lỗi chính tả cịn rất ít hoặc khơng đạt kết quả nhƣ mong đợi. Do đó,
nghiên cứu và phát triển một ứng dụng phát hiện và sửa lỗi chính tả tiếng Việt sử
dụng thơng tin ngữ cảnh sẽ giúp cho việc sửa lỗi chính tả đạt hiệu quả cao hơn.
11
Luận văn này hƣớng tới việc tìm hiểu và ứng dụng kiểm lỗi chính tả tiếng
Việt mức độ âm tiết dựa vào thông tin ngữ cảnh, sử dụng phƣơng pháp học máy
trên mơ hình mạng nơ-ron. Nhờ khả năng học, chƣơng trình có thể thích ứng đƣợc
với sự thay đổi không ngừng của ngôn ngữ mà không tốn quá nhiều công sức của
con ngƣời.
12
CHƢƠNG 2: Cơ sở lý thuyết mạng nơ-ron nhân tạo
Chƣơng này giới thiệu cơ sở lý thuyết về mạng nơ-ron nhân tạo, là cơ sở thực hiện
xây dựng mơ hình sửa lỗi chính tả trong luận văn.
2.1.
Kiến trúc mạng nơ-ron nhân tạo
Mạng nơ ron nhân tạo (Artificial Neural Network – ANN) là một mơ hình xử
lý thơng tin đƣợc mơ phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật,
bao gồm số lƣợng lớn các Nơ-ron đƣợc gắn kết để xử lý thông tin. ANN hoạt động
giống nhƣ bộ não của con ngƣời, đƣợc học bởi kinh nghiệm (thơng qua việc huấn
luyện), có khả năng lƣu giữ các tri thức và sử dụng các tri thức đó trong việc dự
đốn các dữ liệu chƣa biết (unseen data).
Hình 2.1. Kiến trúc chung của một ANN gồm 3 thành phần đó là Input Layer,
Hidden Layer và Output Layer
Một mạng ANN sẽ có 3 thành phần:
Tầng vào (input layer): Là tầng bên trái cùng của mạng thể hiện cho các đầu
vào của mạng.
Tầng ra (output layer): Là tầng bên phải cùng của mạng thể hiện cho các đầu
ra của mạng.
Tầng ẩn (hidden layer): Là tầng nằm giữa tầng vào và tầng ra thể hiện cho
việc suy luận logic của mạng.
13
2.2.
Mạng nơ-ron hồi quy RNN
Mạng nơ-ron hồi quy Recurrent Neural Network (RNN) là một trong
những mơ hình Deep learning đƣợc đánh giá có nhiều ƣu điểm trong các tác vụ xử
lý ngôn ngữ tự nhiên (NLP). Trong phần này, tôi sẽ trình bày các khái niệm, các đặc
điểm cũng nhƣ những ứng dụng của RNN trong các bài toán thực tế.
2.2.1. Mạng nơ-ron hồi quy RNN
Recurrent Neural Network (RNN) là một trong những mơ hình Deep
learning đƣợc đánh giá có nhiều quan điểm trong các tác vụ xử lý ngôn ngữ tự
nhiên (NLP). RNN là một mơ hình có trí nhớ (memory), có khả năng nhớ đƣợc
thơng tin đã tính tốn trƣớc đó khơng nhƣ các mơ hình nơron truyền thống đó là
thơng tin đầu vào (input) hồn tồn độc lập với thông tin đầu ra (output). Về lý
thuyết, RNN có thể nhớ đƣợc thơng tin của chuỗi có chiều dài bất kì, nhƣng trong
thực tế mơ hình này chỉ nhớ đƣợc thơng tin ở vài bƣớc trƣớc đó.
Hình 2.2. Mạng RNN
RNN tạo ra các mạng vòng lặp bên trong chúng, cho phép thông tin đƣợc lƣu
trữ lại cho các lần phân tích tiếp theo.
Huấn luyện RNN tƣơng tự nhƣ huấn luyện mạng Nơ-ron truyền thống. Ta
cũng sử dụng đến thuật tốn backpropagation (lan truyền ngƣợc) nhƣng có một chút
14
tinh chỉnh. Gradient tại mỗi output không chỉ phụ thuộc vào kết quả tính tốn của
bƣớc hiện tại mà cịn phụ thuộc vào kết quả tính tốn của các bƣớc trƣớc đó. Vì các
tham số trong mạng RNN đƣợc sử dụng chung cho tất cả các bƣớc trong mạng. Ví
dụ, để tính đạo hàm tại t = 4 ta phải lan truyền ngƣợc cả 3 bƣớc phía trƣớc rồi cộng
tổng đạo hàm của chúng lại với nhau. Việc tính đạo hàm kiểu này đƣợc gọi là lan
truyền ngƣợc liên hồi (BPTT - Backpropagation Through Time). Với các bƣớc phụ
thuộc càng xa thì việc học sẽ càng khó khăn hơn vì sẽ xuất hiện vấn đề hao
hụt/bùng nổ (vanishing/exploding) của đạo hàm. Có một vài phƣơng pháp đƣợc đề
xuất để giải quyết vấn đề này và các kiểu mạng RNN hiện nay đã đƣợc thiết kế để
triệt tiêu bớt chúng nhƣ LSTM chẳng hạn.
2.2.2. Các ứng dụng của mạng RNN
2.2.2.1. Mô hình hóa ngơn ngữ và sinh văn bản
Mơ hình ngơn ngữ cho phép ta dự đoán đƣợc xác xuất của một từ nào đó
xuất hiện sau một chuỗi các từ đi liền trƣớc nó. Do có khả năng ƣớc lƣợng đƣợc độ
tƣơng tự của các câu nên nó cịn đƣợc ứng dụng cho việc dịch máy. Một điểm lý thú
của việc có thể dự đốn đƣợc từ tiếp theo là ta có thể xây dựng đƣợc một mơ hình
tự sinh từ cho phép máy tính có thể tự tạo ra các văn bản mới từ tập mẫu và xác
xuất đầu ra của mỗi từ. Vậy nên, tùy thuộc vào mô hình ngơn ngữ mà ta có thể tạo
ra đƣợc nhiều văn bản khác nhau. Trong mơ hình ngơn ngữ, đầu vào thƣờng là một
chuỗi các từ (đƣợc mô tả bằng vec-tơ one-hot) và đầu ra là một chuỗi các từ dự
đoán đƣợc. Khi huấn luyện mạng, ta sẽ gán ot=xt+1 vì ta muốn đầu ra tại
bƣớc t chính là từ tiếp theo của câu.
2.2.2.2. Dịch máy
Dịch máy (Machine Translation) tƣơng tự nhƣ mơ hình hóa ngơn ngữ ở
điểm là đầu vào là một chuỗi các từ trong ngôn ngữ nguồn (ngơn ngữ cần dịch - ví
dụ là tiếng Việt). Cịn đầu ra sẽ là một chuỗi các từ trong ngôn ngữ đích (ngơn ngữ
dịch - ví dụ là tiếng Anh). Điểm khác nhau ở đây là đầu ra của ta chỉ xử lý sau khi
15
đã xem xét tồn bộ chuỗi đầu vào. Vì từ dịch đầu tiên của câu dịch cần phải có đầy
đủ thơng tin từ đầu vào cần dịch mới có thể suy luận đƣợc.
Hình 2.3. Dịch máy
2.2.2.3. Nhận dạng giọng nói
Đƣa vào một chuỗi các tín hiệu âm thanh, ta có thể dự đoán đƣợc chuỗi các
đoạn ngữ âm đi kèm với xác xuất của chúng.
2.2.2.4. Mơ tả hình ảnh
Cùng với ConvNet, RNN đƣợc sử dụng để tự động tạo mô tả cho các ảnh
chƣa đƣợc gán nhãn. Sự kết hợp này đã đƣa ra đƣợc các kết quả khá kinh ngạc. Ví
dụ nhƣ các ảnh dƣới đây, các mơ tả sinh ra có mức độ chính xác và độ tƣờng tận
khá cao.
16
Hình 2.4. Mơ tả hình ảnh sử dụng RNN
2.2.3. Các mạng nơ-ron mở rộng
Trong nhiều năm, các nhà nghiên cứu đã phát triển nhiều kiểu RNN tinh vi
để xử lý các nhƣợc điểm của mơ hình RNN truyền thống. Trong luận văn, tơi chỉ
giới thiệu ngắn ngọn 2 mơ hình dƣới đây.
2.2.3.1. RNN 2 chiều
Ở mơ hình RNN 2 chiều (Bidirectional RNN), đầu ra tại bƣớc t không những
phụ thuộc vào các phần tử phía trƣớc mà cịn phụ thuộc cả vào các phần tử phía sau.
Ví dụ, để dự đốn từ cịn thiếu trong câu, thì việc xem xét cả phần trƣớc và phần sau
của câu là cần thiết. Vì vậy, ta có thể coi mơ hình là việc chồng 2 mạng RNN ngƣợc
hƣớng nhau lên nhau. Lúc này đầu ra đƣợc tính tốn dựa vào cả 2 trạng thái ẩn của
2 mạng RNN ngƣợc hƣớng này.
Hình 2.5. Bidirectional RNNs
17
2.2.3.2. RNN (2 chiều) sâu
RNN sâu (Deep (Bidirectional) RNN) cũng tƣơng tự nhƣ RNN 2 chiều,
nhƣng khác nhau ở chỗ chúng chứa nhiều tầng ẩn ở mỗi bƣớc. Trong thực tế, chúng
giúp cho việc học ở mức độ cao hơn, tuy nhiên ta cũng cần phải có nhiều dữ liệu
huấn luyện hơn.
Hình 2.6. Deep (Bidirectional) RNN
2.2.3.3. Mạng LSTM
Gần đây, mạng LSTM mà ta có đề cập một chút phía trên đƣợc chú ý và sử
dụng khá phổ biến. Về cơ bản mơ hình của LSTM khơng khác mơ hình truyền
thống của RNN, nhƣng chúng sử dụng hàm tính tốn khác ở các trạng thái ẩn. Bộ
nhớ của LSTM đƣợc gọi là tế bào (Cell) và ta có thể tƣởng tƣợng rằng chúng là các
hộp đen nhận đầu vào là trạng thái phía trƣớc ht−1 và đầu vào hiện tại xt. Bên trong
hộp đen này sẽ tự quyết định cái gì cần phải nhớ và cái gì sẽ xố đi. Sau đó, chúng
sẽ kết hợp với trạng thái phía trƣớc, nhớ hiện tại và đầu vào hiện tại. Vì vậy mà ta
có thể truy xuất đƣợc quan hệ của các từ phụ thuộc xa nhau rất hiệu quả.
18