BỘ GIÁO DỤC VÀ ĐÀO TẠO
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
TRẦN THỊ GEN NI
Nghiªn cøu ph©n côm
d÷ liÖu web vµ øng dông
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Huế, 2015
MỤC LỤC
Lời cam đoan
Lời cảm ơn
Mục lục
Danh mục các bảng
Danh mục các hình
MỞ ĐẦU .......................................................................................................... 1
Chương 1. TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU.................................. 4
1.1. Giới thiệu về Khai phá dữ liệu ................................................................... 4
1.1.1. Các chức năng chính của khai phá dữ liệu .............................................. 5
1.1.2. Các phương pháp khai phá dữ liệu.......................................................... 6
1.1.3. Ứng dụng của khai phá dữ liệu ............................................................... 7
1.2. Khai phá dữ liệu web ................................................................................. 7
1.2.1. Dữ liệu Web và nhu cầu khai thác thông tin ........................................... 7
1.2.2. Đặc điểm của dữ liệu Web ...................................................................... 9
1.2.3. Các kiểu dữ liệu Web .............................................................................. 9
1.3. Các hướng tiếp cận khai phá dữ liệu web ................................................ 10
1.4. Nhu cầu phân cụm tài liệu Web ............................................................... 11
1.5. Xử lý dữ liệu văn bản ứng dụng trong khai phá dữ liệu Web.................. 12
1.5.1. Dữ liệu văn bản ..................................................................................... 12
1.5.2. Một số vấn đề trong xử lý dữ liệu văn bản ........................................... 13
1.5.3. Các mô hình biểu diễn dữ liệu văn bản ................................................. 16
1.6. Kết luận chương 1 .................................................................................... 20
Chương 2. MỘT SỐ KỸ THUẬT PHÂN CỤM DỮ LIỆU ...................... 22
2.1. Tổng quan về kỹ thuật phân cụm ............................................................. 22
2.2. Các yêu cầu đối với kỹ thuật phân cụm dữ liệu ....................................... 25
2.3. Các ứng dụng của phân cụm dữ liệu ........................................................ 27
2.4. Một số thuật toán cơ bản trong phân cụm dữ liệu.................................... 28
2.4.1. Các thuật toán phân cụm phân hoạch.................................................... 28
2.4.2. Các thuật toán phân cụm phân cấp........................................................ 33
2.5. Các đặc tính của các thuật toán phân cụm web ....................................... 38
2.5.1. Mô hình dữ liệu ..................................................................................... 38
2.5.2. Độ đo về sự tương tự ............................................................................. 41
2.5.3. Mô hình phân cụm ................................................................................ 42
2.6. Các yêu cầu đối với các thuật toán phân cụm Web ................................. 43
2.6.1. Tách các thông tin đặc trưng ................................................................. 43
2.6.2. Phân cụm chồng lặp .............................................................................. 44
2.6.3. Hiệu suất ................................................................................................ 44
2.6.4. Khả năng khử nhiễu .............................................................................. 45
2.6.5. Tính tăng ............................................................................................... 45
2.6.6. Việc biểu diễn kết quả ........................................................................... 45
2.7. Một số kỹ thuật Phân cụm Web điển hình ............................................... 46
2.7.1. Phân cụm theo thứ bậc .......................................................................... 46
2.7.2. Phân cụm bằng cách phân mảnh ........................................................... 49
2.8. Kết luận chương 2 .................................................................................... 51
Chương 3. ỨNG DỤNG VỀ PHÂN CỤM DỮ LIỆU WEB ...................... 52
3.1. Môi trường thực nghiệm: ......................................................................... 52
3.2. Công cụ thực nghiệm: .............................................................................. 52
3.3. Chuẩn bị dữ liệu ....................................................................................... 53
3.4. Quá trình thực nghiệm.............................................................................. 53
3.5. Thiết kế cơ sở dữ liệu ............................................................................... 54
3.6. Chương trình thử nghiệm ......................................................................... 56
3.7. Kết luận chương 3 .................................................................................... 58
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...................................................... 59
TÀI LIỆU THAM KHẢO ............................................................................... 61
PHỤ LỤC
DANH MỤC CÁC BẢNG
Số hiệu bảng
Tên bảng
Trang
1.1
Thống kê các tần số xuất hiện cao
14
3.1
Môi trường thực nghiệm
52
3.2
Bảng Urls (địa chỉ website)
55
3.3
Bảng Channels (kênh tin)
55
3.4
Items (tin tức)
55
DANH MỤC CÁC HÌNH
Số hiệu
Tên hình vẽ
hình vẽ
Trang
1.1
Các bước trong Data Mining & KDD
5
1.2
Phân loại dữ liệu Web
9
1.3
Lược đồ thống kê tần số của từ theo Định luật Zipf
16
2.1
Mô phỏng sự PCDL
23
2.2
Các thiết lập để xác định ranh giới các cụm ban đầu
28
2.3
Tính toán trọng tâm của các cụm mới
29
2.4
Ví dụ các bước của thuật toán k-means
31
2.5
Sự thay đổi tâm cụm trong k-means khi có phần tử ngoại lai
32
2.6
Phân cụm phân cấp Top-down và Bottom-up
34
2.7
Single Link
34
2.8
Complete Link
34
2.9
Các bước cơ bản của AGNES
35
2.10
Ví dụ các bước cơ bản của thuật toán AGNES
36
2.11
Các bước cơ bản của DIANA
37
3.1
Một ví dụ dendogram của phân cụm sử dụng phân cụm có
thứ bậc
46
3.2.
Màn hình chức năng hỗ trợ lấy dữ liệu từ Internet
57
3.3
Màn hình chức năng hỗ trợ tìm kiếm
58
1
MỞ ĐẦU
Trong những năm gần đây, sự phát triển vượt bậc của công nghệ thông tin
đã làm tăng số lượng giao dịch thông tin trên Internet một cách đáng kể. Phương
thức sử dụng giấy tờ trong giao dịch đã dần được số hóa chuyển sang các dạng
văn bản lưu trữ trên máy tính hoặc truyền tải trên mạng. Bởi nhiều tính năng ưu
việt của tài liệu số như cách lưu trữ gọn nhẹ, thời gian lưu trữ lâu dài, dễ dàng
sửa đổi, tiện dụng trong trao đổi đặc biệt là qua Internet. Do đó mà số lượng văn
bản xuất hiện trên Internet cũng tăng theo với một tốc độ chóng mặt, dẫn đến
tình trạng quá tải đối với việc xử lý thông tin do lượng thông tin không ngừng
tăng lên.
Cùng với sự tiến bộ vượt bậc của công nghệ thông tin là sự phát triển
mạnh mẽ của mạng thông tin toàn cầu, nguồn dữ liệu web trở thành kho dữ liệu
khổng lồ. Do đó, việc nghiên cứu các mô hình dữ liệu mới và áp dụng các
phương pháp để tìm kiếm nhanh chóng tài nguyên web là một xu thế tất yếu.
Với số lượng thông tin đồ sộ như vậy, một yêu cầu lớn đặt ra với chúng
ta là làm sao tổ chức và tìm kiếm thông tin một cách hiệu quả nhất. Phân loại
thông tin là một giải pháp hợp lý cho yêu cầu trên. Nhưng một thực tế là khối
lượng thông tin quá lớn, việc phân loại thủ công là điều không tưởng. Hướng
giải quyết là một chương trình máy tính tự động phân loại các thông tin trên.
Do đó, việc nghiên cứu các mô hình dữ liệu mới và áp dụng các phương
pháp khai phá dữ liệu trong khai phá tài nguyên Web là một xu thế tất yếu vừa
có ý nghĩa khoa học vừa mang ý nghĩa thực tiễn cao.
Ngày nay, nhờ sự cải tiến không ngừng của các công cụ tìm kiếm về cả
chức năng tìm kiếm lẫn giao diện đã giúp cho người sử dụng dễ dàng hơn trong
việc tìm kiếm thông tin trên web. Tuy nhiên, người sử dụng thường vẫn phải
duyệt qua hàng trăm, thậm chí hàng ngàn trang Web mới có thể tìm kiếm được
2
thứ mà họ cần. Nhằm giải quyết vấn đề này, ta có thể nhóm các kết quả tìm
kiếm thành các nhóm theo từng chủ đề, khi đó người dùng có thể bỏ qua các
nhóm mà họ không quan tâm để tìm đến nhóm chủ đề quan tâm. Điều này sẽ
giúp cho người dùng thực hiện công việc tìm kiếm một cách hiệu quả hơn.
Đặc biệt trong vấn đề giải quyết văn bản. Văn bản có rất nhiều loại, khi
muốn tìm kiếm bất kỳ văn bản nào trên web nếu làm bằng thủ công cũng rất khó
khăn và mất nhiều thời gian. Với số lượng văn bản đồ sộ như thế cần có một giải
pháp để tìm kiếm văn bản được nhanh hơn. Vì thế việc ứng dụng phân cụm dữ
liệu để tìm kiếm văn bản theo chủ đề là một vấn đề rất cần thiết.
Vì vậy, tôi chọn đề tài “Nghiên cứu phân cụm dữ liệu web và ứng dụng”
để làm luận văn cho mình.
Mục tiêu của luận văn là: Nghiên cứu một số kỹ thuật phân cụm dữ liệu
trên các trang web và ứng dụng xây dựng hệ thống tìm kiếm các văn bản theo
một số chủ đề.
Luận văn tập trung nghiên cứu cấu trúc Web, các kỹ thuật phân cụm, phân
cụm web và các chủ đề chính liên quan phục vụ công tác điều hành quản lý cấp
huyện.
Phương pháp nghiên cứu chủ yếu là thu thập và phân tích các tài liệu và
thông tin liên quan đến đề tài, căn cứ thực trạng công việc liên quan và tham
khảo ý kiến chuyên gia.
Luận văn tập trung trình bày các nội dung sau:
1. Tổng quan về khai phá dữ liệu, bao gồm: Giới thiệu về Khai phá dữ
liệu và khai phá dữ liệu web; các hướng tiếp cận khai phá dữ liệu web, nhu cầu
phân cụm tài liệu Web, xử lý dữ liệu văn bản ứng dụng trong khai phá dữ liệu
Web
2. Một số kỹ thuật phân cụm dữ liệu và phân cụm dữ liệu web, bao gồm:
Các yêu cầu đối với kỹ thuật phân cụm dữ liệu; một số thuật toán cơ bản trong
3
phân cụm dữ liệu; các đặc tính của thuật toán phân cụm web và các yêu cầu đối
với các thuật toán phân cụm Web; một số kỹ thuật phân cụm Web điển hình.
3. Ứng dụng về phân cụm dữ liệu web, bao gồm: trình bày quá trình xây
dựng chương trình ứng dụng từ chuẩn bị dữ liệu, thiết kế cơ sở dữ liệu đén cài
đặt chương trình thử nghiệm và đánh giá kết quả.
Chương 1
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1. Giới thiệu về Khai phá dữ liệu
Khái niệm Khai phá dữ liệu (Data Mining)
Khai phá dữ liệu được định nghĩa như một quá trình chắt lọc hay khám
phá tri thức từ một lượng lớn dữ liệu. Thuật ngữ Data Mining ám chỉ việc tìm
một tập nhỏ có giá trị từ một lượng lớn các dữ liệu thô. Hai khái niệm KPDL và
KDD được các nhà khoa học trên hai lĩnh vực xem là tương đương với nhau.
Tuy nhiên, nếu phân chia một cách chi tiết vẫn có sự phân biệt giữa khái niệm
"Khai phá dữ liệu" với khái niệm "Phát hiện tri thức" (Knowledge Discovery in
Databases - KDD) mà theo đó, khai phá dữ liệu chỉ là một bước chính trong quá
trình KDD.
Định nghĩa 1.1: Khai phá dữ liệu là một tập hợp các kỹ thuật được sử
dụng để tự động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong
một tập hợp dữ liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm
ẩn trong tập dữ liệu đó. [1]
Khai phá dữ liệu là một bước trong bảy bước của quá trình KDD
(Knowleadge Discovery in Database) và KDD được xem như 7 quá trình khác
nhau theo thứ tự sau:
1. Làm sạch dữ liệu (data cleaning & preprocessings): Loại bỏ nhiễu và
các dữ liệu không cần thiết.
2. Tích hợp dữ liệu (data integration): quá trình hợp nhất dữ liệu thành
những kho dữ liệu (data warehouses & data marts) sau khi đã làm sạch và tiền
xử lý (data cleaning & preprocessing).
3. Trích chọn dữ liệu (data selection): trích chọn dữ liệu từ những kho dữ
liệu và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri thức. Quá
trình này bao gồm cả việc xử lý với dữ liệu nhiễu (noisy data), dữ liệu không
đầy đủ (incomplete data), .v.v.
4. Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù
hợp cho quá trình xử lý.
5. Khai phá dữ liệu (data mining): Là một trong các bước quan trọng nhất,
trong đó sử dụng những phương pháp thông minh để lựa chọn ra những mẫu dữ
liệu.
6. Ước lượng mẫu (knowledge evaluation): Quá trình đánh giá các kết quả
tìm được thông qua một độ đo nào đó.
7. Biểu diễn tri thức (knowledge presentation): Quá trình này sử dụng các
kỹ thuật để biểu diễn và thể hiện các kết quả một cách trực quan cho người
dùng.
Hình 1.1. Các bước trong Data Mining & KDD
1.1.1. Các chức năng chính của khai phá dữ liệu
Khai phá dữ liệu được chia nhỏ thành một số hướng chính như sau:
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ụ: “Có tới 70% người truy nhập Web vào địa chỉ Url1
thì cũng vào địa chỉ Url2 trong một phiên truy nhập web”. 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
& thị trường chứng khoán, .v.v.
Phân lớp và dự đoán (classification & prediction): Là quá trình 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 học máy (machine learning) như cây quyết định (decision
tree), mạng nơ ron nhân tạo (neural network), .v.v. Người ta còn gọi phân
lớp là học có giám sát (học có thầy).
Phân cụm (clustering): Sắp xếp các đối tượng theo từng cụm dữ liệu tự
nhiên, tức là số lượng và tên cụm chưa được biết trước. Các đối tượng
được gom cụm sao cho mức độ tương tự giữa các đối tượng trong cùng
một cụm là lớn nhất và mức độ tương tự giữa các đối tượng nằm trong các
cụm khác nhau là nhỏ nhất. Người ta còn gọi phân cụm là học không
giám sát (học không thầy).
Khai phá chuỗi (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.
1.1.2. Các phương pháp khai phá dữ liệu
Với hai mục đích khai phá dữ liệu là Mô tả và Dự đoán, người ta thường
sử dụng các phương pháp sau cho khai phá dữ liệu:
Luật kết hợp (association rules)
Phân lớp (Classfication)
Hồi qui (Regression)
Trực quan hóa (Visualiztion)
Phân cụm (Clustering)
Tổng hợp (Summarization)
Mô hình ràng buộc (Dependency modeling)
Biểu diễn mô hình (Model Evaluation)
Phân tích sự phát triển và độ lệch (Evolution and deviation analyst)
Phương pháp tìm kiếm (Search Method)
Có nhiều phương pháp khai phá dữ liệu được nghiên cứu ở trên, trong đó
có ba phương pháp được các nhà nghiên cứu sử dụng nhiều nhất đó là: Luật kết
hợp, Phân lớp dữ liệu và Phân cụm dữ liệu.
1.1.3. Ứng dụng của khai phá dữ liệu
Khai phá dữ liệu 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ó. Chúng ta có thể liệt
kê ra đây một số ứng dụng điển hình:
• Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision
support)
• Điều trị y học (medical treatment)
• Khai phá dữ liệu văn bản và khai phá web (Text mining & Web mining)
• Tin-sinh (bio-informatics)
• Tài chính và thị trường chứng khoán (finance & stock market)
• Bảo hiểm (insurance)
• Nhận dạng (pattern recognition)
•.v.v.
1.2. Khai phá dữ liệu web
1.2.1. Dữ liệu Web và nhu cầu khai thác thông tin
Khoảng hơn một thập kỷ trở lại đâ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ổ. Số lượng cũng như kích cỡ
của các cơ sở dữ liệu (CSDL) cũng tăng lên một cách nhanh chóng. Phương
thức sử dụng giấy tờ trong giao dịch đã dần được lưu trữ trên máy tính hoặc
truyền tải trên mạng. Bởi nhiều tính năng ưu việt của tài liệu số như cách lưu trữ
gọn nhẹ, thời gian lưu trữ lâu dài, dễ dàng sửa đổi, tiện dụng trong trao đổi đặc
biệt là qua Internet. Đồng thời, giá cả thấp cần tiêu tốn khi công khai một trang
Web trên Internet.
So sánh với những dịch vụ khác như mua bán, quảng cáo trên một tờ báo
hay tạp chí, thì một trang Web "đòi" chi phí rẻ hơn rất nhiều mà lại được 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. Do
đó mà số lượng văn bản xuất hiện trên mạng Internet cũng tăng theo với một tốc
độ chóng mặt. Dẫn đến tình trạng quá tải đối với việc xử lý thông tin do lượng
thông tin không ngừng tăng lên.
Chính vì thế người ta không thể tự tìm 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 trang
Web như các đối tượng phi cấu trúc. Hiện nay chúng ta đã làm quen với một số
các tiện ích như vậy, đó là Yahoo, Google, Alvista,...
Nhờ sự cải tiến không ngừng của các công cụ tìm kiếm về cả chức năng
tìm kiếm lẫn giao diện đã giúp cho người sử dụng dễ dàng hơn trong việc tìm
kiếm thông tin trên web. Tuy nhiên vấn đề phân cụm tài liệu Web và chọn chủ
đề thích hợp để nó có thể mô tả được nội dung của các trang là một vấn đề
không đơn giản.
Đặc biệt trong vấn đề giải quyết văn bản. Văn bản có rất nhiều loại, khi
muốn tìm kiếm bất kỳ văn bản nào trên web nếu làm bằng thủ công cũng rất khó
khăn và mất nhiều thời gian. Với số lượng văn bản đồ sộ như thế cần có một giải
pháp để tìm kiếm văn bản được nhanh hơn. Vì thế việc ứng dụng phân cụm dữ
liệu để tìm kiếm văn bản theo chủ đề là một vấn đề rất cần thiết.
Mặt khác, căn cứ vào nội dung của các tài liệu mà người dùng xem và tải
về, sau khi phân lớp các yêu cầu như thế của người dùng, chúng ta sẽ biết được
họ hay tập trung vào nội dung gì trên trang Web của chúng ta, mà từ đó chúng ta
sẽ bổ sung thêm nhiều các tài liệu về các nội dung mà họ quan tâm. Ngược lai, về
phía người dùng, sau khi được phục vụ phù hợp yêu cầu, họ sẽ hướng sự quan
tâm tới hệ thống của chúng ta hơn. Từ những nhu cầu thực tế trên, phân lớp và
tìm kiếm trang Web vẫn là bài toán thời sự và cần được phát triển nghiên cứu.
Như vậy, chúng ta có thể hiểu rằng khai phá Web như là việc trích chọn ra
các thành phần được quan tâm hay được đánh giá là có ích cùng các thông tin
tiềm năng từ các tài nguyên hoặc các hoạt động liên quan tới World-Wide Web.
1.2.2. Đặc điểm của dữ liệu Web
* Web dường như quá lớn để tổ chức thành một kho dữ liệu phục vụ
Khai phá dữ liệu.
* Độ 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.
* Web là một nguồn tài nguyên thông tin có độ thay đổi cao.
* Web phục vụ một cộng đồng người dùng rộng lớn và đa dạng.
* Chỉ một phần rất nhỏ của thông tin trên Web là thực sự hữu ích.
1.2.3. Các kiểu dữ liệu Web
Free Text
Ta có thể khái quát bằng sơ đồ sau:
Content data
HTML file
XML file
Dynamic
content
Multimedia
Web data
Structure data
Static link
Dynamic link
Usage data
User Profile
data
Hình 1.2. Phân loại dữ liệu Web
Các đối tượng của khai phá Web bao gồm: Server logs, Web pages, Web
hyperlink structures, dữ liệu thị trường trực tuyến và các thông tin khác.
Web logs: Khi người dùng duyệt Web, dịch vụ sẽ phân ra 3 loại dữ liệu
đăng nhập: sever logs, error logs và cookie logs. Thông qua việc phân tích các
tài liệu đăng nhập này ta có thể khám phá ra những thông tin truy cập.
Web pages: Hầu hết các phương pháp KPDL Web được sử dụng trong
Web pages là theo chuẩn HTML.
Web hyperlink structure: Các trang Web được liên kết với nhau bằng các
siêu liên kết, điều này rất quan trọng để khai phá thông tin. Do các siêu liên kết
Web là nguồn tài nguyên rất xác thực.
Dữ liệu thị trường trực tuyến: Như lưu trữ thông tin thương mại điện tử
trong các website thương mại điện tử.
Các thông tin khác: Chủ yếu bao gồm các đăng ký người dùng, nó có thể
giúp cho việc khai phá tốt hơn.
1.3. Các hướng tiếp cận khai phá dữ liệu web
Như đã phân tích về đặc điểm và nội dung các siêu văn bản ở 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à:
1. Khai phá nội dung trang Web (Web Content mining)
Khai phá nội dung trang Web gồm hai phần:
a. Nội dung trang web (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 văn bản(Textmining).
b. Tìm kiếm kết quả (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.
2. Khai phá cấu trúc 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.
3. Khai phá cách sử dụng web (Web Usage Mining)
a. Khám phá mẫu truy cập tổng quát (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.
b. Khám phá yêu cầu sử dụng (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.
Tập trung chủ yếu vào nội dung “khai phá nội dung trang Web” và định
hướng vào phân cụm tập trang web là kết quả tìm kiếm của các máy tìm kiếm.
1.4. Nhu cầu phân cụm tài liệu Web
Một trong những bài toán quan trọng trong lĩnh vực khai phá Web là bài
toán phân cụm Web. Phân cụm Web - nói một cách khái quát - là việc tự động
sinh ra các "cụm" (lớp) tài liệu dựa vào sự tương tự của các tài liệu. Các lớp tài
liệu ở đây là chưa biết trước, người dùng có thể chỉ yêu cầu số lượng các lớp cần
phân loại, hệ thống sẽ đưa ra các tài liệu theo từng tập hợp, từng cụm, mỗi tập
hợp chứa các tài liệu tương tự nhau.
Phân cụm Web - hiểu một cách đơn giản - là phân cụm trên tập các tài
liệu được lấy từ Web. Có hai tình huống phân cụm tài liệu. Tình huống thứ nhất
là việc phân cụm trên toàn bộ một CSDL có sẵn gồm rất nhiều tài liệu Web.
Thuật toán phân cụm cần tiến hành việc phân cụm toàn bộ tập dữ liệu
thuộc CSDL đó. Tình huống này thường được gọi là phân cụm không trực tuyến
(offline). Tình huống thứ hai thường được áp dụng trên một tập tài liệu nhỏ là
tập hợp các tài liệu do máy tìm kiếm trả về theo một truy vấn của người dùng.
Trong trường hợp này, giải pháp phân cụm được tiến hành kiểu phân cụm trực
tuyến (on-line) theo nghĩa việc phân cụm tiến hành theo từng bộ phận các tài
liệu nhận được. Khi đó, thuật toán phải có tính chất “gia tăng” để tiến hành phân
cụm ngay khi chưa có đủ tài liệu và phân cụm tiếp theo không cần phải tiến
hành với dữ liệu đã được phân cụm trước đó. Do tập tài liệu trên Web là vô cùng
lớn cho nên cách phân cụm trực tuyến là thích hợp hơn và phải đòi hỏi tính "gia
tăng" của thuật toán phân cụm.
Quá trình xử lý truy vấn và kết quả phân hạng được phản hồi từ các máy
tìm kiếm phụ thuộc vào việc tính toán độ tương tự giữa truy vấn và các tài liệu.
Mặc dù các truy vấn liên quan phần nào đến các tài liệu cần tìm, nhưng nó
thường quá ngắn và dễ xảy ra sự nhập nhằng. Như đã biết, trung bình các truy
vấn trên Web chỉ gồm hai đến ba từ do đó gây nên độ nhập nhằng. Chẳng hạn,
truy vấn star dẫn đến sự nhập nhằng rất cao, các tài liệu lấy được liên quan đến
astronomy, plants, animals, popular media ndsports figures… Độ tương tự giữa
các tài liệu của một truy từ đơn như vậy là có sự khác nhau rất lớn. Vì lẽ đó, nếu
máy tìm kiếm phân cụm các kết quả theo từng chủ đề thì người dùng có thể
nhanh chóng hiểu kết quả truy vấn hoặc tìm vào một chủ đề xác định.
1.5. Xử lý dữ liệu văn bản ứng dụng trong khai phá dữ liệu Web
1.5.1. Dữ liệu văn bản
Trong các loại dữ liệu hiện nay thì văn bản là loại dữ liệu phổ biến nhất và
nó có mặt khắp mọi nơi, đặc biệt là đối với dữ liệu trên Web. Do vậy, các bài
toán xử lý văn bản đã được đặt ra từ rất sớm và hiện nay nó vẫn là vấn đề rất
được nhiều nhà nghiên cứu quan tâm, một trong những bài toán đó là tìm kiếm
và trích dẫn văn bản, biểu diễn và phân loại văn bản,…
CSDL văn bản có thể chia làm 2 loại chính:
+ Dạng không có cấu trúc: Đây là những tài liệu văn bản thông thường mà
ta đọc thường ngày trên các sách, báo, internet,… đây là dạng dữ liệu của ngôn
ngữ tự nhiên của con người và nó không theo một khuôn mẫu định sẵn nào cả.
+ Dạng nửa cấu trúc: Đây là những văn bản được tổ chức dưới dạng cấu
trúc lỏng, nhưng vẫn thể hiện nội dung chính của văn bản, như văn bản HTML,
Email,..
1.5.2. Một số vấn đề trong xử lý dữ liệu văn bản
Mỗi văn bản được biểu diễn bằng một vector Boolean hoặc vector số.
Những vector này được xét trong một không gian đa chiều, trong đó mỗi chiều
tương ứng với một từ mục riêng biệt trong tập văn bản. Mỗi thành phần của
vector được gán một hàm giá trị f, nó là một số chỉ mật độ tương ứng của chiều
đó trong văn bản. Nếu thay đổi giá trị hàm f ta có thể tạo ra nhiều trọng số khác
nhau.
Một số vấn đề liên quan đến việc biểu diễn văn bản bằng mô hình không
gian vector:
+ Không gian vector là một tập hợp bao gồm các từ.
+ Từ là một chuỗi các ký tự (chữ cái và chữ số); ngoại trừ các khoảng
trống (space, tab), ký tự xuống dòng, dấu câu (như dấu chấm, phẩy, chấm phẩy,
dấu cảm,...). Mặt khác, để đơn giản trong quá trình xử lý, ta không phân biệt chữ
hoa và chữ thường (nếu chữ hoa thì chuyển về chữ thường).
+ Cắt bỏ từ: Trong nhiều ngôn ngữ, nhiều từ có cùng từ gốc hoặc là biến
thể của từ gốc sang một từ khác. Việc sử dụng từ gốc làm giảm đáng kể số
lượng các từ trong văn bản (giảm số chiều của không gian), nhưng việc cắt bỏ
các từ lại rất khó trong việc hiểu văn bản.
Ngoài ra, để nâng cao chất lượng xử lý, một số công trình nghiên cứu đã
đưa ra một số cải tiến thuật toán xem xét đến đặc tính ngữ cảnh của các từ bằng
việc sử dụng các cụm từ/văn phạm chứ không chỉ xét các từ riêng lẽ.
Những cụm từ này có thể được xác định bằng cách xem xét tần số xuất
hiện của cả cụm từ đó trong tài liệu.
Bằng phương pháp biểu diễn không gian vector, ta có thể thấy rõ ràng là
chiều của một vector sẽ rất lớn bởi số chiều của nó được xác định bằng số lượng
các từ khác nhau trong tập hợp từ. Chẳng hạn, số lượng các từ có thể từ 10 3 đến
105 đối với các tập văn bản nhỏ. Vấn đề đặt ra là làm sao để giảm số chiều của
vector mà vẫn đảm bảo việc xử lý văn bản đúng và chính xác, đặc biệt là trong
môi trường www, ta sẽ xem xét đến một số phương pháp để giảm số chiều của
vector.
1.5.2.1. Loại bỏ từ dừng
Trước hết ta thấy trong ngôn ngữ tự nhiên có nhiều từ chỉ dùng để biểu
diễn cấu trúc câu chứ không biểu đạt nội dung của nó. Như các giới từ, từ nối, ...
những từ như vậy xuất hiện nhiều trong các văn bản mà không liên quan gì tới
chủ đề hoặc nội dung của văn bản. Do đó, ta có thể loại bỏ những từ đó để giảm
số chiều của vector biểu diễn văn bản, những từ như vậy được gọi là những từ
dừng.
Sau đây là ví dụ về tần số xuất hiện cao của một số từ (tiếng Anh) trong
336.310 tài liệu gồm tổng cộng 125.720.891 từ, 508.209 từ riêng biệt.
Bảng 1.1. Thống kê các tần số xuất hiện cao
Frequent Word
Number of Occurrences
Percentage of Total
The
of
to
and
in
is
for
The
that
Said
7,398,934
3,893,790
3,364,653
3,320,687
2,311,785
1,559,147
1,313,561
1,144,860
1,066,503
1,027,713
5.9
3.1
2.7
2.6
1.8
1.2
1.0
0.9
0.8
0.8
(thống kê của B.Croft, Umass)
1.5.2.2. Định luật Zipf [3]
Để giảm số chiều của vector biểu diễn văn bản hơn nữa ta dựa vào một
quan sát sau: Nhiều từ trong văn bản xuất hiện rất ít lần, nếu mục tiêu của ta là
xác định độ tương tự và sự khác nhau trong toàn bộ tập hợp các văn bản thì các
từ xuất hiện một hoặc hai lần (tần số xuất hiện nhỏ) thì ảnh hưởng rất bé đến các
văn bản.
Tiền đề cho việc lý luận để loại bỏ những từ có tần suất nhỏ được đưa ra
bởi Zipf năm 1949. Zipf phát biểu dưới dạng một quan sát nhưng ngay trong
thời điểm đó, quan sát đó đã được gọi là định luật Zipf, mặc dù nó thực sự
không phải là một định luật mà đúng hơn đó là một hiện tượng xấp xỉ toán học.
Để mô tả định luật Zipf, ta gọi tổng số tần số xuất hiện của từ t trong tài
liệu D là ft. Sau đó sắp xếp tất cả các từ trong tập hợp theo chiều giảm dần của
tần số xuất hiện f và gọi thứ hạng của mỗi từ t là rt.
Định luật Zipf được phát biểu dưới dạng công thức như sau:
rt.ft K (với K là một hằng số)
Trong tiếng Anh, người ta thấy rằng hằng số K N/10 trong đó N là số
các từ trong văn bản. Ta có thể viết lại định luật Zipf như sau: rt K/ ft
Giả sử từ ti được sắp xếp ở vị trí thấp nhất với tần số xuất hiện là b nào
đấy và từ tj cũng được sắp ở vị trí thấp kế tiếp với một tần số xuất hiện là
b+1. Ta có thể thu được thứ hạng xấp xỉ của các từ này là rti K/b và
rtj K/(b+1), trừ 2 biểu thức này cho nhau ta xấp xỉ đối với các từ riêng biệt
có tần số xuất hiện là b.
rti- rtj K/b-K/(b+1)
Ta xấp xỉ giá trị của từ trong tập hợp có thứ hạng cao nhất. Một cách tổng
quát, một từ chỉ xuất hiện một lần trong tập hợp, ta có rmax=K.
Xét phân bố của các từ duy nhất xuất hiện b lần trong tập hợp, chia 2 vế
cho nhau ta được K/b. Do đó, định luật Zipf cho ta thấy sự phân bố đáng chú ý
của các từ riêng biệt trong 1 tập hợp được hình thành bởi các từ xuất hiện ít nhất
trong tập hợp.
Năm 1958 Luhn đề xuất những từ “phổ biến” và “hiếm” và không cần
thiết cho quá trình xử lý như sau.
Hình 1.3. Lược đồ thống kê tần số của từ theo Định luật Zipf
1.5.3. Các mô hình biểu diễn dữ liệu văn bản
Trong các bài toán xử lý văn bản, ta thấy rằng vai trò của biểu diễn văn
bản rất lớn, đặc biệt trong các bài toán tìm kiếm, phân cụm, …
Theo các nghiên cứu về cách biểu diễn khác nhau trong xử lý văn bản thì
cách biểu diễn tốt nhất là bằng các từ riêng biệt được rút ra từ tài liệu gốc và
cách biểu diễn này ảnh hưởng tương đối nhỏ đối với kết quả.
Các cách tiếp cận khác nhau sử dụng mô hình toán học khác nhau để tính
toán, ở đây ta sẽ trình bày một số mô hình phổ biến và được đăng nhiều trong
các bài báo gần đây.
1.5.3.1. Mô hình Boolean
Đây là mô hình biểu diễn vector với hàm f nhận giá trị rời rạc với duy
nhất hai giá trị đúng/sai (true/false). Hàm f tương ứng với thuật ngữ ti sẽ cho giá
trị đúng khi và chỉ khi ti xuất hiện trong tài liệu đó.
Giả sử rằng có một CSDL gồm m văn bản, D={d1, d2, ..., d m}. Mỗi văn
bản được biểu diễn dưới dạng một vector gồm n thuật ngữ T={t1, t2,...,tn}.
Gọi W={wij} là ma trận trọng số, wij là giá trị trọng số của thuật ngữ ti trong
tài liệu dj.
Mô hình Boolean là mô hình đơn giản nhất, nó được xác định như sau:
1.5.3.2. Mô hình tần số
Mô hình này xác định giá trị trọng số các phần tử trong ma trận W(wij) các
giá trị là các số dương dựa vào tần số xuất hiện của các từ trong tài liệu hoặc tần
số xuất hiện của tài liệu trong CSDL. Có 2 phương pháp phổ biến:
1.5.3.2.1. Mô hình dựa trên tần số xuất hiện các từ
Trong mô hình dựa trên tần số xuất hiện từ (TF-Term Frequency) giá trị
của các từ được tính dựa vào số lần xuất hiện của nó trong tài liệu, gọi tfij là số
lần xuất hiện của từ ti trong tài liệu dj, khi đó wij có thể được tính theo một trong
các công thức sau:
- Wij=tfij
- Wij= 1+log(tfij)
- Wij=
tf ij
Với mô hình này, trọng số Wij đồng biến với số lần xuất hiện của thuật
ngữ ti trong tài liệu dj. Khi số lần xuất hiện thuật ngữ ti trong tài liệu dj càng lớn
thì có nghĩa là dj càng phụ thuộc nhiều vào thuật ngữ ti, nói cách khác thuật ngữ
ti mang nhiều thông tin hơn trong tài liệu dj.
1.5.3.2.2. Phương pháp dựa trên tần số văn bản nghịch đảo
Trong mô hình dựa trên tần số văn bản nghịch đảo (IDF-Inverse
Document Frequency) giá trị trọng số của từ được tính bằng công thức sau:
Trong đó, n là tổng số văn bản trong CSDL, hi là số văn bản chứa thuật
ngữ ti.
Trọng số wij trong công thức trên được tính dựa vào độ quan trọng của
thuật ngữ ti trong tài liệu dj. Nếu ti xuất hiện càng ít trong các văn bản thì nó
càng quan trọng, do đó nếu ti xuất hiện trong dj thì trọng số của nó càng lớn,
nghĩa là nó càng quan trọng để phân biệt dj với các tài liệu khác và lượng thông
tin của nó càng lớn.
1.5.3.2.3. Mô hình kết hợp TF-IDF
Trong mô hình TF-IDF, mỗi tài liệu dj được xét đến thể hiện bằng một
đặc trưng của (t1, t2,.., tn) với ti là một từ/cụm từ trong dj. Thứ tự của ti dựa trên
trọng số của mỗi từ. Các tham số có thể được thêm vào để tối ưu hóa quá trình
thực hiện nhóm. Như vậy, thành phần trọng số được xác định bởi công thức sau,
nó kết hợp giá trị trọng số tf và giá trị trọng số idf.
Công thức tính trọng số TF-IDF là:
Trong đó:
tfij là tần số xuất hiện của ti trong tài liệu dj
idfij là nghịch đảo tần số xuất hiện của ti trong tài liệu dj.
hi là số các tài liệu mà ti xuất hiện trong CSDL.
n là tổng số tài liệu trong CSDL.
Từ công thức này, ta có thể thấy trọng số của mỗi phần tử là dựa trên
nghịch đảo của tần số tài liệu trong CSDL mà ti và tần số xuất hiện của phần tử
này trong tài liệu.
Thông thường ta xây dựng một từ điển từ để lấy đi những từ rất phổ biến
và những từ có tần số xuất hiện thấp. Ngoài ra ta phải lựa chọn m (Zemir sử
dụng 500) phần tử có trọng số cao nhất như là những từ đặc trưng.
Phương pháp này kết hợp được ưu điểm của cả 2 phương pháp trên.
Trọng số wij được tính bằng tần số xuất hiện của thuật ngữ ti trong tài liệu dj và
độ “hiếm” của thuật ngữ ti trong toàn bộ CSDL. Tùy theo ràng buộc cụ thể của
bài toán mà ta sử dụng các mô hình biểu diễn văn bản cho phù hợp.
Tính toán độ tương tự giữa 2 vector:
Xét 2 vector X={x1, x2,…,xm} và Y={y1, y2, …, ym}.
Trong mô hình TF-IDF, ta có thể lựa chọn công thức nào đó để tính toán
độ tương tự giữa các cặp tài liệu hoặc các cụm. Sau đây là các độ đo tương tự
phổ biến:
m
Dice: Sim( X , Y )
2 ( xi . y )
i
i 1
m
x
i 1
2
i
m
2
i 1
i
y
m
Jaccard: Sim( X , Y )
(x . y )
m
x
i 1
2
i
i
i 1
m
i 1
(x . y )
i
i 1
m
i
m
2
i 1
i
xi . y
i 1
2
2
m
i
i 1
y ( xi . y )
m
Cosine: sim ( X , Y )
i
i