Tải bản đầy đủ (.pdf) (69 trang)

Phân lớp thư điện tử sử dụng máy Vector hỗ trợ

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 (1.2 MB, 69 trang )












































ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ







Ngô Thương Huyền







PHÂN LỚP THƯ ĐIỆN TỬ
SỬ DỤNG MÁY VECTOR HỖ TRỢ






LUẬN VĂN THẠC SĨ












HÀ NỘI – 2007















MỤC LỤC













ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ






Ngô Thương Huyền







PHÂN LỚP THƯ ĐIỆN TỬ
SỬ DỤNG MÁY VECTOR HỖ TRỢ




Ngành: Công nghệ thông tin
Mã số: 1.01.10



LUẬN VĂN THẠC SĨ


Người hướng dẫn khoa học: PGS. TS Hà Quang Thụy







HÀ NỘI – 2007


ii
MỤC LỤC


Lời cảm ơn ii
Danh mục hình vẽ iv
Danh mục bảng biểu vi
MỞ ĐẦU 1
Chương 1. KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU VĂN BẢN 3
1.1. Một số kiến thức về khai phá dữ liệu 3
1.1.1 Khái niệm khai phá dữ liệu 3
1.1.2 Các hướng tiếp cận và các dạng dữ liệu trong khai phá dữ liệu 6
1.2. Các bài toán trong khai phá dữ liệu văn bản 8
1.2.1 Tìm kiếm văn bản 8
1.2.2 Phân lớp văn bản 9
1.2.3 Một số bài toán khác 11
1.3. Khai phá dữ liệu Web 11
1.3.1 Nhu cầu 11
1.3.2 Đặc điểm 13
1.3.3 Các hướng tiếp cận 15
Chương 2. PHÂN LỚP VĂN BẢN 17
2.1. Bài toán phân lớp 17
2.1.1 Nhu cầu, ý tưởng 17
2.1.2 Quá trình phân lớp 18
2.2. Các giải pháp phân lớp điển hình 20
2.2.1 Thuật toán phân lớp Bayes 20
2.2.2 Thuật toán k-người láng giềng gần nhất. 22
2.2.3 Phân lớp dựa vào cây quyết định 23
2.2.4 Chiết lọc thông tin theo mô hình Markov ẩn 26
Chương 3. BỘ PHÂN LỚP SỬ DỤNG MÁY VECTOR HỖ TRỢ 30


iii
3.1. Biểu diễn văn bản dựa trên mô hình không quan vector 30

3.1.1 Giới thiệu 30
3.1.2 Mô hình Boolean 32
3.1.3 Mô hình tần số 33
3.2. Bộ phân lớp sử dụng vector hỗ trợ 34
3.2.1 Vector hỗ trợ 34
3.2.2 Thuật toán tạo siêu phẳng phân cách 35
Chương 4. ỨNG DỤNG VÀ THỰC NGHIỆM 42
4.1. Giới thiệu bài toán thực nghiệm 44
4.2. Dữ liệu và chương trình 44
4.3. Môi trường thực nghiệm 50
4.4. Kết quả thực nghiệm và đánh giá 51
4.4.1 Độ chính xác của bộ phân lớp khi thử nghiệm với tập kiểm tra 51
4.4.2 Độ chính xác của bộ phân lớp khi tăng dần tập dữ liệu học 56
KẾT LUẬN 59
TÀI LIỆU THAM KHẢO 57













iv
Danh mục hình vẽ



Hình 1. Lượng dữ liệu được tích lũy tăng mạnh theo thời gian
Hình 2. Các bước trong quá trình khám phá tri thức
Hình 3. Các nội dung trong khai phá Web
Hình 4. Mô hình của bài toán phân lớp
Hình 5. Mô hình học- phân tích một tập dữ liệu huấn luyện
Hình 6. Mô hình phân lớp-đánh giá độ chính xác của mô hình
Hình 7. Mối quan hệ giữa các siêu phẳng phân cách
Hình 8. Biên giới của siêu phẳng phân cách
Hình 9. Mô phỏng một điểm dữ liệu nhiễu
Hình 10. Minh họa cho trường hợp tập dữ liệu không thể phân tách tuyến tính
Hình 11. Một minh họa khác bằng ảnh khi ánh xạ sang không gian mới ta có
thể phân tách tuyến tính tập dữ liệu
Hình 12. Thực nghiệm với kiểu hàm nhân tuyến tính của người dùng Beck-s
Hình 13. Đồ thị biểu diễn độ chính xác của bộ phân lớp SVM khi áp dụng các
hàm nhân khác nhau
Hình 14. Sử dụng svm-train để huấn luyện trên tập dữ liệu huấn luyện
train_scale.tr
Hình 15. Độ chính xác khi thử nghiệm trên tập kiểm tra của người dùng
Becks
Hình 16. Độ chính xác khi thử nghiệm trên tập kiểm tra của người dùng
William-w3
Hình 17. Đồ thị biểu diễn độ chính xác của bộ phân lớp SVM khi thử nghiệm
với tập kiểm tra.
Hình 18. Quá trình học sử dụng svm-train
Hình 19. Kết quả thực nghiệm khi tỉ lệ dữ liệu là 2:1 của người dùng Farmer


v

Hình 20. Kết quả thực nghiệm khi tỉ lệ dữ liệu là 3:1 của người dùng Farmer
Hình 21. Kết quả thực nghiệm khi tỉ lệ dữ liệu là 4:1 của người dùng Farmer
Hình 22. Đồ thị biểu diễn độ chính xác của bộ phân lớp SVM với tỉ lệ dữ liệu
Học/Kiểm tra tăng dần




vi
Danh mục bảng biểu


Bảng 1. Thống kê tập dữ liệu sử dụng
Bảng 2. Thống kê tập dữ liệu thử nghiệm
Bảng 3. Cấu hình máy tính
Bảng 4. Độ chính xác của bộ phân lớp ứng với từng hàm nhân
Bảng 5. Độ chính xác của bộ phân lớp khi thử nghiệm trên tập kiểm tra
Bảng 6. Thống kê tập dữ liệu theo tỉ lệ phân chia dữ liệu học/dữ liệu kiểm tra
Bảng 7. Độ chính xác của bộ phân lớp ứng với tỉ lệ phân chia dữ liệu




























1
MỞ ĐẦU


Ngày nay với sự phát triển như vũ bão của các ngành khoa học kỹ
thuật, đặc biệt là sự phát triển nhanh chóng của mạng máy tính toàn cầu, một
khối lượng dữ liệu khổng lồ vẫn hàng ngày được cập nhật liên tục, thường
xuyên, nhằm đáp ứng một trong những nhu cầu không thể thiếu được của con
người, đó là thông tin. Và vì thế chúng ta đang được sống trong một xã hội
bùng nổ thông tin, khi các ứng dụng công nghệ thông tin đã đi vào tới từng
lĩnh vực của đời sống xã hội. Trong đó Internet ngày càng khẳng định một sức
mạnh vượt trội và đóng một vai trò quan trọng trong đời sống xã hội, kinh tế,
chính trị, văn hoá, giáo dục… của con người. Cùng với sự phát triển không
ngừng đó, Internet đã và đang trở thành một kho thông tin khổng lồ về cả số

lượng cũng như sự biến đổi nhanh chóng của nó, theo ước đoán thì cứ sau hai
năm lượng thông tin lại tăng thêm gấp đôi.
Thư điện tử là một dịch vụ phổ biến nhất trên Internet, nó giúp cho mọi
người sử dụng máy tính kết nối Internet đều có thể trao đổi thông tin với
nhau. Ngày nay, khi mà Internet đã có mặt ở khắp mọi nơi thì việc sử dụng
dịch vụ thư điện tử là việc hàng ngày đối với rất nhiều người trên khắp thế
giới. Ta biết rằng khi mạng Internet ra đời, những người sử dụng đầu tiên là
các chuyên gia máy tính, họ cùng gửi nhiều email đến các nhóm người dùng
khác nhau, sau đó mới có tình trạng không thể kiểm soát được các email gửi
đến. Vì vậy cần phải có các chương trình phân lớp các email theo thư mục
người dùng hoặc lọc hay ngăn chặn những email mà người dùng không muốn
nhận nhằm tăng chất lượng sử dụng.
Trong lĩnh vực thư điện tử cá nhân, các kỹ thuật phân lớp văn bản cũng
được áp dụng rất rộng rãi vào bài toán lọc thư rác. Một số vấn đề khác liên


2
quan đến thư điện tử như lọc các luồng thư điện tử, tự động tạo các thư mục
mới cũng được nghiên cứu và giải quyết. Hiện nay, bài toán phân lớp thư điện
tử vào các thư mục cũng đang được nhiều nhà nghiên cứu quan tâm.
Trong luận văn này, chúng tôi ứng dụng phân lớp văn bản vào lĩnh vực
thư điện tử nhằm giải quyết bài toán phân lớp tự động thư điện tử vào các lớp
do người dùng định nghĩa. Lựa chọn thuật toán máy vector hỗ trợ (SVMs) với
những ưu điểm và hiệu quả đã được chứng minh qua nhiều thực nghiệm về
phân lớp văn bản, chúng tôi hy vọng SVMs có thể giải quyết các khó khăn
của bài toán phân lớp email và đem lại kết quả khả quan.
Luận văn được tổ chức thành 4 chương như sau:
Chương 1 trình bày khái quát về khai phá dữ liệu, các kỹ thuật và
hướng tiếp cận chính trong khai phá dữ liệu và phân loại các hệ thống khai
phá theo nhiều tiêu chí khác nhau. Chương này cũng giới thiệu về các bài toán

trong khai phá dữ liệu văn bản và khai phá dữ liệu Web.
Chương 2 trình bày bài toán và quá trình phân lớp văn bản, đồng thời
giới thiệu một số giải pháp phân lớp điển hình.
Chương 3 giới thiệu phương pháp biểu diễn văn bản dựa trên mô hình
không quan vector và tập trung nghiên cứu, khảo sát phương pháp máy vector
hỗ trợ, đây là tiền đề để thực hiện việc thực nghiệm cho luận văn này.
Chương 4 trình bày về mô hình phân lớp thư điện tử và áp dụng đối với
một bộ dữ liệu đã được công bố. Từ các kết quả thực nghiệm, đưa ra đánh giá
hệ thống phân lớp nói trên.








3
CHƢƠNG 1. KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU VĂN BẢN

1.1. Một số kiến thức về khai phá dữ liệu
1.1.1 Khái niệm khai phá dữ liệu
Trong những thập kỷ gần đây, lượng thông tin được lưu trữ trên các
thiết bị điện tử (đĩa cứng, CD-ROM, băng từ, v.v.) không ngừng tăng lên.
Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ. Người ta ước đoán
rằng, lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm và theo
đó số lượng cũng như kích cỡ của các cơ sở dữ liệu cũng tăng lên một cách
nhanh chóng [5].

Hình 1 - Lượng dữ liệu được tích lũy tăng mạnh theo thời gian

Chúng ta quả thực đang sở hữu một khối lượng dữ liệu khổng lồ, nhưng
lại luôn cảm thấy thiếu những thông tin hữu ích. Lượng dữ liệu khổng lồ này
thực sự là một nguồn “tài nguyên” rất giá trị bởi thông tin là yếu tố then chốt
trong mọi hoạt động trước khi ra quyết định. Khai phá dữ liệu – khai thác
những thông tin tiềm ẩn có tính dự đoán từ những cơ sở dữ liệu lớn – là một
hướng tiếp cận mới với khả năng giúp các công ty chú trọng vào những thông
tin có nhiều ý nghĩa từ những tập dữ liệu lớn (databases, data warehouses,
data repositories) mang tính lịch sử. Những công cụ khai phá dữ liệu có thể
dự đoán những xu hướng trong tương lai và do đó cho phép doanh nghiệp ra
những quyết định kịp thời được định hướng bởi tri thức mà khai phá dữ liệu


4
đem lại. Sự phân tích dữ liệu một cách tự động và mang tính dự báo của khai
phá dữ liệu có ưu thế hơn hẳn so với sự phân tích thông thường dựa trên
những sự kiện trong quá khứ của các hệ hỗ trợ ra quyết định (Decision
Support Systems - DSSs) truyền thống trước đây. Công cụ khai phá dữ liệu
cũng có thể trả lời những câu hỏi trong lĩnh vực kinh doanh mà trước đây
được xem là tốn nhiều thời gian để xử lý. Với tất cả những ưu thế trên, khai
phá dữ liệu đã chứng tỏ được tính hữu dụng của nó trong môi trường kinh
doanh đầy tính cạnh tranh ngày nay. Giờ đây, khai phá dữ liệu đã và đang trở
thành một trong những hướng nghiên cứu chính của lĩnh vực khoa học máy
tính và công nghệ tri thức.
a) Định nghĩa Khai phá dữ liệu
Có thể hiểu một cách sơ lược rằng khai phá dữ liệu là quá trình tìm
kiếm những thông tin (tri thức) hữu ích, tiềm ẩn và mang tính dự báo trong
các tập dữ liệu lớn. Như vậy, các nhà khoa học cho rằng nên gọi quá trình này
là khám phá tri thức (Knowledge Discovery in Databases – KDD) thay vì là
khai phá dữ liệu. Tuy nhiên các nhà khoa học trong lĩnh vực này đồng ý với
nhau rằng hai thuật ngữ trên là tương đương và có thể thay thế cho nhau. Họ

lý giải rằng, mục đích chính của quá trình khám phá tri thức là thông tin và tri
thức có ích, nhưng đối tượng mà cần phải xử lý rất nhiều trong suốt quá trình
đó lại chính là dữ liệu.
Mặt khác, khi chia các bước trong quá trình khám phá tri thức, một số
nhà nghiên cứu lại cho rằng, khai phá dữ liệu chỉ là một bước trong quá trình
khám phá tri thức [21].
Như vậy, khi xét ở mức tổng quan thì hai thuật ngữ này là tương đương
nhau, nhưng khi xét cụ thể thì khai phá dữ liệu được xem là một bước trong
quá trình khám phá tri thức.


5
“Khai phá dữ liệu được định nghĩa như quá trình chắt lọc hay khám
phá tri thức từ một lượng lớn dữ liệu” (J. Han và M. Kamber [10]).
b) Các bước chính trong Khám phá tri thức (KDD)
Người ta thường chia quá trình khám phá tri thức thành các bước sau
[5][10][12]:
 Trích chọn dữ liệu (data selection): là bước trích chọn những tập dữ
liệu cần được khai phá từ các tập dữ liệu lớn (databases, data
warehouses, data repositories) ban đầu theo một số tiêu chí nhất định.
 Tiền xử lý dữ liệu (data preprocessing): là bước làm sạch dữ liệu (xử lý
với dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán,
v.v.), rút gọn dữ liệu (sử dụng hàm nhóm và tính tổng, các phương
pháp nén dữ liệu, sử dụng histograms, lấy mẫu, v.v.), rời rạc hóa dữ
liệu (rời rạc hóa dựa vào histograms, dựa vào entropy, dựa vào phân
khoảng, v.v.). Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút
gọn, và được rời rạc hóa.
 Biến đổi dữ liệu (data transformation): đây là bước chuẩn hóa và làm
mịn dữ liệu để đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho
các kỹ thuật khai phá ở bước sau.

 Khai phá dữ liệu (data mining): đây là bước áp dụng những kỹ thuật
khai phá (phần nhiều là các kỹ thuật của machine learning) để khai phá,
trích chọn được những mẫu (patterns) thông tin, những mối liên hệ
(relationships) đặc biệt trong dữ liệu. Đây được xem là bước quan
trọng và tốn nhiều thời gian nhất của toàn quá trình khai phá dữ liệu.
 Biểu diễn và đánh giá tri thức (knowledge representation &
evaluation): những mẫu thông tin và mối liên hệ trong dữ liệu đã được
khai phá ở bước trên được chuyển dạng và biểu diễn ở một dạng gần
gũi với người sử dụng như đồ thị, cây, bảng biểu, luật, v.v. Đồng thời
bước này cũng đánh giá những tri thức khám phá được theo những tiêu
chí nhất định.


6


Hình 2 - Các bước trong quá trình khám phá tri thức (KDD)
1.1.2 Các hướng tiếp cận và các dạng dữ liệu trong Khai phá dữ liệu
a) Các hướng tiếp cận
Khai phá dữ liệu tuy là một hướng tiếp cận mới nhưng thu hút được rất
nhiều sự quan tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng
dụng thực tiễn của nó. Phạm vi ứng dụng ban đầu của nó chỉ là trong lĩnh vực
thương mại (bán lẻ) và tài chính (thị trường chứng khoán). Nhưng ngày nay
đã được ứng dụng rộng rãi trong rất nhiều những lĩnh vực khác nhau. Hướng
tiếp cận của khai phá dữ liệu có thể được phân chia theo chức năng hay phân
chia theo lớp các bài toán khác nhau. Sau đây là một số hướng tiếp cận
chính[10]:
 Phân lớp và dự đoán (classification & prediction): xếp một đối tượng
vào một trong những lớp đã biết trước. Ví dụ: phân lớp vùng địa lý
theo dữ liệu thời tiết. Hướng tiếp cận này thường sử dụng một số kỹ

thuật của machine learning như cây quyết định (decision tree), mạng
nơron nhân tạo (neural network), v.v. Phân lớp còn được gọi là học
có giám sát (học có thầy – supervised learning).


7
 Mô tả khái niệm (concept description): thiên về mô tả, tổng hợp và tóm
tắt khái niệm. Ví dụ: tóm tắt văn bản.
 Luật kết hợp (association rules): là dạng luật biểu diễn tri thức ở dạng
khá đơn giản. Ví dụ: “50% số tội phạm giết người là nhằm mục đích
cướp của”. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh
doanh, y học, tin-sinh, tài chính và thị trường chứng khoán, v.v.
 Khai phá chuỗi theo thời gian (sequential/temporal patterns): tương tự
như khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian.
Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và
thị trường chứng khoán vì nó có tính dự báo cao.
 Phân cụm (clustering/segmentation): xếp các đối tượng theo từng cụm
(số lượng cũng như tên của cụm chưa được biết trước). Phân cụm còn
được gọi là học không giám sát (học không có thầy – unsupervised
learning).
b) Các dạng dữ liệu có thể khai phá
Do khai phá dữ liệu được ứng dụng rộng rãi nên nó có thể làm việc với
rất nhiều kiểu dữ liệu khác nhau[10]. Sau đây là một số kiểu dữ liệu điển
hình:
 CSDL quan hệ (relational databases)
 CSDL đa chiều (multidimensional structures, data warehouses)
 CSDL dạng giao dịch (transactional databases)
 CSDL quan hệ - hướng đối tượng (object-relational databases)
 Dữ liệu không gian và thời gian (spatial and temporal data)
 Dữ liệu chuỗi thời gian (time-series data)

 CSDL đa phương tiện (multimedia databases) như âm thanh (audio),
hình ảnh (image), phim ảnh (video), .v.v.
 Dữ liệu Text và Web (text database & www)


8
1.2. Các bài toán trong khai phá dữ liệu văn bản
1.2.1. Tìm kiếm văn bản
a. Nội dung
Tìm kiếm văn bản là quá trình tìm kiếm văn bản theo yêu cầu của
người dùng. Các yêu cầu được thể hiện dưới dạng các câu hỏi (query), dạng
câu hỏi đơn giản nhất là các từ khóa. Có thể hình dung hệ tìm kiếm văn bản
sắp xếp văn bản thành hai lớp: Một lớp cho ra những các văn bản thỏa mãn
với câu hỏi đưa ra và một lớp không hiển thị những văn bản không được thỏa
mãn. Các hệ thống thực tế hiện nay không hiển thị như vậy mà đưa ra các
danh sách văn bản theo độ quan trọng của văn bản tuỳ theo các câu hỏi đưa
vào, ví dụ điển hình là các máy tìm tin như Google, Altavista,…
b. Quá trình tìm kiếm
Quá trình tìm tin được chia thành bốn quá trình chính :
Đánh chỉ số (indexing): Các văn bản ở dạng thô cần được chuyển sang
một dạng biểu diễn nào đó để xử lý. Quá trình này còn được gọi là quá trình
biểu diễn văn bản, dạng biểu diễn phải có cấu trúc và dễ dàng khi xử lý.
Định dạng câu hỏi: Người dùng phải mô tả những yêu cầu về lấy
thông tin cần thiết dưới dạng câu hỏi. Các câu hỏi này phải được biểu diễn
dưới dạng phổ biến cho các hệ tìm kiếm như nhập vào các từ khóa cần tìm.
Ngoài ra còn có các phương pháp định dạng câu hỏi dưới dạng ngôn ngữ tự
nhiên hoặc dưới dạng các ví dụ, đối với các dạng này thì cần có các kỹ thuật
xử lý phức tạp hơn. Trong các hệ tìm tin hiện nay thì đại đa số là dùng câu hỏi
dưới dạng các từ khóa.
So sánh: Hệ thống phải có sự so sánh rõ ràng và hoàn toàn câu hỏi các

câu hỏi của người dùng với các văn bản được lưu trữ trong cơ sở dữ liệu.
Cuối cùng hệ đưa ra một quyết định phân loại các văn bản có độ liên quan


9
gần với câu hỏi đưa vào và thứ tự của nó. Hệ sẽ hiển thị toàn bộ văn bản hoặc
chỉ một phần văn bản.
Phản hồi: Nhiều khi kết quả được trả về ban đầu không thỏa mãn yêu
cầu của người dùng, do đó cần phải có quá trình phản hồi để người dùng có
thể thay đổi lại hoặc nhập mới các yêu cầu của mình. Mặt khác, người dùng
có thể tương tác với các hệ về các văn bản thỏa mãn yêu cầu của mình và hệ
có chức năng cập nhật các văn bản đó. Quá trình này được gọi là quá trình
phản hồi liên quan (Relevance feeback).
Các công cụ tìm kiếm hiện nay chủ yếu tập trung nhiều vào ba quá
trình đầu, còn phần lớn chưa có quá trình phản hồi hay xử lý tương tác người
dùng và máy. Quá trình phản hồi hiện nay đang được nghiên cứu rộng rãi và
riêng trong quá trình tương tác giao diện người máy đã xuất hiện hướng
nghiên cứu là interface agent.
1.2.2. Phân lớp văn bản
a. Nội dung
Phân lớp văn bản được xem như là quá trình gán các văn bản vào một
hay nhiều văn bản đã xác định từ trước. Người ta có thể phân lớp các văn bản
một cách thủ công, tức là đọc từng văn bản một và gán nó vào một lớp nào
đó. Cách này sẽ tốn rất nhiều thời gian và công sức đối với nhiều văn bản và
do đó không khả thi. Do vậy mà phải có các phương pháp phân lớp tự động.
Để phân lớp tự động người ta sử dụng các phương pháp học máy trong trí tuệ
nhân tạo (Cây quyết định, Bayes, k-người láng giềng gần nhất ).
Một trong những ứng dụng quan trọng nhất của phân lớp văn bản là
trong tìm kiếm văn bản. Từ một tập dữ liệu đã phân lớp, các văn bản sẽ được
đánh chỉ số đối với từng lớp tương ứng. Người dùng có thể xác định chủ đề

hoặc phân lớp văn bản mà mình mong muốn tìm kiếm thông qua các câu hỏi.


10
Một ứng dụng khác của phân lớp văn bản là trong lĩnh vực tìm hiểu
văn bản. Phân lớp văn bản có thể được sử dụng để lọc các văn bản hoặc một
phần các văn bản chứa dữ liệu cần tìm mà không làm mất đi tính phức tạp của
ngôn ngữ tự nhiên.
Trong phân lớp văn bản, một lớp có thể được gán giá trị đúng, sai
(True hay False hoặc văn bản thuộc hay không thuộc lớp) hoặc được tính theo
mức độ phụ thuộc (văn bản có một mức độ phụ thuộc vào lớp). Trong trường
hợp có nhiều lớp thì phân loại đúng, sai sẽ là việc xem một văn bản có thuộc
vào một lớp duy nhất nào đó hay không.
b. Quá trình phân lớp
Quá trình phân lớp văn bản tuân theo các bước sau:
Đánh chỉ số (Indexing): Quá trình đánh chỉ số văn bản cũng giống như
trong quá trình đánh chỉ số của tìm kiếm văn bản. Trong phần này thì tốc độ
đánh chỉ số đóng vai trò quan trọng vì một số các văn bản mới có thể cần
được xử lý trong thời gian thực.
Xác định độ phân lớp: Cũng giống như trong tìm kiếm văn bản, phân
lớp văn bản yêu cầu quá trình diễn tả việc xác định văn bản đó thuộc lớp nào
đó như thế nào, dựa trên cấu trúc biểu diễn của nó. Đối với hệ phân lớp văn
bản, quá trình này do bộ phân lớp (classifier) thực hiện. Bộ phân lớp đóng vai
trò như hệ trả lời câu hỏi trong hệ tìm kiếm. Nhưng trong khi các hệ trả lời
câu hỏi mang tính nhất thời, thì bộ phân lớp được sử dụng một cách ổn định
và lâu dài cho quá trình phân lớp.
So sánh: Trong hầu hết các bộ phân loại, mỗi văn bản đều được yêu
cầu gán đúng, sai vào một lớp nào đó. Sự khác nhau lớn nhất đối với quá trình
so sánh trong hệ tìm kiếm văn bản là mỗi văn bản chỉ được so sánh với một số
lượng các lớp một lần và việc chọn quyết định phù hợp còn phụ thuộc vào

mối quan hệ giữa các lớp văn bản.


11
Phản hồi (Hay thích nghi): Quá trình phản hồi đóng vai trò trong hệ
phân lớp văn bản. Thứ nhất là khi phân loại thì phải có một số lượng lớn các
văn bản đã được xếp loại bằng tay trước đó, các văn bản này được sử dụng
làm mẫu huấn luyện để hỗ trợ xây dựng bộ phân loại. Thứ hai là đối với việc
phân loại văn bản này không dễ dàng thay đổi các yêu cầu như trong quá trình
phản hồi của tìm kiếm văn bản, người dùng có thể thông tin cho người bảo trì
hệ thống về việc xóa bỏ, thêm vào hoặc thay đổi các phân lớp văn bản nào đó
mà mình yêu cầu.
1.2.3. Một số bài toán khác
Ngoài hai bài toán kể trên, còn có các bài toán sau:
 Tóm tắt văn bản
 Phân cụm văn bản
 Phân cụm các từ mục
 Phân lớp các từ mục
 Đánh chỉ mục các từ tiềm năng
 Dẫn đường văn bản
1.3. Khai phá dữ liệu Web
1.3.1. Nhu cầu
Sự phát triển nhanh chóng của mạng Internet và Intranet đã sinh ra
một khối lượng khổng lồ các dữ liệu dạng siêu văn bản (dữ liệu Web). Cùng
với sự thay đổi và phát triển hàng ngày hàng giờ về nội dung cũng như số
lượng của các trang Web trên Internet thì vấn đề tìm kiếm thông tin đối với
người sử dụng lại ngày càng khó khăn. Có thể nói nhu cầu tìm kiếm thông tin
trên một cơ sở dữ liệu phi cấu trúc đã được phát triển chủ yếu cùng với sự
phát triển của Internet. Thực vậy, với Internet con người đã làm quen với các
trang Web cùng với vô vàn các thông tin. Trong những năm gần đây Internet

đã trở thành một trong những kênh về khoa học, thông tin kinh tế, thương mại


12
và quảng cáo. Một trong những lý do cho sự phát triển này là giá cả tiêu tốn
khi công khai một trang Web trên Internet là khá thấp. So sánh với những
dịch vụ khác như phát tờ rơi hay quảng cáo trên một tờ báo hay tạp chí, thì
một trang Web rẻ hơn rất nhiều và cập nhật nhanh chóng hơn tới hàng triệu
người dùng khắp mọi nơi trên thế giới. Có thể nói trang Web như là cuốn từ
điển Bách khoa toàn thư. Thông tin trên các trang Web đa dạng về mặt nội
dung cũng như hình thức. Có thể nói Internet như một xã hội ảo, nó bao gồm
các thông tin về mọi mặt của đời sống kinh tế, xã hội được trình bày dưới
dạng văn bản, âm thanh, hình ảnh
Tuy nhiên, cùng với sự đa dạng và số lượng lớn thông tin như vậy đã
nảy sinh vấn đề quá tải thông tin. Người ta không thể tìm tự kiếm địa chỉ
trang Web chứa thông tin mà mình cần, do vậy đòi hỏi cần phải có một trình
tiện ích quản lý nội dung của các trang Web và cho phép tìm thấy các địa chỉ
trang Web có nội dung giống với yêu cầu của người tìm kiếm. Các tiện ích
này quản lý dữ liệu như các đối tượng phi cấu trúc. Hiện nay, người sử dụng
rất quen thuộc với không ít các tiện ích như vậy đó là: Yahoo, Google,
Alvista, v.v
Mặt khác, giả sử chúng ta có các trang Web về các vấn đề Tin học,
Thể thao, Kinh tế - Xã hội và Xây dựng Căn cứ vào nội dung của các tài
liệu mà khách hàng xem hoặc download về, sau khi phân lớp, chúng ta sẽ biết
khách hàng hay tập trung vào nội dung gì trên trang Web của chúng ta, từ đó
chúng ta sẽ bổ sung thêm nhiều các tài liệu về các nội dung mà khách hàng
quan tâm và ngược lại. Còn về phía khách hàng sau khi phân tích, chúng ta
cũng biết được khách hàng hay tập trung về vấn đề gì, để từ đó có thể đưa ra
những hỗ trợ thêm cho khách hàng đó. Từ những nhu cầu thực tế trên, phân
lớp và khai phá Web vẫn là bài toán hay và cần tiếp tục phát triển, nghiên

cứu.


13
1.3.2. Đặc điểm
Hệ thống phục vụ World Wide Web như là một hệ thống trung tâm rất
lớn, phân bố rộng, cung cấp thông tin trên mọi lĩnh vực khoa học, chính trị,
xã hội, thương mại, kinh tế, văn hóa, giáo dục Web là một nguồn tài nguyên
giàu có cho Khai phá dữ liệu.
a) Web dường như quá lớn để tổ chức thành một kho dữ liệu phục vụ
Datamining
Các cơ sở dữ liệu truyền thống thì có kích thước không lớn lắm và
thường được lưu trữ ở một nơi. Trong khi đó kích thước Web rất lớn, tới hàng
terabytes và thay đổi liên tục, không những thế còn phân tán trên rất nhiều
máy tính khắp nơi trên thế giới. Một vài nghiên cứu về kích thước của Web
đã đưa ra các số liệu như sau: Hiện nay trên Internet có khoảng hơn một tỷ
các trang Web được cung cấp cho người sử dụng, giả sử kích thước trung
bình của mỗi trang là 5-10Kb thì tổng kích thước của nó ít nhất là khoảng 10
terabyte. Còn tỷ lệ tăng của các trang Web thì thật sự gây ấn tượng. Hai năm
gần đây số các trang Web tăng gấp đôi và còn tiếp tục tăng trong các năm tới.
Nhiều tổ chức và xã hội đặt hầu hết những thông tin công cộng của họ lên
Web. Như vậy việc xây dựng một kho dữ liệu (datawarehouse) để lưu trữ, sao
chép hay tích hợp các dữ liệu trên Web là gần như không thể.
b) Độ phức tạp của trang Web lớn hơn rất nhiều so với những tài liệu
văn bản truyền thống khác
Các dữ liệu trong các cơ sở dữ liệu truyền thống thì thường là loại dữ
liệu đồng nhất (về ngôn ngữ, định dạng,…), còn dữ liệu Web thì hoàn toàn
không đồng nhất. Ví dụ về ngôn ngữ dữ liệu Web bao gồm rất nhiều loại ngôn
ngữ khác nhau (Cả ngôn ngữ diễn tả nội dung lẫn ngôn ngữ lập trình), nhiều
loại định dạng khác nhau (Text, HTML, PDF, hình ảnh, âm thanh,…), nhiều



14
loại từ vựng khác nhau (Địa chỉ Email, các liên kết (links), các mã nén
(zipcode), số điện thoại)
Nói cách khác, trang Web thiếu một cấu trúc thống nhất. Chúng được
coi như một thư viện kỹ thuật số rộng lớn, tuy nhiên con số khổng lồ các tài
liệu trong thư viện thì không được sắp xếp tuân theo một tiêu chuẩn đặc biệt
nào, không theo phạm trù, tiêu đề, tác giả, số trang hay nội dung Điều này là
một thử thách rất lớn cho việc tìm kiếm thông tin cần thiết trong một thư viện
như thế.
c) Web là một nguồn tài nguyên thông tin có độ thay đổi cao
Web không chỉ có thay đổi về độ lớn mà thông tin trong chính các
trang Web cũng được cập nhật liên tục. Theo kết quả nghiên cứu, hơn
500.000 trang Web trong hơn 4 tháng thì 23% các trang thay đổi hàng ngày,
và khoảng hơn 10 ngày thì 50% các trang trong tên miền đó biến mất, nghĩa là
địa chỉ URL của nó không còn tồn tại nữa. Tin tức, thị trường chứng khoán,
các công ty quảng cáo và trung tâm phục vụ Web thường xuyên cập nhật
trang Web của họ. Thêm vào đó sự kết nối thông tin và sự truy cập bản ghi
cũng được cập nhật.
d) Web phục vụ một cộng đồng người dùng rộng lớn và đa dạng
Internet hiện nay nối với khoảng 50 trạm làm việc, và cộng đồng
người dùng vẫn đang nhanh chóng lan rộng. Mỗi người dùng có một kiến
thức, mối quan tâm, sở thích khác nhau. Nhưng hầu hết người dùng không có
kiến thức tốt về cấu trúc mạng thông tin, hoặc không có ý thức cho những tìm
kiếm, rất dễ bị "lạc" khi đang "mò mẫm" trong "bóng tối" của mạng hoặc sẽ
chán khi tìm kiếm mà chỉ nhận những mảng thông tin không mấy hữu ích.
e) Chỉ một phần rất nhỏ của thông tin trên Web là thực sự hữu ích
Theo thống kê, 99% của thông tin Web là vô ích với 99% người dùng
Web. Trong khi những phần Web không được quan tâm lại bị thống kê vào



15
kết quả nhận được trong khi tìm kiếm. Vậy thì ta cần phải khai phá Web như
thế nào để nhận được trang Web chất lượng cao nhất theo tiêu chuẩn của
người dùng?
Như vậy chúng ta có thể thấy các điểm khác nhau giữa việc tìm kiếm
trong một cơ sở dữ liệu truyền thống với việc tìm kiếm trên Internet. Những
thách thức trên đã đẩy mạnh việc nghiên cứu khai phá và sử dụng tài nguyên
trên Internet.
f) Web bao gồm không chỉ có các trang mà còn có cả các hyperlink
trỏ từ trang này tới trang khác. Khi một tác giả tạo một hyperlink từ trang của
mình tới một trang A có nghĩa là A là trang có hữu ích với vấn đề đang bàn
luận. Nếu trang A càng nhiều Hyperlink từ trang khác trỏ đến chứng tỏ trang
A quan trọng. Vì vậy số lượng lớn các thông tin liên kết trang sẽ cung cấp
một lượng thông tin lớn về mối liên quan, chất lượng, cấu trúc của nội dung
trang Web, và đó là một nguồn tài nguyên lớn cho khai phá Web.
g) Máy chủ Web thường đăng ký một bản ghi đầu vào (Weblog entry)
cho mọi lần truy cập trang Web. Nó bao gồm địa chỉ URL, địa chỉ IP,
timestamp. Dữ liệu Weblog cung cấp lượng thông tin lớn về những trang Web
động. Với những thông tin về địa chỉ URL, địa chỉ IP,… một cách hiển thị đa
chiều có thể được cấu trúc nên dựa trên cơ sở dữ liệu Weblog. Thực hiện phân
tích OLAP (Online Analytical Processing) đa chiều có thể đưa ra N người
dùng cao nhất, N trang Web truy cập nhiều nhất, khoảng thời gian nhiều
người truy cập nhất và xu hướng truy cập Web.
1.3.3. Các hướng tiếp cận
Như đã phân tích về đặc điểm và nội dung các văn bản HyperText ở
trên, từ đó khai phá dữ liệu Web cũng sẽ tập trung vào các thành phần có
trong trang Web. Đó chính là:



16
a) Khai phá nội dung trang Web (Web Content mining), gồm hai
phần:
* Web Page Content: nghĩa là sẽ sử dụng chỉ các từ trong văn bản mà
không tính đến các liên kết giữa các văn bản. Đây chính là khai phá dữ liệu
Text (Textmining).
* Search Result: tìm kiếm theo kết quả. Trong các máy tìm kiếm, sau
khi đã tìm ra những trang Web thoả mãn yêu cầu người dùng, còn một công
việc không kém phần quan trọng, đó là phải sắp xếp kết quả theo thứ tự độ
gần nhau với nội dung cần tìm kiếm. Đây cũng chính là khai phá nội dung
trang Web.
b) Khai phá cấu trúc trang Web (Web Structure Mining)
Khai phá dựa trên các siêu liên kết giữa các văn bản có liên quan.
c) Khai phá cách truy cập trang Web (Web Usage Mining)
* General Access Partern Tracking: Phân tích các Web log để khám
phá ra các mẫu truy cập của người dùng trong trang Web.
* Customize Usage Tracking: Phân tích các mẫu truy cập của người
dùng tại mỗi thời điểm để biết xu hướng truy cập trang Web của từng đối
tượng người dùng tại mỗi thời điểm khác nhau.

Hình 3. Các nội dung trong khai phá Web

Web Structure
Mining



Web Content
Mining

Web Page
Content
Mining
Search
Result
Mining



Web Usage
Mining
General Access
Pattern
Tracking
Customized
Usage
Tracking
Web Mining


17
CHƢƠNG 2. PHÂN LỚP VĂN BẢN

Phân lớp văn bản được định nghĩa như là việc gán các nội dung biết
trước vào các văn bản Text dựa trên nội dung của nó. Phân lớp văn bản được
sử dụng để hỗ trợ trong quá trình tìm kiếm thông tin, chắt lọc thông tin, lọc
văn bản hoặc dẫn đường cho các văn bản tới những chủ đề được xác định
trước.
2.1. Bài toán phân lớp
2.1.1. Nhu cầu, ý tưởng

Thực tế cho thấy rằng, với số lượng các tài liệu thông tin càng ngày
càng trở nên khổng lồ. Việc tìm kiếm thông tin, và trích chọn thông tin trở
nên cực kỳ khó khăn. Do đó, việc phân chia các tài liệu thành các lớp (class)
theo các chủ đề cho trước sẽ giúp ích được rất nhiều trong các công việc này.
Đó chính là cơ sở cho việc phân lớp các tài liệu, nhờ việc các tài liệu được
gán các nhãn lớp thích hợp mà chúng ta có thể định hướng để việc tìm kiếm
và trích chọn thông tin, tài liệu chính xác và nhanh chóng hơn so với việc phải
tìm kiếm “mù” trên toàn bộ các tài liệu.
Ý tưởng của việc phân lớp được xuất phát từ ý tưởng tự nhiên: chia sự
vật thành các lớp đối tượng “tương đồng” khác nhau để quản lý và sử dụng
một cách thuận tiện hơn. Giải thuật phân lớp là một phép ánh xạ cơ sở dữ liệu
đã có sang một miền giá trị cụ thể nào đó, dựa vào một hoặc một tập hợp
thuộc tính của dữ liệu.


Hình 4. Mô hình của bài toán phân lớp


18
2.1.2. Quá trình phân lớp
Phân lớp là một tiến trình gồm hai bước. Trong bước thứ nhất, một mô
hình được xây dựng để mô tả một tập hợp các lớp dữ liệu đã được xác định
trước. Mô hình này được xây dựng bằng việc phân tích các bản ghi của cơ sở
dữ liệu được mô tả bằng các thuộc tính (các trường). Mỗi một bản ghi được
giả định thuộc về một lớp đã biết - lớp được xác định bởi một trong các thuộc
tính, được gọi là thuộc tính nhãn lớp (class label attribute). Trong bài toán
phân lớp, các bản ghi thường được xem như là các mẫu (samples) hay các đối
tượng (objects). Các bản ghi dữ liệu đó được phân tích để tạo nên một tập dữ
liệu huấn luyện (training data set). Mỗi một mẫu trong tập dữ liệu huấn luyện
được coi là một mẫu huấn luyện (training samples) và được chọn một cách

ngẫu nhiên từ trong các mẫu. Do nhãn lớp của từng mẫu huấn luyện được
cung cấp, nên bước này cũng được xem như là học có giám sát (supervised
learning). Có nhiều phương pháp học máy được áp dụng như mô hình mạng
Bayes, cây quyết định, phương pháp k - người láng giềng gần nhất, SVM…
Thông thường các mô hình học được biểu diễn dưới dạng các quy tắc
phân lớp, các cây quyết định hay các công thức toán học. Ví dụ, cho một cơ
sở dữ liệu các trang Web, các quy tắc phân lớp có thể được học để xác định
các quy tắc phân lớp cho một trang Web khác (Hình 5). Các quy tắc có thể
được dùng để phân lớp các mẫu dữ liệu khác, cùng với việc cung cấp một sự
hiểu biết hơn của người dùng về nội dung của cơ sở dữ liệu.


Hình 5. Mô hình học- phân tích một tập dữ liệu huấn luyện

×