Đặ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.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 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à Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn 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, 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. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.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.Cấu trúc của luận văn: Sau phần giới thiệu chung và mục tiêu nghiên cứu đƣợc trình bày ở Chƣơng 1, phần còn lại của Luận văn đƣợc cấu trúc nhƣ sau: Chƣơng 2: Nghiên cứu các vấn đề của mô hình ngôn ngữ N-gram, các sự cố gặp phải và cách khắc phục trong việc xây dựng tối ƣu mô hình N-gram. Chƣơng 3: Luận văn tập trung vào việc mô tả thực nghiệm, bao gồm công việc xây dựng và cài đặt những chƣơng trình hỗ trợ việc xây dựng đƣợc mô hình ngôn ngữ.
và các kết quả đạt đƣợc. Chƣơng 4: Tập trung vào việc áp dụng mô hình ngôn ngữ trong bài toán thêm dấu cho tiếng Việt không dấu. Chƣơng 5: Tổng kết những gì luận văn đã đạt đƣợc và đƣa ra kế hoạch nghiên cứu trong tƣơng lai. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn 15 CHƢƠNG 2: MÔ HÌNH NGÔN NGỮ N-GRAM 2.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. 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) *… * P(wm-1|wm-n-1wm-n …wm-2)* P(wm|wm-nwm-n+1…wm-1). Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn 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.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.
Ta có công thức tính xác suất nhƣ sau: C(wi-n+1.wi-1wi) P(wi|wi-n+1.wi-1w) w Dễ thấy, 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 w trong văn bản huấn luyện. Do đó công thức trên viết lại thành: C(wi-n+1.wi-1wi) P(wi|wi-n+1.wi-1) Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.vn 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.Vần đề khó khăn khi xây dựng mô hình ngôn ngữ N-gram 2.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.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. Tuy nhiên, số cụm 3-gram thống kê đƣợc chỉ xấp xỉ 1.