TÓM TẮT NỘI DUNG
Phân lớp Văn bản là một trong những bài toán cơ bản và quan trọng nhất của
lĩnh vực xử lý Ngôn ngữ tự nhiên. Nó có ứng dụng rất nhiều trong các bài toán thực tế
ví dụ như: ứng dụng lọc nội dung Văn bản (lọc thư rác, lọc trang web có nội dung phản
động, trang web có nội dung không lành mạnh, ), bài toán phân lớp Văn bản sau tìm
kiếm, Hiện nay có rất nhiều bộ phân lớp đạt được độ chính xác cao (đều xấp xỉ
90%), tuy nhiên các bộ phân lớp này hầu hết chỉ áp dụng cho một Ngôn ngữ cụ thể.
Thực tế cho thấy, đối với bài toán lọc nội dung trang Web thì một vấn đề đặt ra là phải
xử lý trên nhiều Ngôn ngữ khác nhau. Một trong hướng nghiên cứu phân lớp Văn bản
được quan tâm gần đây là phân lớp đa Ngôn ngữ [7]. Khoá luận này nghiên cứu và đề
xuất một phương pháp phân lớp nội dung Web độc lập ngôn ngữ. Phương pháp này
cho phép tích hợp thêm các Ngôn ngữ mới vào bộ phân lớp và giải quyết vấn đề bùng
nổ đặc trưng thông qua hướng tiếp cận entropy cực đại và sử dụng chiến lược tối ưu
hoá hàm nhiều biến rất hiệu quả. Các kết quả thực nghiệm cho thấy hướng tiếp cận của
khoá luận rất khả quan, cụ thể, khi huấn luyện riêng biệt trên từng Ngôn ngữ đều nhận
được kết quả rất cao (Anh trên 98%, Việt trên 91%), còn khi có sự kết hợp của hai
Ngôn ngữ kết quả đạt được cũng rất khả quan (Anh-Việt xấp xỉ 95%). Đặc biệt khi cho
mô hình kiểm tra trên một tập dữ liệu hoàn toàn mới kết quả cũng rất khả quan (độ
chính xác Anh-Việt xấp xỉ 84%). Bên cạnh đó, khoá luận cũng đã phân tích các vấn đề
cơ bản của bài toán phân lớp Văn bản độc lập Ngôn ngữ đó là sự nhập nhằng ngôn ngữ
và sự bùng nổ đặc trưng, sau đó đã đưa ra các phương pháp khắc phục khá hiệu quả.
Một đề xuất mới mà khoá luận đưa ra là mô hình dựa trên cây phân lớp thông minh.
Đề xuất này có nhiều triển vọng cho các ứng dụng nhỏ cần phân loại Văn bản và nhận
diện được ngôn ngữ.
MỤC LỤC
LỜI CẢM ƠN . . i
TÓM TẮT NỘI DUNG . i
MỤC LỤC . . ii
BẢNG KÍ HIỆU VIẾT TẮT . iv
DANH MỤC BẢNG SỐ LIỆU .v
DANH MỤC HÌNH ẢNH . vi
MỞ ĐẦU .1
CHƯƠNG 1. KHÁI QUÁT VỀ PHÂN LỚP Văn bản ĐỘC LẬP Ngôn ngữ 3
1.1. Bài toán phân lớp Văn bản .3
1.1.1. Tổng quan 3
1.2. Phân lớp Văn bản độc lập Ngôn ngữ .4
1.2.1. Đặt vấn đề . .4
1.2.2. Phân lớp Văn bản độc lập Ngôn ngữ 5
1.2.3. Ý nghĩa và ứng dụng .5
CHƯƠNG 2. CÁC MÔ HÌNH VÀ THUẬT TOÁN PHÂN LỚP VĂN BẢN .7
2.1. Giới thiệu . 7
2.2. Mô hình Maximum Entropy . .7
2.2.1. Giới thiệu . 7
2.2.2. Xây dựng mô hình .9
2.3. Tổng kết chương .16
CHƯƠNG 3. PHÂN LỚP TÀI LIỆU WEB ĐỘC LẬP Ngôn ngữ VỚI MÔ HÌNH
ENTROPY CỰC ĐẠI . . .1 7
3.1 Giới thiệu . .17
3.2. Bài toán phân lớp Văn bản độc lập Ngôn ngữ 17
3.2.1. Vấn đề nhập nhằng ngôn ngữ . .17
3.2.2. Vấn đề bùng nổ đặc trưng .18
3.3. Quy trình Xây dựng bộ phân lớp . .19
3.3.1. Tiền xử lý dữ liệu 19
3.3.2. Xây dựng đặc trưng .20
3.3.3. Lựa chọn đặc trưng 21
3.3.4. Huấn luyện mô hình 23
3.3.5. Phân lớp Văn bản mới . .23
3.4. Đánh giá độ chính xác của bộ phân lớp 24
iii
3.4.1. Các độ đo . 24
3.4.2. Áp dụng phương pháp ước lượng chéo trên k tập con 25
3.5. Xây dựng bộ phân lớp trên cây phân lớp thông minh .25
3.5.1. Bản chất bài toán .26
3.5.2. Phân lớp cho Văn bản mới .26
3.5.3. Thảo luận .27
3.6. Tổng kết chương 27
CHƯƠNG 4. KẾT QUẢ THỬ NGHIỆM VÀ ĐÁNH GIÁ .28
4.1. Môi trường thử nghiệm 28
4.1.1. Môi trường phần cứng .28
4.1.2. Công cụ phần mềm . .28
4.2. Dữ liệu kiểm thử . 29
4.2.1. Tiền xử lý dữ liệu 29
4.2.2. Cây phân lớp . .30
4.3. Kết quả thử nghiệm 31
4.3.1. Quá trình huấn luyện .31
4.3.2. Lần lặp cho độ chính xác cao nhất 34
4.3.3. Kết quả kiểm tra trên dữ liệu mới .35
4.4. Tổng kết chương .36
KẾT LUẬN .37
PHỤ LỤC. DANH SÁCH STOP-WORD 38
TÀI LIỆU THAM KHẢO . . .4 1
50 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2545 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Phân lớp tài liệu Web độc lập ngôn ngữ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
a entropy cực đại là ta phải xây dựng được một phân phối thoả mãn các ràng buộc
và gần nhất với phân phối đều. Vấn đề đặt ra ở đây là làm thế nào để ta tối ưu được
13
các ràng buộc, tức tìm ra được *p C∈ làm cực đại ( )H p . Trong những trường hợp
đơn giản, chúng ta dễ dàng tìm ra mô hình phù hợp bằng các phương pháp giải tích.
Tuy nhiên trong thực tế, số các ràng buộc là rất lớn và chồng chéo nhau. Vì vậy,
chúng ta sẽ giải bài toán này theo một hướng tiếp cận khác.
Với mỗi một đặc trưng if , ta đưa vào một tham số iλ là một thừa số nhân
Lagrange. Hàm Lagrange ( ),p λΛ được định nghĩa như sau:
( ) ( ) ( ), i p i p i
i
p H p E f E fλ λΛ ≡ + −∑ % (7)
Theo lý thuyết thừa số Lagrange, phân phối xác suất ( | )p y x làm cực đại độ
đo entropy ( )H p và thoả mãn tập ràng buộc C thì cũng làm cực đại hàm ( ),p λΛ trên
không gian phân phối xác xuất P. Gọi pλ là mô hình làm cực đại hàm Lagrange
( ),p λΛ , và ( )λΨ là giá trị cực đại.
( )argmax ,
p P
p pλ λ∈= Λ (8)
( ) ( ),pλλ λΨ = Λ (9)
Ta gọi ( )λΨ là hàm đối ngẫu (dual function). Các hàm pλ , ( )λΨ đã được
tính toán, chúng có công thức như sau:
( ) ( )
1( | ) exp ,i i
i
p y x f x y
Z xλ λ
λ⎛ ⎞= ⎜ ⎟⎝ ⎠∑ (10)
( ) ( ) ( )log i p i
x i
p x Z x E fλλ λΨ = − +∑ ∑ %% (11)
Trong đó ( )Z xλ là thừa số chuẩn hoá để thoả mãn ( )| 1
y
p y xλ =∑ đối với
mọi x:
( ) ( )iexp ,i
y i
Z x f x yλ λ⎛ ⎞= ⎜ ⎟⎝ ⎠∑ ∑
Cuối cùng thay cho việc phải tìm phân phối thoả mãn tập ràng buộc lớn và
phức tạp làm cực đại độ đo entropy, ta đưa về bài toán chỉ cần tìm tập tham số *λ làm
cực đại hàm đối ngẫu ( )λΨ không còn ràng buộc.
14
Kết quả này có một ý nghĩa quan trọng. Khi đó, bất kì một thuật toán tìm cực
đại *λ cho hàm ( )λΨ có thể sử dụng để tìm ra phân phối cực đại *p của ( )H p thoả
mãn *p C∈ .
2.2.2.5. Mối quan hệ với Maximum Likelihood
Maximum likelihood là một phương pháp thống kê cổ điển, tư tưởng của nó là
làm cực đại độ đo likelihood giữa phân phối mô hình và phân phối thực nghiệm.
Hàm log-likelihood ( )pL p% của phân phối thực nghiệm p% được định nghĩa:
( ) ( ) ( ) ( ) ( ),
,,
log | , log |p x yp
x yx y
L p p y x p x y p y x≡ =∑∏ %% % (12)
Gọi pλ là mô hình làm cực đại hàm likelihood ( )pL p% , thay (10) vào phương
trình (12) ta thu được biểu thức nằm bên vế phải của phương trình (11). Từ đó ta có:
( ) ( )pL pλλΨ = %
Đến đây với kết quả từ phần trước, ta kết luận được rằng: “Mô hình *p C∈
với entropy cực đại là mô hình dưới dạng tham số ( )|p y xλ làm cực đại likelihood
trên mẫu dữ liệu huấn luyện”. Sự tương đương này cung cấp một phương pháp mới
cho phép ước lượng tham số cho các phân phối mô hình dựa trên nguyên lý entropy
cực đại bằng cách sử dụng các phép ước lượng tham số cho likelihood cực đại.
2.2.2.6. Các thuật toán ước lượng tham số
Có nhiều thuật toán dùng để ước lượng tham số, điển hình là các thuật toán
GIS, IIS, L-BFGS. Trong khoá luận này, chúng tôi xin giới thiệu thuật toán L-BFGS là
thuật toán ước lượng tập tham số hiệu quả nhất hiện nay.
Cho tập dữ liệu huấn luyện ( ) ( ){ }1 1, ,..., ,N NT x y x y= .
Phân phối mũ:
( ) ( )
1( | ) exp ,i i
i
p y x f x y
Z xλ λ
λ⎛ ⎞= ⎜ ⎟⎝ ⎠∑
Huấn luyện mô hình entropy cực đại chính là ước lượng tập trọng số
{ },...,i kλ λ λ= để phân phối mũ ở trên đạt cực đại cao nhất.
15
Thuật toán L-BFGS là phương pháp giới hạn bộ nhớ cho phương pháp quasi-
Newton (Limited memory BFGS). Phương pháp này cung cấp khả năng tối ưu hàng
triệu tham số với tốc độ rất nhanh vì vậy trong các nghiên cứu mới đây nó được đánh
giá là hiệu quả hơn các phương pháp khác.
Viết lại hàm log-likelihood khi thay ( )|p y xλ từ () vào ():
( ) ( ) ( )
1 1 1 1
, log exp ,
N k N k
j j i i j j i
i j i a A j
L p f x y f y xλ λ λ
= = = ∈ =
⎛ ⎞= − ⎜ ⎟⎝ ⎠∑∑ ∑ ∑ ∑
Tư tưởng của thuật toán là sử dụng phương pháp leo đồi tìm kiếm cực đại toàn
cục. Vì bề mặt của hàm ( )L pλ là lồi nên hoàn toàn có thể thực hiện được điều này.
Các thủ tục lặp được sử dụng để tiến gần đến tối ưu toàn cục của hàm ( )L pλ . Tại mỗi
bước lặp ta tìm vec-tơ gradient nào có hướng tiến tới cực đại toàn cục nhất. Trên bề
mặt của một hàm lồi, vec-tơ gradient thoả mãn điều kiện đó sẽ có giá trị bằng 0
r
. Với
mỗi một vec-tơ gradient ( ) ( )
1
,...,
N
L p L pλ λ
λ λ
∂ ∂⎛ ⎞⎜ ⎟∂ ∂⎝ ⎠
hiện tại xác định cho ta một tập các
trọng số.
Thành phần thứ i của vec-tơ gradient của ( )L pλ là:
( ) ( ) ( )( ) ( )( )( )
( ) ( ) ( )
( ) ( )
n
i=1
n
1 1
i=1
1 1
exp , ,
,
exp ,
, | ,
, ,
N N i i j j jy Y
i j j
j ji i i jy Y
N N
i j j j i j
j j y Y
p i p i
f y x f y xL p
f x y
f y x
f x y p y x f y x
E f x y E f x yλ
λ
λ
λ
λ λ
∈
= = ∈
= = ∈
∂ = −∂
= −
= −
∑ ∑∑ ∑ ∑ ∑
∑ ∑∑
%
Trong mỗi bước lặp thủ tục L-BFGS yêu cầu giá trị hiện tại của ( )L pλ và
vec-tơ gradient hiện tại. Sau đó nó tính toán để cập nhật giá trị mới cho tập tham số
{ }1,..., Nλ λ . Cuối cùng, ta thu được tập trọng số tối ưu { }* *1 ,..., Nλ λ sau một số hữu hạn
các bước lặp.
( ) ( ) ( )( )
|
|
p x y p y
p y x
p x
=
16
2.3. Tổng kết chương
Trong chương này chúng ta đã xem xem xét các vấn đề cơ bản của nguyên lý
entropy cực đại theo hướng ứng dụng vào bài toán phân lớp văn bản. Chúng ta đã hiểu
được tư tưởng chủ đạo của nguyên lý entropy, thấy được khả năng cho phép tích hợp
được hàng nghìn đặc trưng của mô hình này. Chương này cũng trình bày được mối
liên hệ giữa lilelihood cực đại và entropy cực đại, đó là sự tương đương trong ước
lượng tham số cho mô hình tối ưu. Thuật toán ước lượng L-BFGS là phương pháp ước
lượng tham số tối ưu thông qua log-likelihood cũng đã được trình bày ở đây. Điều đó
khẳng định sức mạnh của phương pháp entropy cực đại, đặc biệt là khi ứng dụng vào
bài toán phân lớp văn bản.
Chương đầu đã giới thiệu về bài toán phân lớp văn bản độc lập ngôn ngữ nói
chung và bài toán phân lớp tài liệu web độc lập ngôn ngữ nói riêng. Chương tiếp theo
sẽ đề cập đến bài toán chính của khoá luận một cách chi tiết, phân tích những vấn đề
sẽ gặp phải với bài toán phân lớp văn bản độc lập ngôn ngữ. Và cũng trong chương
tới, chúng ta sẽ xem xét việc xây dựng bộ phân lớp tài liệu web độc lập ngôn ngữ với
mô hình entropy cực đại.
17
Chương 3
PHÂN LỚP TÀI LIỆU WEB ĐỘC LẬP NGÔN NGỮ
VỚI MÔ HÌNH ENTROPY CỰC ĐẠI
3.1 Giới thiệu
Trong chương 1, chúng ta đã giới thiệu một cách tổng quát về bài toán phân
lớp văn bản độc lập ngôn ngữ, về các những nhu cầu thực tế, ứng dụng cũng như ý
nghĩa của bài toán. Chương này trình bày việc giải quyết bài toán phân lớp độc lập
ngôn ngữ, phân tích đầy đủ các vấn đề là thách thức đối với bài toán, và đưa ra các
cách giải quyết cho các vấn đề đó. Trong đó có đề xuất một chiến lược loại bỏ stop-
word trong n-gram khá hiệu quả. Đồng thời, trong chương này cũng trình bày được
các bước xây dựng bộ phân lớp ứng dụng nguyên lý entropy cực đại. Đặc biệt ở phần
cuối chương chúng tôi đề xuất cách xây dựng một bộ phân lớp văn bản có khả năng
đặc biệt, cho phép phân lớp và nhận dạng ngôn ngữ cho văn bản mà không cần sử
dụng công cụ nhận dạng.
3.2. Bài toán phân lớp văn bản độc lập ngôn ngữ
Như đã phân tích ở chương 1, nhu cầu phân lớp và lọc các tài liệu web đa
ngôn ngữ hiện nay là rất cần thiết. Vì vậy bài toán phân lớp văn bản cho nhiều ngôn
ngữ ra đời. Kèm theo đó là những vấn đề mà bài toán phân lớp văn bản đa ngôn ngữ
nói chung, bài toán phân lớp văn bản độc lập ngôn ngữ nói riêng cần phải giải quyết.
Hai vấn đề quan trọng nhất:
9 Sự nhập nhằng ngôn ngữ: giữa hai hay nhiều ngôn ngữ có từ trùng nhau -
vấn đề này chưa hề xuất hiện trong các bài toán phân lớp văn bản trên một
ngôn ngữ.
9 Số lượng đặc trưng vô cùng lớn có thể dẫn tới bùng nổ tổ hợp. Vì vậy
nhiệm vụ cốt lõi cho bài toán là phải có những chiến lược trích chọn đặc
trưng tốt.
3.2.1. Vấn đề nhập nhằng ngôn ngữ
Trường hợp xuất hiện các từ giống nhau giữa hai ngôn ngữ không phải hiếm,
trong khoá luận này tạm gọi đó là hiện tượng nhập nhằng ngôn ngữ. Ở đây đã loại trừ
18
trường hợp hai chữ khác nhau của hai ngôn ngữ có mã giống nhau vì Unicode đã hỗ
trợ khả năng mã hoá và nhận diện được chúng.
Ở một số ngôn ngữ có số lượng từ trùng nhau nhiều nhưng nghĩa của chúng lại
gần như tương đồng. Ví dụ, chữ Trung Quốc và Nhật Bản cùng sử dụng một lượng lớn
chữ Kanji nhưng nghĩa lại hoàn toàn giống nhau. Hoặc với tiếng Anh, Pháp, Đức là ba
ngôn ngữ có hệ từ vựng khá giống nhau, các từ giống nhau thì nghĩa cũng khá giống
nhau.
Các trường hợp nêu trên thường chỉ xảy ra với các ngôn ngữ cùng một Hệ chữ
viết. Còn trong trường hợp các ngôn ngữ khác hệ chữ viết, có khi cả các ngôn ngữ
trong cùng một Hệ chữ viết vẫn xảy ra sự nhập nhằng. Ví dụ: chữ “can” trong tiếng
Việt có nghĩa hoàn toàn khác với chữ “can” trong tiếng Anh. Nếu xét về bản chất, vấn
đề này giống như hiện tượng đồng âm khác nghĩa của từ trong bài toán phân lớp văn
bản đơn ngôn ngữ. Do đó nghĩa của từ dễ dàng được xác định khi có sự hỗ trợ của các
từ xung quanh. Rõ ràng “can_nước” khác với “can_you” nên đặc trưng của các N-
gram này có độ tin cậy cao khi phân lớp. Mà xu thế những đặc trưng có đô tin cậy cao
thì được gán trọng số lớn hơn trong quá trình học.
Như vậy, qua đây có thể khẳng định vấn đề nhập nhằng ngôn ngữ không ảnh
hưởng đến độ chính xác của bộ phân lớp, nếu có cũng chỉ là rất nhỏ.
3.2.2. Vấn đề bùng nổ đặc trưng
Trong các bài toán phân lớp văn bản trên một ngôn ngữ thì giai đoạn lựa chọn
đặc trưng luôn được coi là một nhiệm vụ quan trọng. Đặc trưng càng được lựa chọn
tinh tế thì độ chính xác và tốc độ của bộ phân lớp càng tăng. Với bài toán phân lớp văn
bản đa ngôn ngữ nói chung và bài toán phân lớp văn bản độc lập ngôn ngữ nói riêng
còn xảy ra hiện tượng bùng nổ đặc trưng: số lượng các đặc trưng quá lớn. Ví dụ, giả sử
một văn bản có độ dài trung bình là 2.000 từ, giả sử ta dùng n-gram với n= 1, 2, 3 thì
với 16.000 văn bản Anh, Pháp và Việt số đặc trưng sẽ xấp xỉ 96 triệu. Đây quả là một
con số khổng lồ, đòi hỏi phải thao tác trên máy tính có hiệu năng rất lớn.
Với tập các đặc trưng lớn như vậy còn nảy sinh hai vấn đề: dữ liệu thưa và
overfitting. Dữ liệu thưa tồn tại các đặc trưng xuất hiện rất ít, hoặc rất nhiều.
Overfitting là hiện tượng tương đối đặc biệt và ít gặp trong thực tế. Vì vậy có thể nói,
nhiệm vụ lựa chọn đặc trưng là một nhiệm vụ quan trọng trong bài toán phân lớp đa
ngôn ngữ.
19
Để giải quyết vấn đề này, trong khoá luận chúng tôi cố gắng một cách tối đa
loại bỏ những đặc trưng không quan trọng. Điều này được thực hiện trong các bước
xây dựng mô hình như lọc các nhiễu một cách triệt để, đưa ra và sử dụng các chiến
lược lựa chọn đặc trưng như: loại bỏ các n-gram chứa stop-word, đặt ngưỡng, sử dụng
trọng số TF.IDF.
3.3. Quy trình xây dựng bộ phân lớp
Các bước xây dựng bộ phân lớp được tiến hành theo một quy trình như sau:
Xử lý dữ liệu
Dữ liệu
huấn luyện
Sinh N-gram
Xây dựng
đặc trưng
Lựa chọn
đặc trưng
Huấn luyện
mô hình
Tập trọng
số
Văn bản
mới
Văn bản
được phân
lớp
Hình 2. Mô tả các bước xây dựng bộ phân lớp
3.3.1. Tiền xử lý dữ liệu
3.3.1.1. Lọc nhiễu
Tập dữ liệu huấn luyện trong các kĩ thuật học máy giám sát luôn đòi hỏi phải
được làm sạch trước khi đưa vào huấn luyện. Trên Internet có rất nhiều thông tin xuất
hiện dưới nhiều dạng khác nhau. Loại bỏ đi những thông tin dưới dạng hình ảnh, âm
thanh, quảng cáo, thông tin không nằm trong phần nội dung của trang web, các thẻ
html,… được gọi là lọc nhiễu.
20
Làm sạch dữ liệu cho bài toán phân lớp không phải là một việc dễ dàng, và với
bài toán phân lớp nhiều ngôn ngữ thì còn đòi hỏi nhiều công sức hơn. Thông thường ta
lấy dữ liệu từ nhiều nguồn, nên mỗi một trang sẽ có một bố cục khác nhau, điều này
gây khó khăn cho chúng ta khi muốn xây dựng một công cụ lọc nhiễu áp dụng cho tất
cả các trang web.
3.3.1.2. Cây phân lớp chuẩn
Cũng như các mô hình phân lớp văn bản đơn ngôn ngữ, mô hình phân lớp văn
bản độc lập ngôn ngữ cũng phải xây dựng một cây phân lớp chuẩn. Cây phân lớp
chuẩn là tập các lớp mà ta muốn xếp văn bản vào. Với mỗi một ứng dụng cụ thể ta
phải xây dựng những cây phân lớp khác nhau. Ví dụ, cây phân lớp cho bộ lọc thư rác
là: Spam, non-Spam, Warning; cây phân lớp cho bộ phân lớp lĩnh vực sách giáo khoa:
Toán học, Vật lý, Hoá học,…
Cây phân lớp phải đảm bảo tính toàn vẹn và tính tách rời. Một văn bản bất kì
phải được phân vào một trong các lớp của cây.
3.3.2. Xây dựng đặc trưng
Chúng tôi sử dụng mô hình ngôn ngữ N-gram để xây dựng các mệnh đề thông
tin ngữ cảnh, từ đó xây dựng các đặc trưng trước khi đưa vào huấn luyện mô hình.
3.3.2.1. Mô hình ngôn ngữ N-gram
Xét trong một văn bản, N-gram là một cụm từ gồm N từ liên tiếp cùng xuất
hiện trong văn bản đó. Nếu độ dài tính theo từ của một văn bản là L, thì số N-gram
sinh ra là
2
)1(* +− NLL . Như vậy N càng lớn thì số lượng N-gram sinh ra càng lớn.
Qua quá trình thử nghiệm, xây dựng đặc trưng với 1, 2, 3, 4N = và với
1, 2, 3N = chúng tôi nhận thấy với cách sử dụng tối đa 3N = thời gian huấn luyện và
thời gian phân lớp nhanh hơn so với cách sử dụng tối đa 4N = , trong khi đo độ chính
xác mô hình là gần như nhau. Vì vậy chúng tôi sử dụng 1, 2, 3N = .
3.3.2.2. Đặc trưng
Có được tập hợp các N-gram, ta tiến hành xây dựng các mệnh đề thông tin
ngữ cảnh. Mệnh đề mô tả thông tin ngữ cảnh là một mệnh đề chỉ ra văn bản hiện tại
chứa một N-gram nào đó. Ví dụ,
[document has giá_xăng_dầu]
21
Theo cách mà nguyên lý Entropy đã cung cấp để xây dựng đặc trưng: một đặc
trưng là sự kết hợp giữa mệnh đề mô tả thông tin ngữ cảnh ( )cp x và nhãn của lớp
tương ứng với văn bản. Ví dụ, với 'y là lớp “bss” (business) ta có một đặc trưng như
sau:
( ) ⎩⎨
⎧ ===
0
___andif1
,,___
truedauxanggiahasdocumentbssy
yxf bssdauxanggiahasdocument
Đặc trưng này sẽ có giá trị đúng nếu văn bản hiện tại chứa cụm từ “giá xăng
dầu” và nó được gán nhãn “bss”.
Cần chú ý rằng, số lượng các mệnh đề thông tin ngữ cảnh sinh ra nhỏ hơn số
lượng các N-gram (vì có những N-gram trùng nhau cũng xuất hiện trong một văn bản),
và cũng không bằng số lượng các đặc trưng.
3.3.3. Lựa chọn đặc trưng
3.3.3.1. Chiến lược loại bỏ stop-word
Bản chất của các ngôn ngữ tự nhiên là luôn có các từ xuất hiện nhiều, nhưng
không mang nhiều ý nghĩa để phân loại. Trong tiếng Anh gọi đó là stop-word. Ngôn
ngữ nào cũng có stop-word, tuy nhiên do tiếng Anh được xử lý nhiều nên người ta xây
dựng danh sách stop-word cho nó khá rõ ràng. Ở một số ngôn ngữ khác, ví dụ như
tiếng Việt cũng sẽ có danh sách stop-word cụ thể như tiếng Anh nếu được xử lý nhiều
trong tương lai [2]. Stop-word không những dư thừa, khi kết hợp với các từ khác để
xây dựng đặc trưng chúng còn gây ra hiện tượng overfitting. Qua thử nghiệm trên một
bộ phân lớp văn bản trên tiếng Anh, sau khi lọc stop-word độ chính xác huấn luyện
(trainning accuracy) tăng lên đáng kể. Vì vậy loại bỏ stop-word là rất cần thiết.
Tuy nhiên, nếu đối với bài toán phân lớp văn bản trên nhiều ngôn ngữ, loại bỏ
stop-word cho văn bản thì nghiễm nhiên các văn bản đã mất đi sự bình đẳng. Nói cách
khác, các văn bản đòi hỏi được nhận dạng ngôn ngữ. Bài toán phân lớp trong Khóa
luận không hướng tới việc nhận dạng ngôn ngữ để loại bỏ stop-word nhưng làm thế
nào để loại bỏ chúng. Ở đây, chúng tôi đề xuất một phương pháp khá hiệu quả: vẫn tận
dụng được đặc điểm về ngôn ngữ mà vẫn giữ tính độc lập ngôn ngữ của bài toán.
Phương pháp này áp dụng sau khi sinh n-gram, và loại bỏ theo hai quy tắc sau:
- Loại bỏ các 1-gram, 2-gram, 3-gram là stop-word: điều này có lợi với các
ngôn ngữ mà đơn vị nhỏ nhất không phải là từ. Ví dụ, với tiếng Việt đơn
vị nhỏ nhất là âm tiết: từ “có_thể” rõ ràng là một stop-word.
22
- Loại bỏ 2-gram, 3-gram mà mỗi gram là một stop-word. Ví dụ, câu “he is
in Hanoi” sinh ra 2-gram “is_in” chứa 2 stop-word là “is” và “in”.
Qua thực nghiệm mà chúng tôi tiến hành, phương pháp này làm giảm đi
31,7% tổng số đặc trưng so với loại stop-word từ văn bản trước khi sinh n-gram là
33%. Như vậy đây thực sự là chiến lược tốt.
3.3.3.2. Đặt ngưỡng
Thực tế cho thấy, có những mệnh đề thông tin ngữ cảnh xuất hiện nhiều lần
trong một văn bản và những mệnh đề thông tin ngữ cảnh xuất hiện rất ít lần. Ví dụ
trong câu “Giá dầu đang ngày một leo thang”:
[document has dầu_đang_ngày]
Để loại bỏ những mệnh đề thông tin ngữ cảnh không có nhiều ý nghĩa này,
chiến lược lọc đặt ngưỡng chỉ đơn giản đặt ngưỡng cho sự xuất hiện của một mệnh đề
thông tin ngữ cảnh trong toàn bộ tập mệnh đề thông tin ngữ cảnh: nếu số lần xuất hiện
nằm ngoài một khoảng nào đó thì bị loại bỏ.
3.3.3.3. TF.IDF
TF.IDF là một kĩ thuật thống kê đánh giá ý nghĩa, độ quan trọng của một cụm
từ đối với một văn bản, hoặc một lớp.
TF (term frequency) là độ đo tần số: tần suất xuất hiện của cụm từ trong một
văn bản:
i
kk
ntf
n
= ∑
in là số lần xuất hiện của cụm từ trong toàn bộ văn bản. IDF (inverse
document frequency) là độ đo tổng quát độ quan trọng của cụm từ:
Trọng số TF.IDF được tính bằng công thức:
( ). log j i
D
tf idf tf
d t
⎛ ⎞⎜ ⎟= × ⎜ ⎟⊃⎝ ⎠
trong đó,
- D: là số các văn bản trong tập dữ liệu huấn luyện.
- ( )ij td ⊃ : là số các văn bản mà cụm từ ti xuất hiện thoả mãn in khác 0.
23
Một cụm từ t xuất hiện nhiều lần trong văn bản, và xuất hiện ít lần trong các
văn bản khác của tập dữ liệu mẫu thì có trọng số TF.IDF cao. Với tính chất như vậy,
TF.IDF có ý nghĩa trong việc lọc bỏ các cụm từ chung. Chúng ta cũng có thể sử dụng
phương pháp này để tìm những cụm từ mang ý nghĩa phân lớp cao bằng cách đánh
trọng số của từ trên một lớp.
3.3.4. Huấn luyện mô hình
Sau khi đã xây dựng được tập các đặc trưng ta tiến hành huấn luyện mô hình.
Ở bước này chính là lúc áp dụng các thuật toán ước lượng tham số để tìm ra tập trọng
số λ (mỗi một đặc trưng if sẽ được gán một trọng số iλ ). Một văn bản mới có một
tập các đặc trưng, chính tập trọng số sẽ quyết định mức độ quan trọng của các đặc
trưng và chúng ảnh hưởng trực tiếp đến quá trình phân lớp cho văn bản mới, từ đó dự
đoán một cách chính xác lớp cho văn bản đó.
Trong quá trình huấn luyện mô hình, chúng ta cần tiến hành đánh giá độ chính
xác của bộ phân lớp. Nói cách khác, trong quá trình này cần đánh giá khả năng đoán
nhận của mô hình thông qua độ chính xác (accuracy) của quá trình huấn luyện.
3.3.5. Phân lớp văn bản mới
Với một văn bản mới, bộ phân lớp sẽ thực hiện tính toán xác suất trên từng lớp
của văn bản. Tổng các giá trị xác suất này bằng 1. Lớp nào có giá trị cao nhất, văn bản
sẽ thuộc lớp đó.
Lớp cho văn bản mới được tính theo công thức sau:
* argmax ( | )
y
y p y xλ=
trong đó, *y là lớp tương ứng với xác suất ( )xyp |λ cao nhất. Hàm argmax là
hàm cực đại đối số, nó trả về giá trị của argument (ở đây là y) mà tại đó hàm đạt max.
Rõ ràng, những đặc trưng quan sát được trong văn bản mới mà không có trong
mô hình, tức là không quan sát thấy trong tập dữ liệu huấn luyện sẽ nhận giá trị sai,
xem như là không có vì vậy chúng không làm ảnh hưởng đến xác suất của văn bản trên
từng lớp. Chỉ những đặc trưng có giá trị là đúng mới có ý nghĩa quan trọng quyết định
văn bản đó thuộc lớp nào.
Thực tế, tính tách rời của cây phân lớp chuẩn khó có thể được đảm bảo, vì có
rất nhiều văn bản có thể được chia vào nhiều lớp. Trong trường hợp này, chúng ta sẽ
sử dụng chiến lược phân đa lớp dựa trên độ lệch chuẩn đã đề xuất tại [1].
24
3.4. Đánh giá độ chính xác của bộ phân lớp
Bên cạnh việc xây dựng một bộ phân lớp hoàn chỉnh thì việc đánh giá ước
lượng độ chính xác của bộ phân lớp đó không kém phần quan trọng. Trên cơ sở đó
mới so sánh được chất lượng của các bộ phân lớp khác nhau (trên cùng một tập dữ liệu
thử nghiệm). Đã có rất nhiều các phương pháp ước lượng độ chính xác của một bộ
phân lớp, ví dụ như: handout method, ước lượng chéo trên k tập con (k-fold cross
validation), hay leave-one-out cross validation,… Trong khoá luận, chúng tôi sử dụng
phương pháp ước lượng chéo trên k tập con. Ý nghĩa của phương pháp này là để đo độ
chính xác của mô hình trên toàn tập dữ liệu; có nghĩa là đánh giá mức độ thích ứng
cũng như sức mạnh phân lớp của mô hình một cách chính xác hơn, toàn diện hơn.
3.4.1. Các độ đo
Độ hồi tưởng, độ chính xác, độ đo F1 là các độ đo cơ bản trong lý thuyết nhận
thông tin (Information Retrival).
2* *
num_of_matchprecision
num_of_model
num_of_matchrecall
num_of_manual
precision recallF1
precision recall
=
=
= +
trong đó,
- num_of_match: số lượng văn bản trùng hợp mà mô hình và con người cùng
phân lớp vào một lớp nào đó.
- num_of_model: số lượng văn bản mà mô hình đã gán cho một lớp nào đó.
- num_of_manual: số lượng văn bản được con người (gán bằng tay) gán vào
một lớp nào đó.
Độ chính xác mà chúng ta sử dụng để đánh giá mô hình được tính là số lượng
văn bản được phân lớp đúng bởi mô hình chia cho tổng số lượng văn bản.
Vì vậy nếu xét trên tổng thế thì độ chính xác, precision, recall, F1 có cùng giá
trị.
25
3.4.2. Áp dụng phương pháp ước lượng chéo trên k tập con
Tư tưởng của phương pháp ước lượng chéo trên k tập con là phương pháp
đánh giá độ chính xác của hệ thống thông qua việc tính toán độ chính xác trung bình
trên k tập con. Ưu điểm của phương pháp này là toàn bộ tập dữ liệu huấn luyện đều
được lấy làm tập kiểm tra [21].
Trong khoá luận, chúng tôi sử dụng k = 10 là giá trị phổ biến để có được một
ước lượng chính xác. Hệ thống chia dữ liệu thực nghiệm thành 10 phần bằng nhau một
cách ngẫu nhiên. Quá trình huấn luyện được thực hiện 10 lần. Tại lần huấn luyện thứ i
( 0 < i < 10), tập con thứ i được chọn làm tập kiểm tra, 9 tập còn lại được trộn lại với
nhau làm tập huấn luyện. Cũng trong mỗi lần huấn luyện này, sau mỗi bước lặp tập
trọng số λ được cập nhật, hệ thống tiến hành phân lớp tập dữ liệu kiểm tra, rồi tính
toán độ chính xác của mô hình.
3.5. Xây dựng bộ phân lớp trên cây phân lớp thông minh
Phần 3.2 và 3.3 đã trình bày về cách giải quyết khó khăn cho bài toán phân lớp
văn bản độc lập ngôn ngữ, và cách xây dựng bộ phân lớp cho bài toán này. Tuy nhiên,
có thể thấy rằng ứng dụng cho bài toán này là các bài toán không đòi hỏi nhận diện
ngôn ngữ cho văn bản. Trong thực tế, có thể thấy rất nhiều ứng dụng phân lớp văn bản
đòi hỏi nhận diện được ngôn ngữ. Ví dụ, bộ phân lớp sách thay cho công việc của một
thủ thư kho sách điện tử cần xếp sách vào lớp với ngôn ngữ tương ứng, hay các tin bài
của các hãng tin lớn cần được xếp vào chuyên mục tin của ngôn ngữ tương ứng. Tuy
nhiên nếu sử dụng thêm một bộ nhận dạng ngôn ngữ tốn kém và làm chậm quá trình
phân lớp.
Xuất phát từ nhu cầu đó, và hướng tới các ứng dụng nhỏ khoá luận đề xuất
xây dựng một bộ phân lớp văn bản độc lập ngôn ngữ trên cây phân lớp thông minh.
Quá trình xây dựng bộ phân lớp này hoàn toàn giống với quá trình xây dựng bộ phân
lớp trong phần 3.3. Điểm khác duy nhất nằm ở cây phân lớp. Giả sử trong cây phân
lớp chuẩn của bộ phân lớp L ngôn ngữ có N lớp, thì ở cây phân lớp thông minh sẽ có
L N× lớp.
26
Bảng 1. Cây phân lớp thông minh tổng quát
STT lang1 lang2 … langL
1 lang1_class1 lang2_class1 … langL_class1
2 lang1_class2 lang2_class3 … langL_class2
…
N lang1_classN lang2_classN … langL_classN
Bộ phân lớp xây dựng trên cây phân lớp thông minh, vừa có khả năng phân
lớp văn bản, vừa có khả năng nhận dạng văn bản được viết bởi nhưng ngôn ngữ nào.
Đây là một ví dụ cây phân lớp thông minh cho bài toán phân lớp tác phẩm văn học: giả
sử chỉ lấy trên 3 lớp là: Thơ, Truyện, Tuỳ bút đối với 2 ngôn ngữ là tiếng Anh và tiếng
Trung.
Bảng 2. Bảng ví dụ cho cây phân lớp thông minh
STT Anh Trung Quốc Mô tả
1 en_po cn_po tác phẩm là thơ
2 en_st cn_st tác phẩm là truyện, truyện ngắn, tiểu thuyết,…
3 en_dl cn_dl tác phẩm là kí sự, tuỳ bút,…
3.5.1. Bản chất bài toán
Xét hai bài toán phân lớp văn bản trên nhiều ngôn ngữ, và bài toán nhận dạng
ngôn ngữ. Điểm chung giữa hai bài toán này là đều có thể sử dụng chung một tập dữ
liệu chú ý rằng đây không phải là tập dữ liệu huấn luyện. Với bài toán phân lớp thì gán
nhãn văn bản theo lớp, bài toán nhận dạng ngôn ngữ gán nhãn văn bản theo ngôn ngữ.
Lợi dụng điều này, ta sẽ gán nhãn văn bản theo cả lớp và ngôn ngữ. Trong ví dụ trên
en_po là nhãn cho lớp thơ và ngôn ngữ là tiếng Anh. Như vậy, thực chất nhãn trong
cây phân lớp thông minh là bao gồm nhiều nhãn, cụ thể ở đây là: nhãn lớp (lĩnh vực)
và nhãn ngôn ngữ. Chính vì lý do này, chúng tôi gọi cây phân lớp như vậy là cây phân
lớp thông minh.
3.5.2. Phân lớp cho văn bản mới
Với một văn bản mới, bộ phân lớp tiến hành phân lớp cho văn bản. Các bước
thực hiện giống như việc phân lớp văn bản của bộ phân lớp trên cây phân lớp chuẩn.
Nếu văn bản được viết bởi 1 ngôn ngữ, các n-gram sinh ra sẽ mang đặc trưng
của ngôn ngữ. Nên sác xuất của văn bản đó sẽ có xu hướng nghiêng hẳn về một lớp.
Với trường hợp lĩnh vực của văn bản có sự nhập nhằng ta sẽ sử dụng chiến lược phân
27
đa lớp cho văn bản. Nếu văn bản được phân vào lớp en_st tức là văn bản thuộc thể loại
Truyện nhưng viết bằng tiếng Anh. Nếu văn bản được phân vào lớp cn_st và cn_dl thì
văn bản được phân vào cả hai lớp Truyện và Tuỳ bút nhưng nó được viết bằng tiếng
Trung.
Nếu văn bản được viết bởi nhiều ngôn ngữ, sẽ xuất hiện n-gram sinh ra đặc
trưng cho nhiều ngôn ngữ khác nhau. Đến đây là tiếp tục sử dụng chiến lược phân đa
lớp để tìm lớp cho văn bản. Nếu văn bản được phân vào hai lớp: en_dl và cn_dl có
nghĩa là văn bản thuộc lĩnh vực Tuỳ bút nhưng được viết bởi cả hai ngôn ngữ Anh và
Trung.
3.5.3. Nhận xét về phương pháp
Thời gian huấn luyện bằng với thời gian huấn luyện của bộ phân lớp văn bản
độc lập ngôn ngữ trên cây phân lớp chuẩn. Nhưng thời gian phân lớp thì lâu hơn.
Nguyên nhân là do sự kết hợp giữa tập mệnh đề thông tin ngữ cảnh và số các lớp làm
số lượng đặc trưng tăng gấp L lần (số các ngôn ngữ). Do đó một lần nữa chúng ta
khẳng định lại rằng, bộ phân lớp này phù hợp cho các ứng dụng nhỏ.
3.6. Tổng kết chương
Chương này đã xem xét các khía cạnh điển hình về bài toán phân lớp văn bản
độc lập ngôn ngữ cũng như cách xây dựng bộ phân lớp với việc ứng dụng mô hình
Entropy cực đại. Đặc biệt, hai vấn đề nhập nhằng ngôn ngữ và bùng nổ đặc trưng là
những khó khăn thách thức đối với bài toán phân lớp văn bản độc lập ngôn ngữ đã
được phân tích và giải quyết bằng các phương pháp cụ thể. Khóa luận đã có một đề
xuất lựa chọn đặc trưng rất ý nghĩa là phương pháp loại bỏ stop-word trong n-gram
khá hiệu quả. Và cuối cùng một đề xuất có ý nghĩa ứng dụng và tính thực tế cao đó là
việc xây dựng bộ phân lớp trên cây phân lớp thông minh. Bộ phân lớp như vậy rất hiệu
quả trong việc giải quyết các bài toán phân lớp văn bản và muốn nhận dạng ngôn ngữ
mà không cần sử dụng một bộ nhận dạng ngôn ngữ nào khác. Bài toán này rất phù hợp
cho các ứng dụng nhỏ.
Chương tiếp theo trình bày các thử nghiệm thực tế các nghiên cứu lý thuyết
trên tập dữ liệu cụ thể được lấy từ các hãng tin cho hai ngôn ngữ Anh, Việt và đánh giá
kết quả thu được.
28
Chương 4
KẾT QUẢ THỬ NGHIỆM VÀ ĐÁNH GIÁ
4.1. Môi trường thử nghiệm
4.1.1. Môi trường phần cứng
Bài toán được thử nghiệm trên máy chủ IBM có cấu hình như sau:
Bảng 3. Cấu hình hệ thống chạy thử nghiệm
Thành phần Chỉ số
CPU 2 Xeon 3.00GHz
RAM 4096MB
HDD 4 x 36.4 GB
OS Debian 3.1 (Sarge)
4.1.2. Công cụ phần mềm
Tồn tại một số phần mềm nguồn mở đối với bài toán phân lớp văn bản sử
dụng MEM như FlexME, MaxEnt... Chúng tôi chọn lựa công cụ mã mở MaxEnt của
tác giả Zhang Le tại Centre for Speech Technology Research, University of
Edinburgh.
Đây là một bộ công cụ ứng dụng entropy cực đại viết trên nền Python và C++.
Ngoài ra, khoá luận sử dụng một số công cụ phần mềm hỗ trợ trong quá trình
thử nghiệm được mô tả trong bảng sau:
Bảng 4. Danh sách phần mềm sử dụng để thử nghiệm
STT Tên phần mềm Nguồn
1 Offline Explorer Enterprise
2 PHP
3 Debian 3.1
Trong quá trình chuẩn bị dữ liệu, đối với mỗi ngôn ngữ tự nhiên, chúng tôi
viết một số công cụ chạy trên nền Linux và bộ thông dịch PHP.
29
Bảng 5. Danh sách công cụ sử dụng để thử nghiệm
STT Tên công cụ Mô tả
1 gethtml.php Thu thập các file HTML trong thư mục lưu trang Web của phần mềm Explorer Offline.
2 html2text.php Công cụ lọc nhiễu và chuyển đổi biểu diễn kí tự Unicode (NCR sang UTF-8). Công cụ này trích phần tiêu đề và nội dung bài báo.
3 text2ngram.php Công cụ sinh n-gram từ các file text do html2text.php sinh ra. Có loại bỏ các từ phổ biến.
4 maketrain.php Công cụ tạo file train từ các file n-gram do text2ngram.php sinh ra có gán nhẵn lớp tương ứng.
5 maketest.php Công cụ tạo file kiểm tra trực tiếp từ file html bất kì (có loại các thẻ HTML và chuyển đổi biểu diễn kí tự Unicode).
4.2. Dữ liệu kiểm thử
Dữ liệu dùng để huấn luyện mô hình là các tin bài được lấy từ các trang báo
điện tử của hai ngôn ngữ Anh và Việt. Đây đều là những hãng tin có uy tín về nội
dung tin bài cũng như độ tin cậy của các chuyên mục tin được phân chia. Tiếng Anh:
Tiếng Việt:
Trong khoá luận chúng tôi tiến hành thử nghiệm trên từng bộ phân lớp đơn
ngôn ngữ, và trên bộ phân lớp kết hợp ngôn ngữ.
4.2.1. Tiền xử lý dữ liệu
Hình 3. Trang tin tức tiếng Việt VnExpress.net
30
Hình 4. Trang tin tức tiếng Anh BBC News
Trong hình 3 và hình 4, chúng ta cần lấy phần “Nội dung cần lấy”, các phần
còn lại được gọi là nhiễu và sẽ bị loại bỏ bằng quá trình tiền xử lý trong công cụ
html2text.php. Mỗi một ngôn ngữ có một công cụ html2text.php riêng.
Sau khi đã thu được các file text do html2text.php sinh ra, ta tiến hành xây
dựng tập dữ liệu huấn luyện theo định dạng mà thư viện MaxEnt hỗ trợ bằng hai công
cụ sau: text2ngram.php và maketrain.php. Khi đó, tệp tin sinh ra chưa dữ liệu huấn
luyện theo định dạng được biểu diễn như sau: Trên một dòng, đầu dòng là nhãn của
văn bản. Tiếp theo là tất cả các n-gram được sinh ra bởi văn bản đó do công cụ
text2gram.php sinh ra.
Cũng trong công cụ sinh n-gram từ file text (công cụ text2gram.php) chúng tôi
tiến hành lọc bỏ các n-gram bằng phương pháp loại bỏ stop-word trong n-gram (giảm
được ~32% tổng số n-gram). Điều này đã làm giảm đáng kể các đặc trưng không có
ích.
4.2.2. Cây phân lớp
Quan sát hai hình vẽ trên, ta nhận thấy rõ ràng hai cây phân lớp này không
giống nhau, và việc để tìm ra một cây phân lớp chung cho chúng không dễ dàng. Nói
như vậy, để khẳng định một điều rằng: tìm cây phân lớp chuẩn cho bài toán phân lớp
văn bản độc lập ngôn ngữ gặp nhiều khó khăn.
31
Sau khi quan sát và nghiên cứu các trang tin, chúng tôi đưa ra cây phân lớp tin
tức như sau:
Bảng 6. Cây phân lớp thông tin
STT Tên Nhãn Mô tả
1 Kinh tế bss Các nội dung liên quan đến thị trường, kinh doanh,…
2 Giáo dục edu Các nội dung liên quan đến giáo dục.
3 Văn hoá / Giải trí ent Các nội dung liên quan đến nghệ thuật, âm nhạc, điện ảnh.
4 Sức khoẻ hel Các nội dung liên quan đến sức khoẻ.
5 Chính trị / Xã hội plt Các nội dung liên quan đến tình hình chính trị, xã hội,…
6 Khoa học sci Các nội dung liên quan đến khoa học.
7 Thể thao spt Các nội dung liên quan đến thể thao
8 Công nghệ tec Các nội dung liên quan đến công nghệ
Ở tập dữ liệu huấn luyện trên từng bộ phân lớp cho một ngôn ngữ, mỗi lớp ta
chọn 800 văn bản. Ở tập dữ liệu huấn luyện cho bộ phân lớp hai hoặc ba ngôn ngữ kết
hợp, ta chọn mỗi lớp 600 văn bản.
4.3. Kết quả thử nghiệm
Tiến hành thử nghiệm trên tập dữ liệu tiếng Anh, tập dữ liệu tiếng Việt và tập
dữ liệu trộn lẫn nhau của hai ngôn ngữ Anh và Việt.
4.3.1. Quá trình huấn luyện
Thông tin về tập các thông tin ngữ cảnh và các đặc trưng đối với cả 3 mô hình:
Bảng 7. Tập dữ liệu huấn luyện của cả 3 mô hình
Mô hình Mệnh đề thông tin ngữ cảnh Đặc trưng
Tiếng Anh 3.127.333 3.709.185
Tiếng Việt 2.806.899 3.686.768
Anh – Việt 4.743.595 5.860.664
Sau 10 lần huấn luyện trên tập dữ liệu 6207 văn bản tiếng Anh, 6400 văn bản
tiếng Việt và 12607 văn bản cho cả hai ngôn ngữ Anh và Việt, độ chính xác được cho
trong bảng sau. Mỗi lần huấn luyện ta chỉ lấy kết quả của lần lặp có độ chính xác
(accuracy) cao nhất.
32
Bảng 8. Độ chính xác 10 lần huấn luyện của tiếng Anh
Fold Highest Log-likelihood Accuracy Time (s)
0 -1.447281E-04 98.55% 117.31
1 -1.435894E-04 98.39% 121.36
2 -1.450561E-04 98.07% 102.54
3 -1.433849E-04 98.87% 109.57
4 -1.425671E-04 98.07% 110.98
5 -1.455252E-04 99.19% 122.17
6 -1.444749E-04 97.90% 143.42
7 -1.450292E-04 99.19% 95.54
8 -1.417561E-04 97.74% 111.57
9 -1.440164E-04 97.26% 114.22
Trung bình -1.440127E-04 98.32% 114.87
Bảng 9. Độ chính xác 10 lần huấn luyện của tiếng Việt
Fold Highest Log-likelihood Accuracy Time (s)
0 -3.056967E-04 92.19% 154.26
1 -3.048419E-04 90.31% 157.51
2 -2.988322E-04 92.03% 160.89
3 -2.722667E-04 91.25% 148.85
4 -2.994259E-04 90.63% 146.56
5 -3.022941E-04 91.25% 147.26
6 -3.152480E-04 92.03% 157.12
7 -3.350586E-04 91.88% 150.19
8 -3.773065E-04 91.56% 153.25
9 -2.782285E-04 92.50% 154.72
Trung bình -3.089199E-04 91.56% 153.06
Bảng 10. Độ chính xác 10 lần huấn luyện kết hợp Anh-Việt
Fold Highest Log-likelihood Accuracy Time (s)
0 -3.278943E-04 95.21% 193.22
1 -2.680606E-04 96.04% 197.82
2 -3.204758E-04 94.27% 221.17
3 -2.829994E-04 94.06% 183.24
4 -2.668655E-04 94.17% 187.87
5 -3.191257E-04 92.92% 187.89
6 -3.248740E-04 94.90% 184.76
7 -2.815305E-04 94.38% 187.32
8 -2.663499E-04 94.79% 172.98
9 -2.792563E-04 96.25% 195.85
Trung bình -2.937432E-04 94.70% 191.21
33
84.00%
86.00%
88.00%
90.00%
92.00%
94.00%
96.00%
98.00%
100.00%
0 1 2 3 4 5 6 7 8 9
Lần huấn luyện (Fold)
Đ
ộ
ch
ín
h
xá
c
Tiếng Anh Tiếng Việt Anh - Việt
Hình 5. Độ chính xác của 3 bộ phân lớp trong 10 lần huấn luyện
Hình 5 là biểu đồ biểu diễn độ chính xác của 3 mô hình: Anh, Việt, Anh-Việt
trên 10 fold. Mỗi fold ta chọn ra độ chính xác ở lần lặp cao nhất của mỗi mô hình.
Các bảng số liệu, đồ thị biểu diễn các kết quả thử nghiệm đã trình bày ở trên
cho thấy kết quả thử nghiệm rất khả quan.
- Độ chính xác của bộ phân lớp tiếng Anh là: 98.32%.
- Độ chính xác của bộ phân lớp tiếng Việt là: 91.56%.
- Độ chính xác của bộ phân lớp tiếng Anh-Việt là: 94.70%.
Biểu đồ 5 biễu diễn độ chính xác của 3 mô hình sau 10 lần huấn luyện ta nhận
thấy có sự chênh lệch giữa độ chính xác của mô hình tiếng Anh và mô hình tiếng Việt,
mặc dù tập dữ liệu của tiếng Việt lớn hơn của tiếng Anh (6400 văn bản và 6207 văn
bản). Sở dĩ như vậy là vì, tập các đặc trưng của mô hình phân lớp tiếng Anh được lọc
tinh tế hơn của tiếng Việt. Trong quá trình xử lý dữ liệu trước khi đưa vào huấn luyện,
chúng tôi sử dụng công cụ text2ngram.php và làm giảm được 32% tổng số đặc trưng
cho mô hình phân lớp tiếng Anh, và giảm 6% tổng số đặc trưng cho mô hình phân lớp
tiếng Việt. Vì vậy, từ kết quả hai bộ phân lớp trên hai ngôn ngữ Anh và Việt chúng ta
có kết luận như sau:
- Khẳng định tính đúng đắn của kết luận trong lý thuyết rằng đặc trưng được
chọn lọc càng tinh tế thì độ chính xác càng tăng.
- Sử dụng phương pháp lọc bỏ stop word đã đề xuất ở phần lý thuyết cho kết
quả tốt. Do tiếng Anh được xử lý nhiều nên danh sách stop word khá đầy
đủ, việc lọc bỏ sẽ dễ dàng và đạt hiệu quả cao. Trong khoá luận chúng tôi
34
đưa ra thống kê chưa đầy đủ các stop word trong tiếng Việt nên kết quả có
phần hạn chế.
Cũng trên hình 5, chúng ta có sự so sánh độ chính xác giữa 3 mô hình: Anh,
Việt và Anh-Việt. Độ chính xác của mô hình Anh-Việt luôn nằm giữa hai độ chính xác
của mô hình tiếng Anh và mô hình tiếng Việt. Rõ ràng sự nhập nhằng của hai ngôn
ngữ Anh và Việt không ảnh hưởng nhiều đến độ chính xác của mô hình Anh-Việt. Và
kết quả của mô hình này cho thấy rõ điều đó: 94.70%.
Quan sát các bảng 8, 9 và 10, ta dễ dàng nhận thấy thời gian huấn luyện rất
nhanh. Trung bình một lần huấn luyện trên bộ phân lớp văn bản tiếng Anh là 114.87
(s). Đến đây ta khẳng định sức mạnh của phương pháp entropy cực đại bằng kết quả
của các con số: tích hợp gần 6 triệu đặc trưng vào mô hình và chỉ huấn luyện trong 32
phút (mô hình Anh-Việt).
4.3.2. Lần lặp cho độ chính xác cao nhất
0.00%
20.00%
40.00%
60.00%
80.00%
100.00%
120.00%
0 5 10 15 20 25 30
Bước lặp
Đ
ộ
ch
ín
h
xá
c
Tiếng Anh Tiếng Việt Anh-Việt
Hình 6. Sự phụ thuộc độ chính xác theo bước lặp của cả 3 mô hình
Hình vẽ trên biểu diễn sự phụ thuộc độ chính xác theo bước lặp của cả 3 mô
hình. Số liệu dùng để vẽ đồ thị được lấy từ thông số của lần huấn luyên có độ chính
xác cao nhất tại mỗi mô hình.
Từ đồ thị trên ta có nhận xét rằng tốc độ tăng của độ chính xác tại mỗi bước
lặp là không đều nhau. Điều này có thể lý giải được bằng hiện tượng overfitting. Tức
là, ngay trên chính tập dữ liệu huấn luyện, những đặc trưng xuất hiện trong 1 phần
kiểm tra không xuất hiện trong tập dữ liệu học của 9 phần sẽ không được nhận biết.
35
4.3.3. Kết quả kiểm tra trên dữ liệu mới
Tập dữ liệu kiểm tra bao gồm 400 văn bản tiếng Anh, 400 văn bản tiếng Việt
được lấy từ nhiều nguồn.
Number of Predicates: 4743595
Number of Parameters: 5860664
Optimized version
iter loglikelihood training accuracy heldout accuracy
==================================================================
0 -2.079442E+00 12.500% 12.500%
1 -1.566180E+00 67.656% 44.250%
2 -9.132070E-01 84.167% 59.750%
3 -7.543474E-01 87.490% 66.625%
4 -5.646942E-01 91.479% 71.875%
5 -4.754881E-01 92.323% 74.500%
6 -3.445148E-01 93.906% 81.250%
7 -2.715653E-01 94.385% 80.875%
8 -1.921838E-01 95.823% 82.750%
9 -1.628873E-01 96.448% 83.125%
10 -1.205699E-01 97.260% 83.625%
11 -9.134130E-02 97.781% 85.500%
12 -7.489992E-02 98.240% 85.750%
13 -5.539846E-02 98.740% 85.625%
14 -2.927394E-02 99.365% 85.250%
15 -1.338378E-02 99.698% 85.625%
16 -6.036523E-03 99.896% 85.250%
17 -4.328826E-03 99.938% 85.250%
18 -1.414540E-03 100.000% 84.875%
19 -9.727452E-04 100.000% 84.875%
20 -7.786723E-04 100.000% 85.000%
21 -5.644801E-04 100.000% 84.500%
22 -4.865722E-04 100.000% 84.375%
23 -4.318329E-04 100.000% 84.125%
24 -4.265314E-04 100.000% 84.125%
25 -4.217743E-04 100.000% 84.125%
26 -4.120439E-04 100.000% 84.125%
27 -3.779965E-04 100.000% 83.875%
27 -3.889546E-04 100.000% 83.625%
28 -3.629248E-04 100.000% 83.750%
29 -3.607414E-04 100.000% 83.875%
30 -3.365570E-04 100.000% 83.875%
Maximum numbers of 30 iterations reached in 199.81 seconds
Highest log-likelihood: -3.365570E-04
Accuracy: 83.875%
Hình 7. Kết quả kiểm tra bộ dữ liệu độc lập Anh-Việt
Đây là kết quả xuất ra của quá trình kiểm tra mô hình Anh-Việt trên nguồn dữ
liệu hoàn toàn mới. Kết quả nhận được là: 83.875%. Kết quả này rất có ý nghĩa, nó thể
hiện sức mạnh thực sự của mô hình, nó nói lên khả năng đoán nhận của mô hình với
dữ liệu mới. Cột log likelihood là giá trị của hàm log likelihood tại lần lặp hiện tại. Cột
training accuracy là độ chính xác huấn luyện được tính bằng độ chính xác (precision).
36
Trong quá trình thử nghiệm trên nhiều tập kiểm tra, kết quả thực nghiệm cho
thấy rằng một mô hình có mạnh hay không còn phụ thuộc vào nguồn dữ liệu huấn
luyện. Dữ liệu huấn luyện được thu thập càng phong phú, khả năng đoán nhận của mô
hình với dữ liệu mới càng tăng. Chúng tôi đã tiến hành thử nghiệm mô hình tiếng Anh
trên hai tập kiểm tra. Một tập được lấy từ các nguồn tin bài rất lạ, là các trang tin bài
của Mỹ (New York Times, Washington Post,…) và một tập là trên các trang tin của
Anh (Guaridan Unlimited). Kết quả test tương ứng là 52.23% và 96.75%. Có sự
chênh lệch này là do tập dữ liệu huấn luyện của mô hình tiếng Anh không đủ phong
phú để cho phép mô hình đoán nhận dữ liệu “lạ”. Vì vậy chúng ta có kết luận rằng
muốn xây dựng một bộ phân lớp có khả năng đoán nhận một cách toàn diện phải xây
dựng một tập dữ liệu huấn luyện đủ lớn, đủ phong phú.
4.4. Tổng kết chương
Trong chương này chúng ta đã xem xét những kết quả của quá trình huấn
luyện và kiểm tra mô hình phân lớp tài liệu web ứng dụng mô hình entropy cực đại.
Tập dữ liệu huấn luyện của mô hình được xây dựng công phu từ 6207 văn bản tiếng
Anh và 6400 văn bản tiếng Việt. Chúng ta cũng đã xem xét những đánh giá về kết quả
thực nghiệm và đưa ra những kết luận khẳng định mạnh mẽ hơn tính đúng đắn cho
những nghiên cứu lý thuyết ở ba chương trước.
Qua kết quả thử nghiệm và những đánh giá đó chúng ta nhận thấy rằng với
khả năng đoán nhận lên tới 94.70%, bài toán phân lớp văn bản độc lập ngôn ngữ nói
chung và bài toán phân lớp tài liệu web độc lập ngôn ngữ nói riêng rất có triển vọng áp
dụng vào các ứng dụng trong tương lai.
37
KẾT LUẬN
Khoá luận đã tìm hiểu và nghiên cứu về bài toán phân lớp văn bản độc lập
ngôn ngữ. Các vấn đề cơ bản của bài toán đã được trình bày, phân tích và đưa ra các
hướng giải quyết cụ thể. Khoá luận đã sử dụng tiếp cận entropy cực đại là một phương
pháp rất phù hợp với những bài toán có số lượng đặc trưng lớn như bài toán phân lớp
văn bản nói chung và bài toán phân lớp văn bản độc lập ngôn ngữ nói riêng.
Những kết quả chính mà khoá luận đạt được:
- Đề xuất xây dựng một bộ phân lớp văn bản cho nhiều ngôn ngữ mà không
cần nhận biết ngôn ngữ sử dụng phương pháp entropy cực đại.
- Phân tích và đưa ra các phương pháp nhằm khắc phục hai vấn đề cơ bản
của bài toán phân lớp văn bản độc lâp ngôn ngữ: sự nhập nhằng ngôn ngữ
và sự bùng nổ đặc trưng.
- Đưa ra một phương pháp lựa chọn đặc trưng một cách khá hiệu quả.
- Đề xuất xây dựng bộ phân lớp trên cây phân lớp thông minh với khả năng
nhận diện ngôn ngữ và phân lớp cho các ứng dụng vừa và nhỏ.
- Kiểm thử trên một tập dữ liệu lớn của hai ngôn ngữ Anh và Việt, và đã cho
kết quả khả quan. Kết quả thực nghiệm trên tập dữ liệu trộn văn bản của
hai ngôn ngữ Anh và Việt cho thấy rất khả quan và có nhiều triển vọng
ứng dụng thực tế cao với độ chính xác huấn luyện lên tới xấp xỉ 95%.
Do khuôn khổ có hạn về thời gian cũng như lượng kiến thức có được và gặp
khó khăn trong quá trình thu thập dữ liệu thử nghiệm nên còn một số vấn đề mà khoá
luận phải tiếp tục hoàn thiện và phát triển trong thời gian tới:
- Thử nghiệm trên một tập dữ liệu lớn hoàn chỉnh, phong phú về ngôn ngữ.
- Xây dựng các phương pháp hiệu quả hơn trong việc khắc phục vấn đề
bùng nổ đặc trưng: ví dụ như trừu tượng hoá dữ liệu là số và ngày tháng.
Tích hợp mô hình vào mô-đun bộ lọc nội dung và mô-đun phân lớp của máy
tìm kiếm Vinahoo.
38
Phụ lục
DANH SÁCH STOP-WORD
Danh sách các stop word của tiếng Anh có trong [23]:
a's able about above according
accordingly across actually after afterwards
again against ain't all allow
allows almost alone along already
also although always am among
amongst an and another any
anybody anyhow anyone anything anyway
anyways anywhere apart appear appreciate
appropriate are aren't around as
aside ask asking associated at
available away awfully be became
because become becomes becoming been
before beforehand behind being believe
below beside besides best better
between beyond both brief but
by c'mon c's came can
can't cannot cant cause causes
certain certainly changes clearly co
com come comes concerning consequently
consider considering contain containing contains
corresponding could couldn't course currently
definitely described despite did didn't
different do does doesn't doing
don't done down downwards during
each edu eg eight either
else elsewhere enough entirely especially
et etc even ever every
everybody everyone everything everywhere ex
exactly example except far few
fifth first five followed following
follows for former formerly forth
four from further furthermore get
gets getting given gives go
goes going gone got gotten
greetings had hadn't happens hardly
has hasn't have haven't having
he he's hello help hence
her here here's hereafter hereby
herein hereupon hers herself hi
him himself his hither hopefully
how howbeit however i'd i'll
39
i'm i've ie if ignored
immediate in inasmuch inc indeed
indicate indicated indicates inner insofar
instead into inward is isn't
it it'd it'll it's its
itself just keep keeps kept
know knows known last lately
later latter latterly least less
lest let let's like liked
likely little look looking looks
ltd mainly many may maybe
me mean meanwhile merely might
more moreover most mostly much
must my myself name namely
nd near nearly necessary need
needs neither never nevertheless new
next nine no nobody non
none noone nor normally not
nothing novel now nowhere obviously
of off often oh ok
okay old on once one
ones only onto or other
others otherwise ought our ours
ourselves out outside over overall
own particular particularly per perhaps
placed please plus possible presumably
probably provides que quite qv
rather rd re really reasonably
regarding regardless regards relatively respectively
right said same saw say
saying says second secondly see
seeing seem seemed seeming seems
seen self selves sensible sent
serious seriously seven several shall
she should shouldn't since six
so some somebody somehow someone
something sometime sometimes somewhat somewhere
soon sorry specified specify specifying
still sub such sup sure
t's take taken tell tends
th than thank thanks thanx
that that's thats the their
theirs them themselves then thence
there there's thereafter thereby therefore
therein theres thereupon these they
they'd they'll they're they've think
third this thorough thoroughly those
though three through throughout thru
40
thus to together too took
toward towards tried tries truly
try trying twice two un
under unfortunately unless unlikely until
unto up upon us use
used useful uses using usually
value various very via viz
vs want wants was wasn't
way we we'd we'll we're
we've welcome well went were
weren't what what's whatever when
whence whenever where where's whereafter
whereas whereby wherein whereupon wherever
whether which while whither who
who's whoever whole whom whose
why will willing wish with
within without won't wonder would
would wouldn't yes yet you
you'd you'll you're you've your
yours yourself yourselves zero
Danh sách stop word của tiếng Việt được thống kê trong [2]:
và còn hay hoặc không
không những không chỉ mà còn nếu
thì nên hễ tuy nhưng
vả lại giá vì bởi tại
do song dầu mặc dầu dù
dẫu dẫu cho chẳng lẽ làm như thế mà
vậy mà có điều hơn nữa huống hồ huống gì
huống nữa ngay cũng chính cả
41
TÀI LIỆU THAM KHẢO
[1] Nguyễn Việt Cường, Bài toán lọc và phân lớp tài liệu Web tiếng Việt với hướng
tiếp cận entropy cực đại, Luận văn tốt nghiệp đại học, Trường Đại học Công
nghệ, Đại học Quốc gia Hà Nội, 2005.
[2] Nguyễn Đức Dân, Lô gich ngữ nghĩa cú pháp, NXB ĐH&TH chuyên nghiệp, Hà
Nội, 1987.
[3] Nguyễn Cẩm Tú, Nhận biết các loại thực thể trong văn bản tiếng Việt nhằm hỗ
trợ Web ngữ nghĩa và tìm kiếm hướng thực thể, Luận văn tốt nghiệp đại học,
Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội, 2005.
[4] Berger, A., Della Pietra, S., and Della Pietra, V. A maximum entropy approach to
natural language processing. Computational Linguistics, volume 22, number 1,
1996, pages 39-71.
[5] Cavnar, W. B. and Trenkle, J. M. N-Gram-Based Text Categorization.
Proceedings of {SDAIR}-94, 3rd Annual Symposium on Document Analysis and
Information Retrieval, 1994, pages 161-175.
[6] Darroch, J. and Ratcliff, D. Generalized iterative scaling for log-linear models.
Annals Mathematical Statistics, volume 43, number 5, 1972, pages 1470–1480.
[7] Fuchen, P., Dale, S. and Shaojun, W. Language and Task independent text
categorizationg with simple language models, Proceedings of HLT-NAACL,
2003
[8] Jaynes, E. R. (1957). Information Theory and Statistical Mechanics. Physic
Review, volume 106, 1957, pages 620-630.
[9] Joachims, T. Text Classification with Support Vector Machines: Learning with
many relevant features. Machine Learning: ECML-98, Tenth European
Conference on Machine Learning, 1998, pages 137-142.
[10] Liu, D. C. and Nocedal J. On the limited memory BFGS method for large scale
optimization. Mathematical Programming, volume 45, number 3, 1989, pages
503-528.
42
[11] Malouf, R. A comparison of algorithms for maximum entropy parameter
estimation. Proceedings of the Sixth Conference on Natural Language Learning
(CoNLL-2002), 2002, pages 183-186.
[12] Nigam, K., Lafferty, J. and McCallum, A. Using maximum entropy for text
classification. IJCAI-99 Workshop on Machine Learning for Information
Filtering, 1999, pages 61-67.
[13] Nigam K., McCallum, A., Thrun S. and Mitchell, T. Text Classification from
Labeled and Unlabeled Documents using EM. Machine Learning, volume 39,
number 2/3, 2000, pages 103-134.
[14] Ratnaparkhi, A. A Maximum Entropy Part-Of-Speech Tagger. Proceedings of
the Empirical Methods in Natural Language Processing Conference, May 17-18,
1996.
[15] Ratnaparkhi, A. A simple introduction to maximum entropy models for natural
language processing. Technical Report 97-08, Institute for Research in Cognitive
Science, University of Pennsylvania, 1997.
[16] Ratnaparkhi, A. Maximum Entropy Models for Natural Language Ambiguity
Resolution. Ph.D. thesis, University of Pennsylvania, Philadelphia, PA, 1998.
[17] Rosenfeld, R. A maximum entropy approach to adaptive statistical language
modeling. Computer, Speech, and Language, volume 10, 1996, pages 187-228.
[18] Zhang, L., Maximum Entropy Modeling Toolkit for Python and C++, 2004.
[19] Website:
[20] Website:
[21] Website:
[22] Website:
[23] Website:
Các file đính kèm theo tài liệu này:
- Phân lớp tài liệu web độc lập ngôn ngữ.pdf