ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT&TT

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

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

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CNTT&TT

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

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

1

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

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ư

2

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

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ư

3

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

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

3.10.Các phƣơng pháp làm mịn ................................................................. 53

4

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

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ÀI LIỆU THAM KHẢO ............................................................................ 61

5

DANH MỤC CÁC KÝ HIỆU VIẾT TẮT

Diễn giải

Ý nghĩa

Hiệp hội ngôn ngữ học tính toán

Viết tắt ACL

Association for Computational Linguistics Short Message Services Stanford Research Institute language Model Maximum Mactching

SMS SRI LM MM LRMM Left Right Max Matching

Dịch vụ tin nhắn học viện nghiên cứu sờ ten phoóc Mô hình ngôn ngữ Khớp tối đa 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ố

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

6

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

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

Hình 4.5. Mô hình test thêm dấu đề xuất. ................................................. 6659

7

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 . 48

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ừ ..... 4942

Bảng 3-3: Tần số của tần số các cụm N-gram áp dụng cho âm tiết ........... 5043

Bảng 3-4. Tần số của tần số các cụm Ngram với từ ...................................... 51

Bảng 3-5: Bộ nhớ và độ hỗn loạn thông tin khi áp dụng loại bỏ trong âm tiết ................................................................................................................. 4552

Bảng 3-6: Bộ nhớ và độ hỗn loạn thông tin khi áp dụng loại bỏ với từ ......... 53

Bả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 ................................................................................................................. 5447

Bả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

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

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

8

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.

2. Mục đích và nhiệm vụ:

 Mục tiêu

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ệ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ữ N-

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

gram.

9

- 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.

 Ý 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.

 Ý nghĩa thực tiễn

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

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ó.

10

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.

2.4.Các phƣơng pháp làm min.

2.5.Kỹ thuật làm giảm kích thƣớc dữ liệu.

2.6.Độ đo

2.7.Tổng kết chƣơng

Chƣơng 3.Xây dựngN-gram cho tiếng Việt

3.1. Giới thiệu.

3.2. Công cụ tách từ cho tiếng việt-VnTokenizer.

3.3. Bộ công cụ SRILM.

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.

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

3.7. Kết quả xây dựng mô hình.

11

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ó.

4.4. Đề xuất hệ thống. 4.5. Thử nghiệm hệ thống.

Chƣơng 5: Kết luận và hƣớng phát triển của đề tài

5.1. Các kết quả đạt đƣợc:

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

5.2.Hạn chế và hƣớng phát triển của đề tài:

12

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 đủ ngắn.

Cốt lõi nhất của các phƣơng pháp để máy tính xử lý ngôn ngữ tự nhiên

chính là việc xây dựng mô hình ngôn ngữ, mà ngày nay ngƣời ta thƣờng dùng

ở dạng mô hình thống kê. Các phƣơng pháp xử lý ngôn ngữ tự nhiên dựa trên

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

thống kê không nhằm tới việc con ngƣời tự xây dựng mô hình ngữ pháp mà lập chƣơng trình cho máy tính có thể “học” nhờ vào việc thống kê các từ và

13

cụm từ có trong các văn bản. Trong các mô hình ngôn ngữ tiếng nói, thì N- gram là một trong số những mô hình đƣợc sử dụng rộng rãi nhất.

Mục tiêu của luận văn, là nghiên cứu nắm bắt đƣợc những vấn đề cốt lõi

của mô hình ngôn ngữ N-gram, đặc biệt là các kỹ thuật làm trơn các phân bố

xác suất thống kê (Smoothing techniques), nhằm nâng cao chất lƣợng về

lƣợng giá xác suất bởi mô hình. 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,

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

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.

14

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

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 trong tƣơng lai.

15

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(w1w2…wm) = P(w1) * P(w2|w1) * P(w3|w1w2) *…* P(wm|w1w2…wm-1).

Theo công thức này thì bài 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(wm|w1,w2,…, wm-1) = P(wm|wm-n,wn-m+1, …,wm-1).

Nếu áp dụng xấp xỉ Markov, xác suất xuất hiện của một từ (wm) đƣợc coi nhƣ chỉ phụ thuộc vào n từ đứng liền trƣớc nó (wm-nwm-n+1…wm-1) chứ không phải phụ thuộc vào toàn bộ dãy từ đứng trƣớc (w1w2…wm-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(w1w2…wm) = P(w1) * P(w2|w1) * P(w3|w1w2) *…

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

* P(wm-1|wm-n-1wm-n …wm-2)* P(wm|wm-nwm-n+1…wm-1).

16

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:

p=P(nên)

 Mô hình 2-Gram(bigram ) tính xác suất của một từ dựa vào

một từ trƣớc nó:

p=P(nên|mày)

 Mô hình 3-Gram(trigram ) tính xác suất của một từ dựa vào

hai từ trƣớc nó:

p=P(nên|mày làm)

2.2.Công thức tính “xác suất thô”

Gọi C(wi-n+1...wi-1wi) là tần số xuất hiện của cụm wi-n+1...wi-1wi trong tập

văn bản huấn luyện.

Gọi P(wi|wi-n+1...wi-1) là xác suất wi đi sau cụm wi-n+1..wi-2wi-1.

Ta có công thức tính xác suất nhƣ sau:

P(wi|wi-n+1...wi-1) =

C(wi-n+1...wi-1w) C(wi-n+1...wi-1wi)  w

C(wi-n+1..wi-1w) chính là tần số xuất hiện của cụm wi-n+1...wi-1 Dễ thấy,  w

trong văn bản huấn luyện. Do đó công thức trên viết lại thành:

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

P(wi|wi-n+1...wi-1) = C(wi-n+1...wi-1wi) C(wi-n+1...wi-1)

17

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à

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

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ó

18

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

● Gán cho các cụm n-gram có xác suất 0 (không xuất hiện trong tập

giá lại xác suất của các cụm n-gram bằng cách:

● 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

huấn luyện) một giá trị khác 0.

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%).

● Chiết khấu (Discounting): giảm (lƣợng nhỏ) xác suất của các

Các phƣơng pháp làm mịn có thể đƣợc chia ra thành một số loại nhƣ sau:

cụm n-gram có xác suất lớn hơn 0 để bù cho các cụm n-gram

● Truy hồi (Back-off) : tính toán xác suất các cụm n-gram không

không xuất hiện trong tập huấn luyện.

xuất hiện trong tập huấn luyện dựa vào các cụm n-gram thành

● Nội suy (Interpolation): tính toán xác suất của tất cả các cụm n-

phần có độ dài ngắn hơn và có xác suất lớn hơn 0

gram dựa vào xác suất của các cụm n-gram ngắn hơn.

2.4.1.Các thuật toán chiết khấu (discounting)

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

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 n- 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

19

● Thuật toán Add-one

● Thuật toán Witten-Bell

● Thuật toán Good-Turing

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:

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+1)

Ci M M‟

vớ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(wi-n+1...wi-1) thì xác suất

của cụm (wi-n+1...wi-1wi) đƣợc tính theo công thức sau:

P(wi|wi-n+1...wi-1) = C(wi-n+1...wi-1wi) + 1 C(wi-n+1...wi-1) + V

Chúng ta có thể thấy thuật toán này sẽ làm thay đổi đáng kể xác suất của

các cụm N-gram đã xuất hiện trong tập huấn luyện nếu kích thƣớc bộ từ điển

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

V là rất lớn. Trong thực nghiệm, một vài cụm n-gram có xác suất giảm đi gần

20

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 n-

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:

P(w1w2...wn) = C(w1w2...wn) +  C(w1w2...wn-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 add-

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:

  = 0: không làm mịn

  = 1: thuật toán add-one

: đƣợc gọi là thuật toán Jeffreys - Perks 1   = 2

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+M

Gọi V là kích thƣớc bộ từ vựng, còn Z là số cụm unigram chƣa xuất hiện

lần nào: Z = V - T

Xác suất xuất hiện của một cụm unigram chƣa xuất hiện lần nào (có tần

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

số bằng 0) đƣợc tính bằng:

21

P* = , và xác suất xuất hiện của các cụm unigram có tần T Z(T+M)

số khác 0 đƣợc tính lại theo công thức:

P(w) = với c(w) là số lần xuất hiện của cụm w c(w) T+M

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(wi-n+1...wi-1) thì xác suất của cụm wi-n+1...wi-1wi với C(wi-n+1...wi-1wi) = 0 đƣợc tính theo công thức sau:

. P(wi|wi-n+1...wi-1) = T(wi-n+1...wi-1) Z(wi-n+1...wi-1)(C(wi-n+1...wi-1) + T(wi-n+1...wi-1))

Với C(wi-n+1...wi-1wi) > 0, thì xác suất cụm (wi-n+1...wi-1wi) đƣợc tính bằng công thức:

P(wi|wi-n+1...wi-1) = C(wi-n+1...wi-1wi) C(wi-n+1...wi-1) + T(wi-n+1...wi-1)

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 n-

gram xuất hiện c lần. Nhƣ vậy:

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)

Nc có thể hiểu đơn giản là: Nc =  w:count(w)=c

Khi đó, thuật toán Good-Turing sẽ thay thế tần số c bằng một tần số mới

c* theo công thức:

c* = (c+1) * Nc+1 Nc

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

Xác suất của một cụm N-gram với tần số là c đƣợc tính lại theo công thức:

22

c =  với N =  c = 0

c =  Ncc =  c = 0

c =  Ncc* =  c = 0

P(w) = Nc+1(c+1) c* N

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 (w1w2…wn) không xuất hiện trong tập huấn luyện, và cụm (w1w2…wn) cũng không xuất hiện, thì xác suất của cụm (w1w2…wn) 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:

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 

PB(wi|wi-n+1...wi-1)=

P(wi|wi-1) nếu C(wi-1wi) > 0 PB(wi|wi-1) =   * P(wi) nếu C(wi-1wi) = 0 

Áp dụng cho bigram, ta có:

Công thức trên có thể viết lại thành:

1 nếu C(x) = 0 0 nếu C(x) > 0  

PB(wi|wi-1) = P(wi|wi-1) + (wi-1wi) *  * P(wi) với u(x) =

Tƣơ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 ) = 0

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

Công thức trên cũng có thể viết lại thành:

23

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) nếu C(wi-2wi-1wi) > 0  1 * P‟(wi|wi-1) nếu C(wi-2wi-1wi) = 0 và C(wi-1wi) > 0 P(wi|wi-2wi-1) =  2 * P‟(wi) nếu C(wi-2wi-1wi) = 0 và C(wi-1wi) = 0

Trong đó P‟ chính là xác suất của cụm n-gram khi áp dụng thuật toán

làm mịn chiết khấu.

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.

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

Công thức tính xác suất theo phƣơng pháp nội suy nhƣ sau:

24

PI(wi|wi-n+1...wi-1) = P(wi|wi-n+1...wi-1) + (1-)PI(wi|wi-n+2...wi-1)

Áp dụng cho bigram và trigram ta có:

PI(wi|wi-1) = P(wi|wi-1) + (1-)P(wi) PI(wi|wi-n+1...wi-1) = 1P(wi

i

i = 1 |wi-2wi-1) + 2P(wi|wi-1) + 3P(wi) với 

Ở 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.

nếu C(wi-n+1...wi) > 0

C(wi-n+1...wi) - D  C(wi-n+1...wi-1) PBKN(wi|wi-n+1..wi-1) =  (wi-n+1...wi-1)PBKN(wi|wi-n+2...wi-1) nếu C(wi-n+1...wi) = 0 

Trong đó:

N(vwi) - D

với N(vw) là số lƣợng từ v khác nhau xuất hiện

o PBKN(wi) =

N(vw)

 w

trƣớc w trong tập huấn luyện

C(wi-n+1..wi-1w) - D

 w:C(wi-n+1..wi-1w)>0

1 -

C(wi-n+1..wi-1)

o (wi-n+1..wi-1) =

1 -

PBKN(w|wi-n+2..wi-1)

 w:C(wi-n+1..wi-1w>0)

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

a. Mô hình truy hồi:

25

Nhƣ vậy:

nếu C(wi-2wi-1wi) > 0

PBKN(wi|wi-2wi-1) =

C(wi-2wi-1wi) - D  C(wi-2wi-1)  

(wi-2wi-1)PBKN(wi|wi-1) nếu C(wi-2wi-1wi) = 0

nếu C(wi-1wi) > 0

C(wi-1wi) - D  C(wi-1) PBKN(wi|wi-1) =  

(wi-1)PBKN(wi) nếu C(wi-1wi) = 0

N(vwi) - D

PBKN(wi) =

N(vw)

 w

PIKN(wi|wi-n+1..wi-1) =

+ (wi-n+1..wi-1)PIKN(wi|wi-n+2..wi-1)

C(wi-n+1..wi) - D C(wi-n+1..wi-1)

Trong đó:

(wi-n+1..wi-1) =

với N(wi-n+1..wi-1v) là số lƣợng từ v khác

D N(wi-n+1..wi-1v) C(wi-n+1..wi-1)

nhau xuất hiện liền sau cụm wi-n+1..wi trong tập huấn luyện

N(vwi) - D

+ 

với N(vw) là số lƣợng từ v khác nhau xuất

o PIKN(wi) =

1 V

N(vw)

 w

hiện liền trƣớc từ w trong tập huấn luyện.

o  =

N(vw)

D N(v)  w

Nhƣ vậy:

PIKN(wi|wi-2wi-1) =

+ (wi-2wi-1)PIKN(wi|wi-1)

C(wi-2wi-1wi) - D C(wi-2wi-1)

PIKN(wi|wi-1) =

+ (wi-1)PIKN(wi)

C(wi-1wi) - D C(wi-1)

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

b. Mô hình nội suy:

26

N(vwi) - D

+ 

PIKN(wi) =

1 V

N(vw)

 w

Trong cả 2 mô hình nội suy và truy hồi, D đƣợc chọn: D =

N1 N1 + 2N2

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:

0 nếu c(wi-n+1..wi) = 0  D1 nếu c(wi-n+1.. wi) = 1 D =  D2 nếu c(wi-n+1.. wi) = 2  D3 nếu c(wi-n+1.. wi) >= 3

Với Y = N1 (N1 + 2N2)

D1 = 1 - 2Y N2 N1

D2 = 1 - 3Y N3 N2

D3 = 1 - 4Y N4 N3

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

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

kỹ thuật chính, bao gồm:

27

● 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

● Compression (nén): nén cấu trúc dữ liệu sử dụng trong việc lƣu trữ

mỗi cụm n-gram trong mô hình ngôn ngữ.

các cụm n-gram trong mô hình ngôn ngữ

2.5.1.Đồng hóa (Quantization):

Thuật toán quantization (đồng hóa) làm giảm số lƣợng bit dùng để lƣu

trữ các biến trong mô hình ngôn ngữ. Thuật toán này gồm hai bƣớc chính

Bƣớc thứ nhất, liệt kê và lƣu trữ tất cả các tần số của các cụm n-gram

vào một bảng. Sau đó, thay thế tần số của các cụm n-gram trong mô hình

ngôn ngữ bằng chỉ số của tần số trong bảng. Nhƣ vậy, thay vì sử dụng b =

log(tần số lớn nhất) bit để lƣu trữ tần số của một cụm n-gram, thì chúng ta chỉ

cần sử dụng b‟ = log(kích thƣớc của bảng) bit cho mỗi cụm n-gram. Do kích

thƣớc của bảng nhỏ hơn nhiều so với giá trị tần số lớn nhất của các cụm n-

gram nên b‟ < b, tức là kích thƣớc mô hình ngôn ngữ đã giảm so với cách lƣu trữ ban đầu.

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à

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

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

28

● Cut-off (cắt bỏ): phƣơng pháp này tập trung vào việc loại bỏ các

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:

● Weighted difference: phƣơng pháp này tập trung vào việc đánh

cụm Ngram có tần số thấp trong tập huấn luyện

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

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

quá nhỏ, thì kích thƣớc của mô hình ngôn ngữ cũng giảm không đáng kể. Có

29

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ì

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

chúng ta chẳng cần lƣu trữ cụm n-gram đó làm gì nữa. Đó chính là ý tƣởng

30

của phƣơng pháp weighted difference. Sự khác biệt trọng số của một cụm n- gram đƣợc định nghĩa bằng:

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 để

● Entropy - Độ đo thông tin ● Perplexity - Độ hỗn loạn thông tin

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

đá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ữ:

31

● 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) = -  p(x)log2p(x) x  X

Xét các câu gồm hữu hạn m từ W = (w1, w2, ..., wm) trong ngôn ngữ L.

Ta có công thức tính entropy nhƣ sau:

H(w1, w2, ..., wm) = -  p(w1, w2, ..., wm)log2p(w1, w2, ..., wm) W  L

Từ công thức trên, ta có thể đƣa ra công thức tính tỉ lệ entropy trên các từ

nhƣ sau:

H(w1, w2, ..., wm) = - p(w1, w2, ..., wm)log2p(w1, w2, ..., 1 m 1 m  W  L

wm)

Thực tế thì tỉ lệ entropy trên các từ thƣờng đƣợc sử dụng vì giá trị của nó

không phụ thuộc vào độ dài các câu[2]. Tuy nhiên, để tính đƣợc entropy của

một ngôn ngữ L theo công thức trên thì ta phải xét tới các câu dài vô hạn (tất 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:

H(w1, w2, ..., wm) 1 m H(L) = - lim m 

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

p(w1, w2, ..., wm)log2p(w1, w2, ..., wm) 1 m = - lim m   W  L

32

Đị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:

log p(w1,w2,...,wm) 1 m H(L) = - lim m 

Với công thức nhƣ ở trên, ta có thể sử dụng công thức Bayes và xác suất

của các n-gram để tính P(w1,w2,...,wn):

log [ p(wn|w1w2..wn-1) * p(wn+1|w2w3.. wn) * ... * p(wm|wm-n+1 1 m H(L) = - lim m 

...wm-1) ]

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.

Độ 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)

2.6.2. Perplexity – Độ hỗn loạn thông tin:

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.

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

33

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.6.3.Error rate – Tỉ lệ lỗi:

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ố

● Entropy - Độ đo thông tin ● Perplexity - Độ hỗn loạn thông tin ● Error rate - Tỉ lệ lỗi

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

phƣơng pháp đánh giá một mô hình ngôn ngữ nhƣ:

34

CHƢƠNG 3: XÂY DỰNG N-GRAM CHO TIẾNG VIỆT

3.1.Giới thiệu

Kho văn bản mà trong đó mỗi câu đƣợc chú giải cấu trúc cú pháp là

nguồn tài nguyên rất hữu ích trong lĩnh vực xử lý ngôn ngữ tự nhiên. Kho văn

bản này đƣợc gọi là treebank. Treebank có nhiều ứng dụng quan trọng nhƣ

đánh giá, kiểm định các công cụ xử lí ngôn ngữ tự động, các phần mềm dịch

máy, tóm tắt văn bản, các hệ thống hỏi đáp…

3.2.Công cụ tách từ cho tiếng Việt - vnTokenizer

VnTokenizer là công cụ tách từ tiếng Việt đƣợc nhóm tác giả Nguyễn

Thị Minh Huyền, Vũ Xuân Lƣơng và Lê Hồng Phƣơng phát triển dựa trên

phƣơng pháp so khớp tối đa (Maximum Matching) với tập dữ liệu sử dụng là

bảng âm tiết tiếng Việt và từ điển từ vựng tiếng Việt.

Công cụ đƣợc xây dựng bằng ngôn ngữ Java, mã nguồn mở. Có thể đễ

dàng sửa đổi nâng cấp và tích hợp vào các hệ thống phân tích văn bản tiếng

Việt khác.

Văn bản

Chuyển các đơn vị từ

Tách từ

Từ điển

Quy trình thực hiện tách từ theo phƣơng pháp khớp tối đa:

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

Hình 3-1. Quy trình tách từ

35

- Đầu vào của công cụ tách từ vnTokenizer là một câu hoặc một văn bản

đƣợc lƣu dƣới dạng tệp.

- Đầu ra là một chuỗi các đơn vị từ đƣợc tách.

- Các đơn vị từ bao gồm các từ trong từ điển cũng nhƣ các chuỗi số,

chuỗi kí từ nƣớc ngoài. Các đơn vị từ không chỉ bao gồm các từ có trong từ

điển, mà cả các từ mới hoặc các từ đƣợc sinh tự do theo một quy tắc nào đó

(nhƣ phƣơng thức thêm phụ tố hay phƣơng thức láy) hoặc các chuỗi kí hiệu

không đƣợc liệt kê trong từ điển.

Công cụ sử dụng tập dữ liệu đi kèm là tập từ điển từ vựng tiếng Việt,

danh sách các đơn vị từ mới bổ sung, đƣợc biểu diễn bằng ôtômat tối thiểu

hữu hạn trạng thái, tệp chứa các biểu thức chính quy cho phép lọc các đơn vị

từ đặc biệt (xâu dạng số, ngày tháng,…), và các tệp chứa các thống kê

unigram và bigram trên kho văn bản tách từ mẫu.

Với các đơn vị từ đã có trong từ điển, khi thực hiện tách từ cũng đƣợc

xử lý hiện tƣợng nhập nhằng bằng cách kết hợp với các thống kê unigram và

bigram. Chẳng hạn trong tiếng Việt thƣờng gặp các trƣờng hợp nhập nhằng

nhƣ:

- Xâu AB vừa có thể hiểu là 1 đơn vị từ, vừa có thể là chuỗi 2 đơn vị

từ A-B.

- Xâu ABC có thể tách thành 2 đơn vị AB-C hoặc A-BC.

3.3.Bộ công cụ SRILM

SRILM là bộ công cụ để xây dựng và áp dụng các mô hình ngôn ngữ thống kê, và các mô hình ngôn ngữ này chủ yếu là để sử dụng trong các bài toán của nhận dạng tiếng nói, gắn thẻ thống kê và phân khúc, và dịch máy

thống kê. Bộ công cụ này đƣợc phát triển bởi “Phòng thí nghiệm và nghiên

cứu công nghệ giọng nói SRI” từ năm 1995, có thể chạy trên nền tảng Linux

cũng nhƣ Windows.

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

SRILM bao gồm các thành phần sau:

36

● Một tập hợp các thƣ viện C++ giúp cài đặt mô hình ngôn ngữ, hỗ

● Một tập hợp các chƣơng trình thực thi thực hiện nhiệm vụ xây

trợ cấu trúc dữ liệu và các chức năng tiện ích nhỏ.

dựng mô hình ngôn ngữ, đào tạo và thử nghiệm mô hình ngôn ngữ

trên dữ liệu, gắn thẻ hoặc phân chia văn bản, ...

Bộ công cụ SRILM có rất nhiều chƣơng trình con, để xây dựng mô hình

ngôn ngữ ta sử dụng 2 chƣơng trình chính sau:

3.3.1.N-gram-count.

Chƣơng trình N-gram-count thống kê tần số xuất hiện của các cụm N-

gram. Kết quả của việc thống kê đƣợc ghi lại vào một tệp hoặc sử dụng chúng

để xây dựng mô hình ngôn ngữ[6]. Kết quả của việc thống kê đƣợc ghi lại

theo định dạng sau:

\data\

ngram 1=n1

ngram 2=n2

...

ngram N=nN

\1-grams:

p w [bow]

...

\2-grams:

p w1 w2 [bow]

...

\N-grams:

p w1 ... wN

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

...

37

\end\

Văn bản trên bắt đầu với một tiêu đề giới thiệu số lƣợng các cụm N-

gram với chiều dài là 1, 2, ...n. Tiếp theo, là từng đoạn chứa thông tin về các

cụm N-gram có độ dài từ 1 đến n, mỗi đoạn bắt đầu bằng từ khóa \N-grams:

trong đó N là độ dài của các cụm N-gram đƣợc liệt kê ở bên dƣới. Mỗi dòng

tiếp theo của từng đoạn bắt đầu bằng một số thực là logarit cơ số 10 xác suất

của cụm N-gram, tiếp theo là n từ w1, w2, ... wn của cụm Ngram đó, và cuối

cùng là trọng số truy hồi của cụm N-gram đó (có thể có)

Chƣơng trình N-gram có một số tùy chọn chính sau:

-text textfile: thống kê tần số các cụm N-gram từ tệp văn bản đầu vào

textfile. Tệp văn bản này có thể chứa mỗi câu trên một dòng. Kí hiệu kết thúc

và bắt đầu dòng mới sẽ đƣợc tự động thêm vào nếu trong tệp đầu vào chƣa có.

Các dòng trống trong tệp này cũng bị loại bỏ.

-order n : thiết lập độ dài lớn nhất của các cụm N-gram sẽ thống kê bằng

n. Giá trị mặc định nếu không thiết lập tham số này là n = 3

-memuse: hiển thị thông tin bộ nhớ mà chƣơng trình sử dụng

-lm lmfile: xây dựng mô hình ngôn ngữ truy hồi từ các tần số vừa thống

kê, sau đó ghi lại vào tệp lmfile theo định dạng ở trên.

-gtnmin count: với n nhận các giá trị là 1, 2, 3, 4, 5, 6, 7, 8, hoặc 9.

Tham số này thiết lập giá trị tần số nhỏ nhất với các cụm N-gram có độ dài là

n. Tất cả các cụm n-gram có độ dài là n, có tần số nhỏ hơn count sẽ bị loại bỏ

khỏi mô hình ngôn ngữ

Và dƣới đây là một số tham số thiết lập phƣơng pháp làm mịn cho mô

hình ngôn ngữ. Nếu không tham số nào dƣới đây đƣợc thiết lập thì chƣơng

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

trình sẽ sử dụng phƣơng pháp làm mịn Good-Turing.

38

-wbdiscountn: với n nhận các giá trị là 1, 2, 3, 4, 5, 6, 7, 8, hoặc 9. Sử

dụng phƣơng pháp làm mịn Witten-Bell cho N-gram với độ dài là n.

-kndiscountn: với n nhận các giá trị là 1, 2, 3, 4, 5, 6, 7, 8, hoặc 9. Sử

dụng phƣơng pháp làm mịn của Kneser-Ney đƣợc thay đổi bởi Chen và

GoodMan cho N-gram với độ dài là n.

-ukndiscountn: với n nhận các giá trị là 1, 2, 3, 4, 5, 6, 7, 8, hoặc 9. Sử

dụng phƣơng pháp làm mịn của Kneser-Ney với độ dài là n.

-addsmoothn delta: với n nhận các giá trị là 1, 2, 3, 4, 5, 6, 7, 8, hoặc 9.

Làm mịn bằng cách thêm một lƣợng delta vào tần số của tất cả các cụm N-

gram với độ dài là n.

-interpolaten: với n nhận các giá trị là 1, 2, 3, 4, 5, 6, 7, 8, hoặc 9. Tính

toán tần số của các cụm N-gram có độ dài là n bằng cách nội suy từ các cụm

Ngram có độ dài nhỏ hơn.

3.3.2.N-gram

N-gram là chƣơng trình áp dụng mô hình ngôn ngữ để tính xác suất của

một câu, tính toán độ hỗn loạn thông tin của văn bản, hay dùng để sinh các

câu tiếp theo của một văn bản, còn việc tính toán của chƣơng trình bị chi phối

bởi các tham số chính nhƣ sau:

-order n : thiết lập độ dài lớn nhất của các cụm N-gram sẽ thống kê bằng

n. Giá trị mặc định nếu không thiết lập tham số này là n = 3

-memuse: hiển thị thông tin bộ nhớ mà chƣơng trình sử dụng

-lm file: đọc mô hình ngôn ngữ từ tệp file. Tham số này là tham số bắt

buộc, trừ khi tham số -null đƣợc chọn.

-null: không sử dụng mô hình ngôn ngữ đọc từ tệp, mà sử dụng một mô

hình ngôn ngữ đặt biệt (xác suất bằng 1 cho tất cả các từ). Tham số này

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

thƣờng đƣợc sử dụng trong việc gỡ lỗi.

39

-ppl textfile: tính toán điểm(logarit cơ số 10 của xác suất) và độ hỗn loạn

thông tin của tất cả các câu trong tệp textfile, mỗi câu viết trên một dòng.

-gen number: sinh ngẫu nhiên number câu từ mô hình ngôn ngữ.

3.4.Bộ công cụ trợ giúp xây dựng tập văn bản huấn luyện

Bộ công cụ này đƣợc cài đặt bằng ngôn ngữ C#. Bộ công cụ có các công

cụ nhƣ: lấy nội dung văn bản từ các trang báo mạng, chuẩn hóa văn bản, cắt

và ghép các tệp văn bản.

Để có kích thƣớc tệp văn bản lớn phục vụ cho quá trình huấn luyện mô

hình ngôn ngữ, chúng tôi đã phải xây dựng một chƣơng trình có nhiệm vụ lọc

nội dung văn bản từ các file html. Chƣơng trình này tự động tìm tất cả các file

có định dạng html trong một thƣ mục nào đó, bỏ các đoạn mã, bỏ các thẻ,

link, bảng, hình ảnh, ... chỉ giữ lại nội dung văn bản rồi ghi lại dƣới định dạng

txt.

Sau đó, chúng tôi tiếp tục xây dựng một chƣơng trình khác, có nhiệm vụ

chuẩn hóa văn bản. Chƣơng trình này có các chức năng chính nhƣ: chuẩn hóa

dấu cách, chuẩn hóa dấu cho tiếng Việt (ví dụ: hoà sửa thành hòa, vìên sửa

thành viền, ...), tách ra mỗi câu trên một dòng. Đặc biệt, do văn bản đầu ra của

chƣơng trình dùng cho quá trình huấn luyện mô hình ngôn ngữ, nên chƣơng

trình này của chúng tôi còn có thêm một số tính năng nhƣ: thay thế các từ đặc

biệt bởi một từ nào đó đặc trƣng hơn (ví dụ: tên ngƣời, số, ngày tháng, ...),

xóa bỏ các câu quá ngắn, xóa bỏ các câu các từ không có trong từ điển tiếng

Việt.

Ngoài ra, để tăng và giảm kích thƣớc tệp văn bản một cách dễ dàng,

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

chúng tôi còn xây dựng thêm các tiện ích cắt và ghép tệp văn bản. Tiện ích

40

này giúp ngƣời dùng dễ dàng tạo đƣợc file văn bản có kích thƣớc phù hợp để

dễ dàng huấn luyện và khảo sát mô hình ngôn ngữ.

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.5.1.Tách câu.

Vấn đề tách một văn bản ra thành các đơn vi câu độc lập dƣờng nhƣ

đƣợc ít các nhà nghiên cứu quan tâm nhất, mặc dù nó cũng là phần việc quan

trọng trong phân tích văn bản. Để tách một văn bản ra thành các đơn vi câu

độc lập đối với tiếng Việt không đơn thuần là chỉ dựa vào các dấu hiệu kết

câu (dấu chấm „.‟, dấu chấm than „!‟ và dấu chấm hỏi „?‟). Vẫn có những câu

tiếng Việt mà các dấu hiệu kết câu đó vẫn chƣa phải là kết câu. Ví dụ nhƣ

“Giá xăng mới tăng lên thành 21.000 đồng/lít”, hay “Tp.Hà Nội”, “TS.Vũ Tất

Thắng”,…

Theo tạp chí Computational Linguistics, đối với các ngôn ngữ Âu –

Mỹ, trong thời gần đây có một số bài báo giới thiệu một số phƣơng pháp và

hệ thống tách câu. Các phƣơng pháp chủ yếu là dựa trên luật, học máy có

giám sát và học máy không giám sát.

Trong văn bản tiếng Anh hay bất kỳ ngôn ngữ thông dụng nào khác,

thông thƣờng thì ta chỉ dùng dấu chấm(.), chấm than(!), chấm hỏi(?) và một

số dấu khác để nhận biết kết thúc câu. Tuy nhiên do tính nhập nhằng của dấu

báo hiệu kết thúc câu ( chẳng hạn nhƣ kết thúc câu trong từ viết tắt,…) nên

việc xác định ranh giới câu không đơn giản chút nào.

Ví dụ 3.1:

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

1. The group inclided Dr.J.M.Freeman and T. Boone Pickens Jr.

41

2. “This issue crosses party lines and crosses philosophical lines! said

Rep. John Rowland (R.,Conn.).

3.It was due Friday 5 p.m. Saturday would be too late.

4.She has an appointment at 5 p.m. Saturday to get her car fixed.

Trong trƣờng hợp 1 và 2 từ nằm ngay trƣớc hoặc ngay sau dấu chấm

câu cho ta những thông tin quan trọng về vai trò của dấu trong câu.Tuy nhiên,

bộ phận tách câu cần phải có nhiều thông tin về ngữ cảnh hơn trong trƣờng

hợp việc chấm câu xuất hiện ở một câu con trong dấu ngoặc đơn hoặc ngoặc

kép nhƣ trong trƣờng hợp 2; hay khi chữ viết tắt xuất hiện ở cuối câu nhƣ

trong trƣờng hợp 3,4. Để nhận diện dấu chấm câu, ngƣời ta có thể dùng

cácheuristics hoặc các mô hình học phức tạp hơn nhƣ: mạng neural.

Tách câu bằng Heristics.

Sau khi nhận đoạn văn bản đã đƣợc lọc các ký tự dƣ thừa, các ký tự

phụ, bộ phận tách câu bắt đầu phân tích dựa trên cách chấm câu và ngữ nghĩa

một số từ để tách ra các câu riêng biệt.

 Xử lý dấu chấm:

Dấu chấm “.” là dấu có nhiều trƣờng hợp mơ hồ nhất. Sau đây sẽ một

số ví dụ dấu chấm xuất hiện.

Ví dụ 3.2:

1.Dấu chấm kết thúc câu.

2. Dấu chấm thập phân trong chữ số (1,345.567)

3. Dấu chấm biểu thị sự viết tắt (Mr.,Dr.,…)

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

4.Dấu chấm trong các trƣờng hợp email (caoductu.hui@gamil.com)

42

Để có thể phân biệt đƣợc các trƣờng hợp trên ta có thể dựa vào một số

đặc trƣng riêng trong cách trình bày của từng trƣờng hợp.

1. Nếu dấu chấm không thuộc các trƣờng hợp (2,3,4) thì dấu hiệu để

nhận biết kết thúc sẽ là: “ Luôn luôn có ít nhất một khoàn trắng sau dấu chấm

và ký tự tiếp theo sẽ là chữ cái sẽ đƣợc viết hoa”.

2.Ta có thể nhận biết dấu chấm thập phân bằng cách đọc toàn bộ phần

liền trƣớc và phần liền sau dấu chấm để phát hiện số có dấu chấm thập phân.

3.Để nhận biết dấu chấm trong các trƣờng hợp các từ viết tắt, ta xây

dựng một danh sách các từ viết tắt để tra cứu khi cần.

4. Trƣờng hợp này là trƣờng hợp đa dạng nhất, nhƣng vẫn có tính chất

chung là dấu chấm không bao giờ nằm cuối từ, luôn ở giữa hai ký tự nào đó (

nghĩa là không có khoảng trắng liền sau) nên có thể dễ dàng phân biệt đƣơc.

Những quy luật trên đây là những quy luật chung nhất trong cách trình

bày văn bản tiếng Anh. Đối với văn bản tiếng Việt, các trƣờng hợp cững nhƣ

thế. Do dựa chủ yếu vào cách trình bày văn bản nên có điểm yếu là dễ nhầm

lẫn khi văn bản đƣa vào có cách trình bày khác chuẩn và do không hiểu nghĩa

câu nên không thể phân biệt một số trƣờng hợp mơ hồ nhƣ trong ví dụ sau:

Ví dụ 3.3:

1. It was due Friday 5p.m. Saturday would be too late.

2.She has an appointment at 5 p.m. Saturday to get her car fixed.

Để xác định đƣợc dấu chấm ( in đậm) trong 2 trƣờng hợp trên có phải

là dấu chấm hết câu không cũng là việc không đơn giản đối với máy. Thậm

chí đối với con ngƣời mà trình độ tiếng Anh chƣa vững. Trong cả hai trƣờng

hợp, từ ngay trƣớc hoặc ngay sau dấu chấm câu cho ta những thông tin quan

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

trọng về vai trò của dấu trong câu.Tuy nhiên bộ phận tách câu sẽ phải cần

43

nhiều thông tin về ngữ cảnh và cú pháp hơn trong trƣờng hợp sự chấm câu

xuất hiện ở một câu con nhƣ trong trƣờng hợp 1.

 Xử lý dấu chấm trong ngoặc.

Khi bộ tách câu gặp dấu mở ngoặc đơn hoặc ngoặc kép thì nó sẽ quét

trong đoạn văn bản đang xét để tìm dấu đóng tƣơng ứng. Nếu tìm thấy, toàn

bộ phần trong ngoặc sẽ đƣợc giữ nguyên và tìm câu kết thúc câu tiếp theo

ngoài dấu ngoặc. Nếu không tìm thấy dấu đóng tƣơng ứng, dấu mở sẽ bị bỏ

qua và xử lý tiếp ký tự sau dấu mở nhƣ bình thƣờng.

3.5.2.Tách từ

Trong những năm gần đây có nhiều công trình nghiên cứu để giải quyết

bài toán tách từ tiếng Việt. Các nghiên cứu này thƣờng tập trung vào 2 hƣớng

tiếp cận lớn để giải quyết bài toán này là tách từ dựa trên đơn vị từ và tách từ

dựa trên âm tiết.

 Hƣớng tiếp cận dựa trên đơn vị từ:

Hƣớng tiếp cận dựa trên từ với mục tiêu tách đƣợc các từ hoàn chỉnh

trong câu. Hƣớng tiếp cận này có thể chia ra theo ba hƣớng: dựa trên thống kê

(statistics - based), dựa trên từ điển (dictionary – based) và hydrid (kết hợp

nhiều phƣơng pháp với hy vọng đạt đƣợc những ƣu điểm của các phƣơng

pháp này)

 Hƣớng tiếp cận dựa trên thống kê: Dựa trên các thông tin nhƣ tần số

xuất hiện của từ trong tập huấn luyện ban đầu. Hƣớng tiếp cận này đặc

biệt dựa trên tập ngữ liệu huấn luyện, nhờ vậy nên hƣớng tiếp cận này

tỏ ra linh hoạt và hữu dụng trong nhiều lĩnh vực khác nhau.

 Hƣớng tiếp cận dựa trên từ điển: Ý tƣởng của hƣớng tiếp cận này là

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

những cụm từ đƣợc tách ra từ văn bản phải đƣợc so khớp với các từ

44

trong từ điển. Do đó trong hƣớng tiếp cận này đòi hỏi từ điển riêng cho

từng lĩnh vực quan tâm. Hƣớng tiếp cận “full word / phrase” cần sử

dụng một từ điển hoàn chỉnh để có thể tách đƣợc đầy đủ các từ hoặc

ngữ trong văn bản, trong khi đó hƣớng tiếp cận thành phần

“component” lại sử dụng từ điển thành phần. Từ điển thành phần chỉ

chứa các thành phần của từ và ngữ nhƣ hình vị và các từ đơn giản.

Hƣớng tiếp cận theo từ điển vẫn còn một số hạn chế trong việc tách từ

vì thực hiện hoàn toàn dựa vào từ điển. Nếu nhƣ thực hiện thao tác tách

từ bằng cách sử dụng từ điển hoàn chỉnh thì trong thực tế việc xây dựng

một bộ từ điển hoàn chỉnh là khó thực hiện vì đòi hỏi nhiều thời gian và

công sức. Nếu tiếp cận theo hƣớng sử dụng từ điển thành phần thì sẽ

giảm nhẹ hạn chế, khó khăn khi xây dựng từ điển, vì khi đó chúng ta sẽ

sử dụng các hình vị từ và các từ đơn giản và các từ khác để hình thành

nên từ, cụm từ hoàn chỉnh.

 Hƣớng tiếp cận theo Hybrid: Với mục đích kết hợp các hƣớng tiếp

cận khác nhau để thừa hƣởng đƣợc các ƣu điểm của nhiều kỹ thuật và

các hƣớng tiếp cận khác nhau nhằm nâng cao kết qủa. Hƣớng tiếp cận

này thƣờng kết hợp giữa hƣớng dựa trên thống kê và dựa trên từ điển

nhằm tận dụng các mặt mạnh của các phƣơng pháp này. Tuy nhiên

hƣớng tiếp cận Hybrid lại mất nhiều thời gian xử lý, không gian đĩa và

đòi hỏi nhiều chi phí.

 Hƣớng tiếp cận dựa trên đơn vị âm tiết

Trong tiếng Việt, hình vị nhỏ nhất là âm tiết (tiếng) đƣợc hình thành

bởi nhiều ký tự trong bảng chữ cái. Hƣớng tiếp cận này đơn thuần rút trích ra

một số lƣợng nhất định các tiếng trong văn bản nhƣ rút trích từ 1 ký tự

(unigram) hay nhiều ký tự (n-gram) và cũng mang lại một số kết qủa nhất

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

định. Qua nhiều công trình nghiên cứu của các tác giả đã đƣợc công bố,

45

hƣớng tiếp cận tách từ dựa trên nhiều ký tự, cụ thể là cách tách từ hai ký tự

đƣợc cho là sự lựa chọn thích hợp.

3.5.3.Gán nhãn từ loại

Gán nhãn từ loại chính là việc xác định chức năng ngữ pháp của từ

trong câu. Đây là bƣớc cơ bản khi phân tích sâu văn phạm hay các vấn đề xử

lý ngôn ngữ phức tạp khác.

Quá trình gán nhãn có thể đƣợc chia thành các bƣớc sau:

 Gán nhãn tiên nghiệm, tức là tìm cho mỗi từ tập tất cả các nhãn từ loại

mà nó có thể có. Tập nhãn này có thể thu đƣợc từ cơ sở dữ liệu từ điển

hoặc kho văn bản đã gán nhãn bằng tay. Đối với một từ mới chƣa xuất

hiện trong cơ sở ngữ liệu thì có thể dùng một nhãn ngầm định hoặc gắn

cho nó tập tất cả các nhãn. Trong các ngôn ngữ biến đổi hình thái ngƣời

ta cũng dựa vào hình thái từ để đoán nhận lớp từ loại tƣơng ứng của từ

đang xét.

 Quyết định kết quả gán nhãn, đó là giai đoạn loại bỏ nhập nhằng, tức là

lựa chọn cho mỗi từ một nhãn phù hợp nhất với ngữ cảnh trong tập

nhãn tiên nghiệm. Có nhiều phƣơng pháp để thực hiện việc này, trong

đó ngƣời ta phân biệt chủ yếu các phƣơng pháp dựa vào quy tắc ngữ

pháp và các phƣơng pháp xác suất. Ngoài ra còn có các hệ thống sử

dụng mạng nơ-ron, các hệ thống lai sử dụng kết hợp tính toán xác suất

và ràng buộc ngữ pháp, gán nhãn nhiều tầng.

Về mặt ngữ liệu, các phƣơng pháp phân tích từ loại thông dụng hiện

nay dùng một trong các loại tài nguyên ngôn ngữ sau:

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ừ điển và các văn phạm loại bỏ nhập nhằng.

46

- Kho văn bản đã gán nhãn, có thể kèm theo các quy tắc ngữ pháp xây

dựng bằng tay.

- Kho văn bản chƣa gán nhãn, có kèm theo các thông tin ngôn ngữ nhƣ là

tập từ loại và các thông tin mô tả quan hệ giữa từ loại và hậu tố.

- Kho văn bản chƣa gán nhãn, với tập từ loại cũng đƣợc xây dựng tự

động nhờ các tính toán thống kê. Trong trƣờng hợp này khó có thể dự

đoán trƣớc về tập từ loại.

Các bộ gán nhãn từ loại dùng từ điển và văn phạm gần giống với một

bộ phân tích cú pháp. Các hệ thống học sử dụng kho văn bản để học cách

đoán nhận từ loại cho mỗi từ. Từ giữa những năm 1980 các hệ thống này

đƣợc triển khai rộng rãi vì việc xây dựng kho văn bản mẫu ít tốn kém hơn

nhiều so với việc xây dựng một từ điển chất lƣợng cao và một bộ quy tắc ngữ

pháp đầy đủ. Một số hệ thống sử dụng đồng thời từ điển để liệt kê các từ loại

có thể cho một từ, và một kho văn bản mẫu để loại bỏ nhập nhằng.

Các bộ gán nhãn thƣờng đƣợc đánh giá bằng độ chính xác của kết quả:

[số từ đƣợc gán nhãn đúng] / [tổng số từ trong văn bản]. Các bộ gán nhãn tốt

nhất hiện nay có độ chính xác đạt tới 98%.

3.5.4.Phân tích cú pháp

Các hƣớng tiếp cận để giải bài toán phân tích cú pháp đều sử dụng văn

phạm phi ngữ cảnh để biểu diễn ngôn ngữ, sau đó dùng một số kỹ thuật phân

tích để xác định cây phân tích cú pháp. Sở dĩ vậy là vì nó biểu diễn đƣợc hầu

hết các ngôn ngữ tự nhiên, và nó cũng có đủ hạn chế để xây dựng các trình

phân tích câu hiệu quả.

Văn phạm phi ngữ cảnh khi đƣợc sử dụng để biểu diễn cấu trúc cú pháp

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

thì các ký hiệu kết thúc tƣơng ứng với các từ trong ngôn ngữ, các ký hiệu

47

không úc tƣơng ứng với các phân loại cú pháp (hay từ loại). Tiên đề biểu diễn

phân loại "câu". Các quy tắc sinh biểu diễn các quy tắc ngữ pháp. Ta có thể

chia chúng thành các qui tắc từ vựng (chứa ít nhất một ký hiệu kết thúc) và

các qui tắc ngữ đoạn (không chứa ký hiệu kết thúc nào). Với mỗi từ trong từ

vựng có một tập các qui tắc sinh chứa từ này trong vế phải. Một cây dẫn xuất

cũng đƣợc gọi là cây cú pháp cho một phân tích của một ngữ đoạn thành các

thành phần kế tiếp.

3.6.Dữ liệu huấn luyện

Dữ liệu huấn luyện sử dụng trong mô hình ngôn ngữ là dữ liệu văn bản,

đƣợc chúng tôi tải về từ các trang báo mạng nhƣ: dantri.com.vn,

vnexpress.net, vietnamnet.vn, ... Sau khi tải từ các trang báo mạng về máy

tính dƣới dạng các file html, chúng tôi cho chạy qua các công cụ đã miêu tả ở

phần 3.4, (phân đoạn từ, chuẩn hóa, ....) Kết quả thu đƣợc hơn 300 Mb dữ liệu

văn bản đã chuẩn hóa dƣới hai dạng: âm tiết và từ.

3.7.Kết quả xây dựng mô hình

Hệ thống của chúng tôi thống kê số lƣợng cụm N-gram với kích thƣớc

tập văn bản huấn luyện tăng dần trong hai trƣờng hợp là: âm tiết và từ.

3.7.1.Số lƣợng các cụm n-gram với tiếng Việt dựa trên âm tiết.

Số lƣợng cụm n-gram Số âm tiết trong văn

bản huấn luyện Uni-gram Bi-gram Tri-gram

687.003 155.297 86.069 4.567

1.203.440 299.039 178.001 4.953

2.177.198 318.888 264.599 5.549

3.778.983 358.262 432.089 5.796

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

4.071.536 631.253 375.105 5.814

48

6.360 666.968 954.041 9.765.347

6.706 850.333 1.613.000 17.420.051

7.712 1.835.726 13.162.180 58.854.325

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

2-gram 3-gram

m a r g - N m ụ c

c á c g n ợ ư

16000000 14000000 12000000 10000000 8000000 6000000 4000000 2000000 0

l

ố S

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

3.7.2.Số lƣợng các cụm n-gram với tiếng Việt dựa trên từ

Số lƣợng cụm n-gram Số từ trong văn bản huấn

luyện Uni-gram Bi-gram Tri-gram

940.032 15.627 268.019 93.194

1.687.023 19.057 406.975 167.114

2.334.297 20.452 517.773 238.531

3.303.231 20.683 535.861 588.976

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

7.778.893 26.920 1.116.428 790.995

49

13.814.890 27.798 1.554.965 1.255.119

15.286.851 31.609 1.794.882 1.613.000

24.366.642 36.279 3.780.751 17.410.504

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ừ

2-gram

3-gram

25000000

20000000

m a r g - N m ụ c

15000000

10000000

c á c g n ợ ư

l

5000000

ố S

0

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

3.8.Tần số của tần số

Trong khi xây dƣng mô hình ngôn ngữ, chúng tôi cũng đã thống kê đƣợc

tần số của tần số các cụm n-gram với kích thƣớc tập văn bản huấn luyện rất

lớn (hơn 54 triệu với âm tiết và hơn 25 triệu với từ. Việc thống kê nhƣ vậy sẽ

giúp chúng tôi chọn đƣợc các tham số phù hợp cho các phƣơng pháp làm mịn,

và xây dựng cấu trúc dữ liệu phù hợp hơn

3.8.1.Với âm tiết

Số lƣợng cụm ngram có tần số Uni-gram Bi-gram Tri-gram

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

1 514 742.986 8.428.814

50

225 263.052 1.834.374 2

128 141.940 773.793 3

119 92.484 428.780 4

80 65.979 272.156 5

84 50.620 188.533 6

45 40.048 138.643 7

50 32.422 107.227 8

57 26.961 84.581 9

53 22.759 68.083 10

6.355 351.791 619.766 >10

Bảng 3-3: Tần số của tần số các cụm N-gram áp dụng cho âm tiết

2-gram

3-gram

m a r g - N m ụ c

c á c g n ợ ư

l

ố S

10000000 9000000 8000000 7000000 6000000 5000000 4000000 3000000 2000000 1000000 0

1 2 3 4 5 6 7 8 9

Tần số

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

Hình 3-4: số lượng các cụm Ngram (âm tiết) có tần số từ 1 đến 10

51

3.8.2.Với từ

Số lƣợng cụm ngram có tần số unigram bigram trigram

1 2526 2.014.193 12603741

2 1669 558.703 2.077.917

3 1.363 267.004 769.502

4 1.052 161.639 394.105

5 895 108.849 238.249

6 792 79.277 157.384

7 689 60.829 113.525

8 638 48.450 84.245

9 520 39.188 64.686

10 509 32.688 51.210

>10 25.624 393.618 394.167

Bảng 3-4. Tần số của tần số các cụm Ngram với từ

2-gram

3-gram

m a r g - N m ụ c c á c g n ợ ư

l

ố S

16000000 14000000 12000000 10000000 8000000 6000000 4000000 2000000 0

Tần số

1 2 3 4 5 6 7 8 9

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

Hình 3-5. Số lượng các cụm Ngram (từ) có tần số từ 1 đến 10

52

Nhƣ vậy, qua các trƣờng hợp, có thể nhận thấy số lƣợng các cụm n-gram

có tần số bằng 1 và 2 chiếm tỉ lệ rất lớn trong tổng số các cụm n-gram (trên

50%). Nếu sử dụng các phƣơng pháp loại bỏ nhƣ đã trình bày ở phần 2.6, thì

sẽ tiết kiệm đƣợc khá nhiều bộ nhớ, đồng thời sẽ làm tăng tốc độ mà không

làm giảm độ chính xác của mô hình ngôn ngữ.

3.9.Cut-off (loại bỏ)

Dựa vào kết quả thống kê tần số của tần số các cụm n-gram nhƣ đã trình

bày, chúng ta áp dụng phƣơng pháp loại bỏ (cut-off) cho tập văn bản huấn

luyện có kích thƣớc lớn nhất với các tham số khác nhau. Dƣới đây là bảng thể

hiện kích thƣớc bộ nhớ sử dụng và độ hỗn loạn thông tin (perplexity) của mô

hình ngôn ngữ khi áp dụng phƣơng pháp cut-off với các tham số khác nhau.

3.9.1.Với âm tiết

Loại bỏ Loại bỏ Loại bỏ Độ hỗn loạn unigram có tần bigram có tần trigram có tần Bộ nhớ sử thông tin số không lớn số không lớn số không lớn dụng (MB) (perplexity) hơn: hơn: hơn:

0 0 149 31,89 0

2 2 58 44,80 2

5 5 56 45,60 2

10 5 36 51,36 3

1 3 24 56,04 5

5 5 16 57,22 5

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

Bảng 3-5: Bộ nhớ và độ hỗn loạn thông tin khi áp dụng loại bỏ trong âm tiết

53

3.9.2.Với từ

Loại bỏ Loại bỏ Loại bỏ Độ hỗn loạn unigram có tần bigram có tần trigram có tần Bộ nhớ sử thông tin số không lớn số không lớn số không lớn dụng (MB) (perplexity) hơn: hơn: hơn:

0 0 0 234 37,77

2 2 2 68 81,12

2 5 5 63 87,38

3 10 5 36 106,23

5 1 3 24 113,94

5 5 5 21 121,79

10 5 3 16 127,17

Bảng 3-6: Bộ nhớ và độ hỗn loạn thông tin khi áp dụng loại bỏ với từ

3.10.Các phƣơng pháp làm mịn

Áp dụng các phƣơng pháp làm mịn khác nhau với tập văn bản huấn

luyện có kích thƣớc lớn nhất, sau đó sử dụng mô hình ngôn ngữ xây dựng

đƣợc để tính độ hỗn loạn thông tin của tập văn bản huấn luyện. Dƣới đây là

bảng thể hiện độ hỗn loạn thông tin của tập văn bản huấn luyện khi áp dụng

mô hình ngôn ngữ với các phƣơng pháp làm mịn khác nhau: Add-one,

Witten-Bell, Good-Turing, Nội suy Kneser-Ney, Truy hồi Kneser-Ney, Nội

suy Kneser-Ney và Truy hồi Kneser-Ney cải tiến bởi Chen-GoodMan.

3.10.1.Với âm tiết

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

Add- Witten- Good- Nội Truy Nội suy KN cải Truy hồi KN cải one Bell Turing suy KN hồi KN tiến tiến

54

1- 656.09 656.09 656.09 656.09 607.09 656.09 656.09 gram

2- 112.60 100.21 98.73 98.43 99.49 99.26 101.43 gram

3- 173.44 44.90 43.73 30.56 32.75 31.90 35.20 gram

Bả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

3.10.2.Với từ

Nội suy Truy hồi Add- Witten- Good- Nội Truy KN cải KN cải one Bell Turing suy KN hồi KN tiến tiến

1- 906.07 906.09 906.07 906.07 906.07 906.09 906.09 gram

2- 201.02 149.21 146.7 188.01 192.11 192.28 199.17 gram

3- 449.77 32.62 37.77 34.9 38.79 36.80 42.16 gram

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

Từ kết quả tại bảng 3-7 và bảng 3-8 rút ra hai nhận xét nhƣ sau:

- Trong các phƣơng pháp làm mịn thì phƣơng pháp Good-Turing ( so

sánh với Add- one , Witten-Bell) cho kết quả tốt nhất trên cả 3 loại unigram,

bigram và trigram, trong đó Witten-Bell, Good-Turing cho kết quả gần tƣơng

tự nhau. Khi thực nghiệm trên N-gram với N tăng dần từ 1 đến 3 chúng ta

thấy khoảng cách perplexity đo đƣợc bằng Witten-Bell, Good-Turing càng xa

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

so với phƣơng pháp Add-one. Điều đó chứng tỏ rằng khi dùng N-gram vơi N

55

lớn hơn 1 thì dùng phƣơng pháp chiết khấu Add-one sẽ kém hiệu quả hơn

nhiều so với các phƣơng pháp còn lại.

-Phƣơng pháp Kneser-Ney đối với hai cách tiếp cận truy hồi và nội suy

cho giá trị perplexity thấp hơn Good-Turing và Witten-Bell. Trong đó Nội suy

Kneser-Ney cho kết quả tốt hơn Truy hồi Kneser-Ney. So sánh các kết quả

trên 2-gram và 3-gram chúng ta có thể thấy khi các N-gram có độ dài càng

lớn thì sự cách biệt giữa các kết quả này càng cao. Tức là khi N càng lớn thì

phƣơng pháp Nội suy Kneser-Ney càng chứng tỏ ra hiệu quả.

3.11.Tổng kết chƣơng

Chƣơng này, tác giả đã khảo sát một cách chi tiết trên cả mặt lý thuyết

và thực nghiệm đối với mô hình ngôn ngữ tiếng Việt. Các kết quả trên phản

ánh một cách trực quan và rõ ràng về chất lƣợng cũng nhƣ cho phép chúng ta

so sánh một cách định lƣợng các mô hình N-gram với các phƣơng pháp làm

mịn khác nhau.

Từ các kết quả thực nghiệm chứng tỏ các phƣơng pháp Good-Turing

,Witten-Bell và Nội suy Kneser-Ney, Truy hồi Kneser-Ney trong đó phƣơng

pháp Nội suy Kneser-Ney cho ta kết quả là tốt nhất.

Tuy nhiên một lựa chọn khác là phƣơng pháp Good-Turing là một

phƣơng pháp chiết khấu với kỹ thuật tính toán đơn giản hơn các phƣơng pháp

truy hồi hay nội suy nhƣng vẫn cho kết quả tốt và có thể chấp nhận đƣợc cho

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

nhiều ứng dụng.

56

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.1.1. Phát biểu bài toán

Bài toán được phát biểu như sau:

Cho một văn bản tiếng Việt không dấu. Chuyển văn bản không dấu thành có

dấu với độ chính xác cao.

Yêu cầu khác:

Chỉ sử dụng từ điển từ và kho dữ liệu thô làm đầu vào.

Chỉ xử lý các văn bản tiếng Việt có mã Unicode,TCVN3.

4.1.2. Đặc điểm

Chữ viết tiếng Việt có một đặc điểm đặc biệt là sự xuất hiện của các

dấu thanh cũng nhƣ dấu của các ký tự. Tiếng Việt có thanh điệu và trong văn

bản dấu của ký tự này làm phong phú thêm cho ngôn ngữ tiếng Việt, và tăng

độ biểu cảm của tiếng Việt.

Dấu thanh là một thành phần không thể thiếu trong âm tiết tiếng Việt.

Khi loại bỏ dấu thanh, việc hiểu nghĩa của từ, gồm một hay nhiều âm tiết kết

hợp với nhau trở nên khó khăn và dễ hiểu nhầm nghĩa của tiếng Việt.

Để thêm dấu, trƣớc tiên ta cần phải xác định ranh giới của từ. Bài toán

xác định ranh giới từ đối với văn bản tiếng Việt có dấu đó là vấn đề khó chính

điều đó khi không có dấu thì việc nhận ranh giới từ càng trở nên khó khăn

hơn.Trong tiếng Việt, các tiếng hay còn gọi là âm tiết đƣợc phân cách bởi

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

khoảng trắng chứ không phải từ.

57

Vậy sau khi nhận đƣợc ranh giới từ, ta cần phải xác định cho đúng từ

có dấu nào có dạng thể hiện không dấu nhƣ vậy. Việc xác định này cũng

không ít khó khăn.

Ví dụ 4.1: Từ không dấu “bo” có tới 3 từ có dấu tƣơng ứng nhƣ “bô”,

“bố”, “bỏ”…

Do đó, sau khi đã giải quyết xong bài toán về tách từ tiếng Việt không

dấu, ta cần phải giải quyết thêm bài toán xác định từ có dấu thích hợp với từ

không dấu đó.Đây chính là hƣớng giải quyết bài toán đặt ra cho luận văn.

4.1.3. Hƣớng giải quyết:

Đối với tách từ có dấu, có nhiều mô hình đƣợc sử dụng và đạt kết quả

tốt nhƣ MM (Maximum Mactching: forward/backward hay còn gọi là

LRMM:Left Right; mạng chuyển dịch trạng thái hữu hạn có trọng số WFST

(Weighted finite-state Transducer); giải thuật dựa trên nén(compression).

Hƣớng giải quyết đƣợc đề xuất là sử dụng phƣơng pháp tách từ LRMM kết

hợp với mô hình Bigram đã giải quyết khá hiệu quả 2 vấn đề của bài toán này.

4.2. Các phƣơng pháp đánh giá kết quả thêm dấu:

Cách đánh giá độ chính xác của hệ thống thêm dấu cũng gần tƣơng tƣ

nhƣ đánh giá kết quả của một hệ thông dịch máy thông kê, là một nhiệm vụ

rất vất vả và khó khăn. Để đánh giá độ chính xác của bản dịch, ta có thể đánh

giá trực tiếp thông qua ngƣời dùng hoặc đánh giá tự động bằng máy tính.

4.2.1. Đánh giá kết quả trực tiếp bằng con ngƣời:

Để đánh giá độ chính xác của hệ thống thêm dấu văn bản tiếng Việt, ta

có thể để con ngƣời trực tiếp đánh giá. Chúng ta có thể đƣa ra một thƣớc đo

cho độ trôi chảy của bản dịch (ví dụ từ 1 đến 5 hay từ 1 đến 10 tùy thuộc vào

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

độ trôi chảy của bản dịch), sau đó cho những ngƣời tham gia đánh giá đánh

58

giá các câu trong bản dịch theo thang điểm đó. Nhƣ vậy, văn bản nào có điểm

trung bình càng cao, thì chất lƣợng bản dịch đó càng tốt. Ngoài ra, cũng có

thể đánh giá độ trôi chảy, độ chính xác của bản dịch thông qua thời gian mà

ngƣời đọc đọc hiểu đƣợc bản dịch đó. Rõ ràng, bản dịch nào mà ngƣời đọc

đọc hiểu càng nhanh, thì bản dịch đó càng chính xác.

Phƣơng án đánh giá bản thêm dấu tiếng Việt bằng chính con ngƣời tuy

rất dễ thực hiện, nhƣng chi phí thì rất lớn, và nếu văn bản thêm dấu có kích

thƣớc càng lớn thì phƣơng pháp này càng kém hiệu quả. Một phƣơng án khác

là cũng tƣơng tự nhƣ bài toán của các mô hình dịch máy, ta có thể áp dụng

phƣơng pháp đánh giá tự động, chi phí thấp nhƣng hiệu quả cũng khá là cao.

4.2.2. Đánh giá kết quả tự động: phƣơng pháp BLEU

BLEU (BiLingual Evaluation Understudy) là một phƣơng pháp dùng để

đánh giá chất lƣợng bản dịch của bài toán dịch máy thông kê, đƣợc đề xuất

bới IBM tại hội nghị ACL ở Philadelphie vào tháng 7-2001. Ý tƣởng chính

của phƣơng pháp này là so sánh kết quả bản dịch tự động bằng máy với các

bản dịch mẫu của con ngƣời, bản dịch máy nào càng giống với bản dịch mẫu

của con ngƣời thì bản dịch đó càng chính xác. Việc so sánh trên đƣợc thực

hiện thông qua việc thống kê sự trùng khớp của các từ trong hai bản dịch có

tính đến thứ tự của chúng trong câu (phƣơng pháp N-gram theo từ)[12].

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

Với một bản dịch máy và bản dịch mẫu thứ n, phƣơng pháp BLEU trƣớc

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

tiên thống kê số lần tối thiểu của các cụm n-gram xuất hiện trong từng cặp câu

59

(câu dịch máy và câu dịch mẫu), sau đó đem tổng trên chia cho tổng số cụm

n-gram trong toàn bản dịch máy. Tỉ lệ trùng khớp của một bản dịch máy và

số lƣợng tối thiểu cụm w có trong bản mẫu

Pn=

số lƣợng cụm n-gram w trong bản dịch máy

 s  bản dịch máy  s  bản dịch máy

 w  s  w  s

bản dịch mẫu thứ n đƣợc tính theo công thức :

Trong đó s là các câu trong bản dịch máy, w là các cụm ngram có trong

câu s.

Điểm BLEU đánh giá một bản dịch máy với n bản dịch mẫu đƣợc tính

theo công thức :

i = N  i = 1

BLEU = BP * ( log pi) 1 N

Trong đó :

1 nếu c>r  e(1-r/c) với c<=r 

BP = với c là độ dài của bản dịch máy, r là độ

dài lớn nhất của các bản dịch mẫu

N là số lƣợng các bản dịch mẫu

Từ công thức trên, có thể thấy giá trị BLEU nằm trong khoảng 0 đến 1.

Bản dịch nào có điểm BLEU càng cao, chứng tỏ độ trùng khớp giữa bản dịch

máy và bản dịch mẫu càng nhiều, thì bản dịch đó càng chính xác.

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

4.3.1. VietPad

VietPad là trình soạn thảo hỗ trợ tiếng Việt Unicode, đƣợc phát triển

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

bới Quân Nguyễn và nhóm phát triển trên http://www.VietPad.sourceforge.net. Ngoài chức năng thêm dấu tự động

60

online mà văn bản đang nghiên cứu, VietPad còn là một trình soạn thảo tiếng

Việt hỗ trợ rất tốt Unicode và mã nguồn mở

Mô hình thêm dấu tiếng Việt của VietPad

Bắt đầu

Tiền xử lý

Tách Token

Tách các từ không dấu

Từ điển chuyển đổi Chuyển thành có dấu

Xuất ra màn hình

Hình 4-2. Lưu đồ thực hiện mô hình ứng dụng trong VietPad

a) Tiền xử lý

Chuẩn hóa văn bản theo định dạng mà VietPad quy định

b) Tách token VietPad không tách từng câu mà tách ra từng token mô token có thể gồm 1 chuỗi các ký tự không phải là ký tự (:,.;”@#$...) hay một chuỗi các

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

ký tự hay là “chữ” tiếng Việt.

61

Ví dụ 4.2: Câu “ Ngay mai troi se nang ” sẽ đƣợc VietPad tách thành từng token nhƣ sau:

Token 1: \b (ký hiệu cho khẳng trắng)

Token 2: Ngay

Token 3:\b

Token 4:mai

Token 5:\b

Token 6:troi

Token 7:\b

Token 8:se

Token 9:\b

Token 10:nang

Token 11:\b

c) Lấy ra các từ không dấu, chuyển thành có dấu: Với phƣơng pháp tách token đơn giản trên, thêm phƣơng pháp

tách từ LRMM(từ có tối đa 3 tiếng),VietPad lấy ra các từ không dấu, sau

đó thông qua 1 từ điển ánh xạ 1-1 giữa từ không dấu và từ có dấu ( từ điển

chuyển đổi) để chuyển từ không dấu sang có dấu.

Ví dụ 4.3:

Câu “Nhung van de lien quan toi nguoi dong tinh luyen ai duoc ban bac

soi noi trong buoi hop nhom toi hom qua” sẽ đƣợc VietPad chuyển thành

câu có dấu sau thông qua từ điển ( dấu/thể hiện sự tách từ của VietPad).

“Nhƣng vẫn/ để / liên quan / tôi ngƣời / động tĩnh / luyến ái /

đƣợc / bần bạc / sôi nổi / trong / buổi /hợp / nhóm / tôi / hôm qua/”.

4.3.2.VnMark-Mô hình thêm dấu tiếng việt:

Căn cứ vào mô hình N-gram mô hình đánh dấu tự động tiếng Việt đƣợc

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ác giả thực hiện theo lƣu đồ sau:

62

Bắt đầu

Tiền xử lý

Tách câu

Tìm các khả năng đánh dấu có thể có của từng từ

VnmarkDic.txt

Tính toán các khả năng đánh dấu có thể có của câu

Tra bảng để tính trọng số cho từng câu ứng viên nêu trên

Chọn câu có trọng số

thích hợp

Xuất ra màn hình

Hình 4-3. Lưu đồ thực hiện của mô hình N-gram

a) Tiền xử lý

Xóa các khoảng trắng thừa. Thực hiện các công việc chuẩn hóa dữ liệu

nhập vào thay thế các ký tự tƣơng tự.

Ngƣời ta sử dụng việc đánh chữ việt không dấu thì thì ngƣời ta vẫn

đánh đƣợc các ký tự viết hoa nhƣ các danh từ riêng. Do đó, các từ viết hoa sẽ

không “thƣờng hóa” (lowercase) và các từ viết hoa này sẽ đƣợc căn cứ để

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

nhận dạng danh từ riêng.

63

Ví dụ 4.4:

Thanh Hoa -> Thanh Hóa

thanh hoa -> thanh hòa

Do đó tác giả lƣu ý ngƣời dùng về đặc điểm khi sử dụng chƣơng trình.

b) Tách câu

Căn cứ vào các đặc điểm của ngôn ngữ tiếng Việt: các từ đƣợc cách

nhau bởi các ký tự nhƣ “.”, “,”, “:”… để tách thành các câu. Mỗi câu là một

đơn vị xử lý chính trong chƣơng trình. Việc quyết định câu là đơn vị cơ bản là

do nhiều khi nghĩa của câu sẽ đƣợc quyết định sự lựa chọn về dấu trong câu.

4.4. Đề xuất hệ thống:

4.4.1.Mô hình

Căn cứ vào mô hình Bigram và dựa vào ý tƣởng của việc thống kê các

cụm từ tôi đề xuất mô hình thêm dấu tự động nhƣ sau:

Bắt đầu

Tiền xử lý

Tách câu

Tách từ

Tập các từ không dấu Từ điển chuyển đổi

sử dụng N-gram Chọn từ thích hợp

Xuất ra màn hình

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

Hình 4-4. Lưu đồ thực hiện của mô hình đề xuất

64

a)Tách câu

Sử dụng phƣơng pháp tách câu huristic đã nêu trong chƣơng 3. Qua

phƣơng pháp tách câu trên ta có thể phân biệt đƣợc một số trƣờng hợp đặc

biệt của dấu chấm câu “.” nhƣ từ viết tắt (Mr., Mrs…) địa chỉ

mail(caoductu.hui@gmail.com), số thập phân (1,345.567). Đầu ra của bƣớc

này sẽ cho ra một tập các câu là đầu vào của bƣớc sau.

b) Tách từ bằng phương pháp LRMM.

Ta dùng phƣơng pháp tách từ LRMM tách các từ không dấu từng câu

một. Lý do chọn phƣơng pháp này là: Cài đặt phƣơng pháp đơn giản, sai số

khi tách sai từ có thể chấm nhận đƣợc khi tách từ không dấu.

Ta có cách tách từ câu có dấu và câu không dấu sau ( các từ phân cách Ví dụ 4.5:

nhau bằng dấu /)

 “Học sinh / học / sinh học”

 “Học sinh / học sinh / học” -> khi chuyển thành câu có dấu cũng tao đƣợc câu “ Học sinh / học sinh / học” nhƣ trên -> sai khi tách từ có thể

chấp nhận đƣợc trong 1 phạm vi nào đó.

Khi tách từ bằng phƣơng pháp LRMM, ta có chú ý đến việc nhận diện

và tách các từ tên riêng ra dựa trên một từ điển tên riêng. Việc xác định

các tên riêng dựa trên chữ cái viết hoa đầu của từ, một cụm tên riêng có

thể chỉ cần viết hoa tiếng đầu tiên là đƣợc.

Vi dụ: 4.6:

Thanh Hoa -> Thanh Hóa

Thanh hoa -> Thanh Hóa

thanh hoa -> Thanh hòa

c) Chọn từ thích hợp: Với từ điển chuyển đổi initial.txt, ta có ánh xạ 1-1 để chuyển một từ không dấu thành có dấu. Ngoài ra để tăng độ linh hoạt và chính xác của

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

phƣơng pháp, ta có thể thêm một từ điển phụ, gọi là từ điển cụm từ Cumtu.txt, lƣu những cụm từ thƣờng xuyên xuất hiện.

65

Ví dụ: 4.7 Câu “Nhung van de lien quan toi nguoi dong tinh luyen ai duoc

ban bac soi noi trong buoi hop nhom toi hom qua” sẽ đƣợc chuyển thành

 Tách câu: Tạo ra một câu duy nhất là “Nhung van de lien quan toi

câu có dấu qua các bƣớc sau:

nguoi dong tinh luyen ai duoc ban bac soi noi trong buoi hop nhom toi hom qua”.1

 Tách từ ( Các từ phân cách nhau bằng dấu / ): “Nhung / van de / lien

quan / toi / nguoi / dong tinh luyen ai / duoc / ban bac / soi noi /

trong / buoi / hop / nhom / toi / hom qua”.

4.4.2. Mô hình huấn luyện.

Nhƣ đã trình bày ở trên, cốt lõi của vấn đề là tập tin từ huấn luyện

initial.txt. Tập tin này sẽ chứa xác suất các nhóm âm tiết có thể xuất hiện

trong văn bản tiếng việt.

Ngoài ra mô hình huấn luyện sử dụng các phƣơng pháp làm mịn khác

nhau trong mô hình ngôn ngữ N-gram nhƣ: Addone, Witten-Bell, Good-

Turing.. với phƣơng pháp làm trơn hóa mô hình giúp việc thêm dấu đƣợc

chính xác.

Khác với các mô hình thêm dấu tiếng Việt trƣớc đây, tập tin từ điển

không những lƣu các từ tiếng Việt mà còn lƣu các dãy âm tiết trong Tiếng

Việt. Điều này giúp cho mô hình có thể “vét cạn” các thông tin giúp cho việc

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

thêm dấu chính xác hơn.

66

4.5. Thử nghiệm hệ thống:

Ví dụ 4.8:

Hình 4.5. Mô hình test thêm dấu đề xuất.

Mô hình N-gram cho tiếng Việt giúp việc xây dựng một hệ thống thêm

dấu cho tiếng Việt không dấu với kết quả khá tốt.

Tuy nhiên kết quả thêm dấu có thể sẽ tốt hơn nữa tăng N để có những

đánh giá sâu hơn. Việc dùng các phƣơng pháp làm trơn khác, có thể cũng

giúp tăng khả năng ƣớc lƣợng giá trị xác suất quyết định, và làm chất lƣợng

của hệ thống tăng lên. Tuy nhiên, sẽ cần một lƣợng dữ liệu lớn hơn, và đa

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

dạng hơn cho huấn luyện mô hình.

67

CHƢƠNG 5: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN CỦA ĐỀ TÀI

5.1. Các kết quả đạt đƣợc:

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à 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, làm giảm kích

thƣớc của mô hình ngôn ngữ dựa vào một số kỹ thuậtnhƣ: Pruning (loại bỏ)

làm giảm số lƣợng các cụm n-gram ,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,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ữ .

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.

Trong luận văn này mô hình thống kê tần số xuất hiện của từ, kèm theo

phƣơng pháp tách từ không dấu LRMM và sử dụng thêm từ điển cụm từ, khả

năng chính xác của mô hình là tƣơng đối cao.Tuy nhiên, phải nói là mô hình

còn những hạn chế và cũng là hƣớng mở mà luận văn cần phải tiếp tục nghiên

cứu và phát triển trong thời gian tiếp theo nhằm tăng độ chính xác lên cao hơn

nữa.

Chƣơng trình hoàn thiện cần có sự đầu tƣ nhiều hơn về thời gian và

công sức. Đề tài có thể tiếp tục phát triển để đem lại ứng dụng đáp ứng đƣợc

yêu cầu tốt hơn trong thực tế.

5.2.Hạn chế và hƣớng phát triển của đề tài: Bài toán thêm dấu vào văn bản không dấu là bàii toán mới, còn đang

hoàn thiện dần về mô hình cũng nhƣ cách thực hiện. Hiện nay, mô hình

thƣờng dùng cho bài toán này là thống kế tần số xuất hiện của từ, đồng thời,

tùy theo mỗi tác giả mà có thêm những biến đổi, thuật giải khác nhau giúp

cho việc thêm dấu đƣợc chính xác hơn.

Tác giả mong muốn có thể tiếp tục phát triển để đƣa các kết quả đã

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 vào ứng dụng trong thực tế…

68

TÀI LIỆU THAM KHẢO

Tiếng việt.

[1]. TS. Đinh Điền, Giáo trình xử lý ngôn ngữ tự nhiên, Khoa Công nghệ

Thông tin, Đại học Khoa học Tự nhiên Thành phố Hồ Chí Minh, Tháng 12-

2004.

[2]. Đoàn Xuân Kiên, “Bàn về chuyện đánh dấu thanh trong tiếng Việt”, đăng

tại trang http://home.tiscali.be/centre.vietnam/

[3]. Đoàn Xuân Kiên, “xem lại một số vấn đề ngữ âm tiếng Việt: cấu trúc âm

tiết”, đăng tại trang http://home.tiscali.be/centre.vietnam/

[4]. Tài liệu về phần mềm VietPad đƣợc công bố tại trang web

http://vietpad.sourceforge.net

[5]. Tài liệu về phần mềm AMPad đƣợc công bố tại trang web:

http://www.echip.com.vn/echiproot/weblh/qcbg/duynghi/automark

Tiếng anh.

[6].Chris Manning and Hinrich Schutze, Foundations of Statistical Natural

Language Processing, MIT Press. Cambridge, May 1999.

[7]. Boulos Harb, Ciprian Chelba, Jeffrey Dean, Sanjay Ghemawat, “Back-

Off Language Model Compression”, Proceedings of Interspeech 2009, pp. 325-355.

[8].Daniel Jurafsky and James H. Martin, Speech and Language Processing:

An Introduction to Natural Language Processing, Computational Linguistics

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

and Speech Recognition, chapter 6, February 2000.

69

[9]. R. Kneser and H. Ney, “Improved backing-off for M-gram language

modeling”, Acoustics, Speech, and Signal Processing, 1995. ICASSP-95.,

1995 International Conference on

[10]. Andreas stolcke, “Entropy-based pruning of backoff language models”,

Proceedings of the ARPA Workshop on human language technology, 1998

[11]. Andreas stolcke, SRILM – an extensible language modeling toolkit,

Conference on spoken language processing, 2002.

[12]. Kishore Papineni, Salim Roukos, Todd Ward, and Wei-Jing Zhu, Bleu:

a Method for Automatic Evaluation of Machine Translation, IBM T. J.

Watson Research Center, Proceedings of the 40th Annual Meeting of the

Association for Computational Linguistics (ACL), Philadelphia, July 2002

[13]. Tô Hồng Thắng, Building language model for vietnamese and its

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

application, graduation thesis, 2008.