LUẬN VĂN: ĐỌC BÁO ĐIỆN TỬ VÀ TÌM KIẾM THÔNG TIN TRÊN INTERNET

doc
Số trang LUẬN VĂN: ĐỌC BÁO ĐIỆN TỬ VÀ TÌM KIẾM THÔNG TIN TRÊN INTERNET 56 Cỡ tệp LUẬN VĂN: ĐỌC BÁO ĐIỆN TỬ VÀ TÌM KIẾM THÔNG TIN TRÊN INTERNET 3 MB Lượt tải LUẬN VĂN: ĐỌC BÁO ĐIỆN TỬ VÀ TÌM KIẾM THÔNG TIN TRÊN INTERNET 0 Lượt đọc LUẬN VĂN: ĐỌC BÁO ĐIỆN TỬ VÀ TÌM KIẾM THÔNG TIN TRÊN INTERNET 2
Đánh giá LUẬN VĂN: ĐỌC BÁO ĐIỆN TỬ VÀ TÌM KIẾM THÔNG TIN TRÊN INTERNET
4.7 ( 19 lượt)
Nhấn vào bên dưới để tải tài liệu
Để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Tài liệu tương tự

Nội dung

MỤC LỤC CHƯƠNG I : GIỚI THIỆU SẢM PHẨM…………………………………………1 I.1. MỞ ĐẦU………………………………………………………………………………….1 I.2. MỘT VÀI VÍ DỤ ỨNG DỤNG………………………………………………………2 CHƯƠNG II : LÝ THUYẾT CHUNG……………………………………………...3 II.1. PHÂN LOẠI NGUỒN THÔNG TIN……………………………………………….3 II.1.1. Các trang web thông tin có cấu trúc được cập nhật thường xuyên…………………………………………………………………… ………….….4 II.1.2. Các trang Web thông tin có cấu trúc không được cập nhật thường xuyên…………………………………………………………………… ….5 II.1.3. Các trang Web thông tin có cấu trúc lỏng lẻo……………………….…6 II.2. WEBMINING…………………………………………………………………………… 6 II.2.1. Thu thập thông tin (Information Retrieval) …………………..7 II.2.2. Bóc tách thông tin (Information Extraction) ………………….7 II.2.3. Tổng hợp và tổng quát hoá dữ liệu (Generation) …………..8 II.2.4. Phân tích………………………………………………………………….…8 II.3. XLM…………………………………………………………………………………….. …8 CHƯƠNG III : NGHIÊN CỨU GIẢI PHÁP…………………………………….10 III.1. THU THẬP THÔNG TIN………………………………………………………….11 III.1.1.Các loại URL……………………………………………………………..11 III.1.2. Giải pháp sử lý………………………………………………………...12 III.2. BÓC TÁCH THÔNG TIN………………………………………………..12 Chương I : Giới thiệu sản phẩm III.2.1. Quy luật dùng để bóc tách thông tin…………………………..20 III.2.2. Phương án kỹ thuật…………………………………………………..24 III.2.3. Kênh tin và kênh tin đa thức………………………………………29 III.3. HIỆN THỰC HOÁ GIẢI PHÁP…………………………………………………..31 III.3.1. Khả năng tương tác người và máy trong quá trình tạo kênh tin………………………………………………………………………… ……33 III.3.2. Các chức năng khác của hệ thống………………………………35 III.4. KHẢ NĂNG ỨNG DỤNG VÀ MỞ RỘNG……………….. ……………………36 CHƯƠNG IV : SO SÁNH VỚI CÁC HỆ THỐNG KHÁC………………………37 CHƯƠNG V : HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH………………….38 V.1. YÊU CẦU HỆ THỐNG………………………………………………………..…...38 V.2. CHỌN KÊNH TIN………………………………………………………….………...39 V.3.LẤY THÔNG TIN VỀ CÁC BÀI BÁO……………………………………………..40 V.4. XEM BÁO TRỰC TUYẾN …………………………………………………………..41 V.5. XEM CÁC BÀI BÁO Đà LƯU………………………………………………………42 V.6. CHỈNH SỬA VÀ THÊM CHÚ THÍCH VÀO BÀI BÁO……………………….43 V.7. TÌM KIẾM BÀI BÁO………………………………………………………………….43 V.8. CẬP NHẬT CÁC KÊNH THÔNG TIN MỚI…………………………………….44 CHƯƠNG VI : KẾT LUẬN………………………………………………………… 44 -1- Chương I : Giới thiệu sản phẩm CHƯƠNG I GIỚI THIỆU SẢN PHẨM  Tên sản phẩm  Ứng dụng của sản phẩm I.1.MỞ ĐẦU Bạn đã bao giờ tưởng tượng rằng, nếu một ngày nào đó tất cả mọi người đều có đầy đủ thông tin, riêng bạn lại không có những thông tin cần thiết thì cuộc sống sẽ ra sao chưa? Hơn mọi thứ khác, nhu cầu truyền tải thông tin vượt qua thời gian và không gian luôn được nhân loại chú ý tới, từ những tiếng trống của thổ dân Châu Phi cho tới những thông điệp điện tử đang được truyền đi với tốc độ ánh sáng trên khắp địa cầu. Không cần đến tận nơi, bạn vẫn có thể biết ở cách xa hàng ngàn dặm đang diễn ra chuyện gì, không cần phải gặp mặt, những người bạn ở hai nửa địa cầu vẫn có thể trao đổi thông tin với nhau, ... Internet đã đưa thông tin tới mọi nhà. Thế nhưng, hãy thử tưởng tượng rằng, nếu một ngày nào đó tất cả mọi người đều có đầy đủ những thông tin mà mình cần, còn riêng bạn lại ngập lụt trong một biển thông tin nhiều đến nỗi không sao xử lý hết được thì sẽ thế nào? Càng ngày bạn càng cần phải thu thập thông tin ở nhiều lĩnh vực cùng một lúc và đã bao giờ bạn phát chán lên vì không biết phải làm gì khi có quá nhiều thông tin chưa? Đã bao giờ bạn cảm thấy chán ngán khi trong tay mình có danh sách của hàng chục, hàng trăm tờ báo điện tử, diễn đàn, search engine, rồi các website thông tin về đủ mọi lĩnh vực, nhưng lại không thể đủ thời gian để cập nhật dù chỉ là lướt qua hết các nguồn tin này chưa? Có thể có và cũng có thể là chưa. Hệ thống của tôi ra đời với một tiêu chí vô cùng đơn giản “Mang lại cho người sử dụng thông tin và chỉ những thông tin mà họ cần”. Thông tin bạn cần nhất khi muốn xem lướt qua các tờ báo điện tử là gì? Có thể chỉ là tiêu đề bài báo và vài dòng tóm tắt qua nội dung của bài báo đó. Thông tin bạn cần nhất khi lướt qua một diễn đàn là gì? Có thể chỉ là tên bài viết và tác giả của bài viết đó. Cũng như vậy đối với một trang Web cung cấp thông tin về giá cả chứng khoán. Bạn cần chỉ số chứng khoán của các công ty chứ đâu cần phải rối tinh lên vì các thông tin không cần thiết nằm trong trang Web đó... Nhưng có phải là hệ thống của tôi sẽ chỉ mang đến cho bạn thông tin về tiêu đề cùng với phần tóm tắt của các tin tức trên rất nhiều các trang báo điện tử trong và ngoài nước, hay tên bài viết và tác giả của -2- Chương I : Giới thiệu sản phẩm các chủ đề trên rất nhiều các diễn đàn trao đổi thông tin, hay đơn thuần chỉ là các chỉ số chứng khoán, … không thôi? Không, tất nhiên không chỉ có vậy, hệ thống của tôi được xây dựng như là một giải pháp tổng quát để thu thập và tách thông tin từ bất cứ nguồn tin nào trên Internet. Với sự cố gắng nỗ lực hết mình trong phạm vi giới hạn của kiến thức, tôi cũng đã cung cấp cho bạn một cơ chế tương tác trực quan giữa người và máy để xác định thông tin cần bóc tách mà ngay cả những hệ thống có chức năng tương tự như Novobot, WebFerret hay Copernic cũng rất khó khăn hay hầu như không thể cung cấp cho bạn được. Tính khả mở của hệ thống đã được chuyển giao từ những người tạo ra hệ thống vào tay người sử dụng. Hệ thống của tôi giờ đây đã cung cấp đầy đủ các chức năng để bạn có thể thu thập và tách các thông tin từ bất cứ nguồn tin nào và việc quyết định cần thu thập những thông tin gì là tùy vào chính bạn chứ không còn cứng nhắc như các hệ thống trước đây nữa. Hãy để công việc thu thập thông tin lại trở nên dễ dàng và tiện dụng cùng với hệ thống của tôi cho dù trước mắt bạn là một biển thông tin hỗn độn và khổng lồ như Internet . I.2.MỘT VÀI VÍ DỤ ỨNG DỤNG Đặc điểm nổi bật nhất là hệ thống của tôi có tính mở rất cao. Những thông tin mà hệ thống mang lại cho bạn chỉ phụ thuộc vào ý muốn của chính bạn chứ không bị gò bó trong một phạm vi nhất định nào đó như là những chương trình tương tự khác. Có thể ra một vài ứng dụng nhỏ sau đây : Nếu bạn là người hay quan tâm đến những tin tức nóng hổi về kinh tế, chính trị, thể thao, ... hãy sử dụng chương trình của tôi để tạo ra các kênh tin kết nối đến các trang báo điện tử ở khắp nơi trên thế giới, và bạn sẽ có đầy đủ những thông tin mà mình cần. Việc đọc lướt qua các tiêu đề tin tức từ các bài báo sau khi đã được thu thập và phân chia thành các chủ đề khác nhau, rồi mới quyết định xem chi tiết bài báo nào sẽ giúp bạn có một cái nhìn tổng quát hơn, nhanh chóng và tiết kiệm thời gian, tiền bạc hơn so với việc phải dùng trình duyệt đi tới từng trang web, vào từng chủ đề, xem tiêu đề tin,... rồi mới tới được nội dung bài viết. Nếu bạn là một doanh nghiệp cần quan tâm đến những tin tức về kinh tế, về thị trường, về những mặt hàng bạn đang kinh doanh, hay nếu bạn là một người làm công tác nghiên cứu đang cần những thông tin, số liệu liên quan đến lĩnh vực chuyên môn của mình, hay nếu bạn là một nhà báo đang cần những tin tức "thời sự" nhất để viết bài, .... thì tại sao lại không thử sử dụng hệ thống của tôi, tất cả những gì bạn cần hệ thống của tôi sẽ giúp bạn có. -3- Chương I : Giới thiệu sản phẩm Nếu bạn cần tìm kiếm thông tin, chương trình của tôi sẽ giúp bạn cùng một lúc kết nối đến nhiều trang tìm kiếm khác nhau trên thế giới, gửi yêu cầu, phân tích kết quả rồi trả lại cho bạn những thông tin bạn cần tìm. Nếu bạn muốn thu thập, tổng hợp lại số liệu từ một trang web trên mạng (ví dụ như danh sách các thí sinh trúng tuyển đại học chẳng hạn), hay cần lấy về chỉ một số thông tin nhất định nào đó thôi, ví dụ như tên nhạc sĩ sáng tác và lời bài hát tương ứng từ một site về lyrics nào đó để tổng hợp lại thành cơ sở dữ liệu của riêng bạn, ... mà bạn đang băn khoăn không biết nên làm thế nào để có thể thực hiện công việc này một cách nhanh chóng và ít tốn công sức nhất ... thì hệ thống của tôi chính là một công cụ mà bạn đang cần đấy. Ngoài ra còn có thể kể đến rất nhiều ứng dụng khác nữa. Hệ thống này có thể được ứng dụng vào trong những công việc gì thì điều đó chỉ phụ thuộc vào khả năng sáng tạo của chính bạn mà thôi. CHƯƠNG II     LÝ THUYẾT CHUNG Các loại nguồn thông tin trên Web Các tác vụ Web-mining, lý thuyết và thực tế Ngôn ngữ XML, khả năng và thực tế Chúng ta đã thật sự có thông tin mình mong đợi chưa? II.1.PHÂN LOẠI NGUỒN THÔNG TIN Trong thập kỷ qua, chúng ta đã được chứng kiến sự phát triển đến chóng mặt của Internet mà tiêu biểu là các trang thông tin. Sự phát triển này đã có một ảnh hưởng không nhỏ tới nền kinh tế và xã hội không chỉ của riêng một quốc gia mà là cả thế giới. Internet được coi là một nguồn cung cấp tin khổng lồ với mọi chuyên mục, mọi vấn đề mà người sử dụng cần đến. Với sự phát triển này, hiện nay, lượng thông tin Internet mang đến cho người sử dụng là quá lớn dẫn tới việc chúng ta cần phải có các ứng dụng Internet thông minh và hiệu quả hơn đối với người sử dụng. Có nhiều cách để phân loại các nguồn thông tin từ Web, tuy vậy, chúng ta có thể chia thành 3 loại chính như sau : -4- Chương I : Giới thiệu sản phẩm  Các trang Web thông tin có cấu trúc được cập nhật thường xuyên  Các trang Web thông tin có cấu trúc không được cập nhật thường xuyên  Các trang Web thông tin có cấu trúc lỏng lẻo Trước khi đi vào phân tích từng loại một, chúng ta cần nhận định rằng các trang Web hiện nay được xây dựng bằng rất nhiều nguồn khác nhau: text, hình ảnh, video, biểu tượng .v.v… Có thể kể ra đây một vài đặc tính quan trọng của dữ liệu trên các trang Web này :  Không phân loại được (các thông tin mang lại từ HTML hầu hết là về phần trình bày thông tin chứ không phải là ngữ nghĩa của thông tin)  Phân tán  Trộn lẫn (text, hình ảnh, video, biểu tượng...)  Bán cấu trúc (có cấu trúc theo ngôn ngữ HTML nhưng lại không có cấu trúc về mặt ngữ nghĩa)  Thay đổi theo thời gian  Đa chiều II.1.1.Các trang Web thông tin có cấu trúc được cập nhật thường xuyên Chúng ta có thể thấy rất rõ hiện nay có một phần không nhỏ các trang Web thông tin được cập nhật thường xuyên như báo điện tử, diễn đàn, trang Web cung cấp thông tin giá tầu xe, đấu giá, chứng khoán, thời tiết... Tuy vậy, nếu phân tích một cách kỹ lưỡng, có thể nhận xét là các trang Web này tuy được cập nhật thường xuyên, nhưng không thay đổi về mặt cấu trúc ý nghĩa. Các ví dụ dưới đây sẽ minh họa kỹ hơn về mặt cấu trúc ý nghĩa của các trang Web (các ví dụ này là không chính xác đối với tất cả các trang Web cùng loại mà chỉ mang tính minh hoạ về cấu trúc ý nghĩa):  Báo điện tử : Tiêu đề + Mô tả ngắn gọn + Các tin đã đưa  Diễn đàn : Tên bài viết + Người viết + Người cập nhật cuối  Thời tiết : Tên thành phố + chỉ số dự báo thời tiết(nhiệt độ, độ ẩm...)  Chứng khoán : Tên công ty niêm yết + giá bán  ... -5- Chương I : Giới thiệu sản phẩm Tần số cập nhật thông tin của các trang Web này nói chung là ngắn, có thể liên tục (thị trường chứng khoán), một vài phút (diễn đàn) hay một ngày (báo điện tử). Tuy vậy, dù cập nhật thông tin như thế nào, các trang thông tin này thông thường luôn tuôn theo một quy luật về ý nghĩa của các thông tin. Thông tin mà các trang Web này mang lại cho người sử dụng được cập nhật một cách liên tục và phong phú. Tuy vậy, trái ngược với sự liên tục và phong phú, các trang Web này lại chỉ ngày càng nâng cao tính trình bày hình thức của mình chứ không thể nâng cao được tính ngữ nghĩa của mình (do sự hạn chế của ngôn ngữ HTML). Những câu hỏi được người sử dụng đặt ra để lấy thông tin ví dụ như “Tôi muốn đọc các bài có tiêu đề nói về Trí Tuệ Việt Nam 2004“ hay như “Có công ty chứng khoán nào niêm yết giá khoảng dưới 20000 VND không nhỉ?”, có vẻ đơn giản nhưng dường như lại khá khó khăn trong việc thực hiện. Câu trả lời nếu sử dụng các phương pháp thông thường như là sử dụng search engine của trang thông tin đó hay các search engine khác sẽ mang lại cho người sử dụng quá nhiều thông tin không cần thiết do các search engine này cũng chỉ tìm kiếm thông tin chứ không để ý đến ngữ nghĩa của thông tin. II.1.2.Các trang Web thông tin có cấu trúc không được cập nhật thường xuyên Tần số cập nhật được nêu ra ở đây chỉ mang tính tương đối, vì một trang Web được cập nhật thường xuyên (ví dụ như chỉ số chứng khoán) lại cũng có thể vì một lý do nào đó không cập nhật thường xuyên nữa (ví dụ đóng cửa thị trường chứng khoán vào ngày nghỉ). Tuy nhiên, có thể thấy rằng, cũng có rất nhiều trang Web mà tần số cập nhật là ít. Ví dụ như trang Web giới thiệu tên các quốc gia (đương nhiên không phải ngày, tháng, năm nào cũng có một quốc gia xuất hiện, đổi tên hay biến mất nên thông tin trong trang Web này dường như không thay đổi), hay như trang Web chứa thông tin về Ban Giám Khảo cuộc thi Trí Tuệ Việt Nam (thay đổi theo hàng năm). Do các trang Web này cũng được tổ chức theo một cấu trúc nhất định nên chúng ta cũng có thể phân tích về mặt ngữ nghĩa cấu trúc. Ví dụ như trong trang Web thông tin về Ban Giám Khảo cuộc thi Trí Tuệ Việt Nam, ít nhất cũng phải có các thông tin: Tên + Chức danh của các thành viên Ban Giám Khảo. Tương tự, chúng ta sẽ lại vấp phải những khó khăn khi muốn tìm ra dữ liệu trả lời cho những câu hỏi như “Thành viên nào của Ban Giám Khảo hiện nay đang công tác tại trường Đại học Bách Khoa ?”. Những câu hỏi được đặt ra đối với các trang Web có cấu trúc nói trên dường như sẽ là những câu truy vấn rất đơn giản trong các hệ -6- Chương I : Giới thiệu sản phẩm quản trị cơ sở dữ liệu khi có các thông tin Tiêu đề (trong câu hỏi “Tôi muốn đọc các bài có tiêu đề nói về Trí tuệ Việt Nam 2004 ? ”), Tên công ty, Giá niêm yết (trong câu hỏi “Có công ty chứng khoán nào niêm yết giá khoảng dưới 20000 VND không nhỉ ?”) và Tên thành viên, Chức danh (trong câu hỏi “Thành viên nào của Ban Giám Khảo hiện nay đang công tác tại trường Đại học Bách Khoa ?” ). Thế nhưng, cái chúng ta có lại là các trang Web chứ không phải là hệ cơ sở dữ liệu và công việc của chúng ta là phải có được một cơ sở dữ liệu mà mỗi thông tin trong đó đã được phân loại theo ngữ nghĩa. ??? D÷liÖu cã thÓ truy vÊn ®­ î c II.1.3.Các trang Web thông tin có cấu trúc lỏng lẻo Các trang Web thông tin có cấu trúc lỏng lẻo cũng là một trong những loại trang Web xuất hiện rất nhiều trên Internet, ví dụ như: trang Web giới thiệu cá nhân, tổ chức, cơ quan .v.v… Những trang Web này thường rất khó phân tích cấu trúc một cách tổng quát do thông tin được trình bày không theo một quy luật nhất định nào. II.2.WEBMINING Do những nhu cầu bức xúc đặt ra đã được nói ở trên, chúng ta cần phải phát triển phương pháp thu thập và xử lý thông tin thông minh hơn để mang lại những ích lợi thiết thực hơn cho người sử dụng. Hiện tại, trên thế giới đã có rất nhiều nghiên cứu về WebMining, phương pháp và công nghệ để xử lý thông tin thu thập từ các nguồn thông tin trên Internet một cách thông minh. WebMining có thể được chia thành bốn tác vụ chính như hình dưới đây -7- Chương I : Giới thiệu sản phẩm D÷liÖu Web T¸c vô Thu thËp th«ng tin T¸c vô Bãc t¸ch th«ng tin Tri thøc T¸c vô Tæng qu¸t ho¸ th«ng tin T¸c vô Ph©n tÝch th«ng tin Chúng ta sẽ điểm sơ qua từng tác vụ một và những nghiên cứu đã đạt được đối với từng tác vụ này. II.2.1.Thu thập thông tin (Information Retrieval) Tác vụ thu thập thông tin giúp cho người sử dụng có được trang Web từ URL hoặc từ yêu cầu mà họ cần. Đối với người sử dụng hiện tại, việc thu thập thông tin thường được thực hiện qua các URL mà người sử dụng đã biết hoặc qua các engine tìm kiếm. Các engine tìm kiếm là các chương trình được viết để có thể truy vấn và thu thập dữ liệu được lưu trong cơ sở dữ liệu (có cấu trúc), trang Web (bán cấu trúc) và các văn bản tự do (không có cấu trúc) trên mạng. Hiện tại đã có khá nhiều các engine tìm kiếm mạnh ở thế giới và tại Việt Nam như Google, Altavista, Lycos, Vinaseek, PanVN, ... Các engine này ngày càng cố gắng để có thể tương tác với người sử dụng nhiều và thông minh hơn, tuy vậy không phải là không có những yếu điểm. Như chúng ta đã biết, một hệ thống thu thập thông tin lý tưởng phải là một hệ thống thu thập được những thông tin phù hợp nhất với yêu cầu của người sử dụng (yêu cầu này được diễn giải bằng các câu truy vấn). Đây thật sự là một tác vụ vô cùng phức tạp và khó khăn mà hầu hết các hệ thống thu thập thông tin đều chưa thực hiện được triệt để, phần nhiều có thể kể đến là do tính phi ngữ nghĩa của ngôn ngữ HTML. Hầu hết các hệ thống thu thập thông tin hiện nay đều chú trọng tới tốc độ, số lượng thông tin mà các hệ thống này có thể mang lại cho người dùng với các câu truy vấn tương đối đơn giản. Ngoài ra chúng ta cũng nhận thấy đã có những cố gắng rất nhiều trong việc cá nhân hóa và khả mở đối với hệ thống thu thập thông tin. Tuy vậy, kết quả mang lại chưa phải thật sự tốt đúng như người dùng mong đợi. -8- Chương I : Giới thiệu sản phẩm II.2.2. Bóc tách thông tin (Information Extraction) Một khi thông tin sau khi qua tác vụ thu thập đã được lấy về, việc tiếp theo là phải lấy ra được những thông tin cần thiết và chỉ là những thông tin mà mình cần một cách tự động không cần tới sự thao tác của người sử dụng. Hầu hết các thuật toán bóc tách thông tin hiện nay đều dựa vào các công cụ khác nhau trên nền kỹ thuật “wrapper”. Wrapper có thể được hiểu là những hàm để tách thông tin từ các tài nguyên Web. Các hàm này được viết dựa trên các luật (quy luật) đã được đúc rút ra sau khi khảo sát các trang Web chứa thông tin cần lấy. Các Wrapper có thể xây dựng dựa trên rất nhiều quy luật khác nhau và tuỳ thuộc vào mục đích của người sử dụng. Có lẽ giới hạn lớn nhất của tác vụ bóc tách thông tin này là mỗi một wrapper lại chỉ được sử dụng cho một mục đích nhất định và không liên quan đến nhau. Do vậy, tính khả mở của các wrapper này quả thật không được tốt cho lắm. Chúng ta có thể kể đến những chương trình chỉ viết riêng về một vấn đề như: xem chỉ số chứng khoán, xem thời tiết, xem báo (ví dụ như Novobot) hay những chương trình mang tính chất tổng hợp hơn như chương trình bóc tách các thông tin thu được từ nhiều search engine cùng một lúc (ví dụ như Corpecnic hay WebFerret). Hơn nữa, cần phải kể thêm là các chương trình này luôn tạo ra những khó khăn cho người sử dụng trong việc cập nhật lại nguồn tin (ví dụ cập nhật thêm một tờ báo hay thêm một search engine). Để cập nhật, người sử dụng hầu như khó có thể tự mình thực hiện được mà phải chờ đợi cũng như download phần cập nhật từ các nhà sản xuất mà không biết phần cập nhật này có thật sự đúng với ý muốn của mình hay không (có phải đúng tờ báo mình muốn đọc hay đúng search engine ưa thích của mình không). II.2.3.Tổng hợp và tổng quát hoá dữ liệu (Generation) Trong tác vụ này, các kỹ thuật nhận diện theo mẫu (pattern recognition) và học máy (machine learning) thường được sử dụng đối với các thông tin đã được bóc tách. Hầu hết các hệ thống học máy hiện tại trên Web đều học về ý thích của người sử dụng (tổng quát hơn là thông tin về người sử dụng) nhiều hơn là học về chính trang Web mà các hệ thống này được cài đặt trên đó. Vấn đề này cũng xuất phát từ nguyên nhân dữ liệu hiện nay đang rất dư thừa trên Web nhưng lại không được (không có cơ chế) phân loại theo mặt ngữ nghĩa một cách tự động. Ví dụ, nếu chúng ta có một cơ chế nào đó để xác định được hai tập hợp các trang Web là trang chủ của cá nhân này và -9- Chương I : Giới thiệu sản phẩm không phải là trang chủ của cá nhân khác thì chúng ta sẽ có khả năng tiên đoán được một trang Web mới liệu có phải là trang chủ của một ai đó hay không. Tuy vậy, với tính phi-ngữ nghĩa của HTML, chúng ta khó có thể phân loại được các trang Web này. II.2.4.Phân tích Phân tích các thông tin sau khi đã thu thập được không phải là một công việc dễ dàng ngay cả đối với người sử dụng chứ chưa nói đến đối với máy tính. Tác vụ này có thể được thực hiện hoàn toàn chỉ sau khi 3 tác vụ phía trước nó cũng đã được thực hiện tốt. II.3.XML Với những nhược điểm phi-ngữ nghĩa của ngôn ngữ HTML cộng với nhu cầu thực tế của người sử dụng, XML đã ra đời cùng với khả năng tăng thêm tính linh động, ngữ nghĩa của các văn bản HTML. Văn bản XML được cấu tạo với cấu trúc cũng dựa trên các thẻ như HTML, tuy nhiên các thẻ này không cố định như HTML mà hoàn toàn là do người sử dụng đặt tên. Chính nhờ khả năng ấy mà XML đã vượt trội hơn hẳn HTML về mặt cung cấp ngữ nghĩa của thông tin. Đơn giản như, bây giờ, các search engine sẽ có thể phân biệt được bill (hoá đơn điện thoại) với Bill Clinton (tên người). Tuy vậy, XML ra đời không có nghĩa rằng HTML sẽ không được sử dụng nữa. Có một câu ngạn ngữ được các nước hay sử dụng là “Không việc gì phải sửa chữa những cái gì nó chưa hỏng” và XML cũng không phải sinh ra là để thay thế cho ngôn ngữ HTML mà là một sự bổ sung lý tưởng cho ngôn ngữ HTML, giải quyết cho HTML một số vấn đề sau:  XML được thiết kế để phát triển và mở rộng một ngôn ngữ mark-up mới theo một hệ thống chuẩn. Từ trước tới nay, HTML chưa bao giờ được cung cấp một khả năng mở rộng tuân theo một chuẩn nhất định. Để thay đổi HTML, chúng ta có lẽ phải đối mặt với cả thế giới trong khi việc thay đổi XML cho phù hợp với mục đích người sử dụng lại không có gì khó khăn mà bằng chứng là hiện tại có rất nhiều ngôn ngữ dựa trên XML như ebXML (e-biz XML) hay WML (ngôn ngữ sử dụng cho các máy điện thoại di động).  XML được thiết kế một cách rõ ràng, rành mạch cho phép các công cụ phát triển và trình duyệt có thể dễ dàng (không cần thay đổi) vẫn duyệt được toàn bộ thông tin mà nó mang theo. Sự tối nghĩa trong các thẻ HTML và có quá nhiều các quy tắc - 10 - Chương I : Giới thiệu sản phẩm ngoại lệ khiến cho đôi khi không chỉ người sử dụng mà các nhà phát triển công cụ cũng phải đau đầu.  HTML là một ngôn ngữ chú trọng hoàn toàn đến hình thức và không nói lên được điều gì về dữ liệu mà nó mang. Do vậy, XML là một ngôn ngữ lý tưởng để giúp HTML làm được điều này.  XML không phải sinh ra để cho những ứng dụng phức tạp mà không phải ai cũng hiểu, XML rất đơn giản và dễ lập trình. Thêm nữa, với XML, chúng ta có thể hiển thị cùng một dữ liệu với nhiều cách khác nhau hay cá nhân hoá dữ liệu, điều mà HTML không làm được. Với những tính năng như trên, không có gì đáng ngạc nhiên khi XML hiện nay được sử dụng rộng rãi từ việc tạo trang Web tới việc tích hợp dữ liệu và ngay cả là lập trình phân tán. Chúng ta có thể xem xét một vài ví dụ nhỏ về những ứng dụng của XML dưới đây :  Giao dịch thương mại (Biz-to-biz transport) : Dữ liệu thương mại, hóa đơn, yêu cầu mua hàng, thông tin thuế, tỷ giá ... đều có thể được truyền qua đường điện tử giữa các nhà sản xuất khác nhau bằng định dạng XML với những ưu điểm vượt trội hơn hẳn dạng EDI (Electronic Data Interchange).  Lập trình phân tán : XML là một công cụ lý tưởng để xây dựng các ứng dụng từ nhiều platform khác nhau, cho phép tích hợp giữa các server của Windows, Unix, Linux, Sun... với các hệ điều hành khác nhau trên toàn thế giới.  Cấu trúc Web site : Bản thân XML là một ngôn ngữ mang tính cấu trúc chặt chẽ và phân tán. Vì vậy, các nhà phát triển Web site có thể dễ dàng sử dụng XML trong việc tăng tính phân tầng và cấu trúc duyệt (navigations) đối với những trang Web của họ. Hơn nữa, sử dụng XML sẽ giúp cho việc lưu trữ thông tin người sử dụng, trạng thái Web site, điều khiển luồng dữ liệu trong trang Web trở nên dễ dàng hơn bao giờ hết.  XML có thể giúp chúng ta trong việc tương tác với cơ sở dữ liệu, ví dụ như việc nhận dữ liệu từ một câu truy vấn SQL hoặc cập nhật dữ liệu từ một bản ghi XML. Bằng việc mô tả dữ liệu theo định dạng XML, chúng ta không cần phải nhất thiết có một chút khái niệm nào về cấu trúc thật sự của cơ sở dữ liệu khi lưu. Với nền tảng XML chúng ta có thể dễ dàng bổ sung tính ngữ nghĩa cho các thông tin lấy được từ các trang Web. Hệ thống của tôi còn nhắm tới XML như một ngôn ngữ hữu dụng trong việc chuyển đổi sang bất cứ dạng cơ sở dữ liệu (hay cơ sở dữ liệu tri thức) nào khác. Việc dễ dàng chuyển đổi sang các cơ sở dữ liệu khác nhau một cách - 11 - Chương I : Giới thiệu sản phẩm dễ dàng sẽ giúp đỡ người sử dụng, các doanh nghiệp tiết kiệm được rất nhiều thời gian, công sức tiền bạc và thích ứng được với môi trường Thương mại điện tử một cách dễ dàng. CHƯƠNG III NGHIÊN CỨU GIẢI PHÁP  Giải pháp sử dụng script để tạo sinh URL tổng quát  Giải pháp sử dụng DLL để tạo sinh URL tổng quát  Bóc tách và gán ngữ nghĩa cho thông tin  Khả năng tương tác visual giữa người và máy  Hiện thực hóa giải pháp  Khả năng ứng dụng và phát triển Như đã nói ở chương trước, để có được tri thức như mong muốn, chúng ta cần thực hiện qua bốn bước thu thập, bóc tách, tổng quát hóa và phân tích dữ liệu. Các bước này liên quan chặt chẽ đến nhau và có thể dễ dàng nhận thấy rằng, việc thực hiện không tốt một bước bất kỳ trong bốn bước kể trên đều ảnh hưởng lớn tới tri thức đầu ra. Với những nghiên cứu sẽ trình bày dưới đây, tôi xin được đặc biệt chú trọng tới hai bước đầu tiên, thu thập và bóc tách thông tin mà trọng tâm là bóc tách thông tin. III.1.THU THẬP THÔNG TIN Việc thu thập thông tin trong hệ thống phải dựa vào những nguồn thông tin mà người sử dụng đã cung cấp cho hệ thống ấy. Sở dĩ tại sao ở đây tôi không đặt trọng tâm vào việc thu thập thông tin là bởi vì hiện tại, các search engine và các nguồn tin từ Web cung cấp thông tin đã quá nhiều, ngày càng phát triển và cung cấp cho người sử dụng nhiều thông tin hơn nhưng lại trong khoảng thời gian ít hơn trước rất nhiều. Cần phải khẳng định rằng hiện tại chúng ta không hề thiếu dữ liệu, do vậy, trong tác vụ thu thập dữ liệu, tôi không thực hiện công việc đi tìm nguồn tin cho người sử dụng (vì công việc tìm nguồn tin giờ đây đã trở nên quá dễ dàng với các search engine) mà là đi tìm cho người sử dụng một cơ chế tự động thu thập dữ - 12 - Chương I : Giới thiệu sản phẩm liệu từ các nguồn tin để chuẩn bị cho tác vụ thứ hai, tác vụ bóc tách thông tin. III.1.1.Các loại URL Chúng ta cũng cần phải phân biệt rõ các nguồn thông tin. Ở đây, nguồn thông tin của người sử dụng được định danh dưới các dạng URL như sau : 1. URL tĩnh. Ví dụ khi muốn xem tin Thể thao của tờ báo Z có địa chỉ là www.zzz.info, chúng ta chỉ cần truy nhập tới địa chỉ www.zzz.info/The-Thao/ trong mọi trường hợp thì có thể đọc được tin Thể thao của báo Z. 2. URL tĩnh được redirect đến một URL khác động tùy thuộc nhiều yếu tố (ngày, tháng, số lần người sử dụng truy cập...). Quay lại ví dụ với tờ báo Z, giả sử muốn xem Tin Thể thao, bây giờ chúng ta lại phải vào www.zzz.info và sau đó ấn vào chuyên mục Thể thao để truy cập đến phần tin Thể thao với địa chỉ www.zzz.info/ 24-10/The-Thao/ (với 24-10 là ngày hiện tại). Đây là ví dụ đơn giản nhất về việc có tham số trong địa chỉ URL và nếu chúng ta nắm được quy luật đối với tham số này (trong ví dụ trên thì tham số chính là ngày hiện tại - tháng hiện tại), chúng ta cũng có thể truy cập trực tiếp tới trang Web cần thiết. 3. Từ khóa để sinh ra URL (động). Các ví dụ đơn giản nhất trong trường hợp này là các search engine. Chúng ta đã biết rằng để tìm kiếm thông tin, chúng ta cần phải cung cấp cho các search engine này từ khóa. Các từ khóa ấy được biến đổi và cuối cùng được gửi cho server dưới dạng nằm trong URL. Ngoài ra, cũng còn cần phải xét tới chuyện xử lý sang việc người sử dụng cần lấy từ nguồn tin không phải từ một trang mà là từ nhiều trang Web (ví dụ như mặc dù search engine có thể trả lại cho chúng ta đến hàng triệu kết quả chỉ trong một trang Web, tuy vậy trong thực tế người sử dụng thông thường không muốn xem hết hàng triệu kết quả này cũng như search engine không bao giờ lại trình bày hàng triệu kết quả thu được trong một trang Web duy nhất). Như vậy, thông tin về số trang trong trường hợp này ở trên URL cũng cần phải nghiên cứu. Chúng ta cũng cần phải phân biệt được trường hợp 3 và 2 là giống nhau về mặt bản chất URL đều được mã hóa, nhưng trong trường hợp thứ 3 thông tin mã hóa được nhập từ người sử dụng, còn trong trường hợp thứ 2 thì do máy tính tự sinh ra. - 13 - Chương I : Giới thiệu sản phẩm III.1.2. Giải pháp xử lý Đối với từng loại URL này, tôi đã có những nghiên cứu và đưa ra các giải pháp khả thi để có thể xử lý hết tất cả các trường hợp tạo sinh URL và sau đó quy về một URL tĩnh request đến server chứa nguồn thông tin. Trừ URL tĩnh là dạng URL cơ bản nhất còn các dạng URL còn lại đều có thể được tạo sinh bởi một trong hai cách dưới đây :  Tạo/sinh URL bằng cách viết script. Đây là nhóm các URL được mã hóa đơn giản, có thể nhìn thấy ngay quy luật.  Tạo/sinh URL bằng cách viết DLL. Trong trường hợp các URL sử dụng các phương pháp mã hóa phức tạp hơn, để tiện cho người sử dụng, cách tốt nhất là người sử dụng viết một DLL hoặc sử dụng DLL có sẵn như một plug-ins để cung cấp cho hệ thống của tôi khả năng tạo/sinh URL dựa trên việc gọi các hàm trong DLL (plug-ins) đó. 1.2.1. Tạo sinh URL bằng cách viết script Trước hết, cần khảo sát qua những yêu cầu để có thể xây dựng nên script. Để khảo sát, chúng ta sẽ lấy các URL của các search engine trong và ngoài nước đối với chuỗi “Trí Tuệ Việt Nam” và một số tờ báo, mỗi trang lấy 3 URL và tổng quát hóa từ các ví dụ này để rút ra quy luật. (Tại báo cáo này, tôi chỉ trình bầy một số ít trong các ví dụ thực tế mà tôi đã khảo sát và nghiên cứu). Google : http://www.google.com/search?q=%2B%22Tr%C3%AD+Tu%E1%BB%87+Vi %E1%BB%87t+Nam%22&num=50&hl=vi&lr=&ie=UTF-8&oe=UTF8&safe=off&start=50&sa=N http://www.google.com/search?q=%2B%22Tr%C3%AD+Tu%E1%BB%87+Vi %E1%BB%87t+Nam%22&num=50&hl=vi&lr=&ie=UTF-8&oe=UTF8&safe=off&start=100&sa=N http://www.google.com/search?q=%2B%22Tr%C3%AD+Tu%E1%BB%87+Vi %E1%BB%87t+Nam%22&num=50&hl=vi&lr=&ie=UTF-8&oe=UTF8&safe=off&start=150&sa=N Phần cố định Keyword sau khi mã hoá Phần cố định Phần thay đổi http:// www.google.c om/search? q= %2B%22Tr %C3%AD+Tu %E1%BB%87+Vi %E1%BB%87t+Nam %22& num=50&hl=vi&lr= &ie=UTF8&oe=UTF8&safe=off&start= 50 100 150 Alltheweb : - 14 - Phần cố định sa=N Chương I : Giới thiệu sản phẩm http://www.alltheweb.com/search?q=%22Tr%C3%AD+Tu%E1%BB%87+Vi%E1%BB %87t+Nam%22&c=web&cs=utf-8&o=10&l=any http://www.alltheweb.com/search?q=%22Tr%C3%AD+Tu%E1%BB%87+Vi%E1%BB %87t+Nam%22&c=web&cs=utf-8&o=20&l=any http://www.alltheweb.com/search?q=%22Tr%C3%AD+Tu%E1%BB%87+Vi%E1%BB %87t+Nam%22&c=web&cs=utf-8&o=30&l=any Phần cố định Keyword sau khi mã hoá Phần cố định Phần thay đổi http:// www.allthewe b.com/ search?q= %22Tr%C3%AD+Tu %E1%BB%87+Vi %E1%BB%87t+Nam %22& &c=web&cs=utf8&o= 10 20 30 Phần cố định &l=any PanVN : http://www.panvn.com/index.asp?progid=4004&q="Tr%C3%ADTu%E1%BB%87Vi %E1%BB %87tNam"&fcid=2&any=&ww=&occ=&d=&cmdSearch=Search&advs=&pn=2&dn s=&img=0 http://www.panvn.com/index.asp?progid=4004&q="Tr%C3%ADTu%E1%BB%87Vi %E1%BB %87tNam"&fcid=2&any=&ww=&occ=&d=&cmdSearch=Search&advs=&pn=3&dn s=&img=0 http://www.panvn.com/index.asp?progid=4004&q="Tr%C3%ADTu%E1%BB%87Vi %E1%BB %87tNam"&fcid=2&any=&ww=&occ=&d=&cmdSearch=Search&advs=&pn=4&dn s=&img=0 Phần cố định Keyword sau khi mã hoá Phần cố định Phần thay đổi http:// www.panvn.c om/ index.asp? progid=4004 &q= "Tr%C3%ADTu %E1%BB%87Vi %E1%BB%87tNam" &fcid=2&any=&ww =&occ=&d=&cmdS earch=Search&advs =&pn= 2 3 4 Phần cố định &dns= &img= 0 VinaSeek : http://www.vinaseek.com/search.asp?form=sfr&font=tcvn&query=%22Tr%DD+Tu %D6+Vi%D6t+Nam%22&start=21 http://www.vinaseek.com/search.asp?form=sfr&font=tcvn&query=%22Tr%DD+Tu %D6+Vi%D6t+Nam%22&start=41 http://www.vinaseek.com/search.asp?form=sfr&font=tcvn&query=%22Tr%DD+Tu %D6+Vi%D6t+Nam%22&start=61 Phần cố Keyword sau khi Phần cố định - 15 - Phần thay đổi Chương I : Giới thiệu sản phẩm định http:// www.vinaseek .com/ search.asp? form=sfr&font =tcvn&query = mã hoá %22Tr%DD+Tu %D6+Vi%D6t+Nam %22 &start= 21 41 61 Đài Tiếng Nói Việt Nam Chuyên mục Kinh tế : http://www.vov.org.vn/2004_10_24/vietnamese/kinhte.htm Chuyên mục Xã Hội : http://www.vov.org.vn/2004_10_24/vietnamese/xahoi.htm Chuyên mục Thể Thao : http://www.vov.org.vn/2004_10_24/vietnamese/thethao.htm Phần cố định http://www.vov.org.vn/ http://www.vov.org.vn/ http://www.vov.org.vn/ Phần thay đổi 2004_10_24 2004_10_24 2004_10_24 Phần cố định /vietnamese/kinhte.htm /vietnamese/xahoi.htm /vietnamese/thethao.htm Như vậy, để xử lý được toàn bộ các URL này, script của chúng ta phải đáp ứng được nhưng yêu cầu sau :  Mã hóa được keyword theo dạng chuẩn của Windows  Có các hàm để thay thế chuỗi (ví dụ nếu chú ý thì trong keyword sau khi đã qua xử lý của Google, dấu “ “ đã được thay bằng dấu “+”)  Có một số các hàm xử lý tạo ra ngày, tháng, năm hiện tại và các hàm đơn giản khác (hàm không cần đối số, trả về một giá trị)  Script phải xử lý được ít nhất là một biến. Cũng cần phải có cơ chế cho biết biến đó được chạy từ đâu đến đâu, bước chạy là bao nhiêu (ví dụ đối với search engine, cần biết là trang thứ bao nhiêu, bắt đầu từ kết quả thứ bao nhiêu...) Do vậy, tôi đã xây dựng một ngôn ngữ script dựa vào những yêu cầu trên. Ngôn ngữ này là đơn giản, phù hợp với yêu cầu và dễ dàng mở rộng khi cần thiết. Dưới đây là các quy tắc của ngôn ngữ : 1. Các dòng được xử lý tuần tự. 2. Sau khi thực hiện một dòng, kết quả trả về là một chuỗi (trừ dòng đầu tiên) 3. Kết quả thực hiện toàn bộ script là một chuỗi được ghép lại bởi các chuỗi kết quả của từng dòng theo thứ tự (bắt đầu từ dòng thứ 2) - 16 - Chương I : Giới thiệu sản phẩm 4. Dòng đầu tiên bao gồm chuỗi các số được cách nhau bởi dấu “ “, ít nhất là 1 số và nhiều nhất là 4 số có ý nghĩa sau : a. Số đầu tiên chỉ xem URL có phần thay đổi cần sử dụng biến hay không ? i. Nếu bằng 1 là Có ii. Nếu bằng 0 là Không có b. Ba tham số tiếp theo có các ý nghĩa lần lượt như sau : i. Khởi đầu ii. Bước tăng iii. Số lần lặp (bằng 0 là vô hạn) 5. Hàm được bắt đầu bằng dấu “$” và phải viết tên hàm bằng chữ hoa 6. Có hai hàm mã hoá keyword(tham số mặc định là keyword, không cần truyền biến nữa) là : a. $UTF8 : mã hoá dạng UTF8 b. $TCVN : mã hoá dạng TCVN 7. Vị trí của phần thay đổi cần biến sẽ được thể hiện bằng dòng chỉ chứa dấu “#” 8. Trong toàn bộ script biến “#” chỉ được sử dụng một lần 9. Các dòng không có dấu “#” và “$” đứng đầu không cần phải xử lý gì mà coi luôn giá trị đó là giá trị đầu ra của dòng 10. Các hàm có thể sử dụng được trong script : a. $UTF8 : mã hóa keyword sang dạng UTF8 b. $TCVN : mã hóa keyword sang dạng TCVN c. $REPLACE ts1 ts2 : thay chuỗi ts1 bằng chuỗi ts2 trong keyword đã mã hóa d. $YEAR : năm hiện tại e. $MONTH : tháng hiện tại f. $DATE : ngày hiện tại Dưới đây tôi sẽ áp dụng quy tắc này để biểu diễn lại các ví dụ trên ra dạng script : Google : Phần cố định Keyword mã hoá Phần cố định Phần thay đổi http:// www.google.co m/search?q= %2B%22Tr %C3%AD+Tu %E1%BB%87+Vi %E1%BB num=50&hl=vi&lr= &ie=UTF8&oe=UTF8&safe=off&start= 50 100 150 - 17 - Phần cố định sa=N Chương I : Giới thiệu sản phẩm %87t+Nam%22& 1 50 50 3 http://www.google.com/search?q= $UTF8 REPLACE %20 + num=50&hl=vi&lr=&ie=UTF-8&oe=UTF-8&safe=off&start= # sa=N Alltheweb : Phần cố định Keyword mã hoá Phần cố định Phần thay đổi http:// www.alltheweb .com/search? q= %22Tr%C3%AD+Tu %E1%BB%87+Vi %E1%BB %87t+Nam%22& &c=web&cs=utf8&o= 10 20 30 Phần cố định &l=any 1 10 10 3 http://www.alltheweb.com/search?q= $UTF8 REPLACE %20 + &c=web&cs=utf-8&o= # &l=any PanVN : Phần cố định Keyword mã hoá Phần cố định Phần thay đổi http:// www.panvn.co m/index.asp? progid=4004& q= "Tr%C3%ADTu %E1%BB%87Vi %E1%BB%87tNam" &fcid=2&any=&ww =&occ=&d=&cmdS earch=Search&advs =&pn= 2 3 4 Phần cố định &dns= &img= 0 1 2 1 3 http://www.panvn.com/index.asp?progid=4004&q= $UTF8 $REPLACE %22 “ &fcid=2&any=&ww=&occ=&d=&cmdSearch=Search&advs=&pn= # &dns=&img=0 VinaSeek : Phần cố định http:// www.vinaseek. com/ search.asp? form=sfr&font =tcvn&query= Keyword mã hoá %22Tr%DD+Tu %D6+Vi%D6t+Nam %22 Phần cố định &start= 1 21 20 3 - 18 - Phần thay đổi 21 41 61 Chương I : Giới thiệu sản phẩm http://www.vinaseek.com/search.asp?form=sfr&font=tcvn&query= $TCVN $REPLACE %20 + &start= # Đài Tiếng nói Việt Nam : Phần cố định http://www.vov.org.vn/ http://www.vov.org.vn/ http://www.vov.org.vn/ Phần thay đổi 2004_10_24 2004_10_24 2004_10_24 Phần cố định /vietnamese/kinhte.htm /vietnamese/xahoi.htm /vietnamese/thethao.htm 0 http://www.vov.org.vn/ $YEAR $MONTH $DATE /vietnamese/kinhte.htm (có thể thay bằng các chuyên mục khác) Trong ví dụ này, chúng ta chú ý rằng, do không cần lặp lại nên dòng đầu tiên chỉ có 1 tham số là 0, mang ý nghĩa là không có biến. Các dòng nếu không bắt đầu bằng dấu “$” hoặc “#” thì đều được coi là chuỗi hằng và không cần phải biến đổi thêm. Script được tạo ra sẽ được hệ thống xử lý theo sơ đồ sau : - 19 - Chương I : Giới thiệu sản phẩm Xö lý dßng ®Çu tiªn Script cã biÕn kh«ng ? Y § äc c¸c tham sè qui ®Þnh kho¶ng ch¹ y cña biÕn N S=”” Cã dßng tiÕp theo N Cung cÊp chuçi S cho hÖ thèng Y Dßng b¾t ®Çu b»ng $ Y Xö lý hµm vµ cËp nhËt S Y CËp nhËt biÕn vµ chuçi S N Dßng chØchøa # N Thªm toµn bé dßng vµo sau S Cũng cần phải nhắc lại rằng ngôn ngữ script dùng để tạo/sinh URL tổng quát này còn hết sức đơn giản(cũng do việc tạo/sinh URL không đòi hỏi quá phức tạp). Tuỳ theo độ phức tạp của URL về sau, tôi có thể dễ dàng tạo ra các hàm bổ sung. Tuy vậy, nếu tạo ra quá nhiều hàm bổ sung sẽ dẫn tới việc khó sử dụng và khó hiểu đối với người sử dụng. Do vậy, tôi đưa ra giải pháp dùng DLL như một plug-ins để tạo/sinh URL tổng quát. III.1.2.2.Tạo sinh URL bằng việc sử dụng DLL Như ở trên đã trình bày, việc sử dụng phương pháp dùng script để tạo/sinh URL tuy đơn giản nhưng đã bao trùm được khá nhiều trường hợp. Tuy nhiên tôi cũng lường trước được sự phức tạp đối với việc sử dụng script khi các URL này được mã hóa một cách phức tạp hơn hoặc không có quy luật nhất định có thể nhìn thấy ngay. Ví dụ - 20 - Chương I : Giới thiệu sản phẩm như một tờ báo có tham số sử dụng trên URL là số báo (ví dụ số 130 năm 2004, số 131 năm 2004) nhưng các số báo này thay đổi không theo quy luật nào (theo ngày...). Để biết được ngày hôm nay báo ra số bao nhiêu thì chỉ có một cách là phải phân tích trang chủ của tờ báo đó để lấy được số báo. Quá trình phức tạp kể trên nên được xử lý một cách “trong suốt” đối với người sử dụng bằng cách sử dụng các DLL thay thế. Các DLL này sẽ được tôi và bất cứ ai yêu thích công việc lập trình viết ra và phải có ít nhất hai hàm theo đúng tên và tham số đầu ra cũng như đầu vào được liệt kê dưới đây :  LPSTR GetFirstURL(LPSTR lpURL); o Chức năng : Lấy URL khởi đầu o Đầu vào engine) o Đầu ra : 1 chuỗi ký tự (ví dụ như keyword cho search : URL hoặc danh sách URL đầu tiên  LPSTR GetNextURL(LPSTR lpURL); o Chức năng : Lấy URL tiếp theo o Đầu vào : 1 chuỗi ký tự(thường là danh sách URL đầu ra của lần gọi GetFirstURL hoặc GetNextURL trước đó) o Đầu ra : URL hoặc danh sách URL tiếp theo. Nếu kết quả trả lại là rỗng thì có nghĩa là không còn URL nào nữa. Các hàm chuẩn này sẽ được gọi theo sơ đồ như sau : - 21 - Chương I : Giới thiệu sản phẩm GetFirstURL Cã kÕt qu¶ N Tho¸t Y Ghi l¹ i kÕt qu¶ Bãc t¸ch GetNextURL Y Cã kÕt qu¶ N Tho¸t III.2.BÓC TÁCH THÔNG TIN Như đã nói ở trên, để bóc tách thông tin thu được từ tác vụ thứ nhất, chúng ta sẽ xây dựng một “wrapper”. Wrapper có thể được hiểu là những hàm để tách thông tin từ các tài nguyên Web. Các hàm này viết dựa trên các luật (quy luật) đã được đúc rút ra sau khi khảo sát các trang Web chứa thông tin cần lấy. Như vậy, đối với tác vụ này, tôi sẽ phải cung cấp cho người sử dụng một công cụ tạo ra các luật (quy luật) để bóc tách thông tin. Trước khi tiếp tục, tôi cũng xin nhắc lại một chút về mục đích của hệ thống. Hệ thống được xây dựng tập trung vào hai tác vụ đầu của bốn tác vụ webmining, cung cấp cho người sử dụng khả năng thu - 22 - Chương I : Giới thiệu sản phẩm thập và bóc tách thông tin. Tuy vậy, những thông tin này là những thông tin gì ? Người sử dụng muốn gì và hệ thống của tôi đáp ứng được đến đâu ? III.2.1. Quy luật dùng để bóc tách thông tin Những thông tin được tách ra sau khi sử dụng hệ thống là những thông tin có cấu trúc về mặt ngữ nghĩa. Để bóc tách được những thông tin này, tôi dựa trên một quy luật đơn giản nhưng vô cùng hiệu quả sau : Trong hầu hết các trang Web cung cấp thông tin, các thông tin có ý nghĩa giống nhau sẽ thường được trình bày giống nhau. Ở đây, tôi xin được giả định rằng chiều ngược lại của quy luật này cũng đúng, có nghĩa là, các thông tin được trình bày giống nhau sẽ thường có ngữ nghĩa giống nhau. Sự giải định này rõ ràng là không đúng hẳn trong một số trường hợp. Tuy vậy, cho đến nay với sự nghiên cứu của tôi, cả hai giả định theo chiều thuận và nghịch là hầu như hoàn toàn đúng (vì có một chiều hướng rõ ràng rất cần phải nhấn mạnh là nếu như các thông tin có ý nghĩa giống nhau chưa được trình bày giống nhau, các website thông tin sẽ cố gắng định dạng các thông tin này lại cho giống nhau để người sử dụng khi duyệt Web của họ dễ dàng phân biệt thông tin). Chúng ta có thể xét các ví dụ sau đây : - 23 - Chương III : Nghiên cứu giải pháp III.2.1.1.Ví dụ 1 : Diễn đàn www.diendantinhoc.org Nhìn ví dụ này, chúng ta cũng có thể thấy rõ rằng tên của các box được định dạng theo một kiểu (chữ đậm, màu xanh), tên người viết (chữ nhỏ, màu xanh), ngày viết (chữ nhỏ, màu đỏ)… Trang Web này sẽ được cấu trúc về mặt ngữ nghĩa như sau :  Tên khu vực (Tin tức-Kinh nghiệm-Hỏi đáp/Tin học chuyên ngành/…) o Tên box (Phần cứng/Phần mềm/…) o Giới thiệu box o Tên Điều hành viên o Số bài trong box (3105/3967/…) o Số bài mới (2/5/…) o Bài viết mới nhất o Tên người viết bài mới nhất o Ngày viết của bài mới nhất - 24 - Chương III : Nghiên cứu giải pháp III.2.1.2. Ví dụ 2 VnExpress(http://vnexpress.net) : Báo điện tử Trong ví dụ này, chúng ta có thể thấy tên của chuyên mục đã được định dạng màu đỏ và chữ to đậm, tên của bài viết được định dạng chữ đậm và phần mô tả được định dạng theo kiểu chữ thông thường. Cũng có thể chú ý một chút tới phần tỷ giá, các thông tin về tên đơn vị tiền tệ và trị giá đơn vị tiền tệ cũng được định dạng để sao cho dễ dàng phân biệt được với các thông tin khác. Trang Web này sẽ được cấu trúc về mặt ngữ nghĩa như sau :  Tên mục chính  Tên bài mới cập nhật  Ảnh bài mới cập nhật  Mô tả bài mời cập nhật - 25 - Chương III : Nghiên cứu giải pháp III.2.1.3.Ví dụ 3 : Search engine từ khoá “Trí Tuệ Việt Nam”) www.panvn.com (với Lại một lần nữa chúng ta thấy rất rõ tiêu đề của kết quả được search engine định dạng chữ đậm, màu xanh và cỡ chữ to để phân biệt với phần mô tả tiêu đề cỡ chữ nhỏ và màu đen. Qua 3 ví dụ này và các ví dụ mà người sử dụng có thể dễ dàng nhận ra khi duyệt các trang Web thông tin, nhất là các trang Web thông tin có cấu trúc, các thông tin có ngữ nghĩa giống nhau thường được định dạng giống nhau và ngược lại. Trang Web này sẽ được cấu trúc về mặt ngữ nghĩa như sau :  Số thứ tự  Tiêu đề trang Web được tìm thấy  Trích đoạn có từ khóa cần tìm kiếm trong trang Web được tìm thấy  URL ... - 26 - Chương III : Nghiên cứu giải pháp III.2.2.Phương án kỹ thuật Quy luật trên chính là mấu chốt để có thể chuyển đổi thông tin từ dạng ngôn ngữ HTML sang ngôn ngữ XML, từ việc thông tin chỉ được định dạng mà không biết ý nghĩa tới việc thông tin đã được gắn ngữ nghĩa. Từ các thông tin có ngữ nghĩa này, chúng ta có thể trả lời cho các câu hỏi như “Hôm nay giá cổ phiếu công ty nào là tăng cao nhất ?“ hay “Chuyên mục Thể Thao của báo VnExpress có bài nào nói về Đội tuyển Bóng đá Việt Nam hay không ?”. Để có thể hiện thực hóa được quy luật này, cần có một cơ chế để phân biệt các thông tin được trình bày giống nhau và sau đó là cơ chế phân tích các thông tin này nhanh và tiện dụng do người sử dụng. III.2.2.1. Làm thế nào để biết các thông tin đươc đinh dang giống nhau ? Để phân biệt được các thông tin được định dạng giống nhau, chúng ta sẽ phân tích qua một ví dụ cụ thể dưới đây. Đây là một phần của trang chuyên mục Thể Thao, báo điện tử VnExpress, Chủ nhật, ngày 27-10-2004. Chúng ta chú ý đến các thông tin giống nhau dễ nhận thấy nhất là tiêu đề bài viết. Các tiêu đề này ứng với các nút A trên cây HTML đã được phân tích. Chúng ta có thể có một vài nhận xét về các nút này như sau : - 27 - Chương III : Nghiên cứu giải pháp  Các nút A là nút lá trên cây HTML (không là cha của bất cứ nút nào trên cây)  Nếu đi từ nút gốc (HTML) tới nút con này, vết ghi lại (đi qua một nút thì ghi lại tên) là giống nhau (HTML->TABLE->TBODY->TR>TD->TABLE->TBODY->TR->TD->A)  Khi xét các trang chuyên mục Thể thao đối với các ngày khác, thậm chí là khi xét đối với bất kỳ một trang chuyên mục nào khác của báo điện tử VnExpress, vết ghi lại đối với phần tiêu đề là không thay đổi. Dường như với quy luật nhận xét trong phần III.2.2.1 cùng với những nhận xét này, chúng ta có thể thấy rằng việc bóc tách thông tin đã nằm trong tầm tay (phân tích cây HTML, sau đó duyệt cây HTML để lấy ra những thông tin theo vết ghi lại có sẵn) . Tuy vậy, sau khi nghiên cứu kỹ, tôi nhận thấy việc bóc tách thông tin vẫn còn rất nhiều những khó khăn. Chúng ta sẽ tiếp tục nghiên cứu tiếp ví dụ này cùng với các ví dụ và kỹ thuật khác để lần lượt giải quyết các khó khăn này. III.2.2.2.Phân tích trang HTML Như đã phân tích và nhận xét trong phần trên, việc phân tích cây HTML là rất quan trọng. Dựa trên các cơ chế lập trình tương đương với cơ chế phân tích cây HTML của trình duyệt Internet Explorer, tôi đã có thể thực hiện được công việc phân tích cây này. Quá trình thực hiện phân tích cây HTML từ một trang Web không phải là đơn giản, do việc tạo ra các trang Web từ ngôn ngữ HTML có thể không cần phải well-formed (bất cứ khi nào có một thẻ mở cũng phải có thẻ đóng tương ứng) như ngôn ngữ XML. III.2.2.3.Các thuộc tính thông tin quan trọng Sau khi đọc những kết luận thu được từ phần III.2.2.1, chắc hẳn chúng ta sẽ phải đặt ra câu hỏi, phải chăng mọi chuyện đều đơn giản quá như thế ? Phải chăng chỉ cần phân tích trang Web ra dạng cây và ghi lại các vết duyệt từ nút gốc tới nút lá cần bóc tách là xong ? Chúng ta có thể giả sử rằng vẫn trong trang chuyên mục Thể thao của báo VnExpress, các tiêu đề của phần Tin đã đưa cũng có vết giống hệt như phần Tiêu đề tin thì sao ? Trong lúc đó, xét về mặt ngữ nghĩa, phần Tin đã đưa rõ ràng có ý nghĩa khác hẳn so với phần Tiêu đề tin mới và chúng ta không thể trả về kết quả không rõ ràng như vậy cho người sử dụng (chung cả hai phần Tiêu đề tin mới và Tin đã đưa). Do vậy, chúng ta sẽ phải tiếp tục nghiên cứu kỹ hơn về từng thẻ - 28 - Chương III : Nghiên cứu giải pháp ngôn ngữ HTML riêng để có thể phân biệt được các thông tin một cách chi tiết hơn(vì đơn giản theo đúng quy luật mà chúng ta đã nghiên cứu, những người soạn báo điện tử cũng sẽ cố gắng không bao giờ trình bày phần Tiêu đề tin mới và phần Tin đã đưa giống hệt nhau để tránh nhầm lẫn). Như chúng ta đã biết, mỗi thẻ của ngôn ngữ HTML đều có những thuộc tính khác nhau. Chúng ta sẽ phải quan tâm nhất đến các thuộc tính có ảnh hưởng tới việc trình bày ra ngoài màn hình (hoặc các thiết bị khác). Tôi đã tổng kết ra đây một số các thuộc tính không thuộc CSS có thể ảnh hưởng tới việc trình bày một thẻ trong khi duyệt trang Web (chứ không phải tất cả các thuộc tính đều ảnh hưởng tới việc trình bày). Các thuộc tính thuộc CSS được trình duyệt thực hiện qua classname nên không cần xét tới. Tên thuộc tính align allowtransparen cy alinkColor background bgcolor bordercolor bordercolordark bordercolorlight cellindex color classname clear clip dir face fgColor frameborder framespacing nowrap size vAlign … Ý nghĩa của thuộc tính Kiểu căn lề (Trái, phải, giữa) Đặt chế độ trong suốt Xuất hiện trong các thẻ APPLET,EMBED, FIELDSET,IMG... Mầu của các link active Ảnh nền của object Màu nền của object Document BODY,TABLE,TD,TH BODY,MARQUEE,TABLE,COL,COLGRO UP... FRAME,FRAMESET... TABLE,TD,TH,TR TABLE,TD,TH,TR TD,TH A,ADDRESS,B,BIG,TABLE,XMP... A,ADDRESS,B,BIG,TABLE,XMP... BR A,ADDRESS,B,BIG,TABLE,XMP... A,ADDRESS,B,BIG,TABLE,XMP... BASEFONT,FONT Document FRAME,FRAMESET,IFRAME Màu viền của object Màu viền đậm của object Màu viền nhạt của object Số hiệu cell Màu của Text Class của object Vị trí Object... Phần Object ẩn Thứ tự của Object Font Face Màu chữ của Object Có vẽ viền Object không ? Khoảng cách giữa FRAME Wordwrap Kích cỡ Kiểu canh lề … FRAME,IFRAME... FRAMESET BODY,DD,DIV,DT,TD,TD,TH BASEFONT,FONT,HR,INPUT... CAPTION,COL,TBODY,TFOOT… … Do vậy, bây giờ chúng ta không những phải xét xem vết khi duyệt cây có giống nhau không, mà còn phải xét xem từng thuộc tính ở các nút cùng mức(có khoảng cách tới nút gốc là bằng nhau trên cây) có giống nhau không. Ví dụ như với phần Tiêu đề của báo VnExpress kể trên, kết hợp cả tên nút và thuộc tính của từng nút trong vết, chúng ta sẽ có một mẫu so sánh như sau : - 29 - Chương III : Nghiên cứu giải pháp - 30 - Chương III : Nghiên cứu giải pháp III.2.2.4.Tăng tính khả mở của các mẫu so sánh Chúng ta đã có hai kết luận quan trọng trong khi khảo sát trang chuyên mục Báo điện tử VnExpress về các thông tin có ngữ nghĩa giống nhau như sau : 1. Các vết ghi lại khi duyệt từ nút gốc tới nút chứa các thông tin giống nhau về mặt ngữ nghĩa trên cây HTML là không đổi 2. Từng nút có cùng độ sâu khi duyệt thì cũng có các thuộc tính liên quan tới việc trình bày trên trang Web là giống nhau Hai kết luận này là đã đủ để bóc tách thông tin từ rất nhiều các Website có cấu trúc như báo điện tử, diễn đàn, forum… Tuy vậy, cũng có thể thấy rằng kết luận 1 là không hoàn toàn chính xác và bao quát được hết tất cả các trường hợp vì vẫn có những trường hợp các thông tin có cùng ngữ nghĩa do vô tình/cố ý không có các vết ghi lại khi duyệt là không đổi. Để ví dụ cho trường hợp này, chúng ta hãy xét một ví dụ tiêu biểu khác. Dưới đây là trang chuyên mục Thể Thao, báo Lao động điện tử ngày 27-10-2004. Chúng ta có thể dễ dàng thấy rằng, vết ghi lại sau khi duyệt từ nút gốc HTML tới nút chứa tiêu đề của bài báo không còn giống nhau. - 31 - Chương III : Nghiên cứu giải pháp Với tiêu đề “Hãy tin tưởng đội khách”, chúng ta có vết khi duyệt cây như sau : HTLM->BODY->TABLE->TBODY->TR->TD->TABLE->TBODY->TR>TD->TABLE->TBODY->TR->TD->FONT Với tiêu đề “Chim non đã lớn” và “Vui lạ”, chúng ta có vết khi duyệt cây như sau : HTLM->BODY->TABLE->TBODY->TR->TD->TABLE->TBODY->TR>TD->TABLE->TBODY->TR->TD->A->FONT Để có thể giải quyết vấn đề này, tôi đã đưa ra được một phương thức tổng quát hóa sau khi có các vết khác nhau và áp dụng thành công đối với không chỉ riêng báo Lao động mà còn nhiều các trang Web thông tin khác. Ở đây, chúng ta chỉ cần chú ý rằng kể từ mức thứ nhất là nút gốc HTML tới nút số 14, vết ghi lại khi duyệt là giống nhau, tuy vậy trong nút thứ 15, chúng ta sẽ có hai trường hợp :  Nếu gặp nút FONT sẽ đưa ra kết quả và không duyệt tiếp nữa  Nếu gặp nút A sẽ tiếp tục duyệt, nếu gặp nút FONT là con của nút A thì đưa ra kết quả Cuối cùng, để kết thúc phần này, chúng ta có thể đưa ra được hai kết luận dựa trên quy luật nhận xét ở phần III.2.2.1 như sau : 1. Các vết ghi lại khi duyệt từ nút gốc tới nút chứa các thông tin giống nhau về mặt ngữ nghĩa trên cây HTML là có thể tổng quát hóa về một mẫu duy nhất đại diện cho thông tin đó. - 32 - Chương III : Nghiên cứu giải pháp 2. Từng nút có cùng độ sâu khi duyệt thì cũng có các thuộc tính liên quan tới việc trình bày trên trang Web là giống nhau. III.2.3.Kênh tin và kênh tin đa mức Để tiện cho công việc hiện thực hóa giải pháp, chúng ta cần định nghĩa một số khái niệm, bắt đầu là kênh tin. Kênh tin là một tập hợp các luật dùng để bóc tách thông tin từ một trang Web. Một luật sẽ đại diện cho một nhóm thông tin có chung ngữ nghĩa trong trang Web này. Ngoài ra kênh tin cũng ghi lại một số dữ liệu phụ có liên quan khác như người tạo kênh, ý nghĩa kênh, biểu tượng kênh… Với định nghĩa trên, các luật chính là các vết ghi lại khi duyệt từ nút gốc HTML tới nút chứa các thông tin có chung ngữ nghĩa hoặc các vết đã được tổng quát hóa. Khi kết hợp một kênh tin với một nguồn tin mà cụ thể là một hoặc nhiều trang Web chúng ta sẽ thu được tri thức đầu ra là các thông tin có chung ngữ nghĩa cần thu thập và bóc tách từ các trang Web đó. Kênh tin đa mức là một kênh tin được tổng hợp từ nhiều các kênh tin khác. Mỗi kênh tin con trong kênh tin đa mức tương ứng với một mức khi thực hiện kênh tin này. Đầu ra của một mức trung gian sẽ là đầu vào cho mức trung gian tiếp theo. Đầu vào của kênh tin đa mức là URL hoặc nhóm URL, đầu ra là tri thức đã được thu thập và bóc tách như trong sơ đồ dưới đây. - 33 - Chương III : Nghiên cứu giải pháp Xö lý kªnh tin ®Çu tiªn Cã kÕt qu¶ ? N Tho¸t Y URL ®Çu ra cña kªnh tin tr­ í c Xö lý kªnh tin tiÕp theo N Lµ kªnh cuèi ? Y § ­ a ra kÕt qu¶ kªnh tin ®a-møc Ví dụ, giả sử chúng ta cần lấy tất cả lời các bài hát cùng với tên bài hát từ một trang lyric được cấu trúc như sau :  Trang chủ chứa các vần A, B, C, …Y, Z và các thông tin khác. Các vần này là chữ cái bắt đầu của tên bài hát. Ở trang này, chúng ta tạo ra kênh thứ nhất với các thông tin cần lấy là các vần và URL đến trang tiếp theo tương ứng với vần đó.  Khi ấn vào một vần, trang thứ hai sẽ chứa tên các bài hát bắt đầu bằng vần đó và các thông tin khác. Ở trang này, chúng ta tạo ra kênh thứ hai với các thông tin cần lấy là tên các bài hát và URL đến trang tiếp theo tương ứng với bài hát đó.  Khi ấn vào một bài hát, trang thứ ba sẽ chứa tên bài hát, lời bài hát, tác giả, năm sáng tác, … Ở trang này chúng ta tạo ra kênh thứ ba với các thông tin cần lấy là tên bài hát và lời bài hát. Kết hợp cả ba kênh này, lấy đầu ra của kênh thứ nhất là đầu vào của kênh thứ hai (URL đến các vần), đầu ra của kênh thứ hai là đầu vào của kênh thứ ba (URL đến các bài hát), chỉ với đầu vào duy nhất là tên site chứa lyric, chúng ta đã có toàn bộ thông tin cần lấy là các bài hát. Phương pháp sử dụng kênh đa mức này nhìn qua có vẻ giống như việc sử dụng các chương trình download cả site như Teleport, hay WebZip nhưng thực ra các chương trình này chỉ đem lại - 34 - Chương III : Nghiên cứu giải pháp cho chúng ta là các trang Web chứa lời bài hát còn kênh đa mức mang lại cho chúng ta là một cơ sở dữ liệu phân biệt rõ ràng tên bài hát và lời bài hát. Ngoài ra cơ sở dữ liệu thu được khi sử dụng kênh đa mức cũng chỉ có các thông tin cần lấy mà không có các thông tin thừa như tác giả, năm sáng tác, … III.3.HIỆN THỰC HÓA GIẢI PHÁP Sau khi nghiên cứu và rút ra kết luận, tôi đã thực hiện xây dựng một hệ thống thu thập và bóc tách thông tin. Tất nhiên, những nghiên cứu của tôi có thể chưa được đầy đủ về mặt lý thuyết nhưng khi đưa hệ thống này vào thử nghiệm trong thực tế nó đã hoạt động khá tốt. Hệ thống thu thập và tách thông tin (ICPS - Information Collecting and Parsing System) bao gồm hai module chính sau :  Module Tạo kênh tin o Tên : Channel Generator o Chức năng : Tạo các Kênh tin (các luật tách thông tin từ một hoặc nhiều trang Web) o Đầu vào : Trang Web và thông tin do người dùng xác định trực quan o Đầu ra : Kênh tin  Module Lấy tin o Tên : REN o Chức năng : Thu thập và bóc tách thông tin o Đầu vào Tin) o Đầu ra : Kênh tin (được tạo ra từ Module Tạo Kênh : Tri thức được bóc tách - 35 - Chương III : Nghiên cứu giải pháp III.3.1.Sơ đồ hoạt động 3 2 Nguån tin Nguån tin T­ ¬ng t¸c ng­ êi-m¸y 5 Yªu cÇu cña ng­ êi sö dông Nguån tin 1 Nguån tin Ng­ êi sö dông Ng­ êi t¹ o kªnh 4 Kªnh tin (®¬n/®a møc) Internet Internet 1 CSDL Kªnh tin 6 2 7 T­ ¬ng t¸c ng­ êi-m¸y CSDL Tri thøc 1 Nguån tin Nguån tin Ng­ êi t¹ o kªnh Ng­ êi sö dông Module T¹ o Kªnh tin Module LÊy tin Nguån tin Nguån tin I CPS Nhìn vào sơ đồ hoạt động hệ thống trên, chúng ta có thể mô tả các chức năng chính của hệ thống như sau (các thành phần được nêu ra ở dưới đây là tương ứng với các vị trí trong sơ đồ) :  Người sử dụng tương tác với máy tính để tạo ra kênh tin từ các nguồn tin do người sử dụng cung cấp (vị trí 1). Với khả năng cho phép người sử dụng nhấn chuột trực tiếp lên trang Web để chọn thông tin mình cần lấy, khả năng tương tác và tạo kênh tin đã trở nên dễ dàng hơn bao giờ hết. Đây là một tính năng kỹ thuật nổi trội so với các hệ thống khác như Novobot hay Copernic.  Người sử dụng cũng có thể sử dụng các kênh tin đã có trong máy tính để tạo ra kênh tin đa mức (vị trí 2).  Người sử dụng chọn kênh tin cần lấy (trong kênh tin đã ghi lại địa chỉ/cách tạo ra địa chỉ URL của nguồn tin). Hệ thống dựa trên các kênh tin (vị trí 3) + nguồn tin (vị trí 4) để đưa ra tri thức phù hợp cho người sử dụng dưới các dạng khác nhau.  Tri thức thu được sau khi đã thực hiện các tác vụ thu thập và bóc tách thông tin được trả lại trực tiếp cho người sử dụng một cách trực quan (vị trí 5). - 36 - Chương III : Nghiên cứu giải pháp  Tri thức đầu ra có thể được lưu lại dưới nhiều dạng khác nhau (HTML, XML, WML, …) để người sử dụng có thể tiếp tục sử dụng các tri thức này vào mục đích khác hoặc làm đầu vào cho tác vụ web-mining tiếp theo (vị trí 6).  Người sử dụng có thể xem các trang Web mình lưu lại đã được phân chia theo các mục (do người sử dụng phân chia) rất dễ dàng cho việc tìm kiếm thông tin (vị trí 7). III.3.2.Khả năng tương tác người - máy trong quá trình tạo kênh tin Như đã trình bày trong sơ đồ tại phần III.3.1, hệ thống của tôi cho phép người dùng có thể tương tác trực quan với máy tính để tạo ra các kênh tin một cách dễ dàng. Đây có thể coi là một trong những chức năng sáng tạo và ưu việt nhất của hệ thống, giải quyết được bài toán khó khăn là giúp cho người sử dụng có thể tự mình tạo ra các kênh tin. Chức năng này cũng đồng thời giúp cho hệ thống có một tính khả mở tương đối cao, vì cơ sở dữ liệu kênh tin đã có thể được thêm, bớt và sửa chữa một các rất dễ dàng. Cơ chế tách thông tin của các chương trình khác (Novobot, Copernic, WebFerret, ...) chưa có được tính năng này, hầu hết chủ yếu là tách các thông tin dựa trên việc cố định hai chuỗi bắt đầu và kết thúc của thông tin đó. (chẳng hạn dựa vào đặc điểm URL thông thường được bắt đầu bằng chuỗi [Ví dụ ]. ) Với cơ chế này, khó có thể cung cấp cho người sử dụng một phương thức tương tác trực quan để tạo ra được chuỗi đầu và chuỗi cuối, thêm nữa người sử dụng không phải ai cũng có hiểu biết về máy tính để làm việc với các chuỗi này thành thạo. Do việc phân tích được trang Web ra dạng cây, hệ thống của tôi cho phép người sử dụng có thể tương tác với máy tính như sau : Bước 1 : Người sử dụng cung cấp URL(nguồn tin) cần bóc tách Giả sử là chuyên mục Lý luận và thực tiễn xây dựng chủ nghĩa xã hội có URL như sau : http://www.tapchicongsan.org.vn/show_topic.pl?topic=3&PubID= Người sử dụng nhập URL này vào hệ thống qua giao diện GUI như sau : - 37 - Chương III : Nghiên cứu giải pháp Bước 2 : Sau khi người sử dụng nhập vào URL như hình trên, hệ thống sẽ tự động duyệt trang Web và phân tích các thông tin cần thiết để chuẩn bị. Sau bước này, chúng ta sẽ có trang Web đã được chuẩn bị sẵn sàng (quá trình này thực hiện chỉ chậm hơn việc duyệt bằng các trình duyệt thông thường từ 3-10 giây). Bước 3 : Người sử dụng chọn các thông tin cần tách bằng cách ấn trực tiếp lên trang Web. Giả sử, người sử dụng cần tách thông tin Tiêu đề các bài báo (trên hình bên là các thông tin “Trần Quang Nhiếp : Tạp chí Cộng sản...” và “Đặng Hữu Toàn : Học thuyết Mác-Lênin với công cuộc đổi mới ở Việt Nam”). Sau khi ấn trực tiếp lên thông tin cần bóc tách, thông tin đó sẽ được hệ thống đổi màu để ghi nhận rằng hệ - 38 - Chương III : Nghiên cứu giải pháp thống đã biết được thông tin mà người sử dụng muốn như ở hình dưới đây : Như trên hình chúng ta đã thấy, các Tiêu đề đã được hệ thống ghi nhận và đổi màu để người sử dụng nhận biết. Sau khi đã cung cấp cho hệ thống thông tin mình muốn tách (chỉ với một vài cú nhấp chuột), người sử dụng tiếp tục cung cấp ngữ nghĩa của thông tin này (Tiêu đề bài báo) bằng cách sử dụng chức năng Đặt tên dữ liệu (xem rõ ở phụ lục A và bản demo để biết thêm chi tiết). Với việc Đặt tên dữ liệu, người sử dụng có toàn quyền thiết lập ngữ nghĩa của thông tin theo ý của mình. Như vậy, có thể thấy rõ, người sử dụng đã có một giao diện để có thể tương tác dễ dàng với máy tính, các thao tác kỹ thuật phức tạp đã được làm “trong suốt”. Chỉ với một vài cú nhấp chuột, người sử dụng đã có thể có một kênh tin theo đúng ý của mình. III.3.3.Các chức năng khác của hệ thống tương thống người thông thống Cùng chức năng nổi bật của hệ thống là cho phép người sử dụng tác visual với máy tính đã được giới thiệu trong phần trên, hệ của tôi còn có nhiều các chức năng khác, với mục đích giúp cho sử dụng đi đến đích nhanh nhất trong việc thu thập và tách tin của riêng mình. Với các vị tri tương ứng trong sơ đồ III.3.1 hệ của tôi còn có các chức năng sau :  Sửa chữa kênh tin đã được tạo ra với tương tác visual như quá trình tạo kênh. - 39 - Chương III : Nghiên cứu giải pháp  Sắp xếp thông tin thu được theo ý muốn của mình (không nhất thiết thông tin người sử dụng thu được phải đúng chính xác vị trí như nguồn tin cung cấp) trong quá trình tạo kênh tin.  Nhập và chạy thử script (trong trường hợp phải tạo/sinh URL bằng script) trong khi tạo kênh tin.  Nhập thông số và chạy thử DLL (trong trường hợp phải tạo sinh URL bằng DLL) trong khi tạo kênh tin.  Kết hợp các kênh tin đơn mức để tạo ra kênh tin đa mức.  Quản lý kênh tin đã tạo ra dễ dàng. Các kênh tin được phân chủ đề tùy theo ý thích của người sử dụng. Hệ thống cũng đã cài đặt sẵn trên dưới 1000 kênh tin với rất nhiều chủ đề khác nhau.  Dễ dàng chọn các kênh tin cần lấy tin. Quá trình này có thể chỉ cần thực hiện một lần, hệ thống sẽ tự động ghi nhớ lại danh sách các kênh tin này và sử dụng trong lần lấy tin sau  Thực hiện việc lấy tin đa luồng, đồng thời có sử dụng chức năng cache dữ liệu của trình duyệt, ... cho phép người sử dụng có được thông tin một cách nhanh nhất.  Hiển thị thông tin thu được dưới các dạng khác nhau (ngắn gọn, đầy đủ,...) giúp cho người sử dụng có khả năng lướt qua và có một cái nhìn tổng quan về thông tin thu được.  Lọc các thông tin đã được lấy về, tập trung vào một chủ đề người dùng cần.  Xuất thông tin thu được ra nhiều dạng lưu trữ (HTML, XML, WML, ...). Định dạng XML được dùng để chuyển đổi sang bất cứ dạng dữ liệu nào, còn dạng file WML thì thích hợp cho những người cần lấy thông tin từ các thiết bị mobile.  Người sử dụng có thể lưu lại các trang Web, sắp xếp theo thứ tự và chỉnh sửa nội dung trang Web với các chức năng Lưu, Xem tin đã lưu, và Chế bản. Công cụ này cho phép người sử dụng không bị quá tải khi thông tin lưu lại từ Web là quá nhiều.  Hộ trợ hầu hết các bộ mã tiếng Việt thông dụng : TCVN, VNI, Unicode, VIQR, ... III.4.KHẢ NĂNG ỨNG DỤNG VÀ MỞ RỘNG Với lượng thông tin khổng lồ như hiện nay, việc có một giải pháp để thu thập và bóc tách các thông tin là rất cần thiết. Với những nghiên cứu kể trên, hệ thống của tôi qua thử nghiệm cũng đã đáp ứng được một phần không nhỏ trong nhu cầu thu nhận thông tin của người sử dụng. Việc sử dụng hệ thống sẽ giúp cho người sử dụng tiết kiệm được rất nhiều thời gian, tiền bạc và công sức trong việc thu thập bóc tách để tiến tới tổng hợp được những thông tin có ích cho mình. Có - 40 - Chương III : Nghiên cứu giải pháp thể kể ra một số nhóm người sử dụng chính sẽ được lợi khi sử dụng hệ thống của tôi :  Người sử dụng đơn lẻ muốn thu thập và bóc tách thông tin.  Doanh nghiệp muốn thu thập và tổng hợp thông tin.  Dịch vụ cung cấp thông tin tổng hợp từ Internet cho các thiết bị cố định.  Dịch vụ cung cấp thông tin tổng hợp từ Internet cho các thiết bị di động. Hệ thống của tôi hiện tại còn có thể mở rộng theo rất nhiều hướng, phụ thuộc vào nhu cầu của từng cá nhân hay tập thể, tuy vậy trong thời gian tới, tôi sẽ mở rộng theo một số hướng chính sau :  Nâng cấp để trở thành một Agent tự động tìm kiếm nguồn tin trong tác vụ thu thập thông tin.  Nghiên cứu sâu hơn nữa để có khả năng tổng quát hóa được các kênh tin một cách tối đa để nâng tính tiện ích của hệ thống đối với người sử dụng.  Xây dựng hệ thống các câu truy vấn để giúp người sử dụng tăng tính thông minh và tương tác của hệ thống qua các câu truy vấn này.  Nghiên cứu để tạo ra một hệ thống thu thập bóc tách thông tin chạy trực tuyến, cung cấp các thông tin dưới dạng headline cho bất cứ khách hàng thuộc môi trường nào (cố định - di động, đọc qua Web - qua mail,…) CHƯƠNG IV SO SÁNH VỚI CÁC HỆ THỐNG KHÁC  Ý tưởng mới và ý tưởng đã có  Phương thức mới và phương thức đã có  Hệ thống mới và hệ thống đã có Các hệ thống được liệt kê dưới đây là các hệ thống đã được đưa ra giới thiệu và bán trên thị trường. Vì hệ thống của tôi xây dựng tập trung chú trọng vào hai tác vụ đầu trong bốn tác vụ Webmining nên chỉ xin được so sánh với các hệ thống khác có chức năng tương tự. Trong các hệ thống này, Novobot là tiêu biểu cho các hệ thống bóc tách thông tin (được www.agentland.com đánh giá điểm 4/5), - 41 - Chương III : Nghiên cứu giải pháp Copernic là tiêu biểu cho các hệ thống tìm kiếm và tổng hợp thông tin. My TinhVan là hệ thống trong nước (www.tinhvan.com) được thực hiện như một ứng dụng web-based. Sau khi so sánh tôi đã đưa ra bảng kết luận sau : Tên hệ thống News Watch Novobot 2.0 Watznew WebFerret Copernic My TinhVan NewzCrawler ICPS Khả năng lấy tin thông thường Trung bình Tốt Trung bình Không có Không có Trung bình Khá Tốt Khả năng tìm kiếm Khả năng tạo mới kênh Không có Chưa có Không có Tốt Tốt Không có Trung bình Khá Không có Khó sử dụng Đơn giản Không có Khó sử dụng Không có Khó sử dụng Khá Khả năng tổng hợp thông tin Không có Không có Không có Khá Tốt Không có Trung bình Không có Có thể thấy rằng, ICPS kết hợp được cả hai khả năng thu thập bóc tách các thông tin từ các nguồn tin thông thường và khả năng tìm kiếm dựa trên các search engine (do việc xây dựng được một cơ chế tạo/sinh URL tổng quát tương đối tốt và coi các search engine cũng như các nguồn tin thông thường). Khả năng tạo kênh tin mới của ICPS là vượt trội so với các hệ thống khác do việc sử dụng kỹ thuật trên nền MSHTML giúp người sử dụng có thể tạo kênh tin bằng cách trỏ thẳng vào các thông tin cần lấy trên trang Web. Đối với Copernic, người sử dụng cập nhật bằng cách update từ trên website của hãng sản xuất, bị bó buộc và không chủ động tạo nguồn tin của riêng mình được. Novobot và NewzCrawler cũng cho phép người dùng tự tạo kênh tin mới, tuy vậy do cơ chế lấy thông tin của hai chương trình này là dựa trên các chuỗi phía trước và phía sau của thông tin để tách ra thông tin dẫn tới hai chương trình này không thể cung cấp cho người sử dụng một công cụ tạo kênh tin visual được như ICPS. Ngoài ra, ICPS cũng có một ưu điểm vượt trội là khả năng tổng quát hóa các vết ghi lại khi duyệt cây để tạo ra luật tách thông tin tối ưu. Với việc sử dụng kỹ thuật đa luồng khi xử lý thông tin, ICPS có tốc độ lấy tin nhanh hơn hẳn so với khi người sử dụng duyệt Web thông thường bằng các trình duyệt. Điểm yếu của ICPS là không có khả năng tổng hợp thông tin. Điểm yếu này là do mục đích xây dựng ICPS chỉ tập trung vào hai tác vụ đầu chứ chưa xét tới tác vụ thứ ba. Tuy vậy, đầu ra của ICPS đã đưa được cho người sử dụng một cơ sở dữ liệu tri thức tương đối hoàn chỉnh và có ngữ nghĩa để sãn sàng cho việc thực hiện tiếp tác vụ tổng hợp thông tin này. CHƯƠNG IV - 42 - Chương III : Nghiên cứu giải pháp HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH V.1. YÊU CẦU HỆ THỐNG Cấu hình để chương trình có thể chạy được là tương đốI thấp, chỉ cần thoả mãn các yêu cầu sau :  Pentium MMX 166MHz hoặc tương đương  16Mb RAM  Một dường truyền Internet cá nhân tốc độ trung bình.  MS Windows 98 Tuy nhiên, để chương trình có thể hiển thị đầy đủ và chính xác thông tin của các bài bào tiếng Việt, chúng tôi khuyến cáo bạn nên sử dụng Internet Explorer 5 và cài đặt bộ font tiếng Việt theo chuẩn TCVN, VNI và Unicode. V.2. CHỌN KÊNH TIN Bạn có thể sử dụng menu Kênh tin  Chọn kênh tin, hoặc nhấn vào biểu tượng nút trên thanh Toolbar để kích hoạt cửa sổ chọn kênh tin. - 43 - Chương III : Nghiên cứu giải pháp Cửa sổ chọn kênh tin sẽ hiện ra dướI dạng tương tự hình sau : Mục chọn kênh tin bao gồm 3 phần chính sau :  Chuyên mục tin : Mục chứa các kênh thông tin có liên quan tới một chủ đề nào đó.  Kênh thông tin : Các bài báo viết về một chủ đề nhất định của một tờ báo điện tử, bạn nhấn đúp vào đó để chọn kênh tin.  Các kênh tin bạn đã chọn : Bạn nhấp chuột vào đây để định vị kênh tin nằm trong chuyên mục nào đó, cũng có thể dùng phím Del để huỷ thao tác chọn kênh tin đó. V.3. LẤY THÔNG TIN Sau khi đã chọn các kênh tin, bạn sử dụng menu Chức năng  Lấy tin hoặc nhấn vào biểu tượng trên thanh Toolbar để lấy thông tin về các bài báo. Thông tin về các bài báo sẽ hiện ra như sau : - 44 - Chương III : Nghiên cứu giải pháp  Tiêu đề tin : Tiêu đề của bài báo mà bạn đã load về.  Mô tả tin : Phần mô tả ngắn gọn của bài bào, bạn có thể kích chuột vào đó để xem chi tiết.  Kênh tin : Thanh kênh tin cho phép bạn biết được minh đang xem báo trên các kênh thông tin nào. Các thông tin của các kênh lấy về sẽ được hiện tất cả lên màn hình. Để xem thông tin duy nhất của một kênh tin, bạn click vào biểu tượng của kênh tin tương ứng. Còn nếu bạn muốn xem tất cả các kênh tin, bạn click vào biểu tượng tất cả các kênh như trong hình trên  Tin đã (hoặc chưa) xem : Biểu tượng này cho phép bạn biết được tin này đã xem hay chưa. Để hiển thị một tronh 2 loạI tin này, bạn sử dụng menu + Sử lý tin  Tin đã xem + Sử lý tin  Tin chưa xem  Biểu tượng kênh tin : Biểu tượng này giúp các bạn phân biệt tin đang xem là của báo điện tử nào. V.4. XEM BÁO TRỰC TUYẾN - 45 - Chương III : Nghiên cứu giải pháp Trong danh sách các bài báo hiện ra sau khi lấy tin về, bạn chỉ cần click vào phần mô tả tin có gạch chân là bài báo sẽ được tải về và hiện ra trong một cửa sổ khác như sau : Chú ý : Trong cùng một thờI điểm bạn có thể xem số lượng bài báo không giớI hạn, điều này có nghĩa là bạn có thể click vào nhiều phần mô tả tin cùng một lúc. Thanh Toolbar của phần xem tin này bao gồm các chức năng lần lượt như sau :  Lưu tin : Khi muốn lưu tin này bạn chỉ cần click vào biểu tượng hình cái đĩa mềm, chương trình sẽ tự động lưu lại tin.  Xem tin trước : Nếu click vào biểu tượng hình , bạn sẽ xem được tin trước tin hiện tại.  Dừng lấy tin : Dừng việc lấy tin.  Làm tươi : Nạp lại nội dung bài báo đang xem.  Xem tin sau : Nếu click vào biểu tượng hình , bạn sẽ xem được tin sau tin hiện tại.  In bài báo : In nội dung bài báo đang xem. - 46 - Chương III : Nghiên cứu giải pháp V.5. XEM TIN Đà LƯU Đây có thể được coi là một thế mạnh của chương trình. Với việc xem tin off-line, bạn có thể ung dung ngồi xem lạI các bài báo mà mình đã lưu mà không sợ tốn tiền internet. Một bài báo hay, một phóng sự, một bản tin nóng,… không đáng để chúng ta lưu lại hay sao ? Để xem tin đã lưu bạn click vào biểu tượng đĩa mềm trên thanh toolbar hoặc sử dụng menu Tools  Xem tin đã lưu. Các thông tin đã lưu sẽ hiện lên màn hình như sau : Ngoài ra, chương trình còn cho phép bạn tạo ra các chủ đề để lưu trữ, hiển thị, sắp xếp các bài báo một cách có hệ thống. Chỉ cần một cú click chuột vào phần mô tả là bạn đã có thể ung dung ngồi đọc lại những bài báo hay đã được lưu lại trước đó. Đây là một lợi thế rất lớn so vớ việc đọc và tìm kiếm lạI thông tin trong các tờ báo viết cũ. V.6. CHỈNH SỬA VÀ THÊM CHÚ THÍCH VÀO BÀI BÁO Một số chức năng khá thú vị mà chương trình cung cấp cho bạn là khả năng chỉnh sửa nội dung các bài báo đã được download về. Chỉ cần vài thao tác đơn gian, bạn có thể chỉnh sửa, thêm bớt nộI dung, di chuyển hình ảnh hay tô mầu (highlight) một đoạn văn bản trong bài báo mà bạn quan tâm. - 47 - Chương III : Nghiên cứu giải pháp Để thực hiện được điều này, bạn mở một bài báo đã được lưu lạI trước đó ra rồi nhấn vào biểu tượng để chuyển từ chế đọ View Mode sang chế đọ Design Mode. Sau đó bạn có thể chỉnh sửa câu văn bằng cách gõ trực tiếp từ bàn phím, hoặc chọn một đoạn quan trọng trong bài báo rồi tô màu đánh dấu bằng cách nhấn vào biểu tượng chọn màu và đánh dấu. Sau khi hoàn thành công việc, bạn chuyển về chế độ View Mode để thưởng thức “tác phẩm” của mình. Hình sau mô tả một bài báo sau khi đã được đánh dấu một số đoạn văn bản bởi các màu khác nhau. V.7. TÌM KIẾM BÀI BÁO Giờ đây, những ai đã và đang sử dụng Internet đều biết rằng Internet là một kho thông tin khổng lồ gần như đáp ứng đầy đủ tất cả các yêu cầu tìm hiểu thông tin của mỗI người. Với một từ khoá bất kỳ, việc tìm ra được hàng nghìn, hàng vạn trang Web liên quan không còn là điều xa lạ vớI chúng ta. Để giúp ngườI sử dụng internet thực hiện quá trình data-mining được tốt hơn, đồng thờI phù hợp vớI tiêu chí phổ - 48 - Chương III : Nghiên cứu giải pháp biến báo điện tử, tôi chỉ giớI hạn việc tìm kiếm thông tin là tìm kiếm các bài báo có chứa từ khoá cần tìm. Để tìm kiếm thông tin, bạn sử dụng menu :  Công cụ  Tìm kiếm  Tiếng Anh  Công cụ  Tìm kiếm  Tiếng Việt Sau đó nhập rừ khoá để bắt đầu thực hiện quá trình tìm kiếm. Nếu bạn thấy trong số các kết quả trả về đã có đủ thông tin cần thiết mà chương trình vẫn tiếp tục thực hiện việc tìm kiếm, thì bạn có thể sử dụng nút Stop để dùng lại. V.8. CẬP NHẬT CÁC KÊNH THÔNG TIN MỚI Một trong số những chức năng quan trọng của chương trình là khả năng cho phép cập nhật sự thay đổi, bổ sung của các kênh tin mà không phải cài đặt lại chương trình. Khi xuất hiện một chuyên mục hay một bài báo điện tử mớI, các thông tin của nó sẽ được cập nhật và upload lên mạng. Bạn chỉ cần chọn chức năng Cập nhật trong menu Kênh tin là chương trình sẽ tự động tải về file dữ liệu mới nhấ, đảm bảo cho chương trình của bạn luôn luôn theo kip vớI sự phát triển ngày càng gia tăng của báo điện tử. CHƯƠNG VI KẾT LUẬN Với những khó khăn còn tồn tại trong việc thu thập và tách thông tin, người sử dụng, doanh nghiệp hay tổ chức luôn luôn phải mất rất nhiều tiền bạc, thời gian, công sức cho việc có được đúng những thông tin mình cần từ một kho thông tin khổng lồ là Internet. Sau quá trình nghiên cứu, khảo sát và xây dựng hệ thống, còn là những nghiên cứu tâm huyết nhằm xây dựng một hệ thống thu thập và tách thông tin một cách hiệu quả. Những gì tôi làm được vẫn chỉ là bước đầu và còn có nhiều giới hạn. Tuy nhiên, tôi hy vọng rằng những nghiên cứu và sản phẩm của tôi sẽ được tiếp tục phát triển và thật sự có ích cho những người tiêu dùng tại Việt Nam. - 49 -