Tài liệu: Nghiên cứu mô hình ngôn ngữ n gram cho tiếng việt và ứng dụng

Nghiên cứu mô hình ngôn ngữ n-gram áp dụng cho tiếng Việt, phát triển giải pháp tự động sửa lỗi dấu thanh hiệu quả và chính xác cao.

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2016

69
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Giới thiệu về Mô hình Ngôn ngữ N gram

Mô hình ngôn ngữ N-gram là một công nghệ xử lý ngôn ngữ tự nhiên quan trọng được ứng dụng rộng rãi trong lĩnh vực máy tính. Mô hình này dựa trên xác suất thống kê để dự đoán từ tiếp theo trong một chuỗi văn bản. N-gram bao gồm n từ liên tiếp trong một câu hoặc văn bản, trong đó mỗi cụm từ có mối quan hệ xác suất với nhau. Đối với tiếng Việt, việc xây dựng mô hình N-gram đặt ra nhiều thách thức đặc thù do đặc điểm ngôn ngữ riêng của tiếng Việt. Mô hình này được ứng dụng hiệu quả trong nhiều bài toán xử lý ngôn ngữ tự nhiên như sửa lỗi dấu thanh, nhận diện giọng nói, và dự đoán từ.

1.1. Khái niệm cơ bản về N gram

N-gram là một chuỗi gồm n phần tử liên tiếp từ một tập hợp dữ liệu văn bản. Trong xử lý ngôn ngữ tự nhiên, n-gram thường là n từ hoặc n ký tự liên tiếp. Các loại N-gram phổ biến bao gồm: Unigram (1-gram), Bigram (2-gram), và Trigram (3-gram). Mỗi loại có ứng dụng khác nhau tùy theo độ phức tạp của bài toán xử lý ngôn ngữ tự nhiên cần giải quyết.

1.2. Công thức tính xác suất trong mô hình N gram

Công thức tính xác suất N-gram dựa trên quy tắc Bayes và tính toán tần số của các cụm từ trong bộ dữ liệu huấn luyện. Xác suất của một từ tiếp theo được tính bằng: P(wn|w1...wn-1) = Count(w1...wn) / Count(w1...wn-1). Phương pháp này cho phép mô hình N-gram ước tính xác suất của các chuỗi từ chưa gặp trong dữ liệu huấn luyện, từ đó áp dụng vào các bài toán thực tế.

II. Xây dựng Mô hình N gram cho Tiếng Việt

Quá trình xây dựng mô hình N-gram cho tiếng Việt đòi hỏi nhiều bước chuẩn bị dữ liệu và xử lý tiền xử lý. Trước tiên, cần thực hiện tách từ từ văn bản thô sử dụng công cụ như vnTokenizer. Tiếp theo, dữ liệu được chuẩn bị thành bộ dữ liệu huấn luyện bao gồm các câu và văn bản tiêu chuẩn. Công cụ SRILM được sử dụng để xây dựng mô hình N-gram từ dữ liệu đã xử lý. Các bước này đảm bảo rằng mô hình N-gram tiếng Việt có độ chính xác cao và có thể ứng dụng trong các bài toán thực tế như sửa lỗi dấu thanh.

2.1. Công cụ tách từ vnTokenizer

vnTokenizer là công cụ tách từ chuyên dụng cho tiếng Việt, giúp chia tách văn bản thô thành các từ riêng biệt. Đây là bước quan trọng vì tiếng Việt không có khoảng trắng rõ ràng giữa các từ như tiếng Anh. Công cụ này sử dụng các phương pháp xử lý ngôn ngữ tự nhiên nâng cao để xác định các ranh giới từ chính xác, từ đó cải thiện chất lượng của mô hình N-gram.

2.2. Bộ công cụ SRILM

SRILM (Speech Recognition Integrated Language Modeling) là bộ công cụ mạnh mẽ để xây dựng và kiểm tra mô hình ngôn ngữ N-gram. Công cụ này cung cấp các chức năng tính toán xác suất, làm mịn dữ liệu, và đánh giá mô hình. Sử dụng SRILM, các nhà nghiên cứu có thể xây dựng hiệu quả mô hình N-gram cho tiếng Việt với các tham số tối ưu hóa phù hợp.

III. Các Phương pháp Làm mịn trong Mô hình N gram

Làm mịn (smoothing) là kỹ thuật quan trọng trong mô hình N-gram để giải quyết vấn đề các cụm từ hiếm gặp hoặc chưa gặp trong dữ liệu huấn luyện. Các phương pháp làm mịn phổ biến bao gồm Add-One smoothing, Witten-Bell smoothing, Good-Turing smoothing, và Kneser-Ney smoothing. Mỗi phương pháp có ưu và nhược điểm riêng, và việc chọn phương pháp thích hợp ảnh hưởng trực tiếp đến hiệu suất của mô hình N-gram. Đối với tiếng Việt, việc lựa chọn phương pháp làm mịn phù hợp giúp cải thiện độ chính xác trong các ứng dụng thực tế như sửa lỗi dấu thanh.

3.1. Phương pháp Add One Smoothing

Add-One smoothing là phương pháp làm mịn đơn giản nhất, thêm 1 vào tần số của mỗi cụm N-gram chưa gặp. Mặc dù đơn giản, phương pháp này thường không cho kết quả tốt nhất. Công thức: P(wn|w1...wn-1) = (Count + 1) / (Total + V), trong đó V là kích thước của bộ từ vựng. Phương pháp này ít được sử dụng trong các ứng dụng hiện đại nhưng vẫn có giá trị trong việc giáo dục và hiểu biết cơ bản về làm mịn N-gram.

3.2. Phương pháp Kneser Ney Smoothing

Kneser-Ney smoothing được coi là một trong những phương pháp làm mịn tốt nhất cho mô hình N-gram. Phương pháp này sử dụng khái niệm discount để giảm xác suất của các sự kiện thường gặp và tăng xác suất cho các sự kiện hiếm gặp. Kneser-Ney smoothing tính đến khả năng xuất hiện của một từ trong các ngữ cảnh khác nhau, từ đó cải thiện đáng kể hiệu suất của mô hình N-gram cho tiếng Việt trong các bài toán thực tế.

IV. Ứng dụng N gram trong Sửa lỗi Dấu thanh Tiếng Việt

Một trong những ứng dụng quan trọng của mô hình N-gramsửa lỗi dấu thanh trong tiếng Việt. Dấu thanh là thành phần not thiết của tiếng Việt, quyết định ý nghĩa của các từ. Khi các ký tự không có dấu thanh được nhập vào, mô hình N-gram có thể dự đoán dấu thanh phù hợp nhất dựa trên ngữ cảnh và xác suất thống kê. Bài toán sửa lỗi dấu thanh sử dụng mô hình N-gram để tìm chuỗi dấu thanh có xác suất cao nhất trong ngữ cảnh từ đã cho. Ứng dụng này giúp cải thiện chất lượng của các hệ thống nhập liệu và xử lý văn bản tiếng Việt tự động.

4.1. Phác biên bài toán sửa lỗi dấu thanh

Bài toán sửa lỗi dấu thanh được định nghĩa là: Cho một chuỗi ký tự không dấu, tìm chuỗi dấu tương ứng có xác suất cao nhất theo mô hình N-gram. Đây là bài toán tối ưu hóa trong đó cần chọn một giải pháp từ không gian tất cả các chuỗi dấu có thể. Để giải quyết bài toán này, cần sử dụng các thuật toán tìm kiếm kết hợp với mô hình N-gram đã được huấn luyện trên bộ dữ liệu tiếng Việt chuẩn.

4.2. Hướng giải quyết sử dụng N gram

Hướng giải quyết sử dụng N-gram dựa trên nguyên lý: tìm chuỗi từ có dấu thanh tối đa hóa xác suất kết hợp P(w1...wn) = Π P(wi|wi-n+1...wi-1). Các thuật toán tìm kiếm như Viterbi hoặc Beam Search được sử dụng để tìm giải pháp tối ưu trong không gian các dấu thanh có thể. Hệ thống sửa lỗi dấu thanh sử dụng mô hình N-gram đã được cải tiến bằng các phương pháp làm mịn tốt nhất để đạt hiệu suất cao nhất.

18/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG I: MÔ HÌNH NGÔN\ GUD “GRAM 1-1.Giới thiệu chung: ‘M6 hinh ng6n ngif théng ké cho phép gan (uéc Ivgng) xac suất cho một chuỗi m phần tử (thường là tờ) P(wnw. wz) 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: (AB) = PBIA) * P(A).

Với + P(A): Xác suất xây ra sự kiện A. + P(B): Xác suất xây ra sự kiện B. + P(BIA): Xác suất (cô điều kiện) xây ra sự kiện B nếu biết rằng sự kiện. 'Thì ta đễ đàng suy ra được.

Theo công thức này thi bai 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(w:)=P(wilstart) là xác suất đề w đứng đầu chuỗi hay nói cách khác. người ta có thê đưa thêm ký hiệu đầu đòng start vào mỗi chuỗi). Trong thực tế, đựa vào giả thuyết Markov người ta chi tính xác suất của. một từ đựa vào nhiều nhất n từ xuất hiện liền trước nó, và thông thường.

Vi 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).= 2, ta cô khái niệm bigram. ~ Vớin= 3, ta cô trigram. Nhưng vì n càng lớn thì số trường hợp càng lớn nên thường người ta chỉ sử đụng với n = 1,2 hoặc đôi lúc là 3 "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 độ đài nhỏ hơn m.

RO ràng, điều này là không thé khi m là độ đà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ử đụng x4p xi Markov bac n: P(WnWL,NW,. Wm3) = P(Wal Wana, Wels Win): ‘Néu Ap dung xp xi Markov, xac suat xuat hiện của một từ (w„) được coi như chỉ phụ thuộc vào n từ đứng liền trước nô (ws„Ws„«.ø¡) chứ không phải phụ thuộc vào toàn bộ đãy từ đứng trước (wiw:.

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(wiw:.We )* P(WalWaWsset Win) '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 vi du như sau.1: Giả sử cần tính xác suất của P(nên|Có chỉ thì nên). ~ Mô hình 1-Gram (Uni-gram): Tính xác suất của 1 từ mã không phụ thuộc vào từ trước nó, tức là không có ngữ cảnh. P=P(nên) ~ Mô hình 2-gram (Bi-gram): Tính xác suất của 1 từ đựa vào 1 từ liên.

gay trước nó.Công thức tính “xác suất thô”: Để sử đụng được, mô hình N-gram cần được cung cấp nhiều thông tin về xác suất. Các thông tin này được rút trích từ một kho ngữ liệu cho trước, gọi là. kho ngữ liệu huấn luyện.wi¡w)) là tần. hiện của cụm w;z-«;.w;¡w; trong tập văn bản huấn luyện.wị)) là xác suất wị đi sau Cụm Wine WigWi.

Ta cô công thức tính xác suất như sau: C6.wir) chính là tần số xuất hiện của cụm w:as:.Wi: trong văn bản huấn luyện. Do đó công thức trên viết lại thành: Powis.) “Cee va) Tile ở về phải còn gọi là tỉ lệ tần số. Cách tính xác suất đự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 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 1.

Vấn để khó khăn khi xây dựng mô hình ngôn ngữ -gram: 1. Phân bố không đều: Khi sử đụng mô hình N-gram theo công thức “xác suất thô”, sự phân. không đều trong tập văn bản huần luyện có thi ai các ước lượng không chính xác. Khi các N-gram phan bồ thưa, nhiều cum 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 các câu có chứa các cụm. N-gram này sẽ cô 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ụ: tiếng Việt cô khoảng hơn 5000 âm tiết khác nhau, ta cô tổng số cụm 3-gram có thể có là: 5.000 Tuy nhiên, số cụm 3- gram théng kê được chỉ xấp xi 1. 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. '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 đữ 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 1. Kích thước bộ nhớ cũa mô hình ngôn ngữ: hi kích thước tập văn bản huần luyện lớn, số lượng các cụm N-gram và kích thước của mô hình ngôn ngữ cũng rất lớn.

Nó không những gây khó 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 đo bộ nhớ của máy tính là hạn chế. Để xây đự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 1.

Các phương pháp làm mịn: Để khắc phục tinh trang các cụm N-gram phân bố không đều người ta đã đưa ra các phương pháp “làm mịn” các kết quả thống kê nhằm đánh giá chính. xác hơn (mịn hơn) xác suất của các cụm N-gram. Các phương pháp “làm mịn” đánh giá lại xác suất của các cụm N-gram bằng cách: © Gán cho các cụm N-gram có xác suất 0 (không xuất hiện trong tập huấn. luyện) một giá trị khác 0.

© Thay đôi lại giá trị xác suất của các cụm N-gram có xác suất khác 0 khác (c6 xuất hiện khi thống kê) thành một giá trị phù hợp (tổng xác suất của tất cả các khả năng N-gram khác nhau phải đâm bão là không đổi, với giá tr là 100%). “Các phương pháp làm mịn có thể được chia ra thành một loại như sau: © Chiết khấu (Discounting): Giảm (lượng nhỏ) xác suất của các cụm N- gram cô xác suất lớn hơn 0 để bù cho các cụm N-gram không xuất hiện trong tập huấn luyện. © Truy héi (Back-off): Tính toán xác suất các cụm N-gram không xuất hiện trong tập huấn luyện đựa vào các cụm N-gram thành phần có độ đài ngắn. hơn và có xác suất lớn hơn 0.

© Nội suy (Interpolation): Tính toán xác suất của tất cả các cụm N-gram. đựa vào xác suất của các cụm N-gram ngắn hơn. Các thuật toán chiết khấu (discounting): Nguyên lý 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 đề bù cho các cụm N-gram chưa từng xuất hiện trong tập huấn luyện. Các thuật toán này sẽ trực tiếp làm thay đôi tần số xuất hiện của tất cả các cụm N-gram.

Ở đây đề cập đến3 thuật toán chiết khẩu phổ biến: © Thuật toán Add-One ® Thuật toán Witten-Bell ® Thuật toán Good-Turing 1. Phương pháp làm mịn Add-One: Phương pháp này sẽ cộng thêm vào số lần xuất hiện của mỗi cụm N-gram. ên 1, khi đồ xác suất của cụm N-gram sẽ được tính lại là c+l nay (49 'Trong đó, c là của số lần xuất hiện cụm N-gram trong tập ngữ liệu mẫu, r: 1à số cụm N-gram, 0 là kích thước của toàn bộ từ vựng. (Ở đây, 52 =n vì thế sau khi thêm 1 vào tần suất xuất hiện mỗi cụm N-gram, tổng này trở thành.

De+N=n+v, do đồ ta cập nhật lại công thức tính xác suất của cụm N-gram như trên) ‘Voi Unigram, ta có thể viết lại (1.4) như sau: ay 041 n+ Tacd, f? =(c® +1)1— là tần suất của unigram, có) là Wav hiện của Unigram trước khi làm mịn bằng phương pháp Add-one. 'Với cụm N-gram w=wnw›.w,) Do dé: Plow, | yw, 0, Con, 0) +1 (42) ca G2) +7 Để ý rằng, có rất nhiều cum N-gram không nhìn thấy (bậc thấp) so với những N-gram nhìn thấy (bậc cao). Trong khi đó, có những cụm N-gram có nghĩa (cần thiết) bị giảm đi còn những cụm N-gram tối nghĩa lại cô xác suất tăng lên. Để hạn chế điều này, người ta đưa thêm hệ số ø thay vì cộng 1 nhằm.

cân đối lại xác suất (Phương pháp làm mịn Add-a). Đặc biệt, khi = Petks. Dat M= aV, khi dé (1.2) có thể viết lại thành: 0w.) “up POW |i) = Sey eT Dễ thấy với một Unigram, tỷ số. h chính là xác suất xây ra của mỗi tnigram Hay Đo ,) = Loa) + MECH) ¡ CÓ,,)+A 1.

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 cum tir này xuất hiện. Như vậy, xác suất của cụm N-gram c6 ti fing 0 6 thể tính. đựa vào xác suất gặp một cụm N-gram lân đầu tiên. Với Uni-gram, gọi T là số cụm Uni-gram khác nhau đã xuất hiện, còn M.

là tổng số các cụm Uni-gram đã thống kê, khi đó tổng số sự kiện sẽ là (T+M), và xác suất để gặp cụm Uni-gram lần đầu tiên (hay tổng xác suất của các cụm. Uni-gram chưa xuất hiện lần nào) được tính bằng: TM Gọi V là kích thước bộ từ vựng, còn Z là số cụm Uni-gram chưa xuất hiện lần nao: Z=V-T “Xác suất xuất hiện của một cụm Uni-gram chưa xuất hiện lẫn nào (có tần số bằng 0) được tính bằng: P - ZŒM) 'Và xác suất xuất hiện của các cụm Uni-gram có tần số khác 0 được tính. lại theo công thức: cow), với c(w) là số lần xuất hiện của cụm w' ?@Œ= T.M 10 Cũng giống thuật toán Add-One, khi xét các cum N-gram véi N>1, thay 'M bằng C(w,a-;.w;) thì xác suất của cụm w;z-,.W;1Wị với C(Wis-.WiWI) =0 được tính theo công thức sau: - _ T(x Wi Power) ZR aN Clee. Wet) + T0Me-MAO) Với C(w;z-.wiwWi) > 0, thì xác suất cụm w¿z-,.wi¡w; tính bằng công.

Phương pháp làm min Good - Turing: "Thuật toán Good - Turing dựa trên việc tính toán Nc, với No là số cum N- gram xuất hiện c lần. Như vậy No 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) ‘N; 14 số cụm N-gram có tần số 1 (số cụm N-gram xuất hiện 1 lần) ẤN.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ