Tải bản đầy đủ (.docx) (14 trang)

báo cáo sử lý ngôn ngữ tự nhiên đề tài phân lớp văn bản - phân loại website

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (340.66 KB, 14 trang )

ĐẠI HỌC BÁCH KHOA HÀ NỘI
Viện Công Nghệ Thông Tin và Truyền Thông
BÁO CÁO BÀI TẬP LỚN
XỬ LÝ NGÔN NGỮ TỰ NHIÊN
Đề tài: Phân lớp văn bản - phân loại website
Nhóm sinh viên thực hiện :
Đinh Quang Huy – 20081124
Nguyễn Hữu Hạnh – 20080903
Nguyễn Đức Yên – 20083244
Doãn Đình Việt – 20083124
Giáo viên hướng dẫn :
TS. Lê Thanh Hương
Hà Nội, Tháng 4 năm 2012
1
Mục lục
2
I. Tổng quan
1. Bài toán phân lớp văn bản
Phân lớp văn bản được coi là quá trình phân loại một văn bản bất kì vào một
hay nhiều lớp cho trước. Quá trình này gồm hai bước. Ở bước thứ nhất, một mô
hình phân lớp (classfication model) được xây dựng dựa trên tri thức kinh nghiệm.
Ở đây, tri thức kinh nghiệm chính là một tập dữ liệu huấn luyện (training dataset)
được cung cấp bởi con người bao gồm một tập văn bản và phân lớp tương ứng của
chúng. Bước này còn gọi là bước xây dựng huấn luyện (training process) hay ước
lượng mô hình phân lớp. Ở bước thứ hai, mô hình phân lớp xây dựng ở bước đầu
sẽ được sử dụng để phân lớp cho những văn bản (chưa được phân loại) trong tương
lai. Bước đầu tiên được xem như là việc học có giám sát mà chúng ta có thể sử
dụng rất nhiều các kĩ thuật học máy đã có như: Naïve Bayes, k láng giềng gần nhất
(kNN), cây quyết định (Decision Tree),… Mục tiêu của bài toán phân lớp là nhằm
xây dựng mô hình có khả năng gán nhãn cho một văn bản bất kì với độ chính xác
cao nhất có thể.


2. Ứng dụng
Ứng dụng lớn nhất của bài toán phân lớp văn bản là áp dụng vào bài toán phân
loại hay lọc nội dung. Trong bài toán lọc nội dung: một văn bản được phân loại
vào nhóm: có ích hoặc không có ích. Sau đó lấy tất cả những văn bản thuộc nhóm
có ích, nhóm còn lại bị loại bỏ. Các ứng dụng cụ thể như: lọc thư rác, lọc trang
web phản động,… Một ứng dụng khác của bài toán phân lớp là xây dựng bộ phân
lớp sau tìm kiếm, ứng dụng này rất hữu ích vì nó định vị nội dung thông tin cần
tìm kiếm nhanh và dễ dàng hơn.
Tóm lại, với tất cả ý nghĩa thực tế trên, một lần nữa có thể khẳng định rằng
trong thời đại Internet được coi là một phần không thể thiếu trong cuộc sống, phân
lớp văn bản luôn là vấn đề đáng được quan tâm để có thể phát triển và xây dựng
được những công cụ ngày càng hữu dụng hơn. Dựa trên nhu cầu cấp thiết đó,
3
chúng em chọn đề tài “Phân lớp văn bản – phân loại trang web” để có thể nghiên
cứu và phát triển ứng dụng này.
II. Phương pháp giải quyết bài toán
Như đã đề cập ở phần I, hiện nay đã có khá nhiều kĩ thuật học máy được áp
dụng để giải quyết bài toán phân lớp, điển hình là các phương pháp Naïve Bayes,
cây quyết định, Entropy cực đại,… Trong các phương pháp đó, chúng em chọn
phương pháp phân lớp Naïve Bayes.
1. Phương pháp Naïve Bayes
- Là phương pháp học phân lớp có giám sát
- Dựa trên mô hình (hàm) xác suất
- Việc phân loại dựa trên các giá trị xác suất của các khả năng xảy ra của các giả
thiết
- Là một phương pháp thường được sử dụng trong các bài toán phân lớp văn bản
- Dựa trên định lý Bayes
1.1. Định lý Bayes
Trong đó:
- h: giả thiết (phân lớp).

- D: tập dữ liệu.
- P(h): xác suất trước (prior probability) xảy ra giả thiết (phân lớp) h là đúng.
- P(D): xác suất trước của tập dữ liệu D quan sát được.
- P(D|h): xác suất của việc quan sát được (thu được) tập dữ liệu D với điều kiện
giả thiết h là đúng.
- P(h|D): xác suất giả thiết h là đúng với điều kiện tập dữ liệu D được quan sát.
Ví dụ ta có tập dữ liệu như sau:
4
Trong ví dụ trên, giả sử rằng:
- Tập dữ liệu D: là tập các ngày mà thuộc tính Outlook có giá trị Sunny và thuộc
tính Wind có giá trị Strong.
- Giả thiết (phân lớp) h: một người có chơi tennis.
- Xác suất trước P(h): xác suất 1 người chơi tennis (không phụ thuộc vào các
thuộc tính Outlook và Wind).
- Xác suất trước P(D): xác suất của một ngày có thuộc tính Outlook nhận giá trị
Sunny và thuộc tính Wind nhận giá trị Strong.
- P(D|h): xác suất của một ngày có thuộc tính Outlook nhận giá trị Sunny và
thuộc tính Wind nhận giá trị Strong với điều kiện một người có chơi tennis.
- P(h|D): xác suất một người chơi tennis vơi điều kiện thuộc tính Outlook nhận
giá trị Sunny và thuộc tính Wind nhận giá trị Strong.
Vậy phương pháp phân lớp Naïve Bayes dựa trên xác suất có điều kiện này.
Với một tập các giả thiết (các phân lớp) h có thể, hệ thống học sẽ tìm giả thiết có
thể xảy ra nhất đối với dữ liệu quan sát được D. Giả thiết h tìm được này gọi là giả
thiết cực đại hóa xác suất có điều kiện (maximum a posteriori - MAP):
5
1.2. Phân loại Naïve Bayes
- Biểu diễn bài toán phân loại:
o Một tập học D_train, trong đó mỗi ví dụ học x được biểu diễn là một vectơ n
chiều: (x
1

, x
2
,…, x
n
)
o Một tập xác định các nhãn lớp: C = {c
1
, c
2
,…, c
m
}
o Với một ví dụ mới z thì cần xác định xem z sẽ được phân vào lớp nào?
- Mục tiêu: xác định phân lớp phù hợp nhất với z.
Vì xác suất P(z
1
, z
2
,…, z
n
) là như nhau đối với các lớp nên ta cần tìm:
Trong phương pháp phân loại Naïve Bayes, các thuộc tính là độc lập có điều kiện
đối với các lớp. Vậy:
Và phân loại Naïve Bayes tìm phân lớp có thể nhất đối với ví dụ mới z là:
6
1.3. Phân loại Naïve Bayes – Giải thuật
- Giai đoạn học: ta sử dụng 1 tập học. Đối với mỗi phân lớp có thể C:
o Tính xác suất trước P(c
i
)

o Đối với mỗi giá trị thuộc tính x
j
, tính xác suất xảy ra của giá trị thuộc tính đó
với một phân lớp c
i
: P(x
j
| c
i
)
- Giai đoạn phân lớp, đối với mỗi 1 ví dụ mới:
o Đối với mỗi phân lớp C, tính giá trị likehood:
o Xác định phân lớp của z là có thể nhất:
1.4. Phân loại văn bản bằng phương pháp Naïve Bayes
- Biểu diễn bài toán phân loại văn bản:
o Tập học D_train, trong đó mỗi ví dụ học là một biểu diễn văn bản đã gắn với
một nhãn lớp: D = {(d
k
, c
i
)}
o Một tập các nhãn lớp xác định: C = {c
i
}
- Giai đoạn học:
o Từ tập các văn bản trong D_train, ta trích ra tập các từ khóa T = {t
j
}.
o Gọi D_c
i

( D_train) là tập các văn bản trong D_train có nhãn lớp là c
i
.
o Đối với mỗi phân lớp c
i
:
 Tính giá trị xác suất trước của phân lớp c
i
:
 Đối với mỗi từ khóa t
j
, tính xác suất từ khóa t
j
xuất hiện đối với lớp c
i
theo công thức :
7
Trong đó: n(d
k
, t
j
) là số lần xuất hiện của từ khóa t
j
trong văn bản d
k

- Giai đoạn phân lớp cho 1 văn bản mới d:
o Từ văn bản d, trích ra tập T_d gồm các từ khóa được định nghĩa trong tập T
(T_d T)
o Giả sử rằng, xác suất xuất hiện của từ khóa t

j
đối với lớp c
i
là độc lập đối với
vị trí của từ khóa đó trong văn bản.
o Đối với mỗi phân lớp c
i
, ta tính giá trị likehood của văn bản d đối với lớp c
i
o Văn bản d sẽ được phân vào lớp c* có giá trị likehood lớn nhất:
8
2. Áp dụng vào bài toán phân lớp trang web
Mô hình giải quyết bài toán của chúng em như sau:
Mô hình quy trình giải quyết bài toán
Trong đó:
- Tập dữ liệu huấn luyện D_train: trong khuôn khổ BTL, do thời gian có hạn
chúng em chọn tập dữ liệu huấn luyện D_train là phần nội dung của các bài viết
trên trang vnexpress.net (bỏ qua bước xử lý lấy phần nội dung này từ 1 trang
web) và gán nhãn (lớp) cho chúng.
- Tách từ: trong bước này, chúng em có include chương trình vnTagger của tác
giả Lê Hồng Phương – ĐHQG Hà Nội vào trong chương trình của mình để xử
lý tách từ trong các văn bản thuộc tập dữ liệu huấn luyện D_train.
- 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 ý nghĩa để phân loại. Các từ này được gọi là
stop-word. Chúng em sẽ tiến hành loại bỏ những từ này từ tập những từ tách
được ở bước trên để xây dựng 1 tập các từ khóa. Danh sách các stop-word được
thống kê trong bảng sau:
9
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
bả 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à
bậ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ả
Bảng danh sách các stop-word
- Tập các từ khóa: là tập các từ được tách sau khi loại bỏ stop-word.
- Đưa vào CSDL: là bước đưa các từ khóa ở trên vào CSDL.
5 bước ở trên là 5 bước tiền xử lý được thực hiện trước. Mỗi khi chạy chương
trình thì chương trình sẽ không phải thực hiện lại các bước đó nữa. Sau khi có tập
dữ liệu huấn luyện D_train và tập các từ khóa T, chúng ta tiến hành áp dụng giải
thuật phân lớp văn bản bằng phương pháp Naïve Bayes đối với 1 văn bản mới đầu
vào để xác định lớp cho văn bản đó và đưa ra kết luận.
Sau khi quan sát và nghiên cứu các trang tin, chúng em đưa ra danh sách phân
lớp tin tức như sau:
STT Tên Nhãn Mô tả
1 Kinh tế nss
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 hóa, 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 khỏe hel Các nội dung liên quan đến sức khỏe.
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.
10

7 Thể thao spt Các nội dung liên quan đến thể thao.
8 Công nhệ tec Các nội dung liên quan đến công nghệ.
Bảng các lớp tin tức
11
III. Chương trình Demo
Chúng em xây dựng chương trình phân loại website dựa trên công nghệ
web-based. Sau đây là giao diện và cấu trúc mã nguồn chính của chương trình:
1. Giao diện chương trình
Giao diện trang chủ
Giao diện hiển thị kết quả
12
2. Cấu trúc mã nguồn các lớp chính của chương trình
13
Kết luận
Độ chính xác của chương trình phụ thuộc nhiều vào số lượng của tập dữ liệu
huấn luyện D_train và chương trình tách từ. Do thời gian có hạn nên chúng em chỉ
mới thử nghiệm chương trình trên 1 tập D_train nhỏ và thực hiện luôn đối với phần
nội dung chính của 1 trang web mà bỏ qua bước xử lý để lấy phần nội dung đó từ 1
địa chỉ trang web.
Trong thời gian tới, chúng em sẽ cố gắng phát triển để hoàn thiện chương
trình của mình hơn. Chúng em rất mong nhận được sự góp ý của cô.
Em cảm ơn!
IV. Tài liệu tham khảo
[1] Bài giảng môn Trí tuệ nhân tạo – TS. Nguyễn Nhật Quang, Viện CNTT&TT
ĐHBK Hà Nội.
[2] Bài giản môn Xử lý ngôn ngữ tự nhiên – TS. Lê Thanh Hương, Viện
CNTT&TT ĐHBK Hà Nội.
[3] Chương trình vnTagger version 4.0 – tác giả Lê Hồng Phương, ĐHKHTN –
ĐHQG Hà Nội.
[4] Website:

Và một số trang web tham khảo khác.
14

×