Trường Đại học Khoa học Tự nhiên
Khoa Công nghệ Thông tin
ĐỀ TÀI:
NGHIÊN CỨU MỘT SỐ THUẬT TOÁN
MÁY HỌC VÀ ỨNG DỤNG TRONG
TRUY VẤN VĂN BẢN TỰ ĐỘNG
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. VŨ THANH NGUYÊN
HỌC VIÊN THỰC HIỆN: NGUYỄN PHƯỚC ÑAÏI
1
Nội dung trình bàyi dung trình bày
A. Nhu cầu truy vấn thông tin
B. Mục đích của luận văn.
C. Giải quyết bài toán
D. Đánh giá và đề xuất.
2
A. Nhu cầu truy vấn thoâng tinu truy vấn thoâng tinn thông tin
A1. Tính đa dạng, phức tạp của thông tin.
A2. Nhu cầu truy vấn thông tin.
Lượng thông tin tiếp nhận rất lớn.
Các thông tin không được tổ chức theo cấu
trúc nhất định.
A3. Sự cần thiết của một hệ thống truy vấn
thông tin văn bản.
Tổ chức lại hệ thống văn bản và phân lớp văn
bản.
Hỗ trợ tìm kiếm thông tin nhanh choùng.
3
B. Mục đích của luận văn
Lý thuyết:
Nghiên cứu một số thuật toán máy học phục vụ cho
việc truy vấn văn bản: K-Trung bình, DBSCAN, dựa
vào phản hồi của người dùng, và mạng Bayes.
Ứng dụng:
Trên cơ sở đó, xây dựng một hệ thống gom nhóm và
truy vấn văn bản Tiếng Việt, cho phép người sử
dụng tìm kiếm các thông tin nhanh choùng.
4
C. Giải quyết bài toán
C1. Phân chia tập văn bản thành các tập con
nhỏ hơn theo từng chủ đề.
C1.1. Nguyên lý phân lớp.
C1.2. Các thuật toán phân lớp
Thuật toán K-Trung bình.
Thuật toán DBSCAN.
C2. Xây dựng hệ thống truy vấn thông tin
trên các tập văn bản đã được phân chia.
5
C1.1. Nguyên lý phân lớp.
Khái niệm phân lớp:
Lớp B
Lớp A
Lớp C
Hình 1: Khái niệm phân lớp
6
C1.1. Nguyên lý phân lớp.
Mô hình phân lớp.
Phân lớp
Phân cấp
Tích tụ
Không phân cấp
Chia nhỏ
Ngưỡng tuần
tự
Ngưỡng song
song
Tối ưu phân
hoạch
Hình 2: Các mô hình phân lớp
7
C1.1. Nguyên lý phân lớp.
Phân cấp:
Kết quả của một quá trình phân nhóm phân cấp là một
chuỗi các nhóm văn bản, trong đó một nhóm có thể
chứa các nhóm con bên trong nó, và đến lượt các
nhóm con lại chứa các nhóm con bên trong,…
A
B
C
D
E
F
G
H
I
K
Hình 3 Mô hình gom nhóm phân cấp
8
C1.1. Nguyên lý phân lớp.
Không phân cấp:
Kết quả của một quá trình phân lớp không phân cấp là
một tập các lớp (nhóm). Mỗi lớp không chứa lớp con
bên trong,…
Lớp B
Lớp A
Lớp C
Hình 4. Mô hình gom nhóm không phân cấp.
9
C1.2. Các thuật toán phân lớp
Thuật toán K-Trung bình.
Bước 1: Khởi tạo tâm của k nhóm: C1, C2, ... ,Ck
Bước 2: Lặp lại:
Phân loại m mẫu xi vào các nhóm Cj sao cho
khoảng cách xi-Cj là nhỏ nhất.
Tính toán lại Cj (Chỉnh tâm).
Đến khi: Các tâm Cj không đổi.
Kết quả: Các lớp C1,C2,…Ck
10
Minh hoạ Thuật toán K-Trung bình
Tâm nhóm
Tài liệu
Khởi tạo các tâm nhóm.
Lặp lại:
Tìm nhóm gần nhất
Chỉnh tâm nhóm
Đến khi: Các tâm nhóm
không đổi.
Hình 5. Minh hoạ thuật toán K-Trung bình
11
C1.2. Các thuật toán phân lớp
Một số cải tiến của K-Trung bình
Thuật toán K-Trung bình tuần tự:
Thuật toán K-Trung bình tuần tự cho phép tính linh động của việc cập
nhật giá trị trung bình (tâm nhóm) khi có các tài liệu mới được đưa
vào
K-Trung bình song song
Thuật toán K-Trung bình song song sẽ cải tiến được thời gian thực hiện
thuật toán và cho phép thực hiện trên bộ nhớ lớn.
K-Trung bình mờ
Trong mỗi vòng lặp của K-Trung bình, giả sử mỗi vector đặc trưng
thuộc chính xác một nhóm. Chúng ta giảm nhẹ điều này và giả sử
rằng mỗi mẫu Xi có vài mức độ quan hệ thành viên mờ trong nhoùm
Cj.
12
C1.2. Các thuật toán phân lớp
Thuật toán DBSCAN
Ý tưởng của thuật toán DBSCAN là dựa vào mật độ
của các phần tử trong một bán kính cho trước.
Thuật toán sử dụng cho việc phân lớp phân cấp và không
phân cấp.
13
Thuật toán DBSCAN
Ký hiệu:
D: tập dữ liệu (tài liệu) cần phân nhóm.
Eps: bán kính cho trước
MinPts: Số phần tử tối thiểu trong bán kính Eps
Mô tả thuật toán:
Function DBSCAN (D, Eps, MinPts)
o D,
Nếu o chưa được phân lớp
Expand_cluster (o, D, Eps, MinPts).
End Function
14
Thuật toán DBSCAN
Function Expand_cluster (o, D, Eps, MinPts):
Duyệt các lân cận bán kính Eps NEps(o) của o;
Nếu NEps(o) < MinPts // o không phải là đối tượng hạt nhân
Đánh dấu o là đối tượng lạc loài và RETURN;
ELSE // o là đối tượng hạt nhân
Chọn cluster-id mới và đánh dấu tất cả các đối tượng trong NEps(o)
với cluster-id hiện hành;
push tất cả các đối tượng từ NEps(o)\{o} vào stack seeds;
WHILE NOT seeds.empty() DO
currentObject := seeds.top();
truy vấn các lân cận NEps(currentObject) của currentObject;
IF | NEps(currentObject) | >= MinPts
Chọn tất cả các đối tượng trong NEps(currentObject) chưa
được phân lớp hoặc đánh dấu là lạc loài,
Push tất cả các đối tượng chưa được phân lớp vào seeds và
đánh dấu tất cả các đối tượng này với cluster-id hiện hành
seeds.pop();
RETURN
End function
15
Function Expand_cluster (o, D, Eps, MinPts):
o,D,Eps, MinPts
- Duyệt lân cận của o.
- Tính |NEPS(o)|
Sai
|NEPS(o)|>=MinPts
Đúng
Đánh dấu o là
tài liệu nhiễu
Dừng
-Chọn Cluster-ID mới và đánh dấu cho các tài
liệu trong NEps(o)
-Đưa các tài liệu Eps(o)\{o}vào stack Seeds
Seeds<>{Þ}
Đúng
Sai
CurrObj=Seeds.top
|NEps(CurrObj)|>=MinPts
Sai
Seeds.pop
Đúng
Dừng
- Chọn các tài liệu trong
NEps(CurrObj) chưa phân lớp
hoặc đánh dấu lạc loài
- Dưa các tài liệu chưa phân lớp
vào Seeds
16
Thuật toán DBSCAN
Minh hoạ thuật toán
Minh họa thuật toán DBSCAN
17
C2. Mô hình phân lớp văn bản
C2.1. Tiền xử lý: Thu thập và chọn đặc trưng:
INTERNET
Thu thập tài liệu
Tập văn bản HTML
Tập văn bản TXT
Chọn đặc trưng
Phương pháp ngữ đoạn
Danh sách hư từ
Vec tơ đặc trưng
18
C2.1. Tiền xử lý: Thu thập và chọn đặc trưng:
Chuyển tập văn bản HTML về dạng TXT
Tập văn bản HTML
Loại bỏ những
<tag> html
Tập văn bản TXT
Chuyển tập văn bản HTML về dạng TXT
19
C2.1. Tiền xử lý: Thu thập và chọn đặc trưng
Ví dụ:
Chuyển tập văn bản HTML về dạng TXT
Tập tin HTML
Tập tin HTML khi hiển thị lên trình duyệt
Tập tin sau khi đã chuyển về dạng TXT
20