1. Trang chủ
  2. » Luận Văn - Báo Cáo

luận văn kiểm lỗi chính tả tiếng việt

39 1,3K 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 7,58 MB

Nội dung

Với tiếng Việt, hiện cũng có không ít công trình nghiên cứu và sản phẩm giải quyết bài toàn này, tuy nhiên các chương trình kiểm lỗi chính tả cảm ngữ cảnh tiếng Việt còn rất ít, và đặc b

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Lê Tuấn Linh

KIỂM LỖI CHÍNH TẢ TIẾNG VIỆT

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Công nghệ thông tin

Trang 2

mà tôi yêu thích

Tôi cũng xin chân thành cảm ơn thầy Nguyễn Phương Thái, anh Nguyễn Việt Cường đã giúp đỡ tôi giải đáp một số vấn đề lý thuyết và dữ liệu trong quá trình thực hiện luận văn

Cuối cùng, nhưng không kém phần quan trọng, tôi xin chân thành cảm ơn người thân, bạn bè đã luôn giúp đỡ, động viên tôi trong suốt quá trình học tập và hoàn thành luận văn

Trang 3

Tóm tắt luận văn

Hiện nay, vấn đề kiểm lỗi chính tả văn bản tự động là một vấn đề được rất nhiều

cá nhân, đơn vị trên thế giới nghiên cứu và triển khai Với tiếng Việt, hiện cũng có không ít công trình nghiên cứu và sản phẩm giải quyết bài toàn này, tuy nhiên các chương trình kiểm lỗi chính tả cảm ngữ cảnh tiếng Việt còn rất ít, và đặc biệt là chưa

có chương trình kiểm lỗi chính tả cảm ngữ cảnh tiếng Việt nào được thực thi trên nền web mà chỉ dừng lại ở mức độ âm tiết Luận văn này sẽ tập trung nghiên cứu vấn đề kiểm lỗi chính tả tiếng Việt nói chung và kiểm lỗi chính tả cảm ngữ cảnh tiếng Việt nói riêng Bên cạnh đó, luận văn đề xuất việc kiểm lỗi chính tả trực tuyến nhằm ứng dụng được rộng rãi hơn, giúp giảm bớt công sức của con người

Luận văn “Kiểm lỗi chính tả tiếng Việt” nghiên cứu việc sử dụng mô hình ngôn ngữ cho việc giải quyết bài toán kiểm lỗi chính tả cảm ngữ cảnh tiếng Việt

Trang 4

Mục lục

Mở đầu 1

Chương 1: Tổng quan 2

1.1 Giới thiệu 2

1.1.1 Bài toán kiểm lỗi chính tả 2

1.1.2 Một số phương pháp kiểm lỗi chính tả 2

1.2 Một số đặc điểm trong tiếng Việt 3

1.2.1 Đặc điểm của tiếng Việt 3

1.2.2 Các đơn vị của tiếng Việt 3

1.3 Một số lỗi chính tả cơ bản và phương pháp kiểm lỗi mức độ âm tiết 5

1.3.1 Lỗi do đánh máy 5

1.3.2 Lỗi do phát âm 6

1.4 Mục tiêu của luận văn 7

Chương 2: Mô hình ngôn ngữ 8

2.1 Giới thiệu 8

2.2 Tính toán xác suất dựa trên n-gram 8

2.3 N-gram đơn giản 9

2.4 Làm mịn (smoothing) 12

2.5 Áp dụng cho tiếng Việt 14

Chương 3: Phương pháp kiểm lỗi chính tả tiếng Việt dựa trên n-gram 15

3.1 Collocation 15

3.2 Huấn luyện 16

3.3 Thuật toán kiểm lỗi 17

3.3.1 Sinh tập nhầm lẫn âm tiết 17

3.3.2 Sử dụng n-gram để đưa ra âm tiết gợi ý 21

3.4 Kết quả và thảo luận 22

Trang 5

3.4.1 Kết quả 22

3.4.2 Thảo luận 24

Chương 4: Ứng dụng trên môi trường Web 25

4.1 Môi trường lập trình web 25

4.2 Ưu điểm và nhược điểm 25

4.2.1 Ưu điểm 25

4.2.2 Nhược điểm 26

4.2.3 Một số kỹ thuật nhằm khắc phục nhược điểm 26

Kết luận 29

Phụ lục 30

Phụ lục 1: Bảng kết hợp nguyên âm với các phụ âm gi, qu 30

Phụ lục 2: Bảng một số lỗi phát âm tiếng Việt 32

Tài liệu tham khảo 33

Tiếng Anh 33

Tiếng Việt 33

Trang 6

Có hai loại lỗi chính tả tiếng Việt là lỗi sai âm tiết và lỗi sai từ vựng (âm tiết đúng) Luận văn này sử dụng thông tin ngữ cảnh để sửa loại lỗi thứ hai Thông tin ngữ cảnh được thống kê từ corpus văn bản thô dựa trên mô hình ngôn ngữ n-gram Nguồn

dữ liệu cho corpus được lọc tách từ Internet

Luận văn nhắm đến ứng dụng kiểm lỗi chính tả tự động trên nền web (web application) Ưu điểm của chương trình thừa hưởng ưu điểm của Internet là không tốn tài nguyên trên máy của người sử dụng, không phụ thuộc vào nơi sử dụng chương trình (phạm vi ứng dụng lớn) Do đó, chương trình có thể sử dụng trên các thiết bị di động (Laptop, netbook, smartphone…)

Luận văn gồm có 4 chương:

Chương 1: Giới thiệu tổng quan về tiếng Việt, bài toán kiểm lỗi chính tả và phương pháp kiểm lỗi chính tả được sử dụng

Chương 2: Trình bày một số vấn đề lý thuyết về mô hình ngôn ngữ n-gram Chương 3: Kiểm lỗi chính tả dựa vào ngữ cảnh sử dụng n-gram

Chương 4: Một số vấn đề về ứng dụng trên nền web và cách giải quyết

Trang 7

Chương 1: Tổng quan

Chương này giới thiệu về bài toán kiểm lỗi chính tả, một số phương pháp kiểm lỗi chính tả và phương pháp sẽ được sử dụng trong luận văn này Chúng tôi cũng trình bày một số đặc điểm của tiếng Việt và chữ viết tiếng Việt, tập trung vào những đặc điểm có thể sử dụng để kiểm tra và sửa lỗi chính tả tiếng Việt Luận văn chỉ đề cập đến

vấn đề chính tả tiếng Việt, do đó khi nói “tiếng Việt” cũng có thể được hiểu là “chữ

viết tiếng Việt” Chương này có tham khảo một số tư liệu tin cậy trên Internet và cuốn

“Chính tả tiếng Việt” của cố Giáo sư Hoàng Phê [8]

1.1 Giới thiệu

1.1.1 Bài toán kiểm lỗi chính tả

Bài toán kiểm lỗi chính tả là một bài toán khá phức tạp, được không ít đơn vị nghiên cứu, phát triển và nó có tính ứng dụng cao, đặc biệt là trong các ứng dụng soạn thảo hay nhận dạng văn bản

Chương trình kiểm lỗi chính tả cần có hai chức năng chính, cơ bản là chỉ ra lỗi sai và đưa ra gợi ý sửa lỗi Tuy nhiên, các chức năng kiểm lỗi chính tả được tích hợp trong nhiều ứng dụng soạn thảo tiếng Việt hiện nay (Vietkey, Unikey…) không đưa ra gợi ý cho người dùng lựa chọn

Đề giải quyết bài toàn này, hiện nay đã có một số cá nhân hoặc nhóm nghiên cứu

và phát triển phần mềm kiểm lỗi chính tả như:

- Kiểm lỗi chính tả trên hệ soạn thảo ngoại tuyến (offline): Chương trình kiểm lỗi chính tả CopCon của ThS Mai Tuấn Khôi - Giảng viên khoa CNTT ĐH Sư Phạm Kỹ Thuật TPHCM; Chương trình kiểm lỗi chính tả Cú Mèo do Công ty cổ phần đầu tư phát triển công nghệ SOBIC phát triển Các phần mềm này có khả năng sửa lỗi chính

tả ở mức độ từ ghép hai hoặc ba âm tiết

- Kiểm lỗi chính tả trực tuyến hầu hết là cho tiếng Anh Các chương trình kiểm lỗi chính tả trực tuyến đa số là chưa hoàn chỉnh, và chỉ dừng lại ở mức độ kiểm lỗi âm tiết

1.1.2 Một số phương pháp kiểm lỗi chính tả

Ta có thể tạm chia ra hai phương pháp chính đó là dựa vào luật và dựa vào thống

kê Các phương pháp dựa theo luật có ưu điểm là không tốn quá nhiều tài nguyên của

Trang 8

thiết bị, tuy nhiên các chương trình sử dụng phương pháp này không có khả năng học,

và hiện tại kết quả cũng chưa cao đối với nhiều ngôn ngữ

Có khá nhiều phương pháp dựa vào thống kê khác nhau đã được đưa ra để kiểm lỗi chính tả tiếng Anh Trong phạm vi giới hạn của luận văn, chúng tôi xin chỉ liệt kê một vài phương pháp được đánh giá là nổi bật

“Một số nghiên cứu sử dụng mô hình kênh nhiễu như Mays và cộng sự (1990), Church và Gale (1991), Brill và Moore (2001)” “Phương pháp lai Bayes, sử dụng hàm phân loại Naive Bayes” “Kết hợp mô hình trigram từ loại và hàm phân loại Bayes” Các phương pháp: “học dựa trên biến đổi (Mangu và Brill, 1997), phân tích nghĩa ẩn (Jones và Martin, 1997), differential-grammars (Powers, 1997), Winnow-based (Golding và Roth, 1999), và khôi phục cố kết từ vựng (Hirst và Budanitsky, 2001)”1

1.2 Một số đặc điểm trong tiếng Việt

1.2.1 Đặc điểm của tiếng Việt

Tiếng Việt là một ngôn ngữ đơn lập, quan hệ giữa các từ được biểu thị bằng những phương tiện nằm ngoài từ như trật tự từ, hư từ Đặc điểm này được áp dụng cho

cả về ngữ âm, ngữ pháp và ngữ nghĩa

1.2.2 Các đơn vị của tiếng Việt

* Tiếng (âm tiết)

Âm tiết là đơn vị phát âm tự nhiên nhỏ nhất trong ngôn ngữ Trong tiếng Việt, một âm tiết bao giờ cũng được phát ra với một thanh điệu, và khi viết được tách rời với âm tiết khác bằng một khoảng trống Trên chữ viết, mỗi âm tiết tiếng Việt được ghi thành một “chữ” và đọc thành một “tiếng”

Có nhiều cách mô tả cấu trúc âm tiết tiếng Việt khác nhau: 3 thành phần, 4 hay 5 thành phần

Trang 9

[Âm đệm] <Âm chính> [Âm cuối]

- Các thành phần trong dấu < > là bắt buộc

- Các thành phần trong dấu [ ] là không bắt buộc

- Thanh ngang (không được viết) cũng được tính là một dấu thanh

Luận văn này sử dụng cấu trúc âm tiết bốn thành phần

Bảng 2.4 Các thành phần âm tiết:

Phụ âm đầu b c d đ g h k l m n q r s t v x ch gh gi kh ng nh ph qu th tr ngh

Nguyên âm

a ă â e ê i o ô ơ u ư y ai ao au ay âu ây eo êu ia iu iê oa oă oe oi

oo ôi ơi ua uâ ui uê uô uơ uy ưa ưi ươ ưu yê oai oay uây uôi iêu uyê ươu ươi uya yêu uyu

Phụ âm cuối c p t m n ch ng nh

Thanh điệu Ngang, huyền, hỏi, ngã, sắc, nặng

 Từ:

Từ là đơn vị ngôn ngữ có nghĩa hoàn chỉnh Từ tiếng Việt bao gồm một hay

nhiều âm tiết sắp xếp theo một thứ tự nhất định Có từ đơn, từ ghép và từ láy

Từ trong tiếng Việt có khả năng hoạt động tự do và độc lập về mặt cú pháp Từ tiếng Việt không có sự biến dạng (số nhiều, ngôi thứ, bị động…) như trong nhiều ngôn ngữ khác

 Câu:

Trang 10

Câu do các từ hợp thành theo những quy tắc nhất định Trong tiếng Việt, các quy tắc này rất đa dạng

 Dấu thanh

Tiếng Việt gồm có 6 thanh điệu: ngang, huyền, hỏi, ngã, sắc, nặng Trong đó có

5 dấu thanh, thanh ngang không được biểu diễn bởi dấu thanh nào Trong văn bản viết tay, dấu thanh được đánh khá tùy tiện, không đặt vào đúng vị trí của âm chính Tuy nhiên, trong văn bản đánh máy, việc đánh dấu thanh cần tuân thủ một số quy tắc sau:

- Với những âm tiết chỉ có một con chữ nguyên âm, thì dấu thanh được đặt vào con

chữ nguyên âm đó Vd: á à, ì ạch, ọ ẹ, ủ rũ, ọp ẹp, ục ịch, hà, lán, giá, giục, quả,

quỹ, quỵt (Chú ý: gi và qu được coi là phụ âm)

- Với những âm tiết, mà trong âm tiết đó chỉ cần có một con chữ nguyên âm mang

dấu phụ (Ă, Â, Ê, Ô, Ơ, Ư) và không kể kết thúc bằng con chữ gì, thì dấu thanh bao giờ cũng đặt ở con chữ đó (riêng ƯƠ, dấu đặt ở Ơ) Vd: thuyền, trường…

- Với những âm tiết có hai con chữ nguyên âm và kết thúc bằng một con chữ phụ

âm hoặc tổ hợp con chữ phụ âm, thì dấu thanh được đặt vào con chữ nguyên âm cuối cùng

- Với những trường hợp còn lại thì dấu thanh được đặt vào con chữ nguyên âm áp chót

Hiện tại với các trường hợp nguyên âm là oa, oe, uy mà không có phụ âm kết

thúc như hòa, hòe, thùy… có hai cách đánh dấu thanh là: hòa hoặc hoà Ở luận văn này thống nhất cách viết thứ nhất – hòa – giống như các quy tắc đánh dấu thanh ở trên

1.3 Một số lỗi chính tả cơ bản và phương pháp kiểm lỗi mức độ âm tiết

Các vấn đề chính tả tiếng Việt có thể gặp phải gồm có: sai cấu tạo, đúng cấu tạo nhưng không có trong từ điển, có trong từ điển nhưng sai về ngữ nghĩa, sai cấu tạo nhưng có thể là từ tiếng nước ngoài Các lỗi sai về cấu tạo âm tiết có thể dễ dàng phát hiện bằng cách sử dụng từ điển, tập âm tiết Dưới đây chúng tôi chỉ tập trung đến các lỗi sai về nghĩa của từ khi âm tiết có trong từ điển Có nhiều nguyên nhân khác nhau dẫn đến các lỗi trên, trong luận văn này chúng tôi chỉ xét đến hai nguyên nhân: do đánh máy và do lỗi phát âm (tiếng địa phương)

1.3.1 Lỗi do đánh máy

Đây là loại lỗi phổ biến, và hầu hết đều ở mức âm tiết Loại lỗi này gây ra các lỗi sai chính tả đơn và lỗi chính tả phức Có bốn loại lỗi chính tả đơn:

Trang 11

- Chèn: như nhầm “an” thành “anh”

- Xoá: như nhầm “chung” thành “chun”

- Thay thế: như nhầm “vào” thành “cào”

- Hoán vị: như nhầm “hoà” thành “hào”

Lỗi chính tả phức là sự kết hợp liên tiếp trong số các lỗi chính tả đơn ở trên

Để phát hiện được lỗi và đưa ra gợi ý sửa lỗi, chúng ta cần xác định được tập nhầm lẫn âm tiết của âm tiết mà ta đang xét Với các lỗi do đánh máy, tập nhầm lẫn

âm tiết được sinh ra gồm các âm tiết có “khoảng cách soạn thảo” (edit distance) so với

âm tiết đang xét nhỏ hơn một ngưỡng chọn trước Khoảng các soạn thảo cho biết mức

độ khác nhau giữa xâu ban đầu và xâu bị biến đổi

Trước khi tính khoảng cách soạn thảo nhỏ nhất, chúng tôi tách riêng dấu thanh và biến đổi xâu ban đầu đã loại bỏ dấu về dạng đánh máy TELEX Ví dụ: “chào” ->

“chao” + “f”, “trưởng” -> “truwowng” + “r” Khi đó, việc tính khoảng cách soạn thảo

sẽ cho kết quả tính giá tương đối đúng với việc soạn thảo trên bàn phím Việc tính giá cho phép thay thế dựa vào vị trí các phím trên bàn phím Các phím liền kề nhau có giá thấp hơn so với các phím không liền kề (c -> v nhỏ hơn c -> s)

Để tạo tập nhầm lẫn cho các lỗi soạn thảo, chúng tôi tách từ ban đầu ra thành 4 phần theo cấu trúc âm tiết, sau đó xử lý từng phần và ghép chúng lại với nhau VD: âm

tiết (sai) hcào được tách ra thành 4 phần và được xử lý:

- hc: c, ch, h,… -> cào, chào, hào,…

- ao: oa, eo, au,… -> hcòa, hcèo, hcàu,…

- (rỗng): n, m, t,… -> hcàon, hcàom, hcàot,…

- f(dấu huyền): s, r, x,… -> hcáo, hcảo, hcão,…

Tiếp đó, các âm tiết mới được tạo ra sẽ được kiểm tra trong từ điển âm tiết1, âm tiết có trong từ điển sẽ được đưa vào tập nhầm lẫn âm tiết và tập này sẽ được sắp xếp theo thứ tự tăng dần về khoảng cách soạn thảo so với âm tiết ban đầu

Trang 12

Lỗi do phát âm xảy ra cả trong văn bản viết tay và văn bản đánh máy Lỗi này xảy ra do thói quen “đọc như thế nào thì viết như thế”, do đó lỗi này thường gắn liền với các phương ngữ

VD: nhiều -> nhìu; hỏi -> họi; ra, gia -> da…

Có thể tập hợp một số lỗi phát âm theo như trong bảng Phụ lục 2

Tập nhầm lẫn do phát âm có tính đối xứng, tức là các âm trong cùng một tập có thể nhầm lẫn với nhau Để đưa ra các đề nghị cho loại lỗi này chỉ cần tra âm tiết dựa vào bảng lỗi phát âm

1.4 Mục tiêu của luận văn

Do nhược điểm của phương pháp kiểm lỗi chính tả tiếng Việt chỉ dựa theo luật là khá phức tạp và không có khả năng học

Luận văn này hướng tới việc tìm hiểu và ứng dụng kiểm lỗi chính tả tiếng Việt mức độ từ vựng dựa vào thông tin ngữ cảnh, sử dụng phương pháp học máy thống kê

trên mô hình ngôn ngữ n-gram Nhờ khả năng học, chương trình có thể thích ứng được

với sự thay đổi không ngừng của ngôn ngữ mà không tốn quá nhiều công sức của con người

Đồng thời, luận văn cũng đề xuất việc kiểm lỗi chính tả trực tuyến và cài đặt chương trình ứng dụng chạy trên nền web, dựa trên phương pháp lý thuyết được nêu ra trong luận văn

Trang 13

Chương 2: Mô hình ngôn ngữ

Chương này nhắc lại một số lý thuyết về n-gram và đưa ra hướng tiếp cận sử dụng n-gram vào việc kiểm lỗi chính tả cảm ngữ cảnh Chương này có tham khảo tài liệu [1]

2.1 Giới thiệu

Mô hình n-gram là một mô hình xác suất sử dụng cho việc dự đoán phần tử tiếp theo trong một dãy tuần tự các đối tượng Các đối tượng chúng ta xét tới ở đây là các

âm tiết và dấu câu

2.2 Tính toán xác suất dựa trên n-gram

Giả sử ta muốn dự đoán âm tiết tiếp theo s5 dựa trên thông tin ngữ cảnh trước đó của các âm tiết s1s2s3s4 Chúng ta cần tính xác suất của sự kiện âm tiết tiếp theo là s5

khi các âm tiết trước nó là s1…s4, hay nói cách khác, ta cần tìm xác suất:

Áp dụng công thức trên cho một câu có n âm tiết, ta sẽ tìm ra được tổ hợp âm tiết

“tốt nhất” cho câu, và tổ hợp này được coi là đúng chính tả Tuy nhiên, việc tính xác suất đó trong thực tế là điều gần như không thể: bởi chúng hiếm khi xảy ra, và nếu có thể tính được thì cũng cần có một lượng dữ liệu rất lớn được dùng để tính toán

Để giải quyết vấn đề trên, chúng ta có thể xấp xỉ những xác suất đó bằng một giá

trị n-gram nhất định với n cho trước

Với n = 1, ta có 1-gram (Unigram):

P(s n |s 1 ,…,s n-1 )  P(s n )

Với n = 2, ta có 2-gram (Bigram)

P(s n |s 1 ,…,s n-1 )  P(s n |s n-1 )

Trang 14

Với luận văn này, chúng tôi chọn n = 3 (Trigram) Trong chương trình ứng dụng, chúng tôi sử dụng kết hợp linh hoạt cả unigram, bigram và trigram (không nhất thiết chỉ sử dụng trigram) để tính toán xác suất của một âm tiết trong những trường hợp một câu có quá nhiều lỗi sai hay có nhiều lỗi sai đứng sát nhau dẫn đến thiếu thông tin do giới hạn của phạm vi ngữ cảnh 3 âm tiết

2.3 N-gram đơn giản

Ở phần này, chúng tôi nêu lên cách sử dụng n-gram vào việc dự đoán một từ trong tiếng Anh, từ đó suy ra cách áp dụng phương pháp cho âm tiết trong tiếng Việt

Giả sử chúng ta có thông tin lịch sử h là “its water is so transparent that” và chúng ta muốn tính toán xác suất từ w tiếp theo sẽ là “the”:

P(the|its water is so transparent that)

Để tính toán xác suất trên ta có thể dựa vào tần suất xuất hiện của w và h Ví dụ,

chúng ta có thể lấy một lượng dữ liệu đầu vào (corpus) rất lớn, đếm số lần xuất hiện

của h và số lần xuất hiện w đi theo sau h Việc này có thể trả lời được câu hỏi: “Trong

tổng số lần xuất hiện h, có bao nhiêu lần đứng tiếp sau nó là w”:

Với một corpus đủ lớn, như internet chẳng hạn, chúng ta có thể đếm được các tần suất và ước lượng được xác suất nêu ở công thức trên Tuy nhiên, chúng ta có thể dễ dàng nhận thấy rằng ngay cả dữ liệu trên internet cũng không đủ lớn để cho ta những ước lượng tốt trong hầu hết các trường hợp thực tế Bởi lẽ ngôn ngữ con người hết sức sáng tạo, nó biến đổi không ngừng, và do đó mà không phải lúc nào chúng ta cũng có thể đếm được toàn bộ các câu nói Thậm chí chỉ một sửa đổi nhỏ của một câu thôi cũng có thể khiến số lần xuất hiện của nó trên web là bằng không

Tương tự như vậy, nếu chúng ta muốn biết xác suất liên kết của toàn bộ chuỗi từ

W như “its water is so transparent”, chúng ta có thể đặt ra câu hỏi “trong toàn bộ tổ

hợp khác nhau có thể có của chuỗi 5 từ đó, có bao nhiêu trong số chúng có thứ tự như trên?” Chúng ta sẽ phải đếm số lần xuất hiện của “its water is so transparent” và sau

đó chia chúng cho tổng số lần xuất hiện của từng từ trong số 5 từ đó Việc này đòi hỏi một lượng tính toán không hề nhỏ

Trang 15

Chính bởi lẽ đó, chúng ta cần có những phương pháp tốt hơn để ước lượng giá trị

xác suất của từ w với thông tin lịch sử h cho trước, và xác suất của toàn bộ chuỗi từ W

Để dễ dàng hơn trong việc diễn đạt, chúng ta sẽ có một vài quy ước như sau: Để biểu

thị xác suất của một biến độc lập ngẫu nhiên X i lấy giá trị là “the”, hay P(X i = “the”),

chúng ta sẽ rút gọn lại là P(the) Chuỗi N từ có thể biểu diễn dạng w 1 …w n hoặc

Với xác suất liên kết của từng từ riêng biệt trong chuỗi: P(X = w 1 , Y = w 2 , … ,) được

thay bằng P(w 1 ,w 2 ,…,w n )

Để tính xác suất P(w 1 ,w 2 ,…,w n ) của các chuỗi từ, ta có thể phân tích xác suất này

sử dụng quy tắc dây chuyền:

Áp dụng cho từ, ta có:

Quy tắc dây chuyền cho thấy mối liên hệ giữa việc tính xác suất liên kết của một chuỗi với việc tính xác suất điều kiện của một từ với các từ cho trước Công thức trên cho thấy ta có thể ước lượng xác suất liên kết của một chỗi bằng cách nhân các xác suất điều kiện với nhau Tuy nhiên, sử dụng quy tắc dây chuyền vẫn chưa giải quyết được vấn đề mà chúng ta đã đề cập ở trên: Ta không thể ước lượng xác suất bằng cách đếm số lần xuất hiện của chuỗi từ, bởi ngôn ngữ rất phong phú, từng ngữ cảnh riêng biệt đều có thể chưa bao giờ xuất hiện trước đó

Có thể hiểu việc sử dụng mô hình n-gram là thay vì tính xác suất của từ cho trước

dựa trên toàn bộ thông tin lịch sử h, chúng ta xấp xỉ thông tin đó chỉ bằng một vài từ

cuối, gần nhất

Trang 16

Ví dụ với mô hình bigram, xấp xỉ xác suất của một từ cho trước với toàn bộ từ trước đó bằng xác suất điều kiện của từ đứng ngay trước nó Hay nói cách khác, thay vì tính xác suất:

P(the|Walden Pond’s water is so transparent that)

Chúng ta xấp xỉ nó bởi xác suất:

P(the|that)

Việc này giả thiết rằng xác suất của một từ chỉ phụ thuộc vào từ trước đó, được

gọi là một giả thuyết Markov (Markov assumption) Các mô hình Markov là một lớp

các mô hình xác suất giả thiết rằng chúng ta có thể dự đoán được xác suất của một đơn

vị (unit) nào đó trong tương lai mà không cần phải dựa vào quá nhiều thông tin trong

quá khứ Chúng ta có thể suy ra được bigram (lấy thông tin của một từ trước đó),

trigram (lấy thông tin của hai từ trước đó) cho tới N-gram (lấy thông tin của N – 1 từ

đứng trước)

Suy ra công thức tổng quát xấp xỉ N-gram cho xác suất điều kiện của từ tiếp theo

trong một chuỗi là:

Từ giả thiết bigram cho xác suất của một từ độc lập, chúng ta có thể tính xác suất

của một chuỗi đầy đủ bằng cách áp dụng công thức trên với N = 2 với công thức của

quy tắc dây chuyền:

Vậy làm thế nào để ước lượng được các giá trị xác suất bigram hay n-gram này?

Một cách đơn giản và dễ nhận thấy nhất để ước lượng xác suất đó là ước lượng hợp lý

cực đại (Maximum Likelihood Estimation hay MLE) Chúng ta dùng MLE cho các

tham số của một mô hình n-gram bằng cách đếm trong corpus, và chuẩn hóa chúng

sao cho giá trị của nó nằm giữa 0 và 1

Ví dụ, để tính một giá trị xác suất bigram của một từ y với từ cho trước x đứng trước nó, chúng ta sẽ tính toán giá trị đếm bigram C(xy) và chuẩn hóa nó với tổng số tất cả các bigram khác cùng có từ đứng trước là x:

Trang 17

Chúng ta có thể đơn giản hóa công thức trên, khi tổng số lần xuất hiện của tất cả

các bigram bắt đầu bởi từ w n-1 cho trước phải bằng với giá trị unigram cho từ w n-1 đó:

Với trường hợp tổng quát sử dụng MLE cho N-gram, ta có công thức:

2.4 Làm mịn (smoothing)

Có một vấn đề gặp phải trong quá trình tính toán ước lượng hợp lý cực đại, đó là

vấn đề dữ liệu thưa (sparse data) xảy ra do ước lượng hợp lý cực đại dựa trên một tập

dữ liệu huấn luyện riêng biệt Với một n-gram bất kỳ, đôi khi chúng ta có thể có được xấp xỉ tốt của xác suất Nhưng do bất kỳ corpus nào cũng có giới hạn nhất định, một vài từ nào đó hoàn toàn chính xác nằm trong chuỗi lại không xuất hiện trong corpus Lượng dữ liệu bị thiếu này cho thấy N-gram cho bất kỳ một corpus cho trước nào cũng

có một số lượng lớn trường hợp xác xuất N-gram bằng không cần có một xác suất nào

đó khác không cho nó Hơn nữa, phương pháp ước lượng hợp lý cực đại cũng sinh ra các xấp xỉ không tốt khi các giá trị đếm khác không nhưng lại quá nhỏ, dẫn đến giá trị ước lượng xấp xỉ bằng không

Chúng ta cần có một phương pháp giúp có được những ước lượng tốt hơn so với những tần suất thấp hay tần suất bằng không Các giá trị đếm bằng không thậm chí còn gây ra một vấn đề nghiêm trọng hơn Khi xử lý hiện tượng nhập nhằng cho một câu,

mà câu đó lại chứa một giá trị N-gram không hề xuất hiện trong tập huấn luyện, thì ước lượng hợp lý cực đại xác suất của N-gram này, cũng như của toàn bộ câu, sẽ có giá trị bằng không! Điều này có nghĩa rằng để đánh giá được mô hình ngôn ngữ, chúng

ta cần thay đổi phương thức ước lượng hợp lý cực đại sao cho tất cả các giá trị N-gram đều phải khác không, kể cả khi chúng không xuất hiện trong tập huấn luyện

Vì những lý do nêu trên, chúng ta cần sử dụng các phương pháp làm mịn để giải quyết, giảm thiểu các vấn đề gặp phải do lượng dữ liệu có hạn Ở luận văn này, chúng

Trang 18

tôi chỉ sử dụng phương pháp làm mịn Laplace (Laplace Smoothing, hay còn gọi là

Add One Smoothing – thêm một)

Một cách làm mịn đơn giản là cộng thêm 1 vào tất cả các giá trị đếm trước khi

chúng ta chuẩn hóa chúng thành giá trị xác suất Giải thuật này được gọi là làm mịn

Laplace, hay luật Laplace(Lidstone, 1920; ?; Jeffreys, 1948)

Chúng ta sẽ áp dụng làm mịn Laplace bắt đầu với các xác suất unigram Ước

lượng xấp xỉ cực đại của xác suất unigram cho từ w i là giá trị đếm c i được chuẩn hóa

bởi tổng số từ vựng N:

Làm mịn Laplace chỉ đơn giản cộng một vào mỗi giá trị đếm Và khi trong bảng

từ vựng có V từ (hay V là tổng số từ có trong tập dữ liệu), mỗi từ được cộng thêm một, chúng ta cũng cần cộng thêm vào mẫu số một giá trị là V:

Tương tự như vậy, với các giá trị xác suất bigram ta có công thức làm mịn:

Trong đó V là số loại từ (mỗi từ khác nhau được coi là một loại) có trong tập dữ liệu, hay V chính là số lượng các unigram Và như vậy ta có thể phát triển tính tương

tự cho các giá trị N-gram khác như 3-gram, 4-gram,…

Có một giải pháp khá hiệu quả cho việc tính toán các giá trị xác suất n-gram trên máy tính đó là sử dụng dạng logarit hóa của các giá trị xác suất Vì sau khi làm mịn

như ở trên, tất các xác suất P đều có giá trị nằm trong khoảng 0 < P < 1 Do đó, việc

logarit hóa giúp cho tránh được vấn đề về giới hạn dữ liệu do giá trị xác suất quá nhỏ, nằm ngoài khả năng biểu thị của kiểu dữ liệu (underflow), đặc biệt là khi ta nhân nhiều giá trị xác suất n-gram với nhau Vì khi giá trị quá nhỏ, máy tính sẽ coi nó bằng không,

và đồng thời cũng làm tăng tốc độ tính toán do thay vì nhân – chia các giá trị với nhau thì với logarit, chúng trở thành các phép toán cộng – trừ, một công việc dễ dàng hơn nhiều cho bộ xử lý Ví dụ:

p1.p2.p3.p4 = exp(log p1 + log p2 + log p3 + log p4)

Trang 19

2.5 Áp dụng cho tiếng Việt

Do đặc điểm của tiếng Anh, các từ được ngăn cách nhau bởi khoảng trắng hoặc các dấu câu Tuy nhiên trong tiếng Việt, một từ có thể được kết hợp bởi nhiều âm tiết (tiếng), các âm tiết của từ được cách nhau bởi khoảng trắng Tuy nhiên trong tiếng Việt, trật tự của các tiếng trong một từ là một trong những yếu tố quyết định nghĩa của

từ đó, do vậy ta hoàn toàn có thể áp dụng mô hình n-gram cho tiếng Việt với đơn vị là

một âm tiết Và khi đó, các giá trị biểu thị cho một từ w i ở trên có thể được hiểu như một âm tiết trong tiếng Việt

Ngày đăng: 17/02/2014, 22:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[10] Ngonngu.net, Âm tiết và đặc điểm âm tiết tiếng Việt, 2006, http://ngonngu.net/index.php?p=60 Link
[1] Daniel Jurafsky &amp; James H. Martin. Speech and language processing: An introduction to speech recognition, computational linguistics and natural language processing. 2007 Khác
[2] Department of Computer Science, Columbia University, 2009, N-Grams and Corpus Linguistics, Lecture Khác
[3] Georgetown University, Introduction to Natural Language Processing, Autumn 2005, Course’s Lecture Khác
[4] Julia Hockenmaier, Introduction to NLP, Fall 2008, Lecture 3: Probability theory, N-grams and perplexity.Tiếng Việt Khác
[5] Cao Văn Việt, Xây dựng mô hình ngôn ngữ cho tiếng Việt, 2010, Luận văn tốt nghiệp, Hà Nội Khác
[6] Đoàn Xuân Kiên, Xem lại một vấn đề ngữ âm tiếng Việt: Cấu trúc âm tiết, 1998, Tập san Hợp Lưu 48 Khác
[7] Đinh Thị Phương Thu, Huỳnh Quyết Thắng, Nguyễn Văn Lợi. Sử dụng cấu tạo âm tiết tiếng Việt hai thành phần trong bài toàn kiểm tra chính tả tiếng Việt, 10/2007, tạp chí BCVT &amp; CNTT kỳ 3 Khác
[8] Hoàng Phê, Chính tả tiếng Việt, 1999, Nhà xuất bản Đà Nẵng Khác
[9] Hoàng Phê (chủ biên), Từ điển tiếng Việt, 2002, Nhà xuất bản Đà Nẵng Khác
[11] Nguyễn Phương Thái, Kiểm lỗi chính tả cảm ngữ cảnh tiếng Việt, 2003, Luận văn thạc sĩ, Hà Nội Khác
[12] Nguyễn Gia Định, Trần Thanh Lương, Thuật toán kiểm tra âm tiết tiếng việt dựa trên luật cấu tạo âm tiết, 2004, Trường Đại học Khoa học - Đại học Huế, Tạp chí khoa học – Đại học Huế, Số 25 Khác

HÌNH ẢNH LIÊN QUAN

Bảng 2.2. Cấu trúc 4 thành phần: - luận văn kiểm lỗi chính tả tiếng việt
Bảng 2.2. Cấu trúc 4 thành phần: (Trang 9)
Bảng Số bản ghi Tổng giá trị đếm Kích thước tệp dữ liệu MySQL sinh ra  - luận văn kiểm lỗi chính tả tiếng việt
ng Số bản ghi Tổng giá trị đếm Kích thước tệp dữ liệu MySQL sinh ra (Trang 22)
Bảng thông in các bảng dữ liệu huấn luyện: - luận văn kiểm lỗi chính tả tiếng việt
Bảng th ông in các bảng dữ liệu huấn luyện: (Trang 22)
Sau khi thực hiện một số lượng test nhất định, chúng tôi xin đưa ra bảng thống kê của một số kết quả đánh giá như dưới đây:  - luận văn kiểm lỗi chính tả tiếng việt
au khi thực hiện một số lượng test nhất định, chúng tôi xin đưa ra bảng thống kê của một số kết quả đánh giá như dưới đây: (Trang 28)
Phụ lục 1: Bảng kết hợp nguyên âm với các phụ âm gi, qu - luận văn kiểm lỗi chính tả tiếng việt
h ụ lục 1: Bảng kết hợp nguyên âm với các phụ âm gi, qu (Trang 35)
Phụ lục 2: Bảng một số lỗi phát âm tiếng Việt - luận văn kiểm lỗi chính tả tiếng việt
h ụ lục 2: Bảng một số lỗi phát âm tiếng Việt (Trang 37)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w