Tải bản đầy đủ (.pdf) (72 trang)

Xử lý bài toán thêm dấu cho tiếng việt không dấu dựa trên nghiên cứu mô hình ngôn ngữ N_Gram

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 (809.4 KB, 72 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

DƢƠNG THỊ HÀ

XỬ LÍ BÀI TOÁN THÊM DẤU CHO TIẾNG VIỆT
KHÔNG DẤU DỰA TRÊN NGHIÊN CỨU MÔ HÌNH
NGÔN NGỮ N_GRAM

CHUYÊN NGHÀNH: KHOA HỌC MÁY TÍNH
Học viên thực hiện: Dƣơng Thị Hà
Lớp: K9B
Giáo viên hƣớng dẫn: TS. Vũ Tất Thắng





2012


i

LỜI CAM ĐOAN

Tôi xin cam đoan, toà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 9 năm 2012



Học viên


Dương Thị Hà


ii


LỜI CẢM ƠN

Trước tiê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 để hoà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 quá trình xây dựng đề cương và hoà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 chúng tôi 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 K9 đã
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 hoà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 qu ý Thầy Cô và các bạn.
Thái Nguyên, ngày 20 tháng 9 năm 2012


Học viên


Dương Thị Hà



iii

DANH MỤC HÌNH

Trang

Hình 3.1 Quy trình tách từ 36
Hình 3.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 46
Hình 3.3 Số lượng các cụm N-gram với từ khi tăng kích thước dữ liệu 47
Hình 3.4 Lưu đồ thực hiện của mô hình đề xuất 53
Hình 3.5 Mô hình tổng quát 54



iv

DANH MỤC BẢNG
Trang

Bảng 3.1 Số lượng các cụm N-gram trong văn bản huấn luyện với âm tiết 46
Bảng 3.2 Số lượng các cụm N-gram trong văn bản huấn luyện với từ 47
Bảng 3.3 Độ hỗn loạn thông tin của các phương pháp làm mịn cho âm tiết 48

Bảng 3.4 Độ hỗn loạn thông tin của các phương pháp làm mịn cho từ 49




v

MỤC LỤC
Trang
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
DANH MỤC HÌNH iii
DANH MỤC BẢNG iv
MỤC LỤC v
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN VỀ CÁC MÔ HÌNH NGÔN NGỮ VÀ CÁC
ỨNG DỤNG TRONG LĨNH VỰC XỬ LÍ NGÔN NGỮ TỰ NHIÊN 5
1.1 MÔ HÌNH NGÔN NGỮ (LANGUAGE MODEL - LM). 5
1.2 MÔ HÌNH NGÔN NGỮ VĂN PHẠM. 6
1.2.1 Từ vựng tiếng Việt 6
1.2.2 Tiếng – đơn vị cấu tạo lên từ 7
1.2.2.1 Khái niệm 7
1.2.2.2 Phân loại 7
1.2.2.3 Mô hình tiếng trong tiếng Việt và các thành tố của nó 8
1.2.3 Cấu tạo từ. 9
1.2.3.1 Từ đơn 9
1.2.3.2 Từ ghép. 9
1.2.3.3 Từ láy. 9
1.3 CÁC MÔ HÌNH NGÔN NGỮ KHÁC DỰA TRÊN KHÁI NIỆM 11
1.4 MÔ HÌNH NGÔN NGỮ N-GRAM. 12

1.4.1 Khái quát. 12
1.4.2 Công thức tính “xác suất thô”. 15
1.4.3 Những vấn đề khó khăn khi xây dựng mô hình ngôn ngữ N-gram.
16
1.4.3.1 Phân bố không đều. 16
1.4.3.2 Kích thước bộ nhớ của mô hình ngôn ngữ. 16
CHƯƠNG 2MÔ HÌNH NGÔN NGỮ N-GRAM 17
2.1 CÁC KĨ THUẬT LÀM MỊN HÓA SỰ PHÂN BỐ XÁC SUẤT
TRONG MÔ HÌNH N-GRAM ĐỂ TĂNG CHẤT CHẤT LƯỢNG CỦA
MÔ HÌNH 17
2.1.1 Các thuật toán chiết khấu (Discounting). 18


vi

2.1.1.1 Kĩ thuật làm mịn theo thuật toán Add-one. 18
2.1.1.2 Kĩ thuật làm mịn theo thuật toán Witten-Bell. 20
2.1.1.3 Kĩ thuật làm mịn theo thuật toán Good-Turing. 21
2.1.2 Kĩ thuật truy hồi (Back-0ff). 21
2.1.3 Kĩ thuật nội suy (Interpolation) 23
2.1.4 Kĩ thuật làm mịn Kneser-Ney. 24
2.1.5 Kĩ thuật làm mịn Chen-Goodman. 25
2.2 CÁC KĨ THUẬT LÀM GIẢM KÍCH THƯỚC MÔ HÌNH 26
2.2.1 Pruning (loại bỏ) 26
2.2.1.1 Cắt bỏ (cut-off) 27
2.2.1.2 Sự khác biệt trọng số (Weighted difference) 28
2.2.2 Đồng hóa (Quantization) 29
2.2.3 Nén (Compression) 30
2.3 CÁC ĐỘ ĐO ĐỂ ĐÁNH GIÁ CHẤT LƯỢNG CỦA MÔ HÌNH N-
GRAM 30

2.3.1 Entropy – Độ đo thông tin 30
2.3.2 Perplexity – Độ hỗn loạn thông tin 32
2.3.3 Error rate – Tỉ lệ lỗi. 32
CHƯƠNG 3XÂY DỰNG N-GRAM CHO TIẾNG VIỆT VÀ ỨNG DỤNG
TRONG BÀI TOÁN THÊM DẤU CHO TIẾNG VIỆT. 34
3.1 CÔNG CỤ XỬ LÍ MÔ HÌNH 34
3.1.1 Bộ công cụ SRILM 34
3.1.2 Bộ công cụ trợ giúp xây dựng tập văn bản huấn luyện 34
3.2 CÔNG CỤ XỬ LÍ VĂN BẢN TIẾNG VIỆT 35
3.2.1 Công cụ tách từ cho tiếng Việt – vnTokenize 35
3.2.2 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 37
3.2.2.1 Tách câu. 37
3.2.2.2 Tách từ. 40
3.2.2.3 Gán nhãn từ loại. 42
3.2.2.4 Phân tích cú pháp 44
3.3 DỮ LIỆU THỰC NGHIỆM 45
3.3.1 Số lượng các cụm N-gram với tiếng Việt dựa trên âm tiết 46
3.3.2 Số lượng các cụm N-gram với tiếng Việt dựa trên từ 47


vii

3.4 ĐÁNH GIÁ CHẤT LƯỢNG N-GRAM CHO TIẾNG VIỆT TƯƠNG
ỨNG CÁC KĨ THUẬT TRONG CHƯƠNG 2 48
3.4.1.Với âm tiết 48
3.4.2.Với từ 49
3.5 N-GRAM VÀ ỨNG DỤNG ĐỂ THÊM DẤU CHO TIẾNG VIỆT
KHÔNG DẤU. 50
3.5.1. Bài toán thêm dấu tiếng Việt 50

3.5.1.1. Phát biểu bài toán 50
3.5.1.2. Đặc điểm 50
3.5.1.3. Hướng giải quyết: 51
3.5.2 Các hệ thống thêm dấu ứng dụng về N-gram đã có 51
3.5.2.1 VietPad 51
3.5.2.2 VnMark – Mô hình thêm dấu tiếng Việt. 51
3.5.3 Đề xuất hệ thống 53
3.5.3.1 Mô hình 53
3.5.3.2. Mô hình huấn luyện 60
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 61
TÀI LIỆU THAM KHẢO 63


1


MỞ ĐẦU
1. Lí do chọn đề tài
Ngôn ngữ tự nhiên là ngôn ngữ được con người sử dụng trong giao tiếp
hàng ngày, nó khác hẳn với ngôn ngữ nhân tạo (ngôn ngữ lập trình, ngôn ngữ
máy…). Việc làm cho máy tính hiểu được ngôn ngữ tự nhiên không phải dễ
dàng. Để hiểu đúng nội dung của một văn bản viết bằng ngôn ngữ tự nhiên,
trong quá trình đọc hay nghe thì thực tế là ta đã nhận thức được ngữ cảnh của
văn bản đó. Mặt khác, 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 so với các ngôn ngữ máy tính, để có thể xây dựng một
bộ luật về ngữ pháp, từ vựng…, thật hoàn chỉnh để 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 sắc về ngôn ngữ học.
Mô hình ngôn ngữ (Language Model – LM) 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ữ có xác suất sinh ra là bao nhiêu hay

nói cách khác thì LM phản ánh một phân bố xác suất của các từ, cụm từ trên
các tập văn bản.
Đòi hỏi tiên quyết, để 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 mô hình thống kê thường được sử dụng
bởi nó dựa trên các lí thuyết tường minh của xác suất thống kê để mô hình
hóa ngôn ngữ, và thường đạt được độ chính xác cao trong các hệ thống thực
tế. 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
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 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.


2

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ó nhiều lĩnh vực trong xử lí ngôn ngữ tự nhiên sử dụng LM như:
kiểm lỗi chính tả, phát sinh câu ngẫu nhiên, 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ề LM á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 LM
chuẩn cho tiếng Việt vẫn còn mới mẻ và gặp nhiều khó khăn.
Trong thực tế, sử dụng tiếng Việt không dấu đang trở thành thói quen
không tốt của nhiều người Việt Nam trên Internet. Vì để gõ tiếng Việt có dấu
đòi hỏi phải mất công sức, phải có font chữ, bộ gõ. Việc tự động thêm dấu và
phân tích các từ này là vấn đề cần thiết và thú vị.
Chính điều này đã thúc đẩy tôi lựa chọn và tập trung “Nghiên cứu mô
hình ngôn ngữ N-gram và ứng dụng thêm dấu cho tiếng Việt không dấu”,
để có thể tạo ra một trong những kết quả cơ bản nhất về xử lí ngôn ngữ nói
chung, và có ích cho việc xử lí ngôn ngữ tiếng Việt vốn vô cùng phong phú
của chúng ta nói riêng.

Ứng dụng của phương pháp thêm dấu là khá nhiều như: Thêm dấu cho các
mail; cho các quản trị web, các trang web yêu cầu viết tiếng Việt nhưng người
dùng không có sẵn bộ gõ; thêm dấu cho tin nhắn điện thoại…
2. Mục tiêu và nhiệm vụ
a) Mục tiêu: Do phạm vi bài toán khá lớn và thời gian làm luận văn là có
giới hạn nên mục tiêu nghiên cứu của luận văn tập trung ở các điểm sau:
Về học thuật:
Đề tài này tập trung vào việc ứng dụng một số phương pháp tách từ, tiếng,
phương pháp làm mịn trong mô hình ngôn ngữ N-gram nhằm tăng hiệu quả
thêm dấu cho tiếng Việt không dấu.
Về phát triển và triển khai ứng dụng:
Kết quả của đề tài sẽ ứng dụng trong việc hỗ trợ trong việc thêm dấu cho
tiếng Việt không dấu.


3

b) Nhiệm vụ:
- Nghiên cứu các vấn đề khi xây dựng mô hình ngôn ngữ N-gram.
- Nghiên cứu các phương pháp làm mịn trong mô hình ngôn ngữ N-gram.
- Nghiên cứu các kỹ thuật làm giảm kích thước dữ liệu.
3. Phương pháp nghiên cứu
- Tìm hiểu N-gram thông qua tài liệu.
- Tìm hiểu phương pháp xác định ngôn ngữ văn bản thực tế được các
chương trình thêm dấu tự động sử dụng.
- Đối sánh kết quả với các phương pháp thêm dấu tự động khác khi áp dụng
mô hình ngôn ngữ N-gram cho văn bản tiếng Việt không dấu.
Ngoài ra, luận văn còn sử dụng một số phương pháp tiếp cận hệ thống,
phương pháp chuyên gia và phương pháp thống kê và mô hình hóa.
4. Đối tượng và phạm vi nghiên cứu

- Đối tượng nghiên cứu: Nghiên cứu về mô hình ngôn ngữ N-gram, và các
kỹ thuật liên quan tới việc làm trơn hóa phân bố xác suất của mô hình.
- Phạm vi nghiên cứu: Nghiên cứu về mô hình ngôn ngữ N-gram, và ứng
dụng trong bài toán thêm dấu cho tiếng Việt không dấu sử dụng mô hình ngôn
ngữ N-gram.
5. Ý nghĩa khoa học của luận văn
a) Ý nghĩa khoa học:
- Trình bày các kiến thức toán học cơ bản về mô hình ngôn ngữ N-gram, lý
thuyết độ phức tạp của thuật toán.
- Trình bày các phương pháp làm mịn trong mô hình N-gram.
b) Ý nghĩa thực tiễn:
- Cài đặt hoàn chỉnh cho chương trình thêm dấu cho tiếng Việt không dấu.
- Đối sánh kết quả với các phần mềm tương tự đã có.


4

6. Bố cục của luận văn
Mở đầu
1. Lí do chọn đề tài.
2. Mục tiêu và nhiệm vụ.
3. Phương pháp nghiên cứu.
4. Đối tượng và phạm vi nghiên cứu.
5. Ý nghĩa khoa học của luận văn.
Chương 1: Tổng quan về các mô hình ngôn ngữ và các ứng dụng trong
lĩnh vực xử lí ngôn ngữ tự nhiên
1.1 Mô hình LM.
1.2 Mô hình ngôn ngữ văn phạm.
1.3 Các mô hình ngôn ngữ khác dựa trên khái niệm.
1.4 Mô hình ngôn ngữ N-gram.

Chương 2: Mô hình ngôn ngữ N-gram
2.1 Các kĩ thuật làm mịn hóa sự phân bố xác suất trong mô hình N-gram để
tăng chất lượng của mô hình.
2.2 Các kĩ thuật làm giảm kích thước mô hình.
2.3 Các độ đo để đánh giá chất lượng của mô hình N-gram.
Chương 3: Xây dựng N-gram cho tiếng Việt và ứng dụng trong bài toán
thêm dấu cho tiếng Việt không dấu
3.1 Công cụ xử lí mô hình.
3.2 Công cụ xử lí văn bản tiếng Việt.
3.3 Dữ liệu thực nghiệm.
3.4 Đánh giá chất lượng N-gram cho tiếng Việt tương ứng với kĩ thuật trong
chương 2.
3.5 N-gram và ứng dụng để thêm dấu cho tiếng Việt không dấu.
Kết luận và hướng phát triển của đề tài


5

CHƯƠNG 1
TỔNG QUAN VỀ CÁC MÔ HÌNH NGÔN NGỮ VÀ CÁC ỨNG
DỤNG TRONG LĨNH VỰC XỬ LÍ NGÔN NGỮ TỰ NHIÊN
Ngôn ngữ tự nhiên là ngôn ngữ được con người dùng trong các hoạt động
giao tiếp hàng ngày như nghe, nói, đọc, viết [13]. Con người có khả năng dễ
dàng hiểu và xử lí thông tin thực tế ấy nhưng để máy tính hiểu ngôn ngữ tự
nhiên thì không phải dễ. Khó khăn ấy là do, ngôn ngữ tự nhiên có những cấu
trúc cú pháp, những bộ luật phong phú hơn nhiều so với ngôn ngữ của máy
tính, ngoài ra muốn hiểu đúng nội dung giao tiếp còn phải nắm được ngữ cảnh
của nó. Vì vậy, để xây dựng một bộ từ vựng, cú pháp hoàn chỉnh, chính xác là
việc rất tốn công sức, đòi hỏi người thực hiện phải có hiểu biết sâu sắc về
ngôn ngữ học.

1.1 MÔ HÌNH NGÔN NGỮ (LANGUAGE MODEL - LM).
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]. Hay
đơn giản, mô hình ngôn ngữ có thể cho biết xác suất của một câu (hoặc cụm
từ) của một ngôn ngữ là bao nhiêu.
Ví dụ 1.1: Áp dụng mô hình ngôn ngữ cho tiếng Việt:
P[“Hôm nay là thứ năm”] = 0.001.
P[“là năm hôm thứ nay”] = 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 khác.


6

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 N-gram.
1.2 MÔ HÌNH NGÔN NGỮ VĂN PHẠM.
* Các cấp độ trong ngôn ngữ:
- Âm vị: Đơn vị âm thanh nhỏ nhất để cấu tạo nên ngôn ngữ và khu biệt về
mặt biểu hiện vật chất (âm thanh) của các đơn vị khác, ví dụ: k-a-d (card), b-i-
g (big).
- Hình vị: Đơn vị nhỏ nhất mang nghĩa (nghĩa ngữ pháp hay nghĩa từ vựng)
được cấu tạo bởi các âm vị, ví dụ: read-ing, book –s. Hình vị tiếng Việt có khi
gồm 1 tiếng nhưng cũng có khi gồm nhiều tiếng tạo thành. Ví dụ: lé đé, đủng
đỉnh…
- Từ: Đơn vị mang nghĩa độc lập, được cấu tạo bởi (các) hình vị, có chức
năng dịnh danh, ví dụ: I-am-read-ding -my-books. Từ gồm có 1 tiếng hoặc
một tổ hợp tiếng có ý nghĩa hoàn chỉnh.
- Ngữ: gồm 2 hay nhiều từ có quan hệ ngữ pháp hay ngữ nghĩa với nhau, ví

dụ: bức thư, mạng máy tính.
- Câu: gồm các từ/ngữ có quan hệ ngữ pháp hay ngữ nghĩa với nhau và có
chức năng cơ bản là thông báo, ví dụ: I am reading my books
- Văn bản: hệ thống các câu được liên kết với nhau về mặt hình thức, từ
ngữ, ngữ nghĩa và ngữ dụng
1.2.1 Từ vựng tiếng Việt.
Việc đưa ra chính xác định nghĩa thế nào là một từ thì không phải đơn
giản, đòi hỏi công sức của các nhà ngôn ngữ học. Chúng ta đưa ra một định
nghĩa sau về từ làm một ví dụ:
“Từ là đơn vị nhỏ nhất có nghĩa, có kết cấu vỏ ngữ âm bền vững, hoàn
chỉnh, có chức năng gọi tên, được vận dụng độc lập, tái hiện tự do trong lời
nói để tạo câu”[10].


7

Nhưng xét về góc độ ứng dụng thì ta có thể hiểu một cách đơn giản là
“từ được cấu tạo bởi một hoặc nhiều tiếng”.
1.2.2 Tiếng – đơn vị cấu tạo lên từ.
1.2.2.1 Khái niệm.
Tiếng là đơn vị cơ sở để cấu tạo nên từ tiếng Việt. Tiếng do một hay
nhiều âm phát ra cùng một lúc tạo thành. Tiếng có âm đầu, vần, thanh. Vần có
âm đệm, âm chính, âm cuối. Ví dụ: “Toàn” có phụ âm đầu T, âm đệm O, âm
chính A, âm cuối N và thanh huyền.
Trong các yếu tố tạo thành tiếng, âm chính và thanh lúc nào cũng có,
còn âm đầu, âm đệm và âm cuôi có thể vắng mặt. Ví dụ: à, ế, ở…
Về mặt hình thức thì tiếng là một đoạn phát âm của người nói, dù
chúng ta có phát âm chậm đến mấy thì ta cũng không thể tách tiếng ra thành
các đơn vị khác được. Tiếng được các nhà ngôn ngữ học gọi là âm tiết
(syllable).

Về mặt nội dung, tiếng là đơn vị nhỏ nhất có nội dung được thể hiện,
chí ít tiếng cũng có giá trị về mặt hình thái học (cấu tạo từ), đôi khi người ta
gọi tiếng là hình tiết (morphemosyllable), tức là âm tiết có giá trị về hình thái
học.
1.2.2.2 Phân loại.
Các tiếng là không giống nhau, xét về mặt ý nghĩa, chúng ta có thể chia
tiếng thành các nhóm sau:
 Tiếng tự nó đã có ý nghĩa khái quát, thường được quy chiếu vào một
đối tượng, một khái niệm như: trời, đất, nước…
 Tiếng tự thân nó không có ý nghĩa, chúng không quy chiếu vào đối
tượng, khái niệm nào. Chúng thường đi với một tiếng khác có nghĩa và
làm thay đổi sắc thái của tiếng đó, ví dụ như: (xanh) lè, (đường) xá, (rách)
bươm, (sợ) sệt …


8

 Tiếng tự thân nó không có ý nghĩa nhưng lại đi với nhau để tạo thành
từ. Nhưng nếu tách rời tiếng này ra đứng riêng thì không có nghĩa, nhưng
ghép lại thì được từ có nghĩa. Ta gặp các từ mượn như: a-pa-tit, mì-chính,
gác-đơ-bu…
Trong tiếng Việt, thì nhóm đầu tiên chiếm đa số. Các tiếng thuộc hai
nhóm sau ít sử dụng, đặc biệt là nhóm thứ ba. Điều này chứng tỏ là khi nói,
người ta thường sử dụng các tiếng có nghĩa, hiếm khi lại nói ra toàn từ vô
nghĩa.
1.2.2.3 Mô hình tiếng trong tiếng Việt và các thành tố của nó.
Ta có thể biểu diễn cấu trúc của tiếng trong bảng sau: [11]
Thanh điệu
Vần Âm đầu
Âm đệm Âm chính Âm cuối

 Thanh điệu: Mỗi tiếng đều có 1 thanh điệu là một trong sáu loại sau:
sắc, hỏi, ngã, nặng, huyền và bằng. Chúng có tác dụng phân biệt tiếng về
cao độ. Ví dụ: “quác”, “quạc”
 Âm đầu: Có tác dụng mở đầu âm tiết như “mùa”, “hùa”, “hoa”,
“thoa”…
 Âm đệm: Có tác dụng biến đổi âm sắc của âm tiết sau lúc mở đầu.
Ví dụ: “hòa”, “hà”…
 Âm chính: Là hạt nhân và mang âm sắc chủ đạo của tiếng. Ví dụ:
“túy”, “túi”,…
 Âm cuối: Có tác dụng kết thúc tiếng với các âm sắc khác nhau, do đó
có thể phân biệt các tiếng. Ví dụ: “nhàn”, “nhài”…
 Cụm gồm âm đệm, âm chính, âm cuối gọi là vần. Ví dụ: vần “uay”,
“anh”…
Đây là 5 thành tố của tiếng mà bất cứ tiếng nào trong tiếng Việt đều có
cấu trúc như vậy (vần không phải là thành tố mà chỉ là cách gọi của nhóm 3


9

âm nói trên). Nhưng cũng có một số trường hợp một số âm trùng nhau, nhất là
với những tiếng chỉ có 3 kí tự trở xuống.
1.2.3 Cấu tạo từ.
Như đã nêu ở trên, từ trong tiếng Việt hoặc là bằng 1 tiếng hoặc là tổ
hợp của nhiều tiếng khác nhau để tạo ra các loại từ. Sau đây, trong giới hạn,
luận văn xin đề cập tới một số loại từ sau.
1.2.3.1 Từ đơn.
Từ đơn, hay còn gọi là từ đơn âm tiết, là các từ được cấu tạo từ 1 tiếng
duy nhất. Ví dụ: nước, nhà, hoa, lá…
1.2.3.2 Từ ghép.
Từ ghép là từ được cấu tạo từ 2 tiếng trở lên. Giữa các tiếng có mối

quan hệ về nghĩa với nhau. Do đó, ta có các loại từ ghép khác nhau:
 Từ ghép đẳng lập: Các thành phần cấu tạo nên từ có quan hệ bình
đẳng về nghĩa. Ví dụ: thành công, xinh đẹp, bé nhỏ…
 Từ ghép chính phụ: Các thành phần cấu tạo nên từ có mối quan hệ
phụ thuộc lẫn nhau về nghĩa. Ví dụ: xe máy, xúc xích, nhũng nhiễu…
1.2.3.3 Từ láy.
Một từ được coi là từ láy khi các yếu tố cấu tạo nên nó có thành phần
ngữ âm được lặp lại, nhưng vừa có lặp lại (gọi là điệp) vừa có biến đổi (gọi là
đối). Ví dụ: đo đỏ, man mát… Nếu một từ chỉ có lặp lại mà không có biến đổi
thì chỉ gọi là dạng láy của từ chứ hoàn toàn không được coi là từ láy. Ví dụ:
nhà nhà, ngành nghành…
Độ dài của từ láy là 2 tiếng hoặc 4 tiếng. Nhưng trong tiếng Việt láy 2
tiếng chiếm đa số, chúng chia thành các loại sau:
 Láy hoàn toàn: Là cách láy mà tiếng sau lặp lại hoàn toàn tiếng trước.
Gọi là hoàn toàn nhưng thực ra các tiếng không trùng khít nhau mà có
những sai khác rất nhỏ mà ta có thể nhìn thấy được.
o Láy hoàn toàn đối nhau ở thanh điệu. Ví dụ: sừng sững, loang
loáng…


10

o Láy hoàn toàn đối nhau ở âm cuối. Ví dụ: khin khít, ăm ắp…
o Láy hoàn toàn đối nhau ở trọng âm, tức là 1 tiếng được nói dài
hơn, nhấn mạnh hơn so với tiếng kia. Ví dụ: ầm ầm, đùng đùng…
 Láy bộ phận: Là cách láy mà chỉ có phần điệp ở phần âm đầu của
tiếng, hoặc điệp ở phần vần thì gọi là láy bộ phận. Căn cứ vào đó, ta có các
loại sau:
o Từ láy điệp ở âm đầu và đối ở vần: nhưng nhức, thơ thẩn…
o Từ láy điệp ở vần và đối ở âm đầu: hấp tấp, liểng xiểng…

Tóm lại, tiếng Việt được xếp vào loại hình đơn lập (isolate) hay còn gọi là
loại hình phi hình thái, không biến hình, đơn tiết với những đặc điểm chính
sau:
- Trong hoạt động ngôn ngữ, từ không biến đổi hình thái, ý nghĩa ngữ pháp
nằm ở ngoài từ. Ví dụ, tôi nhìn thấy anh ấy; anh ấy nhìn tôi.
- Phương pháp chủ yếu là trật tự từ và từ hư. Ví dụ, gạo xay và xay gạo.
- Tồn tại một loại đơn vị đặc biệt, đó là “hình tiết” mà vỏ ngữ âm trùng khít
với âm tiết, và đơn vị đó “cũng chính là hình vị tiếng Việt” hay còn gọi là
tiếng (theo tác giả Đinh Điền thì có khoảng 10.000 tiếng, nhưng theo khảo sát
của hội người mù Việt Nam khi làm chương trình sách nói thì chỉ có khoảng
3000 từ).
- Ranh giới từ không xác định mặc nhiên bằng khoảng trắng như các thứ
tiếng biến hình khác. Ví dụ: “học sinh học sinh học”. Điều này khiến cho việc
phân tích hình thái (tách từ) tiếng Việt trở nên khó khăn. Việc nhận ranh giới
từ là quan trọng làm tiền đề cho xử lí tiếp sau đó như: kiểm lỗi chính tả, gán
nhãn từ, thống kê tần suất từ…
- Tồn tại loại từ đặc biệt “từ chỉ loại” (classifier) hay còn gọi là phó danh từ
chỉ loại đi kèm với danh từ như: cái bàn, cuốn sách, bức thư…
- Về mặt âm học, các âm tiết tiếng Việt đều mang 1 trong 6 thanh điệu
(ngang, sắc, huyền, hỏi, ngã, nặng). Đây là âm vị siêu đoạn tính.


11

- Có hiện tượng láy trong từ tiếng Việt như: lấp lánh, lung linh… Ngoài ra,
còn có hiện tượng nói lái (do mối liên kết giữa phụ âm đầu và phần vần trong
âm tiết là lỏng lẻo) như: hiện đại  hại điện…
- Ngoài ra, theo[1] tiếng Việt còn có một loại từ là từ Ngẫu hợp. Đây là
những từ mà người bản ngữ hiện nay không tìm thấy mối quan hệ gì về ngữ
âm hay ngữ nghĩa giữa các tiếng cấu tạo nên chúng. Ví dụ: bồ câu, bồ hòn,

cao su, hy sinh, kinh tế…
1.3 CÁC MÔ HÌNH NGÔN NGỮ KHÁC DỰA TRÊN KHÁI NIỆM.
Trên thực tế, mỗi một mô hình ngôn ngữ đều có chứa lượng lớn những
ngoại lệ. Thậm chí ngay cả khi người thiết kế tìm cách giải quyết hết các
ngoại lệ mà họ nghĩ đến thì vẫn tồn tại những trường hợp chỉ xuất hiện khi hệ
thống được đưa vào thực nghiệm. Hơn nữa, việc xây dựng một mô hình ngôn
ngữ dựa trên các luật là rất tốn công sức. Thông thường để xây dựng một hệ
thống như vậy đòi hỏi công sức vài tháng từ một lập trình viên với nhiều kinh
nghiệm về ngôn ngữ học. Thời gian này còn lớn hơn khi chúng ta chuyển
sang lĩnh vực khác hay sang ngôn ngữ khác.
Câu trả lời cho các giới hạn này là phải xây dựng một hệ thống bằng cách
nào đó có thể “tự học”, điều này sẽ giúp bớt sự tham gia của các chuyên gia
ngôn ngữ và làm tăng tính khả chuyển của hệ thống. Có nhiều phương pháp
học máy như mô hình Markov ẩn (Hidden Markov Models - HMM), mô hình
Markov cực đại hóa Entropy (Maximum Entropy Markov Models – MEMM)
và mô hình Conditional Random Field (CRF)…
* Mô hình Markov ẩn (HMM) được nghiên cứu cuối những năm 1960 và
đầu những năm 1970, cho đến nay nó được ứng dụng nhiều trong nhận dạng
tiếng nói, tin sinh học và xử lí ngôn ngữ tự nhiên. HMM là mô hình máy trạng
thái hữu hạn (Probabilistic finite state machine) với các tần số biểu diễn xác
suất chuyển trạng thái và xác suất sinh dữ liệu quan sát tại mỗi trạng thái.


12

Trong bài toán “Maximum Entropy Markov Models for Information
Extration and Segmentation”, Andrew McCallum đã đưa ra hai vấn đề mà các
mô hình HMM truyền thống nói riêng và các mô hình sinh (generative
models) nói chung gặp phải khi gán nhãn cho dữ liệu dạng chuỗi.
* Mô hình Markov cực đại hóa Entropy (MEMM): Mc Callum đã đưa ra

một mô hình Markov mới – mô hình MEMM như một đáp án cho những vấn
đề của mô hình Markov truyền thống. Mô hình MMEM quan niệm rằng các
quan sát đã được cho trước và chúng ta không cần quan tâm đến xác suất sinh
ra chúng, điều duy nhất cần quan tâm là xác suất chuyển trạng thái. So với mô
hình HMM, ở đây quan sát hiện tại không chỉ phụ thuộc vào trạng thái hiện
tại mà còn phụ thuộc vào trạng thái trước đó, điều đó có nghĩa là quan sát
hiện tại được gắn liền với các trạng thái riêng lẻ như mô hình HMM truyền
thống.
* CRF được giới thiệu lần đầu tiên vào đầu năm 2001 bởi Lafferty và
các đồng nghiệp. Giống như MMEM, CRF là mô hình dựa trên xác suất điều
kiện, nó có thể tích hợp được các thuộc tính đa dạng của chuỗi dữ liệu quan
sát nhằm hỗ trợ cho quá trình phân lớp. Tuy vậy, khác với MEMM, CRF là
đồ thị vô hướng. Điều này cho phép CRF có thể định nghĩa phân phối xác
suất của toàn bộ chuỗi trạng thái với điều kiện biết chuỗi trạng cho trước thay
vì phân phối trên mỗi trạng thái với điều kiện biết trạng thái trước đó và quan
sát hiện tại như các mô hình MEMM.
1.4 MÔ HÌNH NGÔN NGỮ N-GRAM.
1.4.1 Khái quát.
Mô hình ngôn ngữ thống kê cho phép gán (ước lượng) xác suất xuất hiện
của một chuỗi gồm m phần tử, thường là từ P(w
1
w
2
…w
m
), hay nói cách khác


13


nó cho phép dự đoán khả năng xuất hiện một chuỗi từ trong 1 ngôn ngữ. Theo
công thức Bayes:
P(AB)=P(B|A)*P(A) trong đó:
+ 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
Từ đó ta dễ dàng suy ra được:
P(w
1
w
2
…w
m
)=P(w
1
)*P(w
2
|w
1
)*P(w
3
|w
1
w
2
)*P(w
4
|w
1

w
2
w
3
)*…*P(w
m
|w
1
w
2

w
m
)
Theo công thức này, phương pháp tính xác suất sẽ khó được áp dụng trong
thực tế, bởi vì việc tính xác suất dây chuyền như vậy đòi hỏi rất nhiều thông
tin huấn luyện và tiêu tốn nhiều thời gian xử lí. Khi ấy ta tìm giải pháp cho
bài toán tính xác suất của chuỗi từ quy về bài toán tính xác suất của 1 từ với
điều kiện biết các từ trước nó. Đối với những từ ở đầu câu, ta không thể ước
lượng nó do không đủ n-1 từ trước nó. Khi đó, ta có thể thay P(w1) bằng
P(w1|start) là xác suất để w1 đứng đầu chuỗi hay nói cách khác là người ta có
thể đưa thêm kí hiệu đầu dòng start vào mỗi chuỗi. Tương tự như vậy, ta có
thể bổ sung vào công thức tính xác suất của câu giá trị P(stop|w
n
) là xác suất
để từ w
n
xuất hiện ở cuối câu.
Trong thực tế, dựa vào giả thuyết Markov, người ta chỉ tính xác suất của 1
từ dựa vào nhiều nhất n từ liền ngay trước nó, thường n = 0, 1, 2, 3. Do đó,

nhiều người gọi mô hình ngôn ngữ là mô hình N-gram, trong đó N là số lượng


14

từ (bao gồm cả từ cần tính và các từ ngữ cảnh nằm phía trước nó) hay gọi là
bậc của N-gram.
Như đã đề cập ở trên, theo công thức Bayes, mô hình ngôn ngữ cần bộ nhớ
rất lớn để lưu trữ xác suất xuất hiện của tất cả các chuỗi từ có độ 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). Để tính được xác suất của văn bản với dung
lượng bộ nhớ chấp nhận được, ta dùng xấp xỉ Markov bậc n:
P(w
m
|w
1
w
2
…w
m
) = P(w
m
|w
m-n
w
m-n+1
…w
m-1
)
Điều này chứng tỏ, nếu áp dụng xấp xỉ Markov thì xác suất xuất hiện của

một từ (w
m
) được coi như chỉ phụ thuộc vào n từ đứng liền ngay trước nó (w
m-
n
w
m-n+1
…w
m-1
), chứ không phải phụ thuộc vào tất cả các từ đứng trước nó (w
1

w
2
…w
m-1
). Như vậy, công thức tính xác suất văn bản như sau:
P(w
1
w
2
…w
m
) = P(w
1
)*P(w
2
|w
1
)*P(w

3
|w
1
w
2
)*…*P(w
m-1
|w
m-n-1
w
m-n
…w
m-
2
)*P(w
m
|w
m-n
w
m-n+1
…w
m-1
).
Với công thức trên, 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 ngôn ngữ N-gram được hình
dung qua ví dụ sau:
Ví dụ 1.2: Giả sử cần tính xác suất của P(bạn|học thày không tày học bạn).
 Mô hình 1-gram (unigram): 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.
P=P(bạn)

 Mô hình 2-gram (bigram): Tính xác suất của 1 từ dựa vào 1 từ liền
ngay trước nó.
P=P(bạn|học)


15

 Mô hình 3-gram (trigram): Tính xác suất của 1 từ dựa vào 2 từ liền
ngay trước nó.
P=p(bạn|tày bạn)
1.4.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
i-n+1
…w
i-1
w
i
) là tần số xuất hiện của chuỗi w
i-n+1
…w
i-1
w
i
trong tập
văn bản huấn luyện.
Gọi P(w
i

| w
i-n+1
…w
i-1
) là xác suất từ w
i
đi sau cụm từ w
i-n+1
…w
i-1
. Khi đó ta
có công thức tính xác suất như sau:
P(w
i
|w
i-n+1
w
i-1
) =
C(w
i-n+1
w
i-1
w
i
)


w
C(w

i-n+1
w
i-1
w)

Dễ thấy,


w
C(w
i-n+1
w
i-1
w) là tần số xuất hiện của cụm từ w
i-n+1
w
i-1
trong
văn bản huấn luyện. Nên công thức trên viết lại là:
P(w
i
|w
i-n+1
w
i-1
)=
C(w
i-n+1
w
i-1

w
i
)
C(w
i-n+1
w
i-1
)

Đây là việc huấn luyện N-gram bằng cách đếm tần số và trung bình hóa.
Tỉ lệ ở vế phải 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ông thức tính xác suất khác sẽ được đề cập tới
ở những nội dung sau.


16

1.4.3 Những vấn đề khó khăn khi xây dựng mô hình ngôn ngữ
N-gram.
1.4.3.1 Phân bố không đều.
Với mô hình ngôn ngữ N-gram xây dựng theo công thức tính “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
những ướ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 hay số lần xuất hiện ít, thì việc ta ước lượng xác suất
để đánh giá câu có chứa cụm N-gram này sẽ cho ta 1 kết quả không tốt. Với V
là kích thước bộ từ vựng, ta có thể có V cụm N-gram sinh ra từ V. Trong thực
tế, số cụm N-gram có nghĩa và thường gặp chiếm rất ít.
Ví dụ 1.3: Tiếng Việt có số lượng âm tiết nhiều hơn con số mà ta tạm đặt ở
đây là 5000 âm tiết khác nhau, ta có tổng số cụm 3-gram có thể là 5000

3
=125
000 000 000. Tuy nhiên, số cụm 3-gram xuất hiện thống kê được chỉ xấp xỉ
1500 000. Như vậy, có rất nhiều cụm 3-gram không xuất hiện hoặc xuất hiện
rất ít nên khả năng nó không xuất hiện trong trong dữ liệu huấn luyện mô hình
là rất dễ xảy ra.
Khi tính toán xác suất của 1 câu, có rất nhiều trường hợp sẽ gặp cụm N-
gram chưa xuất hiện lần nào trong tập dữ liệu huấn luyện. Điều này làm xác
suất của câu bằng 0, trong khi đó có thể là 1 câu hoàn toàn đúng về mặt ngữ
nghĩa và ngữ pháp. Để khắc phục trường hợp 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à ta sẽ đề cập trong phần 2.1.
1.4.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ụm N-gram và kích
thước mô hình ngôn ngữ cũng lớn, điều này không những khó khăn trong việc
lưu trữ mà còn làm giảm tốc độ xử lí của mô hình ngôn ngữ do bộ nhớ máy
tính là hữu hạn. Để 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, điều này
được làm rõ trong phần 2.3.


17


CHƯƠNG 2
MÔ HÌNH NGÔN NGỮ N-GRAM
2.1. CÁC KĨ THUẬT LÀM MỊN HÓA SỰ PHÂN BỐ XÁC SUẤT
TRONG MÔ HÌNH N-GRAM ĐỂ TĂNG CHẤT CHẤT LƯỢNG CỦA
MÔ HÌNH.
Do hoàn toàn dựa vào ngữ liệu huấn luyện, mô hình N-gram có một nhược
điểm, đó là khi ngữ liệu không đủ sự dày đặc cần thiết, các xác suất thu được

sẽ rất nhỏ (thường bằng 0) làm cho việc tính toán không còn chính xác.
Với bigram, sự tồi tệ này xảy ra khi C(w
i-1
w
i
)=0 hoặc thậm chí C(w
i-1
)=0.
Để 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 kĩ thuật “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 kĩ thuật làm mịn 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 lần nào trong
tập văn bản 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 kĩ thuật làm mịn có thể có 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 văn bản huấn luyện.
 Truy hồi (Back-off): Tính toán xác suất của các cụm N-gram không
xuất hiện dựa vào các cụm N-gram có độ dài ngắn hơn và có xác suất
lớn hơn 0 trong tập huấn luyện.

×