Phạm Thị Minh Thu và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
96(08): 39 - 43<br />
<br />
GÁN NHÃN TỪ LOẠI TIẾNG VIỆT SỬ DỤNG MÔ HÌNH MARKOV ẨN<br />
Phạm Thị Minh Thu*, Đào Thị Thuý Quỳnh<br />
Trường Đại học Khoa học – ĐH Thái Nguyên<br />
<br />
TÓM TẮT<br />
Gãn nhãn từ loại là một trong những bài toán cơ bản của xử lý ngôn ngữ tự nhiên, nó là bước tiền<br />
xử lý quan trọng có ảnh hưởng trực tiếp tới các phân tích văn phạm ở mức sâu. Trong bài báo này,<br />
chúng tôi trình bày quá trình thực nghiệm áp dụng mô hình Markov ẩn cho bài toán gán nhãn từ<br />
loại tiếng Việt. Để thuận tiện cho việc so sánh kết quả, chúng tôi sử dụng kho dữ liệu của nhóm<br />
VLSP để huấn luyện và đánh giá chương trình. Độ chính xác trung bình của bộ gán nhãn đạt<br />
92.2%. Chúng tôi cũng khảo sát tầm ảnh hưởng của tập huấn luyện đến bộ gán nhãn và mở rộng<br />
kho ngữ liệu để cải thiện độ chính xác của bộ gán nhãn.<br />
Từ khóa: Gán nhãn từ loại, bộ gán nhãn từ loại, mô hình Markov ẩn, kho ngữ liệu, huấn luyện,<br />
đánh giá.<br />
<br />
GIỚI THIỆU*<br />
Trong ngôn ngữ tự nhiên, từ vựng được chia<br />
thành thành các lớp (danh từ, động từ, tính từ,<br />
giới từ, …) theo chức năng ngữ pháp. Việc<br />
xác định đúng loại từ đóng vai trò quan trọng<br />
trong việc hiểu đúng và viết đúng. Chẳng hạn,<br />
một cụm danh từ chuẩn trong tiếng Việt có<br />
tính từ đứng sau danh từ được dịch đúng sang<br />
tiếng Anh thì tính từ phải đứng trước danh từ<br />
mà nó bổ nghĩa. Hay ví dụ câu Con ngựa đá<br />
đá con ngựa đá sẽ là một dẫn chứng cho thấy<br />
việc giải thích đúng nghĩa một từ phụ thuộc<br />
vào việc nó được xác định đúng từ loại hay<br />
không. Việc xác định loại từ cho mỗi từ trong<br />
văn bản và gắn cho nó một ký hiệu quy ước<br />
được gọi là gán nhãn từ loại (Part-Of-Speech<br />
Tagging). Ví dụ câu Con ngựa đá đá con<br />
ngựa đá có thể được gán nhãn như sau:<br />
Con//NC ngựa//NN đá//VB con//NC ngựa//NN<br />
đá//NN. Trong đó: NC là ký hiệu danh từ chỉ<br />
loại; NN - danh từ thường và VB là ký hiệu<br />
của động từ. Gán nhãn từ loại là một trong<br />
những bài toán cơ bản của xử lý ngôn ngữ tự<br />
nhiên, là bước tiền xử lý quan trọng để phân<br />
tích văn phạm ở mức sâu hơn.<br />
Trên thế giới đã có nhiều phương pháp gán<br />
nhãn từ loại được áp dụng thành công cho văn<br />
bản tiếng Anh với độ chính xác trên 95%. [3]<br />
và [8] điểm tên một số mô hình gán nhãn như<br />
Mô hình Markov ẩn (HMM), mô hình học<br />
máy dựa trên luật (TBL), mô hình cực đại kỳ<br />
*<br />
<br />
Tel: 0988 356337, Email: thupm84@gmail.com<br />
<br />
vọng (MEM), … Trong đó, bộ gán nhãn dựa<br />
trên mô hình Markov ẩn được xây dựng cho<br />
tiếng Anh với độ chính xác 93 - 95% [4]. Ở<br />
Việt Nam, tính đến nay đã có một số công bố<br />
chính thức liên quan đến bài toán gán nhãn từ<br />
loại tiếng Việt [2], [3], [5], [6]. Trong đó tiêu<br />
biểu nhất là sản phẩm của nhóm VLSP [6] với<br />
bộ công cụ gán nhãn sử dụng mô hình học<br />
máy MEMs và CRFs được huấn luyện trên<br />
tập ngữ liệu gồm 20.000 câu tiếng Việt, đạt<br />
độ chính xác 93%. Đặc biệt nhóm VLSP còn<br />
chia sẻ kho ngữ liệu để phục vụ cho các<br />
nghiên cứu tiếng Việt. Kho ngữ liệu này giúp<br />
chúng tôi thuận lợi hơn trong quá trình hiện<br />
thực hóa ý tưởng khảo sát hiệu quả của mô<br />
hình Markov ẩn cho bài toán gán nhãn từ loại<br />
tiếng Việt và so sánh kết quả với nhóm<br />
VLSP. Trong bài báo này, ngoài việc trình<br />
bày kết quả thực nghiệm mô hình Markov ẩn<br />
cho bài toán gán nhãn từ loại tiếng Việt,<br />
chúng tôi còn chỉ ra tầm ảnh hưởng của độ<br />
lớn tập dữ liệu huấn luyện đến độ chính xác<br />
của bộ gán nhãn.<br />
MÔ HÌNH MARKOV ẨN (HIDDEN<br />
MARKOV MODEL – HMM)<br />
HMM là một mô hình thống kê có chứa các<br />
tham số quan sát được và các tham số ẩn chưa<br />
biết. Mô hình Markov ẩn được biểu diễn dưới<br />
dạng đồ thị chuyển trạng thái (Hình 1). Các<br />
nút là các trạng thái, qi là các trạng thái ẩn, oi<br />
là các trạng thái quan sát được. Các cung là<br />
các chuyển trạng thái có gán xác suất.<br />
39<br />
<br />
Phạm Thị Minh Thu và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
Việc xác định các tham số ẩn dựa vào các<br />
tham số đã biết thông qua các xác suất chuyển<br />
trạng thái (từ trạng thái trước sang trạng thái<br />
qt) và xác suất nhả trạng thái (trạng thái quan<br />
sát được ot nhận trạng thái ẩn qt).<br />
<br />
96(08): 39 - 43<br />
<br />
T* = argmax P(S | T)P(T)<br />
Áp dụng luật chuỗi xác suất ta được (6) :<br />
<br />
T* = argmax P(w1, w2,…, wn | t1, t2,…, tn)* P(t1,<br />
t2,…, tn) (6)<br />
Sử dụng mô hình Markov ẩn bậc 1 công thức<br />
(6) trở thành công thức (7).<br />
n<br />
n<br />
(7)<br />
T * = arg max ∏ P( wi | ti )∏ P(t i | t i −1 )<br />
i =1<br />
<br />
Hình 1: Minh họa mô hình Markov ẩn<br />
<br />
Trong mô hình Markov ẩn tổng quát bậc n,<br />
trạng thái qt phụ thuộc vào n trạng thái đứng<br />
trước nó. Trong nghiên cứu này chúng tôi chỉ<br />
xét với n = 1, tức trạng thái qt phụ thuộc vào<br />
trạng thái qt-1 và độc lập với các trạng thái<br />
khác, tức là:<br />
P(qt|qt-1,qt-2,…) = P(qt|qt-1)<br />
(1)<br />
P(qt,qt-1,qt-2,…) = P(qt|qt-1) P(qt-1|qt-2)… (2)<br />
SỬ DỤNG MÔ HÌNH MARKOV ẨN GÁN<br />
NHÃN TỪ LOẠI TIẾNG VIỆT<br />
Mô tả bài toán<br />
Đầu vào (Input) của bài toán là một câu hay<br />
một văn bản tiếng Việt đã được tách từ. Ta<br />
cần gán cho mỗi từ một nhãn từ loại tương<br />
ứng để thu được đầu ra (Output) mong muốn.<br />
Giả sử cho một chuỗi các từ S = w1 w2 …wn<br />
và tập hữu hạn các nhãn từ loại T = {T1, T2,<br />
…, Tm}. Khi đó, các từ wi là các đối tượng<br />
quan sát được và các nhãn ti là các trạng thái<br />
ẩn. Ta phải xác định nhãn từ loại ti tương ứng<br />
cho mỗi từ wi để thu được T* = t1 t2 … tn<br />
(ti ∈ T) để có P(T*/S) là lớn nhất. Tức là ta<br />
phải đi tìm:<br />
T* = argmax P(T | S)<br />
(3)<br />
Sử dụng Bayes, P(T|S) được viết theo công<br />
thức (4).<br />
P (T | S ) =<br />
<br />
P ( S | T ) P (T )<br />
P (S )<br />
<br />
(4)<br />
<br />
Ta đang quan tâm tới việc tìm chuỗi nhãn<br />
phù hợp nhất làm cực đại công thức (3) nên<br />
mẫu số trong tất cả các trường hợp là giống<br />
nhau, vì vậy ta có thể loại bỏ nó. Do đó, bài<br />
toán trở thành tìm chuỗi các nhãn thỏa mãn<br />
công thức (5):<br />
40<br />
<br />
(5)<br />
<br />
i =1<br />
<br />
Trong mô hình HMM, thuật toán Viterbi<br />
thường được sử dụng để tìm dãy trạng thái tối<br />
ưu. Với bài toán gán nhãn từ loại, thuật toán<br />
này dựa trên công thức truy hồi dưới đây:<br />
σ (t ) = max[σ (t ) × P(w | t ) × P(t | t )](8)<br />
i +1<br />
<br />
j<br />
<br />
i<br />
<br />
1≤k ≤T<br />
<br />
i +1<br />
<br />
k<br />
<br />
j<br />
<br />
j<br />
<br />
k<br />
<br />
ψ i+1 (t j ) = argmax[σ i (t k ) × P(wi+1 | t j ) × P(t j | t(9)<br />
k )]<br />
1≤k ≤T<br />
<br />
Để tường minh hơn, chúng tôi xin mô tả quá<br />
trình tìm ra nhãn cho một câu ví dụ tiếng Việt<br />
cụ thể, chẳng hạn câu Tôi viết báo_cáo.<br />
Giả sử ký hiệu nhãn Danh từ là NN, nhãn<br />
Động từ là VB, nhãn bắt đầu câu là Start,<br />
các nhãn khác là ≠ và có bảng xác suất<br />
chuyển như sau:<br />
Bảng 1. Bảng xác suất chuyển từ loại<br />
Sau<br />
Trước<br />
Start<br />
≠<br />
NN<br />
VB<br />
<br />
≠<br />
<br />
NN<br />
<br />
VB<br />
<br />
0.3<br />
0.2<br />
0.4<br />
0.1<br />
<br />
0.4<br />
0.2<br />
0.1<br />
0.8<br />
<br />
0.3<br />
0.6<br />
0.5<br />
0.1<br />
<br />
Bảng 2. Xác suất nhận nhãn từ loại<br />
Từ<br />
Nhãn<br />
≠<br />
NN<br />
VB<br />
<br />
Tôi<br />
0.01<br />
0.8<br />
0.19<br />
<br />
viết<br />
0.02<br />
0.01<br />
0.97<br />
<br />
báo_cáo<br />
0.02<br />
0.5<br />
0.48<br />
<br />
Quá trình xác định từ loại cho mỗi từ được<br />
mô tả như sau:<br />
Khởi trạng : φ0 ( start ) = 1<br />
Xác suất Viterbi cho các thẻ từ đầu tiên :<br />
φ1 ( ≠ ) = φ 0 ( start ) p ( ≠ | start ) p ( toi |≠ ) = 0.003<br />
<br />
Tương tự, ta có:<br />
φ1 ( NN ) = 0 .32 , φ1 (VB ) = 0 . 057<br />
<br />
Phạm Thị Minh Thu và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
Xác suất Viterbi cho các thẻ của từ thứ hai:<br />
<br />
φ 2 ( ≠ ) = max{ φ1 ( ≠ ) p ( ≠ |≠ ) p ( viet |≠ ),<br />
φ1 ( NN ) p ( ≠| NN ) p (viet |≠ ), φ1 (VB ) p ( ≠| VB ) p (viet |≠ )}<br />
<br />
= 0.00256<br />
Do đó, ψ 2 (≠) = NN<br />
Tương tự, ta có: φ2 ( NN ) = 0.000456 ,<br />
ψ 2 ( NN ) = VB<br />
φ2 (VB ) = 0.1552 , ψ 2 (VB) = NN<br />
Xác suất Viterbi cho các thẻ của từ thứ ba :<br />
φ3 (≠) = max {φ 2 (≠) p(≠|≠) p(bao _ cao |≠) ,<br />
<br />
φ2 ( NN ) p (≠| NN ) p(bao _ cao |≠) ,<br />
<br />
φ2 (VB) p (≠| VB ) p (bao _ cao |≠)} = 0.0003104<br />
<br />
Do đó, ψ 3 (≠ ) = VB<br />
Tương tự, ta có: φ3 ( NN ) = 0.06208 ,<br />
ψ 3 ( NN ) = VB<br />
φ2 (VB ) = 0.0074496 , ψ 3 (VB ) = VB<br />
Kết quả: Tôi//NN viết//VB báo_cáo//NN<br />
Quy trình thực nghiệm và dữ liệu<br />
Vấn đề đầu tiên cần quan tâm chính là các<br />
nhãn từ loại được ký hiệu như thế nào. Với<br />
mục đích sử dụng chung kho ngữ liệu để tiện<br />
so sánh kết quả nên chúng tôi xây dựng tập<br />
nhãn từ loại tương tự với tập nhãn của nhóm<br />
VLSP. Tập nhãn đó được giới thiệu ở bảng 3.<br />
Vấn đề thứ hai là cần phải có tập ngữ liệu để<br />
thống kê xác suất. Như đã giới thiệu ở trên,<br />
chúng tôi sử dụng dữ liệu của đề tài cấp Nhà<br />
nước KC01.01/06-10 "Nghiên cứu phát triển<br />
<br />
96(08): 39 - 43<br />
<br />
một số sản phẩm thiết yếu về xử lí tiếng nói<br />
và văn bản tiếng Việt". Kết quả của đề tài<br />
được<br />
đăng<br />
t ải<br />
trên<br />
websites<br />
http://vlsp.vietlp.org:8080 để phục vụ cho các<br />
nghiên cứu tiếng Việt. Tập dữ liệu gồm 20000<br />
câu được chuẩn hoá theo tập nhãn quy ước<br />
của chúng tôi, trong đó tất cả các loại dấu câu,<br />
các ký hiệu đặc biệt được gán nhãn //S. Xác<br />
suất được tính từ tập dữ liệu huấn luyện theo<br />
công thức Maximum Likehood Estimate. Khi<br />
gán nhãn, những từ mới không có trong tập<br />
huấn luyện được xử lý bằng công thức<br />
Laplace Smoothing.<br />
Quy trình thực nghiệm gán nhãn của chúng<br />
tôi gồm các bước sau:<br />
Bước 1: Đọc tệp dữ liệu huấn luyện.<br />
Bước 2: Huấn luyện tính xác suất.<br />
Bước 3: Gán nhãn từ loại sử dụng mô hình<br />
Markov ẩn và thuật toán quy hoạch động<br />
Viterbi.<br />
Bước 4: Đánh giá bộ gán nhãn.<br />
Kết quả thực nghiệm<br />
Chúng tôi cài đặt chương trình gán nhãn từ<br />
loại tiếng Việt VnPOS bằng ngôn ngữ C# trên<br />
Winform thực hiện các chức năng: Đọc file<br />
huấn luyện; Tính và hiển thị bảng xác suất;<br />
Hiển thị từ điển; Gán nhãn file văn bản, gán<br />
nhãn câu được nhập vào từ bàn phím; Đánh<br />
giá độ chính xác của quá trình gán nhãn. Hình<br />
2 dưới đây là minh họa giao diện chính<br />
chương trình.<br />
<br />
Hình 2. Giao diện chính chương trình VnPOS<br />
<br />
41<br />
<br />
Phạm Thị Minh Thu và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
96(08): 39 - 43<br />
<br />
Bảng 3. Tập nhãn từ loại tiếng Việt<br />
STT<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
<br />
Nhãn<br />
NN<br />
NC<br />
AD<br />
CC<br />
D<br />
IN<br />
JJ<br />
<br />
Loại từ<br />
Danh từ thường<br />
Danh từ chỉ loại<br />
Phụ từ<br />
Liên từ<br />
Định từ và số từ<br />
Giới từ<br />
Tính từ<br />
<br />
Tập dữ liệu gồm 20000 câu được chia thành<br />
tập huấn luyện gồm 16000 câu và tập dùng để<br />
đánh giá gồm 4000 câu. Sau nhiều lần thực<br />
nghiệm, độ chính xác trung bình của bộ gán<br />
nhãn là 92.2%. Độ chính xác được đánh giá<br />
bằng [số từ được gán nhãn đúng] / [tổng số từ<br />
trong văn bản]. Kết quả này khá tương đồng<br />
so với bộ gán nhãn VietTagger của nhóm<br />
VLSP (93%). Trong một thực nghiệm khác,<br />
chúng tôi sử dụng toàn bộ 20000 câu của tập<br />
ngữ liệu để huấn luyện và xây dựng tập dữ<br />
liệu đánh giá khoảng 1000 câu. Kết quả độ<br />
chính xác của chương trình được cải tiến đáng<br />
kể, đạt trên 95%. Qua đó cho thấy việc mở<br />
rộng kho ngữ liệu cải thiện đáng kể độ chính<br />
xác của bộ gán nhãn. Để kiểm chứng kỹ hơn<br />
nhận định trên, chúng tôi tiến hành thay đổi<br />
độ lớn của tập huấn luyện. Kết quả cho thấy<br />
tập dữ liệu huấn luyện càng lớn thì độ chính<br />
xác của bộ gán nhãn càng cao (Hình 3).<br />
<br />
F-score (%)<br />
100<br />
95 .1<br />
95<br />
<br />
92.2<br />
<br />
90<br />
85<br />
<br />
86 .7<br />
82.6<br />
<br />
80<br />
75<br />
10<br />
<br />
12<br />
<br />
16<br />
<br />
20<br />
<br />
Sè c©u (®¬n vÞ ngh×n)<br />
<br />
Hình 3. Kết quả bộ gán nhãn<br />
khi thay đổi độ lớn tập huấn luyện.<br />
<br />
42<br />
<br />
STT<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
<br />
Nhãn<br />
NP<br />
PP<br />
RB<br />
UH<br />
VB<br />
X<br />
S<br />
<br />
Loại từ<br />
Danh từ riêng<br />
Đại từ<br />
Trợ từ<br />
Thán từ<br />
Động từ<br />
Từ không phân loại<br />
Ký hiệu đặc biệt<br />
<br />
KẾT LUẬN<br />
Trong bài báo này, chúng tôi đã giới thiệu về<br />
bài toán gán nhãn từ loại, mô hình Markov ẩn<br />
và quy trình áp dụng mô hình này cho bài<br />
toán gán nhãn từ loại tiếng Việt. Chương trình<br />
gán nhãn VnPOS do chúng tôi cài đặt thu<br />
được độ chính xác trung bình là 92.2%<br />
Chúng tôi dự định mở rộng kho ngữ liệu đồng<br />
thời áp dụng kỹ thuật tích hợp luật vào quá<br />
trình gán nhãn để hi vọng nâng cao chất<br />
lượng của VnPOS.<br />
TÀI LIỆU THAM KHẢO<br />
[1]. Diệp Quang Ban, (2004), Ngữ pháp Việt<br />
Nam, Nxb Đại học sư phạm.<br />
[2]. Nguyễn Văn Châu, Phan Thị Tươi, Cao<br />
Hoàng Trụ, (2006), "Gán nhãn từ loại cho Tiếng<br />
Việt dựa trên văn phong và tính toán xác suất",<br />
Tạp chí KH&CN, tập 9, số 2.<br />
[3]. Dinh Dien, Hoang Kiem, (2003), "POSTagger for English-Vietnamese Bilingual Corpus",<br />
HLT-NAACL 2003 Proceeding Workshop.<br />
[4]. Leech G., Garside R., and Bryant M., (1994),<br />
"CLAWS4: The tagging of the British National<br />
Corpus", In Proceedings of COLING 94, 622-628.<br />
[5]. Nguyễn Thị Huyền, Vũ Xuân Lương, Lê<br />
Hồng Phương, (2003), "Sử dụng bộ gán nhãn từ<br />
loại xác suất QTAG cho văn bản Tiếng Việt". Báo<br />
cáo hội thảo ICT.rda.<br />
[6]. Tran T-O, Le A-C, Ha Q-T, Le H-Q, (2009),<br />
"An Experimental Study on Vietnamese POS<br />
Tagging",<br />
Asian<br />
Language<br />
Processing,<br />
International Conference on, 23-27.<br />
[7]. Christopher D.Manning Hinrich Schutze,<br />
(1999), Founddations of Statistical Natural<br />
Language Processing, Massachusetts Institute of<br />
Technology, USA.<br />
[8]. Scott M. Thede and Mary P. Harper, (1999),<br />
"A Second-Order Hidden Markov Model for Partof-Speech Tagging", Proceedings of the ACL.<br />
<br />
Phạm Thị Minh Thu và Đtg<br />
<br />
Tạp chí KHOA HỌC & CÔNG NGHỆ<br />
<br />
96(08): 39 - 43<br />
<br />
SUMMARY<br />
AN EXPERIMENTAL STUDY ON VIETNAMESE PART -OF-SPEECH<br />
TAGGING USING HIDDEN MARKOV MODEL<br />
Pham Thi Minh Thu*, Dao Thi Thuy Quynh<br />
College of Sciences - TNU<br />
Part-of-Speech tagging is one of the basic problems of natural language processing, it is an<br />
important pre-processing step that effects directly to the futher grammatical analysis. In this paper,<br />
we present the experimental application of Hidden Markov model for Vietnamese POS tagging. In<br />
order to facilitate the comparison of results, we use the corpus of VLSP group for training and<br />
evaluating our POS-Tagger. Average accuracy is about 92.2%. We also investigate the impact of<br />
the training set and expand the corpus to improve the accuracy of the POS-Tagger.<br />
Key words: Part-Of-Speech tagging (POS tagging), POS-Tagger, Hidden Markov Model (HMM),<br />
corpus, training, testing<br />
<br />
*<br />
<br />
Tel: 0988 356337, Email: thupm84@gmail.com<br />
<br />
43<br />
<br />