Tài liệu tham khảo ngành công nghệ thông tin xây dựng một hệ thống thu thập và tách thông tin
Trang 1I.1 MỞ
ĐẦU……….1I.2 MỘT VÀI VÍ DỤ ỨNG
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……….…6II.2
II.2.1 Thu thập thông tin (Information Retrieval) ……… 7II.2.2 Bóc tách thông tin (Information Extraction) ……….7II.2.3 Tổng hợp và tổng quát hoá dữ liệu (Generation) ………… 8II.2.4 Phân
tích……….…8II.3
CHƯƠNG III : NGHIÊN CỨU GIẢI PHÁP……….10
III.1 THU THẬP THÔNG
TIN……….11III.1.1.Các loại
URL……… 11III.1.2 Giải pháp sử
lý……… 12III.2 BÓC TÁCH THÔNG
Trang 2III.3.1 Khả năng tương tác người và máy trong quá trình tạo kênh
V.8 CẬP NHẬT CÁC KÊNH THÔNG TIN MỚI……….44
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 gianluô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
Trang 3thô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ôngcầ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ôngtin 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ểnthô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úcvà đã 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 tinchư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àngchụ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ácnguồ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ộttrang 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 trongtrang 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 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ốngvà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ị
Trang 4gò 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 trangbá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ânchia 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úpbạ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 sovớ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ôngtá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ôncủ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ếtbà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ó.
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úckế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 ứngtừ 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áchnhanh 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ăngsáng tạo của chính bạn mà thôi.
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
Trang 5Trong thập kỷ qua, chúng ta đã được chứng kiến sự phát triển đến chóng mặtcủ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ưởngkhô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 Internetmang đế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ụngInternet 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ạicá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 :
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 trangWeb 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áctrang 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ìnhbà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 Webthông tin được cập nhật thường xuyên như báo điện tử, diễn đàn, trang Web cung cấpthô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áchkỹ 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ưngkhô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ặtcấ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áctrang 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 )
Trang 6 Chứng khoán : Tên công ty niêm yết + giá bán
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êntụ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ử) Tuyvậ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ôntheo 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ộtcá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 trangWeb 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êmyế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ôngthường như là sử dụng search engine của trang thông tin đó hay các search engine khácsẽ 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 enginenà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ý donà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àongà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ậtlà í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 tintrong 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 Webnà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íchvề mặt ngữ nghĩa cấu trúc Ví dụ như trong trang Web thông tin về Ban Giám Khảocuộ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ácthà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 khimuố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ảohiệ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ệ 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ánnà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ứ
Trang 7khô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 trangWeb 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ổngquát do thông tin được trình bày không theo một quy luật nhất định nào
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áttriể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ợithiế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ôngtin 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
D÷ liÖuWeb
T¸c vô
Thu thËpth«ng tin
T¸c vô
Bãc t¸chth«ng tin
T¸c vô
Tæng qu¸tho¸ th«ng
T¸c vô
Ph©n tÝchth«ng tinTri thøc
Trang 8Chúng ta sẽ điểm sơ qua từng tác vụ một và những nghiên cứu đã đạt được đốivớ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ừ URLhoặ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 tinthườ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ìmkiế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ậpdữ 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ănbả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ếmmạ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êucầ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ứctạ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 đượctriệt để, phần nhiều có thể kể đến là do tính phi ngữ nghĩa của ngôn ngữ HTML Hầuhế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 tinmà 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 đơngiả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ưaphải thật sự tốt đúng như người dùng mong đợi.
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ộtcá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óctá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áchà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áctrang 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 quyluậ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ạichỉ đượ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
Trang 9chươ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ạinguồ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 đúngsearch 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ọcmá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ânloạ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à 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 Webmớ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ĩacủ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ệntố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ầuthự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ựatrên các thẻ như HTML, tuy nhiên các thẻ này không cố định như HTML mà hoàn toànlà 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ẳnHTML về mặt cung cấp ngữ nghĩa của thông tin Đơn giản như, bây giờ, các searchengine 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ộtcâ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:
Trang 10 XML được thiết kế để phát triển và mở rộng một ngôn ngữ mark-up mới theomột hệ thống chuẩn Từ trước tới nay, HTML chưa bao giờ được cung cấp mộtkhả năng mở rộng tuân theo một chuẩn nhất định Để thay đổi HTML, chúng tacó lẽ phải đối mặt với cả thế giới trong khi việc thay đổi XML cho phù hợp vớimụ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ônngữ 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ểnvà trình duyệt có thể dễ dàng (không cần thay đổi) vẫn duyệt được toàn bộ thôngtin mà nó mang theo Sự tối nghĩa trong các thẻ HTML và có quá nhiều các quytắc ngoại lệ khiến cho đôi khi không chỉ người sử dụng mà các nhà phát triểncô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 aicũ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ậptrì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 XMLdưới đây :
Giao dịch thương mại (Biz-to-biz transport) : Dữ liệu thương mại, hóa đơn, yêucầ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ượttrộ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 XMLtrong việc tăng tính phân tầng và cấu trúc duyệt (navigations) đối với nhữngtrang Web của họ Hơn nữa, sử dụng XML sẽ giúp cho việc lưu trữ thông tinngườ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ệcnhậ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 ghiXML Bằng việc mô tả dữ liệu theo định dạng XML, chúng ta không cần phảinhấ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 khilưu
Trang 11Với nền tảng XML chúng ta có thể dễ dàng bổ sung tính ngữ nghĩa cho cácthô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ônngữ 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ệutri 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áchdễ 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ỨUGIẢ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ệnkhô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âmvà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ừ Webcung 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ụngnhiề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ảikhẳ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ậpdữ 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ữ 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.
Trang 12III.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 tincủ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ụ đơngiả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àylà các search engine Chúng ta đã biết rằng để tìm kiếm thông tin, chúng ta cầnphải cung cấp cho các search engine này từ khóa Các từ khóa ấy được biến đổivà cuối cùng được gửi cho server dưới dạng nằm trong URL Ngoài ra, cũng còncầ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 tinkhông phải từ một trang mà là từ nhiều trang Web (ví dụ như mặc dù searchengine có thể trả lại cho chúng ta đến hàng triệu kết quả chỉ trong một trangWeb, tuy vậy trong thực tế người sử dụng thông thường không muốn xem hếthàng triệu kết quả này cũng như search engine không bao giờ lại trình bày hàngtriệ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 tacũ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ấtURL đều được mã hóa, nhưng trong trường hợp thứ 3 thông tin mã hóa đượcnhậ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.
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ápkhả 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ộtURL tĩnh request đến server chứa nguồn thông tin Trừ URL tĩnh là dạng URL cơ bảnnhấ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 đơngiản, có thể nhìn thấy ngay quy luật.
Trang 13 Tạo/sinh URL bằng cách viết DLL Trong trường hợp các URL sử dụng cácphươ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àmtrong 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ớichuỗ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 :
Phần cố địnhKeyword sau khi mã hoáPhần cố địnhPhần thay
đổiPhần cốđịnh
Alltheweb :
Phần cố địnhKeyword sau khi mã hoáPhần cố địnhPhần thay
đổiPhần cốđịnh
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&dns=&img=0
Trang 14Phần cố địnhKeyword sau khi mã hoáPhần cố địnhPhần thay
đổiPhần cốđịnh
VinaSeek :
Phần cố địnhKeyword sau khi mã hoáPhần cố địnhPhần thay đổi
Đà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ố địnhPhần thay đổiPhần cố định
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 đã quaxử 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ảnkhác (hàm không cần đối số, trả về một giá trị)
Trang 15 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 searchengine, 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ônngữ 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)
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ềnbiến nữa) là :
a $UTF8 : mã hoá dạng UTF8b $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à coiluô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
Trang 16Dướ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ố địnhKeyword mã hoáPhần cố địnhPhần thayđổi
Phần cốđịnh
1 50 50 3
REPLACE %20 +
1 10 10 3
REPLACE %20 +&c=web&cs=utf-8&o=#
1 2 1 3
$REPLACE %22 “
VinaSeek :
Trang 17Phần cố địnhKeyword mã hoáPhần cố địnhPhần thay đổi
%D6+Vi%D6t+Nam%22 &start= 214161
1 21 20 3
$REPLACE %20 +&start=
Đài Tiếng nói Việt Nam :
Phần cố địnhPhần thay đổiPhần cố định
http://www.vov.org.vn/2004_10_24/vietnamese/kinhte.htmhttp://www.vov.org.vn/2004_10_24/vietnamese/xahoi.htmhttp://www.vov.org.vn/2004_10_24/vietnamese/thethao.htm0
/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ằngdấ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 :
Trang 18Xử lý dòng đầu tiên
Script có biếnkhông ?
Đọc các tham sốqui định khoảngchạy của biến
Có dòng tiếp theo
Dòng bắt đầubằng $
Xử lý hàm vàcập nhật S
Dòng chỉ chứa #Cập nhật biếnvà chuỗi S
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ỏtnà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ườisử 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ổngquỏ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 URLtuy đơn giản nhưng đó bao trựm được khỏ nhiều trường hợp Tuy nhiờn tụi cũng lườngtrướ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ộtcỏ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ụ 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ăm2004) nhưng cỏc số bỏo này thay đổi khụng theo quy luật nào (theo ngày ) Để biết
Trang 19đượ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àysẽ đượ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àmtheo đúng tên và tham số đầu ra cũng như đầu vào được liệt kê dưới đây :
o Chức năng : Lấy URL khởi đầu
o Đầu vào : 1 chuỗi ký tự (ví dụ như keyword cho search engine)o Đầu ra : URL hoặc danh sách URL đầu tiên
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ầngọ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ạilà 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 :
Trang 20III.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 rasau 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ôisẽ 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áchthô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ấpcho người sử dụng khả năng thu thập và bóc tách thông tin Tuy vậy, những thông tin
Trang 21nà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 quyluậ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ôngtin có ý nghĩa giống nhau sẽ thường được trình bày giống
Ở đâ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ốngnhau 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ầunhư 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ôngtin 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 khiduyệ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 :
Trang 22III.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 địnhdạ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 boxo 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ấto Ngày viết của bài mới nhất