Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn CAO ĐỨC TƯ NGHIÊN CỨU 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Ấ
Trang 1Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CAO ĐỨC TƯ
NGHIÊN CỨU 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
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01
LUẬN VĂN THẠC SĨ : KHOA HỌC MÁY TÍNH
Thái Nguyên - 2011
Trang 2Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CAO ĐỨC TƯ
NGHIÊN CỨU 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
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01
LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS VŨ TẤT THẮNG
Thái Nguyên - 2011
Trang 3Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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
Tôi xin chịu trách nhiệm trước pháp luật lời cam đoan của mình
Thái Nguyên, ngày 30 tháng 9 năm 2011
Học viên
Cao Đức Tư
Trang 4Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
LỜI CẢM ƠN
Luận văn được hoàn thành bởi sự nỗ lực của bản thân, sự giúp đỡ tận tình của các thầy cô trường Đại học công nghệ thông tin và truyền thông thuộc Đại học Thái Nguyên, thầy cô Viện công nghệ thông tin thuộc Viện Khoa học và Công nghệ Việt Nam.Đã tận tình chỉ dạy, giúp đỡ em trong cả quá trình học tập và hoàn thành luận văn
Xin bày tỏ lòng biết ơn sâu sắc đến 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, 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
Xin cảm ơn các anh chị em trong lớp cao học K8 đã 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
Mặc dù đã cố gắng hết sức để hoàn thành luận văn , song không thể tránh khỏi sai sót Xin kính mong nhận được nhận xét và sự đóng góp của qu ý Thầy Cô và bạn bè
Thái Nguyên, ngày 30 tháng 9 năm 2011
Học viên
Cao Đức Tư
Trang 5Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
MỤC LỤC
1
CHƯƠNG 1: GIỚI THIỆU CHUNG 5
1.1.Đặt vấn đề: 5
1.2.Mục tiêu: 7
1.3.Cấu trúc của luận văn: 7
CHƯƠNG 2: MÔ HÌNH NGÔN NGỮ N-GRAM 8
2.1.Giới thiệu chung 8
2.2.Công thức tính “xác suất thô” 9
2.3.Vần đề khó khăn khi xây dựng mô hình ngôn ngữ N-gram 10
2.4.Các phương pháp làm mịn 11
2.5.Kỹ thuật làm giảm kích thước dữ liệu: 19
2.6.Độ đo 23
2.7.Tổng kết chương 23
CHƯƠNG 3: XÂY DỰNG N-GRAM CHO TIẾNG VIỆT 27
3.1.Giới thiệu 27
3.2.Công cụ tách từ cho tiếng Việt - vnTokenizer 3427
3.3.Bộ công cụ SRILM 35
3.4.Bộ công cụ trợ giúp xây dựng tập văn bản huấn luyện 39
3.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 3340
3.6.Dữ liệu huấn luyện 40
3.7.Kết quả xây dựng mô hình 40
3.8.Tần số của tần số 49
3.9.Cut-off (loại bỏ) 52
3.10.Các phương pháp làm mịn 53
Trang 6Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
3.11.Tổng kết chương 55
CHƯƠNG 4: ỨNG DỤNG N-GRAM TRONG BÀI TOÁN 56
THÊM DẤU TIẾNG VIỆT 56
4.1 Bài toán thêm dấu tiếng Việt 56
4.2 Các phương pháp đánh giá kết quả thêm dấu: 57
4.3 Các hệ thống thêm dấu ứng dụng về N-gram đã có: 59
4.4 Đề xuất hệ thống: 63
4.5 Thử nghiệm hệ thống: 66
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 6760
5.1 Các kết quả đạt được: 6760
5.2.Hạn chế và hướng phát triển của đề tài: 6760
TÀI LIỆU THAM KHẢO 61
Trang 7Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
DANH MỤC CÁC KÝ HIỆU VIẾT TẮT
ACL Association for Computational
Linguistics
Hiệp hội ngôn ngữ học tính toán
SMS Short Message Services Dịch vụ tin nhắn
SRI Stanford Research Institute học viện nghiên cứu sờ ten phoóc
LM language Model Mô hình ngôn ngữ
MM Maximum Mactching Khớp tối đa
LRMM Left Right Max Matching tìm đoạn tương ứng dài nhất tính từ
trái/phải WFST Weighted finite-state Transducer Mạng chuyển dịch trạng thái có trọng
số
Trang 8Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
DANH MỤC HÌNH
Hình 3-1 Quy trình tách từ 34
Hình 3-2 Số lượng các cụm n-gram với âm tiết tăng kích thước dữ liệu 48
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 49
Hình 3-4: số lượng các cụm Ngram (âm tiết) có tần số từ 1 đến 10 50
Hình 3-5 Số lượng các cụm Ngram (từ) có tần số từ 1 đến 10 51
Hình 4-1 Sự trùng khớp của các bản dịch máy với bản dịch mẫu 5158
Hình 4-2 Lưu đồ thực hiện mô hình ứng dụng trong VietPad 60
Hình 4-3 Lưu đồ thực hiện của mô hình N-gram 55
Hình 4-4 Lưu đồ thực hiện của mô hình đề xuất 6356
Hình 4.5 Mô hình test thêm dấu đề xuất 6659
Trang 9Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
DANH MỤC BẢNG
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 48Bảng 3-2: Số lượng các cụm N-gram trong văn bản huấn luyện với từ 4942Bảng 3-3: Tần số của tần số các cụm N-gram áp dụng cho âm tiết 5043Bảng 3-4 Tần số của tần số các cụm Ngram với từ 51Bảng 3-5: Bộ nhớ và độ hỗn loạn thông tin khi áp dụng loại bỏ trong âm tiết 4552Bảng 3-6: Bộ nhớ và độ hỗn loạn thông tin khi áp dụng loại bỏ với từ 53Bảng 3-7: Độ hỗn loạn thông tin của các phương pháp làm mịn cho âm tiết 5447Bảng 3-8: Độ hỗn loạn thông tin của các phương pháp làm mịn cho từ 5447
MỞ ĐẦU
1 Lý do chọn đề tài:
Trong lĩnh vực xử lí ngôn ngữ tự nhiên, sử dụng các mô hình ngôn ngữ
sẽ giúp giới hạn không gian tìm kiếm để có các giải pháp tốt nhất có thể có trong khoảng thời gian ngắn Chúng ta cần ước lượng độ hợp lý của câu văn được đưa ra trong ngôn ngữ thực tế Trong thực tế, chúng ta có thể thực hiện từng phần, mỗi phần là một chuỗi các từ Vì ngôn ngữ thực ra chỉ được học từ
sự quan sát và vì chúng ta không bao giờ quan sát hết được ngôn ngữ tự nhiên
để có thể xem xét tất cả các câu có thể xảy ra
Hiện tại, chúng ta có thể dễ dàng tìm thấy ngày càng nhiều những hệ thống dịch tự động miễn phí trên mạng như: Systran, Reverso, WorldLingo, IBM translator… Những hệ thống này cho phép dịch tự động các văn bản với một cặp ngôn ngữ chọn trước (ví dụ: dịch một văn bản giữa tiếng Anh và tiếng Pháp, hoặc tiếng Anh và tiếng Việt) Tuy nhiên, chất lượng
Trang 10Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
dịch là vấn đề mà người sử dụng quan tâm vì đa số các hệ thống dịch tự động hiện nay có chất lượng khá thấp Ví dụ, để dịch văn bản giữa tiếng Việt và tiếng Anh chúng ta có thể chọn sử dụng hệ thống dịch của Google nhưng chất lượng dịch theo chiều Việt-Anh là thấp so với chiều dịch Anh-Việt, và đặt biệt thấp cho dịch Việt-Anh với văn bản đầu vào là tiếng Việt không dấu Vấn
đề đặt ra là, làm sao để chuẩn hóa văn bản đầu vào cho hệ thống dịch Ở đó thêm dấu, hay chuẩn hóa dấu văn bản là một vấn đề rất quan trọng
Từ những vấn đề trên cũng như những kiến thức đã được học tôi lựa
chọn đề tài: “Nghiên cứu 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”, một trong những vấn đề có
tính cấp thiết trong lĩnh vực xử lí ngôn ngữ tự nhiên tiếng Việt nói riêng và khoa học công nghệ trong đời sống xã hội nói chung
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ệcthêm dấu cho tiếng Việt không dấu
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ữ gram
Trang 11N-Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
- 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:
Nghiên cứu N-gram thông qua tài liệu về cơ sở thống kê của phương
pháp xử lý ngôn ngữ tự nhiên và cơ sở của nó
Nghiên cứ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
Tìm hiểu, vận dụng và kế thừa các thuật tuán và quy trình đã công bố kết quả
Áp dụng mô hình ngôn ngữ cho bài toán thêm dấu, có đối sánh với kết
quả của các phương pháp thêm dấu tự động khác
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
Cài đặt hoàn chỉnh chương trình thêm dấu cho tiếng Việt không dấu
Đưa ra kết quả so sánh với những phần mềm đã có
Trang 12Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
6 Bố cục của luận văn
Mở đầu
1 Lý do chọn đề tài
2 Mục đích 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 và thực tiễn của luận văn
Chương 1.Giới thiệu chung
1.1 Đặt vấn đề
1.2 Mục tiêu
13 Cấu trúc
Chương 2 Mô hình ngôn ngữ N-gram
2.1.Giới thiệu chung
2.2.Vấn đề công thức tính “xác suất thô”
2.3.Vấn đề khi xây dựng mô hình ngôn ngữ N-gram
3.4 Bộ công cụ trợ giúp xây dựng tập văn bản huấn luyện
3.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 3.6 Dữ liệu huấn luyện
3.7 Kết quả xây dựng mô hình
Trang 13Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
3.8 Tần số của tần số
3.9 Cut-of ( loại bỏ)
3.10 Các phương pháp làm mịn
3.11 Tổng kết chương
Chương 4.Ứng dụng N-gram trong bài toán thêm dấu tiếng Việt
4.1.Bài toán thêm dấu tiếng Việt
4.2 Các phương pháp đánh giá kết quả thêm dấu
4.3 Các hệ thống thêm dấu ứng dụng về N-gram đã có
Trang 14Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƯƠNG 1: GIỚI THIỆU CHUNG 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[13] 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[8],[13] 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ụ 1.1: 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
P[“trời mưa sẽ mai ngày”] ~ 0
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
Trang 15Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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ì gram là một trong số những mô hình được sử dụng rộng rãi nhất
N-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 Ngoà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 thêm dấu cho văn bản tiếng Việt không dấu
Dấu là một thành phần không thể thiếu và mang những thông tin, nội dung quan trọng của văn bản tiếng Việt Chúng không là mẫu tự mà là một phần của mẫu tự Tuy nhiên có rất nhiều trường hợp mà người sử dụng đã loại
bỏ các thành phần này, chẳng hạn trong các tin nhắn SMS qua điện thoại, các liên lạc kiểu thư điện tử, chat, …
Khái niệm dấu ở đây không chỉ giới hạn với 5 ký hiệu về dấu thanh điệu được thể hiện trong chữ Việt để thể hiện cho sáu loại thanh điệu khác nhau: ngang, huyền, ngã, hỏi, sắc, và nặng Mà hơn thế nữa, nó còn bao gồm các nhiều dấu phụ trợ cho 5 nguyên âm không dấu: a, i, u, e, o để tạo lập các ký tự
đủ đa dạng cho việc ký âm các nguyên âm tiếng Việt, a ă â e ê i o ô ơ u ư y Ngoài ra chữ Việt có thêm dấu gạch trên đầu d để ký âm cho một phụ âm khác là đ
Trong đa số trường hợp, người đọc văn bản phải nội suy được dấu tương ứng của các đoạn văn không dấu, cố gắng hiểu được ý nghĩa chuyển tải của mỗi đoạn văn dựa theo ngữ cảnh của cả văn bản Đối với các hệ thống xử lí văn bản tự động thì đây chính là một nhập nhằng rất khó giải quyết, đặc biệt
là các hệ thống phân tích cú pháp, hệ thống tìm kiếm, hệ thống dịch tự động,
… Đề tài này sẽ tập trung vào một phương pháp cơ bản là sử dụng mô hình ngôn ngữ N-gram để tính toán các khả năng thêm giấu với xác suất cao nhất, giúp máy tính tự động thêm dấu cho các văn bản không dấu tiếng Việt
Trang 16Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
1.2.Mục tiêu:
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ục tiêu chính của luận văn là tìm hiểu lý thuyết về mô hình N-gram 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ộ 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 bài toán thêm dấu cho tiếng Việt không dấu, và 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ữ tiếng Việt
1.3.Cấu trúc của luận văn:
Sau phần giới thiệu chung và mục tiêu nghiên cứu được trình bày ở Chương 1, phần còn lại của Luận văn được cấu trúc như sau:
Chương 2: Nghiên cứu các vấn đề của mô hình ngôn ngữ N-gram, các sự
cố gặp phải và cách khắc phục trong việc xây dựng tối ưu mô hình N-gram Chương 3: 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ữ và các kết quả đạt được
Chương 4: Tập trung vào việc áp dụng mô hình ngôn ngữ trong bài toán thêm dấu cho tiếng Việt không dấu
Chương 5: Tổng kết những gì luận văn đã đạt được và đưa ra kế hoạch nghiên cứu trong tương lai
Trang 17Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƯƠNG 2: MÔ HÌNH NGÔN NGỮ N-GRAM 2.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(w1w2…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), thì 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 m |w 1 w 2 …w m-1 )
Theo công thức này thì bài toán tính xác suất của mỗi chuỗi từ quy về bài toá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)
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 m |w 1 ,w 2 ,…, w m-1 ) = P(w m |w m-n ,w n-m+1 , …,w m-1 )
Nếu áp dụng xấp xỉ Markov, 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 trước nó (w m-n w m-n+1 …w m-1) chứ không
phải phụ thuộc vào toàn bộ dãy từ đứng trước (w 1 w 2 …w m-1) 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(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 )
Trang 18Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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ụ 2.1: Giả sử cần tính xác suất p=P(nên | không thầy đố mày làm):
Mô hình 1-Gram(unigram )tính xác suất của một từ mà không phụ thuộc vào các từ trước nó, tức là không có ngữ cảnh:
2.2.Công thức tính “xác suất thô”
Gọi C(w i-n+1 w i-1 w i ) là tần số xuất hiện của cụm 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 w i đi sau cụm w i-n+1 w i-2 w i-1
Ta có công thức tính xác suất như sau:
Dễ thấy,
trong văn bản huấn luyện Do đó công thức trên viết lại thành:
Trang 19Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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.Vần đề 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
Với mô hình N-gram được xây dựng 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 xác suất để đánh giá các câu có chứa các cụm n-gram này sẽ cho ta một 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 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ụ 2.2: Tiếng Việt có số lượng âm tiết nhiều hơn con số mà ở đây ta
tạm đặt là 5000 âm tiết khác nhau, ta có tổng số cụm 3-gram có thể có là: 5.0003 = 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 nên khả năng rất dễ xẩy ra là nó không xuất hiện trong dữ liệu huấn luyện mô hình
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 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 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 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ó
Trang 20Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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 2.6
2.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ố 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
● Truy hồi (Back-off) : tính toán xác suất các cụm n-gram 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 toá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-n-gram ngắn hơn
2.4.1.Các thuật toán chiết khấu (discounting)
Vấn đề 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 gram có xác suất lớn hơn 0 và bù cho các cụm N-gram chưa từng xuất hiện trong tập huấn luyện[13] Các thuật toán dạng này sẽ trực tiếp làm thay đổi
Trang 21n-Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
tần số xuất hiện của tất cả các cụm n-gram Ở đây tôi sẽ đề 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
2.4.1.1.Phương pháp làm mịn Add-one
Thuật toán làm mịn Add-one cộng thêm 1 vào số lần xuất hiện của mỗi
cụm n-gram bất kỳ rồi nhân với phân số chuẩn hóa (để bảo toàn tổng xác suất vẫn giữ nguyên là 1)
Ví dụ, với unigram, khi cộng thêm 1 vào số lần xuất hiện của mỗi cụm unigram, thì tổng số cụm unigram được thêm vào là:
M‟ = M + V với M là tổng số cụm unigram đã xuất hiện, V là kích thước bộ từ vựng
Để bảo toàn tổng số cụm unigram vẫn bằng M, thì tần số mới của các cụm unigram được tính lại theo công thức:
Ci
*
= (Ci+1) M‟Mvới Ci là tần số của cụm unigram trước khi làm mịn Như vậy, xác suất của các cụm unigram cũng được tính lại:
Pi* = Ci*
M =
(Ci+1)
M + V
Xét các cụm n-gram với n>1, thay M bằng C(w i-n+1 w i-1 ) thì xác suất
của cụm (w i-n+1 w i-1 w i ) được tính theo công thức sau:
P(w i |w i-n+1 w i-1 ) = C(w i-n+1 w i-1 w i ) + 1
Trang 22Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
10 lần, do kích thước bộ từ điển là lớn trong khi tần số xuất hiện của cụm gram đó không cao Để thuật toán thêm hiệu quả, người ta có thể sử dụng công thức tương tự ở dạng sau:
n-P(w 1 w 2 w n ) = C(w 1 w 2 w n ) +
C(w 1 w 2 w n-1 ) + M
Công thức trên là một phiên bản cải tiến thông dụng của thuật toán one Để bảo toàn tổng xác suất của tất cả các cụm N-gram, thì được chọn trong khoảng [0, 1], với một số giá trị thông dụng sau:
add- = 0: không làm mịn
= 1: thuật toán add-one
= 1
2: được gọi là thuật toán Jeffreys - Perks
2.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 unigram, gọi T là số cụm unigram khác nhau đã xuất hiện, còn M là tổng số các cụm unigram đã thống kê, khi đó tổng số sự kiện sẽ là (T+M), và xác suất để gặp cụm unigram 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ầnnào) được tính bằng: T
T+MGọ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 unigram chưa xuất hiện lần nào (có tần
số bằng 0) được tính bằng:
Trang 23Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Z(T+M) , và xác suất xuất hiện của các cụm unigram có tần
số khác 0 được tính lại theo công thức:
P(w) = c(w)
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 N-gram với n>1, thay
M bằng C(w i-n+1 w i-1 ) thì xác suất của cụm w i-n+1 w i-1 w i với C(w i-n+1 w i-1 w i )
= 0 được tính theo công thức sau:
Với C(wi-n+1 wi-1wi) > 0, thì xác suất cụm (w i-n+1 w i-1 w i) được tính bằng công thức:
2.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 toán Nc, với Nc là số cụm gram xuất hiện c lần Như vậy:
n-N0 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)
N1 là số cụm N-gram có tần số 1 (số cụm n-gram xuất hiện 1 lần)
Trang 24Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trên thực tế, người ta không tính toá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ố
2.4.2.Phương pháp truy hồi(back-off)
Trong các phương pháp chiết khấu như phương pháp Add-One hay
Witten-Bell, nếu cụm (w 1 w 2 …w n ) không xuất hiện trong tập huấn luyện, và
cụm (w 1 w 2 …w n ) cũng không xuất hiện, thì xác suất của cụm (w 1 w 2 …w n ) 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.[9],[13]
Cụ thể, xác suất của cụm wi-n+1 wi-1wi được tính lại theo công thức sau:
PB(wi|wi-n+1 wi-1)=
P(wi|wi-n+1 wi-1) nếu C(wi-n+1 wi-1wi) > 0
* PB(wi|wi-n+2 wi-1) nếu C(wi-n+1 wi-1wi) = 0
Áp dụng cho bigram, ta có:
PB(wi|wi-1) =
P(wi|wi-1) nếu C(wi-1wi) > 0
* P(wi) nếu C(wi-1wi) = 0Công thức trên có thể viết lại thành:
P B (w i |w i-1 ) = P(w i |w i-1 ) + (w i-1 w i ) * * P(w i ) với u(x) =
1 nếu C(x) = 0
0 nếu C(x) > 0Tương tự, khi áp dụng cho trigram ta có:
PB(wi|wi-2wi-1)=
P(wi|wi-2wi-1) nếu C(wi-2wi-1wi ) > 0
1 * P(wi|wi-1) nếu C(wi-2wi-1wi ) = 0 và C(wi-1wi ) > 0
2 * P(wi) nếu C(wi-2wi-1wi ) = 0 và C(wi-1wi ) = 0Công thức trên cũng có thể viết lại thành:
Trang 25Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
PB(wi|wi-2wi-1) = P(wi|wi-2wi-1) + (wi-2wi-1wi)*1*P(wi|wi-1) + (wi-1wi)*2 * P(wi)
Sự chính xác của mô hình truy hồi phụ thuộc vào các tham số 1 và 2
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 1 và 2 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:
1 = 1(wi-1wi) và 2 = 2(wi-1wi) 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 toá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(wi|wi-2wi-1) =
P‟(wi|wi-2wi-1) nếu C(wi-2wi-1wi) > 0
1 * P‟(wi|wi-1) nếu C(wi-2wi-1wi) = 0 và C(wi-1wi) > 0
2 * P‟(wi) nếu C(wi-2wi-1wi) = 0 và C(wi-1wi) = 0Trong đó 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
2.4.3.Phương pháp nội suy(Interpolation)
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 suất của cụm n-gram dài hơn”[6],[8] 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:
Trang 26Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Áp dụng cho bigram và trigram ta có:
P I (w i |w i-1 ) = P(w i |w i-1 ) + (1-)P(w i ) P I (w i |w i-n+1 w i-1 ) = 1 P(w i
|w i-2 w i-1 ) + 2 P(w i |w i-1 ) + 3 P(w i ) với
i 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 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:
1 = 1(wi-2wi-1wi), 2 = 2(wi-1wi) và 3 = 3(wi)
2.4.4.Phương pháp làm mịn Kneser - Ney
Thuật toá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 toá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:
Trong đó:
o PBKN(wi) = N(vwi) - D
w N(vw)
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
Trang 27Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
(wi-2wi-1)PBKN(wi|wi-1) nếu C(wi-2wi-1wi) = 0
(wi-1)PBKN(wi) nếu C(wi-1wi) = 0
PBKN(wi) = N(vwi) - D
wN(vw)
b Mô hình nội suy:
Trong đó:
nhau xuất hiện liền sau cụm wi-n+1 wi trong tập huấn luyện
o PIKN(wi) = N(vwi) - D
w N(vw)
+ 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 = D N(v)
w N(vw)Như vậy:
PIKN(wi|wi-2wi-1) = C(wi-2wi-1wi) - D
C(wi-2wi-1) + (wi-2wi-1)PIKN(wi|wi-1)
PIKN(wi|wi-1) = C(wi-1wi) - D
C(wi-1) + (wi-1)PIKN(wi)
Trang 28Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
2.4.5.Phương pháp làm mịn Chen - GoodMan
Công thức tính toá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 toán Kneser-Ney, tuy nhiên hằng số D bị thay đổi
Chen và GoodMan chọn D như sau:
Trong đó: Ni là số lượng cụm n-gram có số lần xuất hiện bằng i
Chú ý rằng: với mỗi bậc của n-gram ta lại có một bộ 3 hằng số trên Điều
đó có nghĩa là: unigram, bigram, có các hằng số trên là khác nhau
2.5.Kỹ thuật làm giảm kích thước dữ liệu:
Các kỹ thuật này làm giảm kích thước của mô hình ngôn ngữ Mặc dù đều
có chung một mục tiêu, nhưng mỗi kỹ thuật lại có hiệu quả khác nhau Có ba
kỹ thuật chính, bao gồm:
Trang 29Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
● Pruning (loại bỏ): làm giảm số lượng các cụm n-gram trong mô
hình ngôn ngữ bằng cách loại bỏ các cụm n-gram không quan trọng
● Quantization (lượng tử hóa): thay đổi lại cấu trúc thông tin của
mỗi cụm n-gram trong mô hình ngôn ngữ
● Compression (nén): nén cấu trúc dữ liệu sử dụng trong việc lưu trữ
các cụm n-gram trong mô hình ngôn ngữ
Tuy nhiên, để tăng tính hiệu quả, ở bước thứ hai, thuật toán này đồng hóa một số giá trị trong bảng tần số Điều đó có nghĩa là, một số giá trị trong bảng có giá trị gần với nhau sẽ được thay thế bằng một con số chung Sau bước này, chúng ta sẽ thu được một bảng tần số với ít giá trị hơn, cũng tức là
đã làm giảm kích thước của mô hình ngôn ngữ đi một lần nữa
2.5.2.Loại bỏ (pruning):
Số lượng các cụm n-gram xuất hiện vài lần trong tập huấn luyện thường là lớn so với tổng số các cụm n-gram Các cụm n-gram đó thường là lỗi ngữ pháp trong tập huấn luyện, hoặc là một số dạng đặc biệt như: tên riêng, từ viết tắt,.[13] Những cụm n-gram này thường rất ít sử dụng trong thực tế, do đó việc tồn tại của chúng có thể làm ảnh hưởng đến độ chính xác
Trang 30Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
của mô hình ngôn ngữ Chính vì lý do đó, kỹ thuật pruning tập trung vào việc
loại bỏ các cụm n-gram như vậy Có 2 phương pháp chính:
● Cut-off (cắt bỏ): phương pháp này tập trung vào việc loại bỏ các
cụm Ngram có tần số thấp trong tập huấn luyện
● Weighted difference: phương pháp này tập trung vào việc đánh
giá và loại bỏ các cụm Ngram không hiệu quả dựa vào xác suất của các cụm Ngram trước và sau khi làm mịn theo phương pháp
truy hồi
2.5.2.1.Cắt bỏ (cut-off):
Phương pháp này là phương pháp thông dụng, thường được sử dụng để làm giảm kích thước mô hình ngôn ngữ Trong thực tế, trong tập văn bản huấn luyện, có rất nhiều cụm bigram và trigram chỉ xuất hiện một hoặc hai lần trong đoạn văn bản chứa trên một triệu từ Khi loại bỏ các cụm n-gram này ra khỏi mô hình ngôn ngữ, thông tin về chúng (bao gồm tần số và xác suất) của chúng vẫn có thể nhận lại được thông qua việc sử dụng mô hình truy hồi hay nội suy
Phương pháp cut-off hoạt động như sau: Nếu cụm n-gram xuất hiện ít hơn
k lần trong tập văn bản huấn luyện thì cụm n-gram đó sẽ bị loại bỏ ra khỏi mô hình ngôn ngữ Khi tính toán, nếu gặp lại các cụm n-gram này, thì tần số và xác suất của chúng sẽ được tính toán thông qua các phương pháp làm mịn đã trình bày ở trên
Trong một mô hình ngôn ngữ, chúng ta có thể sử dụng các tham số k khác nhau với các cụm n-gram có độ dài khác nhau Ví dụ: với unigram thì sử dụng
k = 10, với bigram thì k = 1, và trigram thì k =5
Như vậy, việc chọn tham số k cho phương pháp cut-off chính là vấn đề chính của kỹ thuật này Nếu k quá lớn, chúng ta sẽ bỏ sót thông tin về một số cụm n-gram, hiệu suất của ứng dụng cũng bị giảm Nhưng ngược lại, nếu k quá nhỏ, thì kích thước của mô hình ngôn ngữ cũng giảm không đáng kể Có
Trang 31Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
2 cách để chọn k: chọn k theo phương pháp chạy thử nhiều lần hoặc chọn k theo tỉ lệ phần trăm của số lượng các cụm n-gram
Chọn k theo phương pháp chạy thử nhiều lần nghĩa là ta dùng phương pháp cut-off cho mô hình ngôn ngữ với nhiều giá trị k khác nhau rồi đánh giá
độ hỗn loạn thông tin(perplexity) của tập văn bản đầu vào sau khi sử dụng phương pháp cut-off Sau khi có kết quả, ta sẽ chọn tham số k sao cho mô hình ngôn ngữ là hiệu quả nhất (độ hỗn loạn thông tin của tập văn bản huấn luyện và kích thước mô hình ngôn ngữ đều thấp) Kỹ thuật này giúp chúng ta chọn được k phù hợp, tuy nhiên rất mất thời gian do phải chạy thử với rất nhiều giá trị của k Tuy nhiên, để đạt được một mô hình ngôn ngữ hiệu quả thì đây là một phương pháp tốt
Phương pháp thứ hai, chọn k dựa theo tỷ lệ phần trăm của số lượng các cụm n-gram phải bảo đảm rằng số cụm n-gram xuất hiện không quá k lần chiếm h% so với tổng số các cụm n-gram
Ví dụ 2.3: Nếu h=50, thì chọn k sao cho số lượng các cụm n-gram xuất
hiện không quá k lần (sẽ bị loại bỏ) chiếm 50% tổng số các cụm n-gram đã thống kê Phương pháp này tuy nhanh hơn nhưng độ chính xác không cao bằng phương pháp thứ nhất đã đề cập ở trên
2.5.2.2.Sự khác biệt trọng số (Weighted difference):
Phương pháp cut-off chỉ quan tâm đến việc loại bỏ các cụm n-gram có tần số thấp, trong khi phương pháp weighted difference(sự khác biệt trọng số) thì quan tâm đến nhiều thông tin trong mô hình ngôn ngữ hơn như mối quan
hệ giữa các cụm n-gram, xác suất của từng cụm n-gram[13] Như đã trình bày
ở các phần trên, nếu một cụm n-gram không xuất hiện trong tập huấn luyện, thì xác suất của nó được ước lượng thông qua xác suất của các cụm n-gram ngắn hơn (phương pháp làm mịn kiểu truy hồi) Do đó, nếu xác suất thực tế của một cụm n-gram xấp xỉ với xác suất có được theo công thức truy hồi, thì chúng ta chẳng cần lưu trữ cụm n-gram đó làm gì nữa Đó chính là ý tưởng
Trang 32Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
của phương pháp weighted difference Sự khác biệt trọng số của một cụm gram được định nghĩa bằng:
n-w.d.factor = K * log((xác suất ban đầu) - log(xác suất truy hồi))
K chính là tham số sử dụng trong phương pháp làm mịn Good Turing Dựa vào nhân tố w.d.factor ở trên, chúng ta sẽ biết nên giữ lại hay loại bỏ một cụm n-gram Nếu w.d.factor nhỏ hơn một ngưỡng nhất định, thì cụm n-gram
đó sẽ bị loại bỏ khỏi mô hình ngôn ngữ Và ngưỡng nhất định đó chúng ta có thể bằng cách tìm theo phương pháp thử sai hoặc đặt nó bằng một giá trị hằng
số
Trong thực tế, phương pháp này mất nhiều thời gian hơn phương pháp cut-off do phải tính toán hệ số w.d.factor cho tất cả các cụm n-gram trong mô hình ngôn ngữ Và sự khác biệt lớn nhất giữa 2 phương pháp loại bỏ này chính là phương pháp weighted different chỉ hoạt động trong mô hình ngôn ngữ kiểu truy hồi, còn phương pháp cut-off thì chỉ hoạt động trong mô hình ngôn ngữ lưu trữ dữ liệu dưới dạng tần số
2.5.3.Nén (Compression)
Mô hình ngôn ngữ nào cũng có một cấu trúc dữ liệu Do đó nếu cấu trúc
dữ liệu đó được nén lại bằng các thuật toán nén, thì kích thước của mô hình ngôn ngữ tất nhiên là giảm Tuy nhiên, khi một mô hình ngôn ngữ bị nén, thì
độ chính xác và tốc độ của mô hình ngôn ngữ đều giảm (do phải giải nén, hoặc bị mất dữ liệu do thuật toán nén chưa tốt)[13] Do không hiệu quả nên
kỹ thuật này hiện nay không còn phổ biến như hai kỹ thuật trên
2.6.Độ đo
Để xây dựng được một hình ngôn ngữ hiệu quả, chúng ta phải có cách để đánh giá chúng Dưới đây là một số phương pháp phổ biến để đánh giá một
mô hình ngôn ngữ:
● Entropy - Độ đo thông tin
● Perplexity - Độ hỗn loạn thông tin
Trang 33Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
● Error rate - Tỉ lệ lỗi
2.6.1 Entropy – Độ đo thông tin:
Entropy là thước đo thông tin, có giá trị rất lớn trong xử lý ngôn ngữ Nó thể hiện mức độ thông tin trong ngữ pháp, thể hiện sự phù hợp của một câu với một ngôn ngữ, và dự đoán được từ tiếp theo trong cụm n-gram[6],[13]
Entropy của một biến ngẫu nhiên X được tính theo công thức:
H(X) = -
x X p(x)log2p(x)
Xét các câu gồm hữu hạn m từ W = (w 1 , w 2 , , w m ) trong ngôn ngữ L
Ta có công thức tính entropy như sau:
cả các câu có thể có trong ngôn ngữ L), đó là điều không thể Do đó, ta có thể tính xấp xỉ tỉ lệ entropy trên các từ theo công thức sau:
Trang 34Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Định lý Shannon-McMillan-Breiman đã chỉ ra rằng nếu ngôn ngữ ổn
định (chứa các câu gồm các từ với cấu trúc thông dụng) thì công thức trên có thể biến đổi thành:
Công thức trên đã được biến đổi qua nhiều bước với các xấp xỉ gần đúng, do vậy để tăng tính chính xác khi sử dụng độ đo entropy thì câu kiểm tra cần phải đủ dài và tổng quát (phân tán rộng) để tránh tập trung vào các xác suất lớn (chỉ chứa các cụm thông dụng)
Các bước biến đổi gần đúng công thức trên khiến giá trị H(L) tính theo công thức cuối cùng sẽ lớn hơn giá trị H(L) gốc Do vậy, khi tính H(L) của các mô hình ngôn ngữ khác nhau trên ngôn ngữ L, mô hình nào cho H(L) nhỏ hơn thì mô hình ngôn ngữ đó thể hiện chính xác ngôn ngữ L hơn
2.6.2 Perplexity – Độ hỗn loạn thông tin:
Độ hỗn loạn thông tin (perplexity) cũng được dùng làm thước đo để đánh giá
độ chính xác của một mô hình ngôn ngữ Trong mô hình ngôn ngữ, độ hỗn loạn thông tin của một văn bản với từ “cái” thể hiện số từ có thể đi sau từ “cái” Độ hỗn loạn thông tin của một mô hình ngôn ngữ nói chung, có thể hiểu đơn giản là số lựa chọn từ trung bình mà mô hình ngôn ngữ phải đưa ra quyết định Như vậy, độ hỗn loạn thông tin càng thấp, thì độ chính xác của mô hình ngôn ngữ càng cao
Độ hỗn loạn thông tin có thể tính theo công thức:
P(L) = 2H(L)
Ví du 2.4: L dãy kí tự a, b, …, z có perplexity là 26 còn bảng mã ASCII có
perplexity là 256
Trang 35Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
2.6.3.Error rate – Tỉ lệ lỗi:
Người ta thường sử dụng độ đo entropy và perplexity để so sánh độ chính xác của các mô hình ngôn ngữ khi xây dựng một mô hình ngôn ngữ tổng quát Trong các bài toán cụ thể, người ta sử dụng tỉ lệ lỗi để so sánh độ chính xác của các mô hình ngôn ngữ[13]
Soát lỗi chính tả: xét tỉ lệ giữa số lỗi phát hiện sai hoặc không phát hiện được
trên tổng số lỗi có trong văn bản
Phân đoạn từ: xét tỉ lệ giữa từ phân đoạn sai trên tổng số từ có trong văn bản
Bỏ dấu tự động: xét tỉ lệ giữa số từ bị bỏ dấu nhầm trên tổng số từ có trong
văn bản Tỉ lệ lỗi thấp chứng tỏ mô hình ngôn ngữ hiệu quả Việc sử dụng tỉ lệ lỗi
để đánh giá đưa lại kết quả chính xác nhất khi muốn chọn lựa mô hình ngôn ngữ phù hợp để giải quyết bài toán cụ thể Tỉ lệ lỗi thường tỉ lệ thuận với giá trị entropy nhưng đôi khi mức độ tăng/giảm của tỉ lệ lỗi và entropy không đều
2.7.Tổng kết chương
Trong chương 2, tác giả tập trung vào nghiên cứu mô hình ngôn ngữ N-gram như:
-Các phương pháp làm mịn
-Các kỹ thuật làm giảm kích thước dữ liệu
Để xây dựng được mô hình ngôn ngữ có hiệu quả thì cần phải có cách đánh giá chúng Từ những vấn đề nêu trên tác giả cũng đã đề cập đến một số phương pháp đánh giá một mô hình ngôn ngữ như:
● Entropy - Độ đo thông tin
● Perplexity - Độ hỗn loạn thông tin
● Error rate - Tỉ lệ lỗi