Luận văn Nghiên cứu công nghệ khai phá dữ liệu văn bản, áp dụng cho các trang tin tức trên các thiết bị cầm tay (pdas & smartphones)

MỤC LỤC

TÓM TẮT . 5

CÁC THUẬT NGỮVÀ CÁC TỪVIẾT TẮT . 6

CHÚ GIẢI KÝ HIỆU VÀ MÔ HÌNH . 7

CÁC HÌNH MINH HỌA . 8

MỞ ĐẦU . 9

CHƯƠNG I. XÂY DỰNG KÊNH CUNG CẤP TIN ĐIỆN TỬTRÊN THIẾT

BỊCẦM TAY . 12

1.1. Báo điện tửvà công nghệInternet không dây. 12

1.1.1. Báo điện tử- một thành tựu của Internet . 12

1.1.2. Sựphát triển của các thiết bịcầm tay . 13

1.1.3. Công nghệkết nối internet không dây . 14

1.2. Bài toán xây dựng kênh tin tức điện tửtrên thiết bịcầm tay . 15

1.2.1. Mô tảbài toán . 15

1.2.2. Mô tảcác chức năng cơbản của hệthống . 16

1.3. Hướng tiếp cận giải quyết bài toán . 16

Chương II. THUẬT TOÁN RTDM VÀ ỨNG DỤNG TRONG TRÍCH XUẤT TIN . 18

2.1. Khái niệm “Chi phí chuyển đổi cây” . 18

2.2. Thuật toán RTDM . 22

2.3. Áp dụng RTDM trích xuất tin tức tự động. 29

2.3.1 Phân cụm trang . 31

2.3.2 Trích xuất mẫu chung . 32

2.3.3 Khớp dữliệu . 35

2.3.4 Gán nhãn dữliệu . 37

Chương III . PHÂN TÍCH THIẾT KẾHỆTHỐNG . 39

3.1.Giới thiệu. 39

3.2. Mô hình Use Case: . 40

3.2. Mô hình lớp . 45

3.4. Danh sách các thực thể. 47

3.5. Mô hình thực thểliên kết . 48

Chương IV. KẾT QUẢTHỰC NGHIỆM VÀ ĐÁNH GIÁ . 49

4.1. Giới thiệu chung vềhệthống . 49

4.2. Thực nghiệm và đánh giá kết quả. 49

KẾT LUẬN. 54

TÀI LIỆU THAM KHẢO . 55

PHỤLỤC. MÔ TẢCHI TIẾT CÁC THỰC THỂ.

pdf62 trang | Chia sẻ: maiphuongdc | Lượt xem: 1438 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu công nghệ khai phá dữ liệu văn bản, áp dụng cho các trang tin tức trên các thiết bị cầm tay (pdas & smartphones), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Theo Davi de Castro Reis và các đồng tác giả [28], cấu trúc của các trang Web có thể được biểu diễn dưới dạng một cây (Ví dụ như Cây DOM), vì vậy chúng ta sử dụng khái niệm chi phí chuyển đổi cây (Tree Edit Distance) để đánh giá mức độ giống nhau giữa các trang. Một cách trực quan, khoảng cách giữa hai cây TA và TB là "giá tối thiểu" phải trả cho một tập các thao tác để chuyển đổi TA thành TB. Mặc dù có thể áp dụng cho cây bất kỳ, nhưng để thuận tiện áp dụng nên trong luận văn này, chúng tôi tập trung chủ yếu vào cây có thứ tự, được gán nhãn, có gốc cố định (labeled ordered rooted tree). Một cây có gốc (rooted tree) là cây có đỉnh gốc là cố định. Cây có thứ tự có gốc (ordered rooted tree) là cây có gốc cố định và thứ tự các con là cố định với mỗi đỉnh. Cây có thứ tự, được gán nhãn, có gốc cố định là cây có mỗi đỉnh được gán nhãn l. Từ đây về sau, chúng ta sẽ đơn giản sử dụng khái niệm "cây" để chỉ cây có thứ tự, được gán nhãn, có gốc cố định, các trường hợp khác sẽ được chú thích cụ thể. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 19 Để mô tả cấu trúc cây của các trang Web, ta giả sử rằng các trang Web này được biểu diễn dưới dạng một cây "cây có thứ tự, được gán nhãn, có gốc cố định". Các nhãn ở đây chính là các thẻ HTML như , , … Hình 3. Ví dụ cây có thứ tự, được gán nhãn, có gốc cố định Chi phí tính toán chi phí chuyển đổi cây thông qua việc sử dụng 3 thao tác chính là Xoá đỉnh, Chèn đỉnh, Thay thế đỉnh. Chi phí cho từng thao tác này là khác nhau tuỳ trường hợp. Giải pháp của bài toán chính là tìm tập hợp các thao tác được thực hiện với chi phí là nhỏ nhất để chuyển đổi giữa hai cây. Một bài toán tương đương chính là bài toán tìm ánh xạ chuyển đổi (dưới đây gọi tắt là ánh xạ) giữa hai cây với chi phí nhỏ nhất. Trong các phần trình bày dưới đây, kí hiệu Tx để chỉ một cây và kí hiệu Tx[i] để chỉ đỉnh thứ i của Tx. Kích thước của một cây chính là số đỉnh có trong cây đó. Davi de Castro Reis và các đồng tác giả đã xem xét khái niệm ánh xạ chuyển đổi cây như một khái niệm cơ bản trong phương pháp của họ [28]. Định nghĩa 1 [17, 18, 21, 25, 28] Ánh xạ giữa cây T1 kích thước n1 và cây T2 kích thước n2 là một tập hợp M các cặp có thứ tự (i, j) thoả mãn các điều kiện sau với mọi (i1, j1), (i2, j2) ∈ M: • i1 = i2 khi và chỉ khi j1 = j2. • T1[i1] ở bên trái của T1[i2] khi và chỉ khi T2[j1] ở bên trái T2[j2] Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 20 • T1[i1] là tổ tiên của T1[i2] khi và chỉ khi T2[j1] là tổ tiên của T2[j2] Hình 1 - Ví dụ về ánh xạ giữa 2 cây Điều kiện 1 xác định một đỉnh của một cây không xuất hiện quá 1 lần trong ánh xạ, điều kiện thứ 2 bảo toàn thứ tự trái - phải giữa các nút, còn điều kiện thứ 3 đảm bảo cấu trúc phân cấp giữa 2 cặp nút trong ánh xạ. Nói một cách đơn giản, phép ánh xạ cho phép mô tả các bước hiệu chỉnh từ cây này thành cây kia, không quan tâm đến thứ tự các thao tác được áp dụng. Trong hình 3, những đường nét đứt giữa các đỉnh của cây T1 và các đỉnh của cây T2 phải thay đổi nếu các đỉnh này khác nhau, các đỉnh còn lại không phải thay đổi. Đỉnh không có đường nào nối tới trên cây T1 là đỉnh sẽ bị xoá, còn đỉnh không có đường nào nối tới trên cây T2 là đỉnh phải được chèn vào. Như đã đề cập ở trên, việc tìm chi phí chuyển đổi cây tương đương với việc tìm chi phí nhỏ nhất cho ánh xạ giữa 2 cây. Gọi M là ánh xạ giữa hai cây T1 và cây T2, gọi S là tập con các cặp (i,j) ∈ M với các nhãn riêng biệt, D là tập hợp các nút trong T1 mà không xuất hiện trong bất cứ cặp (i,j) ∈ M, I là tập hợp các nút trong T2 mà không xuất hiện trong bất cứ cặp (i,j) ∈ M. Khi đó chi phí cho việc ánh xạ được cho bởi công thức: c = Sp + Iq + Dr Trong đó p, q, r tương ứng là chi phí cho thao tác thay thế, chèn và xóa một nút. Ta có thể giả thiết các chi phí này là bằng nhau nhưng khi cài đặt vào ứng dụng thực thì các chi phí này có thể khác nhau. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 21 Bài toán tính toán chi phí chuyển đổi giữa hai cây là một bài toán khó, có một số giải thuật, đưa vào một số các yếu tố cân bằng khác nhau, được đề xuất gần đây, tuy nhiên tất cả đều có độ phức tạp tính toán trên cấp đa thức bậc hai. Hơn nữa, người ta chứng minh rằng nếu hai cây không có thứ tự thì bài toán có độ phức tạp là NP-đầy đủ. Thuật toán đầu tiên về bài toán ánh xạ (được giới thiệu trong tài liệu [18]) với độ phức tạp là O(n1n2h1h2) với n1 và n2 là kích thước của cây, h1 và h2 là độ cao tương ứng. Đây là thuật toán tính toán động thực hiện việc tính toán đệ quy chi phí chuyển đổi giữa các xâu biểu diễn tập hợp các đỉnh con của các đỉnh của cây. J. T. L. Wang và các đồng tác giả [21] đã giới thiệu một thuật toán với độ phức tạp O(d2n1n2min(h1,l1)min(h2,l2)) với d là chi phí chuyển đổi giữa các cây con, h1 và h2 là chiều cao còn l1 và l2 là số các lá của mỗi cây. Một trong các cách tiếp cận điển hình là tiếp cận dựa trên phép ánh xạ trên- xuống, phép ánh xạ trên-xuống hạn chế các thao tác chèn và xoá ở các nút lá. Hình 4 minh hoạ một ánh xạ trên-xuống như định nghĩa dưới đây. Định nghĩa 2 Ánh xạ M giữa cây T1 và cây T2 được gọi là trên-xuống khi và chỉ khi với mọi cặp (i1,i2) ∈ M, ta cũng có một cặp (cha(i1), cha(i2)) ∈ M với i1 và i2 tương ứng không phải là nút gốc của T1 và T2. Hình 2 – Ví dụ ánh xạ trên-xuống Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 22 Thuật toán đầu tiên giải quyết bài toán tính toán chi phí chuyển đổi cho ánh xạ trên - xuống được Selkow giới thiệu trong [17]. Yang [25] giới thiệu một thuật toán quy hoạch động với độ phức tạp là O(n1n2) trong đó n1, n2 là kích thước tương ứng của T1 và T2. S. S. Chawathe [5] giới thiệu một thuật toán khác khá phổ biến giải quyết bài toán ánh xạ trên-xuống cũng với độ phức tạp O(n1n2), tuy nhiên thuật toán này không sử dụng phương pháp quy hoạch động mà được giải quyết bằng thuật toán đơn hình. Ánh xạ trên-xuống cũng đã áp dụng thành công trong một số ứng dụng liên quan đến Web, ví dụ như ứng dụng phân loại tài liệu. Trong [16], Nierman và Jagadish sử dụng thuật toán tính toán chi phí chuyển đổi cho ánh xạ trên xuống để phân nhóm các tài liệu XML. Trong bài toán "Trích xuất tin tức tự động", luận văn này chỉ quan tâm đến vấn đề xác định sự tương đồng giữa cấu trúc của các trang Web. Thực sự là các trang Web có cấu trúc hoặc là cấu trúc HTML hoặc là XML, như đã đề cập ở trên, có thể biểu diễn dưới dạng cây có thứ tự được gán nhãn, có gốc cố định. Thường mô hình DOM được vận dụng để mô tả cây. Trong phần tiếp theo sẽ trình bày thuật toán mới xác định chi phí ánh xạ giữa các cây biểu diễn cấu trúc của các trang Web cho lớp bài toán giới hạn đó là ánh xạ trên-xuống, kết quả của thuật toán này chính là chi phí chuyển đổi giữa các cây đó. 2.2. Thuật toán RTDM Mục này sẽ trình bày một thuật toán xác định một kiểu ánh xạ "trên-xuống hạn chế" (Restricted Top-Down Mapping) [28]. Một cách trực quan, trong phép ánh xạ trên-xuống hạn chế, các thao tác chèn, xóa, thao tác thay thế các đỉnh chỉ hạn chế thao tác với các lá của cây. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 23 Định nghĩa 3 [28] Một ánh xạ trên-xuống M giữa cây T1 và cây T2 được gọi là trên-xuống hạn chế khi và chỉ khi với mọi cặp (i1,i2) ∈ M, mà t1[i1] ≠ t2[i2], thì sẽ không có con cháu của i1 và i2 thuộc M, với i1 và i2 không phải là nút gốc của các cây T1, T2. Hình 3 – Một ví dụ về ánh xạ trên xuống hạn chế Theo [28], thuật toán RTDM là kết hợp giữa ý tưởng được nêu trong các công trình [19, 25]. Để xác định ánh xạ giới hạn trên-xuống giữa 2 cây T1 và T2, đầu tiên thuật toán RTDM tìm các cây con cùng mức giống hệt nhau của T1 và T2. Bước này của thuật toán thực hiện trong thời gian tuyến tính sử dụng đồ thị các lớp tương đương thực hiện tương tự như trong [19], tuy nhiên thuật toán trong [28] thực hiện duyệt cây theo thứ tự sau và cách tiếp cận đơn giản hơn vì chỉ quan tâm đến những cây con cùng mức giống hệt nhau. Sau khi các đỉnh của cây được nhóm thành các lớp tương đương, chúng ta áp dụng thuật toán của Yang [25] để tìm ánh xạ trên-xuống hạn chế nhỏ nhất giữa các cây. Nội dung thuật toán RTDM được trình bày như sau: 1 RTDM(T1, T2, ε: ngưỡng) 2 begin 3 m ← số con của nút gốc của cây T1 Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 24 4 n ← số con của nút gốc của cây T2. 5 M [i,0] ←0 ∀i = 0,....m 6 M[0,j] ←0 ∀j = 0,....n 7 for i=1 to m do 8 for j=1 to n do 9 Ci ← {con của (t1[i])} 10 Cj ← {con của (t2[j])} 11 d ← M[i - 1, j] + tổng_chi_phí_xoá(T1[k]); (T1[k] là các đỉnh ∈ Ci) 12 i ← M[i, j -1 ] + tổng_chi_phí_chèn(T2[k]) ; (T2[k] là các đỉnh ∈ Cj) 13 if M[i -1, j -1] > ε then 14 s ← ∞ 15 elseif T1[i] và T2[j] là các cây con giống nhau 16 s ← 0 17 elseif 18 if T1[i] là lá 19 s ← chi_phí_thay_thế(T1[i], T2[j]) 20 s ← s + tổng_chi_phí_chèn (T2[k]) ; (T2[k] là các đỉnh ∈ Cj) 21 elseif T2[j] là lá 22 s ← chi_phí_thay_thế(t1[i], t2[j]) 23 s ← s + tổng_chi_phí_xoá(T1[k]); (T1[k] là các đỉnh ∈ Ci) 24 else 25 s ← RTDM(T1[i], T2[j], ε) 26 end if 27 end if Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 25 28 M[i, j] ← min(d, i, s) 29 end for 30 end for 31 return M[m, n] 32 End Như diễn giải trong [28], thuật toán chuyển đổi cây trên-xuống thông thường của Chawathe trình bày trong bài báo [5] thực hiện trong thời gian O(n1n2), và theo lý thuyết thì đây là thuật toán tốt nhất hiện nay. Còn với thuật toán RTDM thì thời gian thực hiện trong trường hợp tồi nhất cũng chỉ là O(n1n2). Tuy nhiên trong thực tế, nó thực hiện tốt hơn nhiều do nó chỉ thực hiện trên ánh xạ trên- xuống hạn chế. Thuật toán RTDM có chi phí thời gian tính toán tồi nhất khi hai cây giống hệt nhau. Trong các trường hợp khác, chi phí thường được cắt giảm khi thuật toán bỏ qua các dòng lệnh 18-23 hoặc 15-16. Ở đây thuật toán có đưa ra khai niệm “ngưỡng” để đề phòng trường hợp thuật toán rơi vào vòng lặp vô hạn, khi đó thuật toán bỏ qua các dòng lệnh 13-14, trường hợp này rất hay xẩy ra khi chúng ta phân cụm các cây dựa trên cấu trúc tương tự của chúng. Chúng ta cũng nhận thấy rằng, nếu bỏ các dòng lệnh 18-23 thì thuật toán mới thu được áp dụng cho việc tính toán chi phí chuyển đổi cây trên-xuống thông thường. Một khía cạnh đáng chú ý khác của thuật toán RTDM là tính linh hoạt của chi phí các thao tác trên cây cho phép kết quả đưa ra có tính phức hợp cao. Nó cho phép so sánh cây cho trước với mẫu có kích thước biến đổi. Thuật toán sẽ được áp dụng để tìm kiếm tin tức tự động trên các trang Web và trích xuất các thành phần của tin tức (ví dụ như: tiêu đề, nội dung,…). Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 26 Tuy nhiên thuật toán trên mới chỉ cho phép tính toán chi phí chuyển đổi cây, giá trị trả về là tổng các chi phí xoá, chèn và thay thế. Giá trị đó chỉ có thể áp dụng trong bước 1 (phân cụm) trong 4 bước trích xuất đề cập trong phần sau. Các bước trích xuất mẫu, khớp dữ liệu yêu cầu phải xác định được ánh xạ giữa hai cây. Vì yếu tố bí mật kinh doanh nên Davi de Castro Reis và các đồng tác giả đã không đưa vào các bước cho phép lưu giữ ánh xạ giữa hai cây trong thuật toán này. Chính vì vậy luận văn này xin đề xuất thuật toán sửa đổi thuật toán RTDM của nhóm tác giả Braxin cho phép tính toán chi phí chuyển đổi cây và lưu giữ ánh xạ giữa 2 cây này. 1 SetTreeNodeIndex(T1) SetTreeNodeIndex(T2) Đánh số thứ tự cho các nút trên cây T1 và T2 theo thứ tự duyệt trước 2 Mapping[i,j] = 0; (∀i = 0,....M, ∀j = 0,....N) Biến toán cục, Mapping[i,j]= 1- có ánh xạ giữa nút thứ i trên cây T1 và nút thứ j trên cây T2, 0 – không có ánh xạ, M- số con cháu của T1, N – số con cháu của T2 3 RTDM(T1, T2, ε: ngưỡng) 4 begin 5 m ← số con của nút gốc của cây T1 6 n ← số con của nút gốc của cây T2. 7 M [i,0] ←0 ∀i = 0,....m 8 M[0,j] ←0 ∀j = 0,....n 9 Action[i,j] = 0; (∀i = 0,....m, ∀j = 0,....n) Lưu giữ thao tác cho chi phí nhỏ nhất, Action[i,j] = 1 – thay thế, 2 – xóa, 3 – chèn 10 for i=1 to m do Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 27 11 for j=1 to n do 12 Ci ← {con của (t1[i])} 13 Cj ← {con của (t2[j])} 14 d ← M[i - 1, j] + tổng_chi_phí_xoá(T1[k]); (T1[k] là các đỉnh ∈ Ci) 15 i ← M[i, j -1 ] + tổng_chi_phí_chèn(T2[k]) ; (T2[k] là các đỉnh ∈ Cj) 16 Action[i, j] = 1; Mặc định là thay đổi 17 if M[i -1, j -1] > ε then 18 s ← ∞ 19 elseif T1[i] và T2[j] là các cây con giống nhau 20 s ← 0 21 elseif 22 if T1[i] là lá 23 s ← chi_phí_thay_thế(T1[i], T2[j]) 24 s ← s + tổng_chi_phí_chèn (T2[k]) ; (T2[k] là các đỉnh ∈ Cj) 25 elseif T2[j] là lá 26 s ← chi_phí_thay_thế(t1[i], t2[j]) 27 s ← s + tổng_chi_phí_xoá(T1[k]); (T1[k] là các đỉnh ∈ Ci) 28 else 29 s ← RTDM(T1[i], T2[j], ε) 30 end if 31 end if 32 M[i, j] ← min(d, i, s) 33 if (d = min(d, i, s)) Action[i, j] = 2; Chi phí xoá nhỏ nhất 34 if (i = min(d, i, s)) Action[i, j] = 3; Chi phí chèn nhỏ nhất Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 28 35 end for 36 end for 37 ii = m; 38 jj = n; 39 while ((ii > 0) && (jj > 0)) theo vết ngược về vị trí M[0,0] tuỳ theo giá trị của Action để gán ánh xạ giữa các nút 40 switch (Action[ii, jj]) 41 case 1: thay đổi 42 Mapping[ii,jj] = 1 43 ii--; 44 jj--; 45 case 2: xoá 46 Mapping[ii,jj] = 0 47 ii--; 48 case 3: chèn 49 Mapping[ii,jj] = 0 50 jj--; 51 endswitch 52 endwhile 53 return M[m, n] 54 End Trong thuật toán sửa đổi, hai cây trước khi đưa vào thuật toán RTDM sẽ được đánh số thứ tự cho các nút. Nút gốc sẽ có số thứ tự 1, các nút còn lại trong cây được đánh số theo thứ tự duyệt trước của cây. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 29 Thuật toán đưa vào biến toàn cục Mapping là mảng có kích thước MxN, trong đó M và N là số con cháu tương ứng của 2 cây. Biến Mapping sẽ lưu giữ ánh xạ giữa 2 cây, nếu giá trị tại vị trí i, j là 1 thì nút thứ i trên cây T1 có ánh xạ sang nút thứ j trên cây T2. Biến Action là mảng 2 chiều có kích thước mx n, trong đó m, n là số con tương ứng của cây T1 và cây T2. Biến mảng Action sẽ theo vết các thao tác (chèn, xoá, thay thế) có chi phí nhỏ nhất. Bước cuối cùng sẽ căn cứ giá trị của mảng Action thuật toán theo vết tìm ngược về vị trí khởi tạo và gán ánh xạ cho các nút có chi phí thay đổi là nhỏ nhất. Mảng kết quả thu được Mapping sẽ xác định giữa 2 nút tương ứng trên 2 cây có ánh xạ hay không. 2.3. Áp dụng RTDM trích xuất tin tức tự động Trong mục này, chúng ta xem xét ứng dụng của thuật toán RTDM trong việc trích xuất tin tức tự động, bao gồm xác định nội dung tin và các thành phần liên quan, loại bỏ các thông tin dư thừa của trang Web tin tức như mục quảng cáo, các liên kết. Công việc trích xuất này bao gồm 2 quá trình: (1) duyệt một loạt các trang tin tức cần xem để lấy thông tin của trang đó về, trích xuất các tin tức từ những trang HTML đã chọn lựa. Các kĩ thuật duyệt qua các trang html của một Website đã được trình bày tại một số tài liệu, chẳng hạn [12], chúng ta chỉ xem xét quá trình trích xuất tin tức từ các trang này. Để xác định được một nội dung tin tức, ta cần phải tìm ra các điểm chung của các trang tin (news portal). Các tờ báo tin tức thường có cấu trúc như sau: “trang chủ” (home page) chỉ hiển thị một số tiêu đề tóm tắt của các mục tin, các “trang mục tin” có các tin tức theo chủ đề nhất định và các tin này được tóm tắt bằng tiêu đề, hình ảnh đi kèm, và tin tóm lược. Những “trang tin chi tiết” chứa nội dung tin thường có tiêu đề, tên tác giả, ngày đăng và nội dung Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 30 của tin tức. Nhiệm vụ của chúng ta là phải xác định được chính xác nội dung tin tức, bỏ qua các thông tin khác. Cách tiếp cận trong luận văn của chúng tôi dựa trên giả thiết là nội dung trang tin tức có thể chia thành các nhóm mà mỗi nhóm có chung một định dạng và thuộc tính dàn trang. Giả thiết này là có cơ sở khi ngày này các trang Web được xây dựng sử dụng chương trình hoặc các đoạn mã chương trình lấy thông tin từ cơ sở dữ liệu, lên khuôn dạng và tự động sinh ra trang HTML. Chúng ta gọi những định dạng chung này là một mẫu (template). Hình sau giới thiệu một mẫu trên trang Tiền Phong Online. Hình 4 - Một mẫu tin chi tiết Quốc tế trên trang tienphongonline.com.vn Định nghĩa 4: Template là một tập hợp các khuôn dạng có cấu trúc và đặc trưng chung xuất hiện trong tập các trang HTML được sinh ra bởi một chương trình hoặc một đoạn mã chương trình. Với các trang Web tin tức, các nhà báo chỉ việc điền thông tin vào một template hoặc thông qua một giao diện cập nhật vào cơ sở dữ liệu. Mỗi một trường trong template đó được gọi là một đối tượng siêu dữ liệu (data-rich object). Vì thế, nhiệm vụ của ta là phải xác định được chính xác các template để từ đó trích xuất được nội dung tin, tiêu đề, ngày xuất bản… Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 31 Các bước để thực hiện trích xuất tin tức bao gồm 4 bước sau: (1) nhóm các trang html, (2) xác định mẫu chung, (3) khớp dữ liệu và (4) gán nhãn dữ liệu. Hình sau minh hoạ cho các bước này: Hình 5: Các bước trích xuất tin tức [28] 2.3.1 Phân cụm trang Bước Phân cụm trang (Page Clustering) là thu thập một tập các trang Web (các trang huấn luyện) rồi phân cụm các trang có các thuộc tính dàn trang và định dạng tương tự nhau. Mỗi một nhóm này sẽ được tổng quát hoá thành các template ở bước tiếp theo. Việc phân cụm này không chỉ đơn thuần là nhóm các URL lại với nhau, bởi vì chỉ với một sự thay đổi rất nhỏ của chương trình hoặc đoạn mã cũng có thể sinh ra một trang HTML hoàn toàn khác. Để xây dựng các nhóm, chúng ta sử dụng thuật toán phân cấp truyền thống với biện pháp phân biệt là giá trị đầu ra của thuật toán RTDM. Sẽ không có số lượng các nhóm được xác định trước, thay vì đó ta sẽ chấp nhận một giá trị ngưỡng để sao cho 2 nhóm có thể hợp nhất, giá trị ngưỡng trong đồ án này là sự tương đương 80% giữa 2 nhóm. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 32 2.3.2 Trích xuất mẫu chung Nhiệm vụ chính trong bước Trích xuất mẫu chung (Extraction Pattern Generation) là tổng quát hoá các nhóm trang thành các mẫu chung ne-pattern (node extraction pattern). Khái niệm ne-pattern là một cây được định nghĩa như sau: Định nghĩa 5 [28] Mẫu chung (ne-pattern) là một cây có thứ tự được gán nhãn, có gốc cố định (rooted ordered labeled tree) có chứa các đỉnh đặc biệt gọi là các thẻ đại diện (wildcard). Mỗi một wildcard phải là một lá của cây và thuộc một trong các dạng sau: SINGLE ( .): Wildcard đại diện cho một cây con và bắt buộc phải có. PLUS (+): Wildcard đại diện cho một số cây con và bắt buộc phải có. OPTION (?): Wildcard đại diện cho một cây con và có thể bỏ qua. KLEENE (*): Wildcard đại diện cho một số cây con và có thể bỏ qua. Ta có thể coi ne-pattern như một biểu diễn đơn giản của cây. Mục đích của bước này là đảm bảo rằng mỗi một wildcard sẽ phù hợp với một vùng thông tin (data-rich) trong template. Single và plus wildcard sẽ tương ứng với các đối tượng ta cần tìm như title của tin tức, kleene wildcard sẽ tương ứng với các đối tượng khác như danh sách các tin tức liên quan. Ta nói ne-pattern khớp với một cây khi và chỉ khi chi phí ánh xạ giữa ne- pattern và cây đó là hữu hạn. Như thế, mục đích của bước này là: với đầu vào là một nhóm trang, ta phải xây dựng được một ne-pattern mà phù hợp với mọi trang trong nhóm đó. Như vậy, các nội dung khác nhau của các trang sẽ được biểu diễn trong ne-pattern dưới dạng các wildcard. Để xây dựng được ne- pattern, ta xây dựng một phép toán kết hợp như sau: Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 33 Định nghĩa 6 [28] Gọi T x1 và T x2 là 2 ne-pattern khác nhau, ta có kết hợp của T x1 và T x2 là một ne- pattern T x3 sao cho: • Cho S1 là tập hợp các cây khớp với mẫu T x1 • Cho S2 là tập hợp các cây khớp với mẫu T x2 • Cho S3 là tập hợp các cây khớp với mẫu T x3 • Khi đó S1 ∪ S2 ⊆ S3. Quá trình xây dựng ne-pattern của một nhóm được tiến hành bằng cách khởi tạo các cây của tất cả các trang Web trong nhóm, sau đó tiến hành từng bước kết hợp mỗi cây với các cây khác trong nhóm để tạo ra một ne-pattern phù hợp với 2 ne-pattern trước đó (chú ý rằng: mỗi một cây có thể coi là một ne-pattern không có các Wildcard). Tại bước cuối cùng, ta có một ne-pattern chấp nhận mọi trang Web trong nhóm. Để cải thiện quá trình kết hợp này, ta sử dụng thuật toán RTDM như sau (Giả sử cho 2 ne-pattern T x1 và T x2 , ta cần tìm T x3 là kết hợp của T x1 và T x2 ). - Ta gọi 2 đỉnh a và b của một ne-pattern là tương đương khi và chỉ khi: + a và b là các wildcard cùng kiểu + a và b không phải là widlcard nhưng nhãn của a và b là giống nhau - Ta xác định ánh xạ giữa T x1 và T x2 (chính là một tập các cặp (i, j) ∈M), từ ánh xạ này ta xác định được kết hợp của T x1 và T x2 theo luật sau: + Nếu đỉnh a ∈ T x1 không có trong ánh xạ thì chèn a' vào T x3 với a' = f(a,?). + Nếu a ∈ T x1 ánh xạ đến b ∈ T x2 thì chèn a' vào T x3 với a' = f(a,b) Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 34 + f(a,b) được định nghĩa như sau: f(∗, ∗) = ∗ f(∗, +) = ∗ f(∗, ?) = ∗ f(∗, ⋅) = ∗ f(∗, n) = ∗ f(+, +) = + f(+, ⋅) = + f(+, ?) = ∗ f(+, n) = + f(⋅, ⋅) = ⋅ f(⋅, ?) = ? f(⋅ , n) = ⋅ f( ?, ?) = ? f(? , n) = ? f(n1, n2) = n1 nếu n1 và n2 cùng nhãn f(n1, n2) = ⋅ nếu n1 và n2 có nhãn khác nhau Với n1, n2 là các đỉnh không phải là wildcard (thứ tự của n1, n2 trong f không quan tâm). Các luật ở trên có ý nghĩa là: với các wildcard là option (?) thì sau khi kết hợp có thể giữ lại hoặc không (ghép với các khác), còn các wildcard kleene (*) và plus (+) thì phải được giữ lại đến cuối của quá trình tạo ne-pattern. Còn đối với một đỉnh không phải wildcard kết hợp với một đỉnh khác cũng không phải wildcard thì có thể tạo ra một loại wildcard. Ta cũng chú ý rằng, một vài vùng dữ liệu thông tin có thể trải dài trên nhiều cây con (chẳng hạn như nội dung của tin tức). Việc nhóm các phần này thành một thực thể duy nhất là nhiệm vụ của kleene và wildcard. Bên cạnh đó, nếu xem xét kĩ hàm f(a, b) thì ta sẽ thấy, các wildcard kleene (*) và plus (+) chỉ được sinh ra nếu như một trong 2 wildcard là (*) hoặc (+). Các wildcard này cũng sẽ được tạo ra sau một bước hậu xử lý như sau: • Các wildcard đứng trước một tập hợp các wildcard option (?) thì nên chuyển thành wildcard kleene hoặc plus. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 35 • Nếu như wildcard đứng trước tập hợp các wildcard option là một wildcard single hay plus thì tập hợp các wildcard option và wildcard đó sẽ đuợc chuyển thành 1 wildcard plus duy nhất. • Nếu wildcard là một option hay kleene wildcard thì wildcard này và cả wildcard option kề với nó sẽ được chuyển thành 1 wildcard kleene. • Việc gộp các wildcard có thẻ tiến hành nếu như các wildcard không cách nhau quá 3 đỉnh non-wildcard. 2.3.3 Khớp dữ liệu Mục đích của bước Khớp dữ liệu (Data matching) là khớp các ne-pattern đã được sinh ra với các trang Web huấn luyện để tìm ra ne-pattern thích hợp nhất với các trang Web huấn luyện (ta sử dụng RTDM để thực hiện công việc này). Trước hết, ta phải hiểu nếu như một wildcard ánh xạ đến một đỉnh của cây HTML thì wildcard đó đại diện cho đỉnh đó. Định nghĩa 7 [28] Ánh xạ giữa một ne-pattern và cây biểu diễn cấu trúc trang HTML là một luật thỏa mãn: 1. Mọi đỉnh non-wildcard được ánh xạ thành một đỉnh duy nhất trong cây HTML. 2. Mọi đỉnh của cây HTML phải được ánh xạ một đỉnh duy nhất trong ánh xạ hoặc bằng một wildcard. 3. Single wildcard biểu diễn một cây con của cây HTML 4. Plus wildcard phải biểu diễn ít nhất một cây con của cây HTML 5. Option wildcard phải biểu diễn một cây con của cây HTML nếu có thể Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 36 6. Kleene wildcard phải biểu diễn ít nhất một cây con của cây HTML nếu có thể 7. Plus wildcard thay thế càng nhiều các cây con cùng cha càng tốt 8. Kleene wildcard phải thay thế càng nhiều các cây con cùng cha của cây HTML càng tốt Các luật 1, 2, 3, 4 là đủ để đảm bảo ne-pattern khớp với cây HTML. Các luật 5, 6 làm cho điều kiện khớp chặt chẽ hơn. Luật 7, 8 luôn luôn thỏa mãn, chúng chỉ giúp ta hiểu rõ hơn về cách thức hoạt động của một ne-pattern. Hàm đánh giá cho RTDM được thực hiện như sau: Giả sử a là một đỉnh của ne-pattern, b là một đỉnh của cây HTML. Chi phí

Các file đính kèm theo tài liệu này:

  • pdfMSc06_Vu_Ngoc_Anh_Thesis.pdf
Tài liệu liên quan