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 và smartphones)

TÓM TẮT Luận văn quan tâm nghiên cứu các giải pháp trích chọn thông tin trên Web nhằm xây dựng một hệ thống cung cấp tin tức trên các thiết bị cầm tay thông minh mà tin tức này được trích chọn từ các báo điện tử tiếng Việt. Luận văn sử dụng thuật toán RTDM (Restricted Top-Down Mapping) do Davi de Castro Reis và các đồng tác giả đề xuất [28], một thuật toán được đánh giá rất hiệu quả trong việc trích chọn tin tức tức tự động thông qua việc phân tích cấu trúc cây. Hiện nay RTDM được dùng như là thành phần lõi chính của hệ thống trích xuất tin tức có tên là AkwanClipping (Akwan Information Technologies, Akwan Information Technologies , thuộc công ty Google tại Braxin) cung cấp tin tức hàng ngày của các tờ báo phổ biến nhất tại Braxin. Luận văn đã tiến hành chi tiết và hoàn thiện các phần nội dung không công bố của thuật toán RTDM, đồng thời tiến hành xây dựng một hệ thống kênh cung cấp tin điện tử trên các thiết bị cầm tay thông minh. Hệ thống thử nghiệm việc trích chọn tin tức trên các báo điện tử tiếng Việt phổ dụng hiện nay và đã cho kết quả đáng khích lệ. Chúng tôi đang tiến hành cải tiến tốc độ làm việc của hệ thống nhằm tiến tới đưa hệ thống vào hoạt động thực tế. 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 Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 4 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Ể . 58

pdf62 trang | Chia sẻ: maiphuongtl | Lượt xem: 1655 | Lượt tải: 0download
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 và smartphones), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
- Đề xuất giải pháp: Bản thân các trình duyệt trên các thiết bị cầm tay khi kết nối vào một trang bất kì sẽ hiển thị hết nội dung của trang đó, do vậy ta xây dựng một Web site thu nhỏ kích thước của trang Web tin tức. Công việc chỉnh sửa này thực hiện trên Web server sẽ làm tăng hiệu quả hoạt động của thiết bị cầm tay do tốc độ xử lý của các thiết bị cầm tay là không yêu cầu cao. 1.3. Hướng tiếp cận giải quyết bài toán Nội dung đề tài này là giải quyết bài toán phân cụm các trang web theo nội dung. Trên cơ sở bài toán phân cụm các trang web, hệ thống tìm ra các khuôn mẫu trang Web trong một site cung cấp tin tức điện tử, mỗi khuôn mẫu đó Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 17 được coi là một lớp các trang Web tương ứng trong site. Đối với mỗi khuôn mẫu, hệ thống áp dụng việc trích xuất nội dung các trang tin tức và định dạng lại cho phép xem được trên các thiết bị cầm tay. Như vậy, một bài toán cốt lõi của hệ thống là phân cụm các trang Web thuộc site báo điện tử để xác định các lớp trang Web có chung khuôn dạng trình diễn, qua đó nhận diện được vùng trong khuôn mẫu này chứa các nội dung cần trích chọn. Vấn đề xác định tính tương đồng giữa các trang Web, nền tảng để phân cụm, được trình bày trong chương tiếp theo thông qua khái niệm chi phí chuyển đổi cây và thuật toán RTDM [28]. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 18 Chương II. THUẬT TOÁN RTDM VÀ ỨNG DỤNG TRONG TRÍCH XUẤT TIN 2.1. Khái niệm “Chi phí chuyển đổi cây” Như giới thiệu ở chương trước, việc tìm kiếm hoặc trích xuất dữ liệu từ các trang Web có thể được thực hiện thông qua việc phân tích cấu trúc của các trang Web đó. Với việc phân tích cấu trúc của các trang Web này, ta có thể nhóm các trang có cùng cấu trúc thành một nhóm trang và tìm những biểu diễn giống nhau của cấu trúc của các trang Web này trong một nhóm. Nội dung chính của chương này được tổng hợp các nội dung cơ bản của [28]. Phiên bản chi tiết của thuật toán RTDM do luận văn đề xuất. Ngoài ra, luận văn cũng đưa ra một số nhận xét, ý tưởng có thể dùng để cải tiến thuật toá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í hình thức của thuật toán RTDM là: • Chi phí cho thao tác thay thế đỉnh: (A) a là wildcard Æ 0 (B) nếu không Æ ∞ • Chi phí cho thao tác chèn đỉnh: (C) Tồn tại cha của b mà được xây dựng từ wildcard Æ 0 (D) Đỉnh cùng cha bên trái của b là một wildcard (*) Æ 0 (E) Đỉnh cùng cha bên trái của b là một wildcard (+) Æ 0 (F) Nếu không thì Æ ∞ • Chi phí cho thao tác xóa đỉnh: (G) Nếu a là một wildcard (*) hoặc (+) Æ 0 (H) Nếu không Æ ∞ Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 37 Chi phí thay thế (A) đảm bảo chỉ có một wildcard có thể bị thay thế bởi một cây con mà chúng sử dụng. Chi phí chèn (C) cho phép một cây con hoàn chỉnh được thay thế bởi một wildcard. Chi phí chèn (D), (E) cho phép các wildcard có thể thay thế một danh sách các cây con. Chi phí (G) đảm bảo chỉ có các đỉnh optional mới có thể bị xóa, ta thường thay thế chi phí này bằng chi phí (A). Chi phí (B), (F), (H) đảm bảo ne-pattern phải phù hợp với trang Web, nếu không sẽ có chi phí vô hạn. Khi ne-pattern đã được xây dựng, quá trình trích xuất tin tức sẽ được thực hiện qua bước 4. 4 Hình 6 - Các bước hình thành ne-pattern từ các nhóm 2.3.4 Gán nhãn dữ liệu Kết quả của bước Khớp dữ liệu là một tập hợp các text pasages có thứ tự, mỗi một text-pasage chính là một tập hợp các đỉnh mà được đại diện bởi một wildcard trong ne-pattern. Chúng ta có thể xác định lại các tập hợp này như Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 38 sau: T = (t1, p1), (t2, p2),…, (tn, pn) với ti là text-pasage được lấy bởi wildcard và pi là vị trí đỉnh của wildcard này. Mục đích của bước Gán nhãn dữ liệu (Data Labeling) là lựa chọn từ T hai giá trị ti, tj là tiêu đề và nội dung của tin tức. Để làm được việc này, cần thực hiện một luật heuristic trên tập hợp T như sau: + length(ti) là số từ trong pasage ti. + ti ∩ tk là số từ xuất hiện trong pasage ti và tk + ti là nội dung tin khi và chỉ khi length(ti) > length(tk) với mọi 1<k<n (k≠i) và length(tk) >100. + tj là tiêu đề của tin tức khi và chỉ khi 1 ≤ length(ti) ≤ 20 và ik ik ij ij pp tt pp tt − ∩>− ∩ với mọi 1<k< j (k≠j). Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 39 CHƯƠNG III . PHÂN TÍCH THIẾT KẾ HỆ THỐNG 3.1.Giới thiệu Hệ thống kênh tin tức điện tử cho thiết bị cầm tay được thiết kế theo mô hình CSDL quan hệ, công cụ được sử dụng ở đây là phần mềm Dezign for Database version 3.4 (chi tiết tham khảo Đây là phần mềm thiết kế cơ sở dữ liệu rất gọn nhẹ và trực quan phù hợp với mọi bài toán có kích thước khác nhau, đặc biệt là phù hợp với hệ thống cơ sở dữ liệu cho Kênh tin tức điện tử trên thiết bị cầm tay. Hệ thống sử dụng hệ quản trị MySQL, đây là một hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay. MySQL có ưu thế gọn nhẹ, bảo mật và tốc độ truy xuất cao, đặc biệt thích hợp với các hệ thống ứng dụng trên Web. Các module hệ thống được thiết kế theo mô hình UML 2.0 bằng chương trình Enterprise Architect 6.1 (chi tiết tham khảo: Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 40 3.2. Mô hình Use Case: Các thành phần trong mô hình: Mã số Tên xử lý Giải thích Process 1 Tạo cây HTML Tạo cây theo mô hình DOM (Document Object Model) Process 2 Tạo nhóm trang Phân nhóm các trang HTML Process 3 Xác định mẫu Xây dựng mẫu cho từng Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 41 kiểu trang HTML Process 4 Thiết lập giá trị các lá của cây mẫu Process 5 Hiển thị trang tin Hiển thị teho định đạng của thiết bị cầm tay Process 6 Tính RTDM Tính giá trị RTDM cho từng cặp cây HTML Actor 1 Người đọc tin Event 1 Nhập URL trang tin Info 1 Nhóm trang Info 2 Cây HTML Check 1 Kiểm tra link Resource 1 Trang web huấn luyện Khi người dùng cuối nhập địa chỉ một trang tin tức hoặc lựa chọn trang tin có sẵn, hệ thống sẽ tiến hành kiểm tra liên kết (Url) đó: • Nếu tờ báo (News Site) đó đã được duyệt trước đó thì hệ thống sẽ tiến hành xác định mẫu của trang (page) tin tức cần xem và gán nhãn cho cây mẫu với thông tin của trang tin tức, sau đó tạo trang HTML và trả lại kết quả cho người dùng cuối. • Nếu tờ báo đó chưa được duyệt lần nào, hệ thống sẽ phải tiến hành phân nhóm và tạo mẫu. Để tiến hành phân nhóm và tạo mẫu, hệ thống sẽ phải lấy về một số trang huấn luyện (cỡ khoảng 200 trang với độ sâu cấp 3 của site). Từ các trang huấn luyện thu được, hệ thống sẽ tạo cây HTML theo mô hình DOM và áp dụng thuật toán RTDM để tính giá trị RTDM cho từng cặp cây này. Căn cứ vào các giá trị RTDM hệ thống sẽ nhóm các trang HTML cùng kiểu và tạo ra các mẫu. Các mẫu này sẽ được gán nhãn và trên cơ sở các nhãn này, hệ thống sẽ tiến hành loại bỏ hay giữ lại Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 42 các thông tin trên cây HTML sau khi được gán giá trị thực của trang tin. Process 1 – Tạo cây HTML Dùng để tạo các cây HTML rồi chèn vào Cơ sở dữ liệu. Đầu vào của tiến trình này là url của trang tin. Để thực hiện công việc tạo cây, ta sử dụng gói có sẵn “MILHTML”. Gói tiện ích MIL HTML cho phép biểu diễn trang HTML theo mô hình DOM, gói được chia sẻ trên diễn đàn codeproject tại địa chỉ sau: Process 2 – Tạo nhóm trang Module này nhằm tạo ra các nhóm trang từ các trang huấn luyện. Việc tạo nhóm trang sẽ chia site tin tức ra thành các nhóm trang khác nhau: nhóm các trang chủ, nhóm các trang mục tin, nhóm các trang tin chi tiết…. Việc phân nhóm trang được thực hiện nhờ vào phép tính RTDM giữa các cây HTML của trang web cần phân nhóm trang. Số lượng nhóm trang không giới hạn, ta coi 2 cây HTML là cùng chung một nhóm trang nếu chúng giống nhau đến 80% (giá trị ngưỡng này có thể thay đổi để phù hợp với từng trang web) Process 3 – Xác định mẫu Xác định mẫu là Module xác định cây HTML chung nhất của một nhóm trang. Cây HTML đó là cây có các là là các kí tự đại diện, thể hiện các vùng chứa thông tin. Mẫu của một nhóm trang sẽ xác định cây khung của nhóm trang đó. Để xác định mẫu của một nhóm trang, ta cũng kết hợp kết quả của RTDM đã được lưu trong CSDL cùng với thuật toán xây dựng wildcard. Mẫu cây của một nhóm sẽ được lưu trong bảng HtmlTree trong cơ sở dữ liệu với trường isPattern = YES. Process 4 – Thiết lập các giá trị lá của cây mẫu. Module này nhằm điền lại nhãn của các lá của cây “mẫu”, xác định xem các lá của nó có nhãn là gì: … Nhãn của lá ở đây chỉ bao gồm các thẻ Html mà không có nội dung bên trong của thẻ đó. Một Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 43 cây “mẫu” khi được dán nhãn và hiển thị theo định dạng html sẽ cho ta thấy được “khung” của trang tin tức. Process 5 – Hiển thị trang tin Module này xác định nội dung cần hiển thị rồi hiển thị chúng lên trên trình duyệt. Để có thể hiển thị theo như mong muốn của người dùng,module này cần kiểm tra, loại bỏ những vùng thông tin dư thừa và chỉ hiển thị các vùng thông tin cần thiết, đồng thời tinh chỉnh các đối tượng cho phù hợp với diện tích của màn hình thiết bị di động. Module này kết hợp kết quả đạt được từ module dán nhãn cho các lá của cây mẫu với một số mẹo heuristic. Process 6 – Tính giá trị RTDM Module này tính giá trị RTDM giữa 2 cây và chi phí ánh xạ giữa 2 nút bất kì của 2 cây khác nhau. Các giá trị này sau khi tính được sẽ được lưu trong CSDL. Nhập Url trang tin: Là sự kiện người dùng nhập địa chỉ cần xem tin tức qua thiết bị cầm tay. Module này lấy url mà người dùng nhập vào rồi chuyển qua cho module kiểm tra tính hợp lệ của url. Người đọc tin: Là người sử dụng cuối của hệ thống. Người sử dụng này gửi các yêu cầu đọc trang tin cho hệ thống. Nhóm trang Là các bảng chứa thông tin về trang tin tức cùng với các nhóm trang tin tức đã được xây dựng và cây mẫu của nhóm trang đó nhằm tăng khả năng thực hiện của hệ thống. Với những thông tin này, hệ thống không cần phải tạo mới một quá trình xử lý mà có thể sử dụng ngay những thông tin đã có để tiến hành xử lý trang tin. Các trang tin HTML Là nơi lưu trữ thông tin về các cây HTML cùng với các nút của cây đã được xây dựng từ các trang HTML có trong site Tin tức. Các cây này dung để thực Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 44 hiện các quá trình phân tích cấu trúc trang tin và xây dựng lại trang tin theo khuôn dạng mới. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 45 3.2. Mô hình lớp Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 46 Hình 7 : Gói các lớp phục vụ tính toán giá trị RTDM Hình 8 : Gói các lớp quản lý các trang tin tức Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 47 3.4. Danh sách các thực thể STT Tên các thực thể Mô tả thực thể 1. NewsCategory Danh mục tin tức của site 2. NewsSite Site tin tức 3. Template Trang mẫu 4. TemplateType Kiểu trang mẫu 5. NodeType Kiểu nút 6. NodeMapping Chi phí ánh xạ của 2 nút 7. RtdmTreeValue Giá trị RTDM của cây 8. TreeNode Nút của cây HTML 9. HtmlTree Cây HTML 10. DefautMappingValue Chứa giá trị mặc định cho chi phí xoá đỉnh, chèn đỉnh, thay thế đỉnh Mô tả chi tiết các thực thể được trình bày trong Phần phụ lục. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 48 3.5. Mô hình thực thể liên kết Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 49 CHƯƠNG IV. KẾT QUẢ THỰC NGHIỆM VÀ ĐÁNH GIÁ 4.1. Giới thiệu chung về hệ thống Hệ thống được chia thành 2 module chính sau: Module quản trị và Module xem tin tức. Module quản trị là chương trình cho phép quản lý, chỉnh sửa, nhận dạng mẫu các trang tin tức mới và các trang đã được nhận dạng. Module xem tin tức là trang web cho phép người dùng cuối truy cập từ thiết bị cầm tay để xem tin tức từ các site mà hệ thống đã nhận dạng được. 4.2. Thực nghiệm và đánh giá kết quả Kết quả thực nghiệm trên thuật toán RTDM Theo thực nghiệm của Davi de Castro Reis và các đồng tác giả [28], khi so sánh thuật toán RTDM với thuật toán Chawathe [5] (thời gian tính toán cỡ O(n1.n2)) trong việc trích xuất mẫu chung, kết quả cho thấy RTDM trung bình nhanh hơn 4 lần, có trường hợp RTDM nhanh hơn 10 lần. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 50 Kết quả thực nghiệm trên hệ thống Kết quả thực nghiệm của luận văn trên 7 trang tin tức: Thanh Niên Online (thanhnien.com.vn), VN Express (vnexpress.net), Dân trí (dantri.com.vn), Việt Nam Net (vietnamnet.vn), Chúng Ta (chungta.com), Tiền phong Online (tienphongonline.com.vn), Tuổi Trẻ Online (tuoitre.com.vn) với trên 1388 trang HTML mẫu thu. Tất cả các thực nghiệm được thực hiện trên máy tính với cấu hình như sau: 1 CPU Pentium M 1.6 GHz 2 RAM 512Mb 3 Đường truyền ADSL tốc độ download/upload 2048bps/512bps Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 51 Kết quả thực nghiệm: STT Trang tin tức Chiều sâu Chiều rộng Số trang tối đa Ngưỡng Số trang mẫu Số mẫu Thời gian huấn luyện (giây) 1 thanhnien.com.vn 4 100 300 300 264 24 821 2 vnexpress.net 4 80 250 200 203 13 374 3 dantri.com.vn 4 100 300 300 235 21 2012 4 vietnamnet.vn 4 80 400 300 323 19 1203 5 chungta.com 4 100 200 200 76 9 230 6 tienphongonline.com.vn 4 80 300 200 165 9 523 7 tuoitre.com.vn 5 50 150 200 122 22 404 Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 52 Một số hình ảnh chương trình: Chức năng quản trị: Các hình ảnh chương trình trên thiết bị cầm tay: Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 53 Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 54 KẾT LUẬN Kết quả đạt được Luận văn đã tiến hành nghiên cứu giải pháp trích chọn thông tin trên Web nhằm xây dựng một hệ thống trích xuất tin tức cho phép xem được trên thiết bị cầm tay. Giải pháp đề xuất trong luận văn này sử dụng thuật toán RTDM (Restricted Top-Down Mapping) do Davi de Castro Reis và các đồng tác giả đề xuất [28]. Thuật toán RTDM là thành phần lõi chính cho phép xây dựng một hệ thống nhận dạng các mẫu của trang tin tức và tiến hành trích xuất tin tức hoàn toàn tự động. Luận văn cũng đã tiến hành chi tiết và hoàn thiện các phần nội dung không công bố của thuật toán RTDM. Trên cơ sở lý thuyết đã nghiên cứu, tác giả đã tiến hành phân tích, thiết kế và xây dựng hệ thống kênh cung cấp tin tức điện tử trên các thiết bị cầm tay thông minh hoàn chỉnh. Hệ thống đã được thử nghiệm cho các trang tin tức trên các báo điện tử tiếng Việt phổ dụng hiện nay và cho kết quả tốt. Kết quả chưa đạt được và kế hoạch trong tương lai Do thời gian nghiên cứu và xây dựng hệ thống có hạn cộng với thuật toán RTDM không được công bố đầy đủ nên chương trình thực nghiệm còn một số tính năng chưa hoàn thiện. Tốc độ nhận dạng mẫu, khớp dữ liệu còn chậm, trích xuất được một tin tức còn chiếm nhiều thời gian xử lý CPU và bộ nhớ RAM, vì vậy chưa khả thi để áp dụng thực tế. Trong tương lai, tác giả dự định hoàn thiện thuật toán RTDM nhằm tăng tốc độ cho phép nhận dạng, trích xuất. Song song với việc tăng tốc thuật toán RTDM, kiến trúc chương trình cũng sẽ cần hoàn thiện cho phép nhiều truy cập đồng thời và nâng cao tính ổn định của hệ thống. Trên cơ sở đó sẽ áp dụng triển khai thực tế cho các trang tin tức tiếng Việt cũng như các trang tin tức tiếng Anh, Pháp,... Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 55 TÀI LIỆU THAM KHẢO [1] A. Arasu, H. Garcia-Molina, and S. University. Extracting structured data from Web pages. In Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data, 337-348, ACM Press, 2003. [2] L. Arllota, V. Crescenzi, G. Mecca, and P. Merialdo. Automatic annotation of data extraction from large Web sites. In Proceedings of the International Workshop on the Web and Databases, 7-12, San Diego, USA, 2003. [3] R. Baeza-Yates and B. Ribeiro-Neto. Modern Information Retrieval. Addison-Wesley, Harlow, England, 1st edition, 1999. [4] V. Boyapati, K. Chevrier, A. Finkel, N. Glance, T. Pierce, R. Stockton, and C. Whitmer. ChangedetectorTM: a site-level monitoring tool for the WWW. In Proceedings of the 11th International Conference on World Wide Web, 570-579. ACM Press, 2002. [5] S. S. Chawathe. Comparing hierarchical data in external memory. In Proceedings of the 25th International Conference on Very Large Data Bases, 90-101, Edinburgh, Scotland, U.K., 1999. [6] W. Chen. New algorithm for ordered tree-to-tree correction problem. Journal of Algorithms, 40:135-158, 2001. [7] V. Crescenzi, G. Mecca, and P. Merialdo. RoadRunner: Towards automatic data extraction from large Web sites. In Proceedings of the 27th International Conference on Very Large Data Bases, 109-118, Rome, Italy, 2001. [8] V. Crescenzi, G. Mecca, and P. Merialdo. Wrapping-oriented classi_cation of Web pages. In Proceedings of the 2002 ACM Symposium on Applied Computing, 1108-1112. ACM Press, 2002. [9] D. Florescu, A. Levy, and A. Mendelzon. Database techniques for the world-wide Web: a survey. SIGMOD Rec., 27(3):59-74, 1998. [10] M. Garofalakis, A. Gionis, R. Rastogi, S. Seshadri, and K. Shim. Xtract: a system for extracting document type descriptors from xml documents. In Proceedings of the 2000 ACM SIGMOD International Conference on Management of Data, 165-176. ACM Press, 2000. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 56 [11] S. Grumbach and G. Mecca. In search of the lost schema. In C. Beeri and P. Buneman, editors, Proceedings of 7th International Conference on Database Theory, Lecture Notes in Computer Science, 314-331, Jerusalem, Israel, 1999. Springer. [12] A. Heydon and M. Najork. Mercator: A scalable, extensible Web crawler. World Wide Web, 2(4):219-229, 1999. [13] A. Laender, B. Ribeiro-Neto, A. Silva, and J. S. Teixeira. A brief survey of Web data extraction tools. SIGMOD Record, 31(2):84-93, 2002. [14] B. Liu, R. Grossman, and Y. Zhai. Mining data records in Web pages. In Proceedings of the 9th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, 601-606. ACM Press, 2003. [15] J.K. Min, J.Y. Ahn, and C.-W. Chung. Ef_cient extraction of schemas for xml documents. Information Processing Letters, 85(1):7-12, 2003. [16] A. Nierman and H. V. Jagadish. Evaluating structural similarity in XML documents. In Proceedings of the 5th International Workshop on the Web and Databases (WebDB 2002), Madison, Wisconsin, USA, June 2002. [17] S. M. Selkow. The tree-to-tree editing problem. Information Processing Letters, 6:184-186, Dec. 1977. [18] K.-C. Tai. The tree-to-tree correction problem. J. ACM, 26(3):422-433, 1979. [19] G. Valiente. An efficient bottom-up distance between trees. In Proceedings of the 8th International Symposium on String Processing and Information Retrieval, 212-219, Santiago, Chile, 2001. IEEE Computer Science Press. [20] G. Valiente. Tree edit distance and common subtrees. Research Report LSI-02-20-R, Universitat Politecnica de Catalunya, Barcelona, Spain, 2002. [21] J. T.-L. Wang, B. A. Shapiro, D. Shasha, K. Zhang, and K. M. Currey. An algorithm for finding the largest approximately common substructures of two trees. IEEE Transactions on Pattern Analysis and Machine Intelligence, 20(8):889-895, 1998. Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 57 [22] J. T. L. Wang and K. Zhang. Finding similar consensus between trees: an algorithm and a distance hierarchy. Pattern Recognition, 34:127- 137, 2001. [23] P. Willett. Recent trends in hierarchic document clustering: a critical review. Information Processing and Management, 24(5):577-597, 1988. [24] G. Yang, I. V. Ramakrishnan, and M. Kifer. On the complexity of schema inference from Web pages in the presence of nullable data attributes. In Proceedings of the 12th International Conference on Information and Knowledge Management, 224-231. ACM Press, 2003. [25] W. Yang. Identifying syntactic differences between two programs. Softw. Pract. Exper., 21(7):739-755, 1991. [26] K. Zhang, D. Shasha, and J. T. L. Wang. Approximate tree matching in the presence of variable length don't cares. J. Algorithms, 16(1):33-66, 1994. [27] K. Zhang, R. Statman, and D. Shasha. On the editing distance between unordered labeled trees. Information Processing Letters, 42(3):133- 139, 1992. [28] Davi de Castro Reis, Paulo B. Golgher, Altigran S. da Silva, Alberto H. F. Laender. Automatic Web News Extraction Using Tree Edit Distance. In Proceedings of the Thirteenth International World Wide Web Conference, ACM Press, New York, NY, May 2004, ISBN 1581139128, 502-601. [29] Một số bài báo trên các trang www.vnexpress.net , www.tuoitre.com.vn,... Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 58 PHỤ LỤC. MÔ TẢ CHI TIẾT CÁC THỰC THỂ NewsSite STT Tên thuộc tính Kiểu Loại khoá Mô tả 1 Id Int PK Id của tờ báo (trang tin tức) 2 Url Varchar(500) Đường dẫn tới trang tin tức 3 SiteName Varchar(200) Tên của trang tin tức 4 Threshold Float Giá trị ngưỡng để nhóm các trang tin lại 5 InsertCost Float Chi phí chèn đỉnh 6 UpdateCost Float Chi phí thay thế đỉnh 7 DeleteCost Float Chi phí xoá đỉnh Bảng này chứa danh sách các tờ báo điện tử mà người dùng đã ghé thăm, địa chỉ Url ở đây chỉ lưu trữ địa chỉ của trang chủ. Các chi phí chèn, thay thế và xoá đỉnh có thể xác định giá trị cho từng tờ báo. NewsCategory STT Tên thuộc tính Kiểu Loại khoá Mô tả 1 Id Int PK ID của mục tin 2 NewsSiteId Int FK ID của tờ báo (trang tin tức) liên kết đến 3 ParentId Int FK ID của mục tin cấp trên 4 CategoryName Varchar(200) Tên của mục tin 5 CategoryUrl Varchar(500) Đường dẫn đến mục tin Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 59 đó Bảng NewsCategory lưu trữ các mục tin chính của tờ báo. Template STT Tên thuộc tính Kiểu Loại khoá Mô tả 1 Id Int PK Id của trang mẫu 2 NewsSiteId Int Id của tờ báo 3 TemplateTypeId Int FK Kiểu trang mẫu (trang chủ, mục tin hay tin chi tiết) Bảng này lưu trữ các mẫu trang tin, các trang mới ghé thăm sẽ được so sánh với trang mẫu để xác định kiểu trang tin (trang chủ, mục tin hay trang tin chi tiết…) và căn cứ vào kiểu trang tin sẽ có hình thức trích xuất tương ứng. TemplateType STT Tên thuộc tính Kiểu Loại khoá Mô tả 1 Id Int PK Id của TemplateType 2 TemplateTypeName Varchar(100) Tên của templateType 3 Description varchar(500) Mô tả templateType Kiểu trang tin: trang chủ, mục tin hay trang tin chi tiết… NodeType STT Tên thuộc tính Kiểu Loại khoá Mô tả 1 Id Int PK Id của NodeType 2 NodeName Varchar(100) Tên của NodeType Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 60 3 Description varchar(500) Mô tả NodeType Lưu trữ kiểu nút trong cây HTML, kiểu nút sẽ xác định nút đó có được giữ lại hay có thể loại bỏ khỏi cây. NodeMapping STT Tên thuộc tính Kiểu Loại khoá Mô tả 1 Id Int PK Id của NodeMapping 2 NodeConnectedId Int Nút kết nối trong ánh xạ 3 MappingValue Float Giá trị của ánh xạ 2 TreeNodeId Int FK Id của nút Bảng này lưu trữ chi phí ánh xạ giữa 2 nút. RtdmTreeValue STT Tên thuộc tính Kiểu Loại khoá Mô tả 1 Id Int PK Id của RtdmTreeValue 2 TreeConnectedId Int FK Cây kết nối trong phép tính rtdm 3 Value Float Giá trị Rtdm Lưu trữ giá trị RTDM tính được khi chuyển đổi cây HTML sang cây có giá trị Id là: TreeConnectedId. HtmlTree STT Tên thuộc tính Kiểu Loại khoá Mô tả Kênh tin tức điện tử cho các thiết bị cầm tay Vũ Ngọc Anh – K9T3 Trang 61 1 Id Int PK Id của TreeHtml 2 Url Varchar(500) Địa chỉ đến site tương ứng 3 isPattern Varchar(3) Cây có là pattern không 4 TemplateId Int FK Template chứa cây Lưu trữ tất cả các trang Url đã được ghé thăm, mỗi một trang được ghé thăm sẽ tương ứng với một cây HTML. TreeNode STT Tên thuộc tính Kiểu Loại khoá Mô tả 1 Id Int PK Id của TreeNode 2 Label Varchar(40) Nhãn của nút 3 ParentId Int FK Id của nút cha 4 Level Int Độ sâu của nút tính từ gốc 5 OrderNumber Int Số thứ tự của nút trong cùng cha 6 NodeTypeId Int FK Kiểu nút 7 HtmlTreeId Int FK Cây chứa nút 8 TreeOrder Int Thứ tự trong cây (duyệt theo thứ tự trước) Lưu trữ các nút của cây tương ứng với Url được ghé thăm, các thông tin của nút xác định được cấu trúc của cây HTML được lưu trữ.

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