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
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
Chương I : Giới thiệu sản phẩm
GIỚI THIỆU SẢN PHẨM...........................................................................2
I.1.MỞ ĐẦU......................................................................................................................2
I.2.MỘT VÀI VÍ DỤ ỨNG DỤNG..................................................................................3
LÝ THUYẾT CHUNG..................................................................................4
II.1.PHÂN LOẠI NGUỒN THÔNG TIN.........................................................................5
II.1.1.Các trang Web thông tin có cấu trúc được cập nhật thường xuyên....................5
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.........6
II.1.3.Các trang Web thông tin có cấu trúc lỏng lẻo.....................................................7
II.2.WEBMINING.............................................................................................................7
II.2.1.Thu thập thông tin (Information Retrieval).........................................................8
II.2.2. Bóc tách thông tin (Information Extraction)......................................................9
II.2.3.Tổng hợp và tổng quát hoá dữ liệu (Generation)................................................9
II.2.4.Phân tích.............................................................................................................10
II.3.XML..........................................................................................................................10
NGHIÊN CỨU
GIẢI PHÁP.............................................................................................12
III.1.THU THẬP THÔNG TIN.......................................................................................12
III.1.1.Các loại URL....................................................................................................12
III.1.2. Giải pháp xử lý................................................................................................13
III.2.BÓC TÁCH THÔNG TIN......................................................................................21
III.2.1. Quy luật dùng để bóc tách thông tin...............................................................22
III.2.2.Phương án kỹ thuật...........................................................................................26
III.2.3.Kênh tin và kênh tin đa mức ...........................................................................31
III.3.HIỆN THỰC HÓA GIẢI PHÁP.............................................................................33
III.3.2.Khả năng tương tác người - máy trong quá trình tạo kênh tin........................35
III.3.3.Các chức năng khác của hệ thống....................................................................37
III.4.KHẢ NĂNG ỨNG DỤNG VÀ MỞ RỘNG..........................................................38
SO SÁNH vỚi CÁC HỆ THỐNG KHÁC......................................................39
HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH...............................................40
KẾT LUẬN..............................................................................................46
CHƯƠNG I
GIỚI THIỆU SẢN PHẨM
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
- 2 -
Chương I : Giới thiệu sản phẩm
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 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
- 3 -
Chương I : Giới thiệu sản phẩm
Đặ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ó.
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
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ế
- 4 -
Chương I : Giới thiệu sản phẩm
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 :
• 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
- 5 -
Chương I : Giới thiệu sản phẩm
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
...
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ổ
- 6 -
Chương I : Giới thiệu sản phẩm
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ệ 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
.
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
- 7 -
Chương I : Giới thiệu sản phẩm
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
D÷ liÖu
Web
T¸c vô
Thu thËp
th«ng tin
T¸c vô
Bãc t¸ch
th«ng tin
T¸c vô
Tæng qu¸t
ho¸ th«ng
tin
T¸c vô
Ph©n tÝch
th«ng tin
Tri thøc
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à 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.
- 9 -
Chương I : Giới thiệu sản phẩm
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 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.
- 10 -
Chương I : Giới thiệu sản phẩm
• 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 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
- 11 -
Chương I : Giới thiệu sản phẩm
NGHIÊN CỨU
NGHIÊN CỨU
GIẢI PHÁP
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ữ 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 :
- 12 -
Chương I : Giới thiệu sản phẩm
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.
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
- 13 -
Chương I : Giới thiệu sản phẩm
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 :
/>%87t+Nam%22&num=50&hl=vi&lr=&ie=UTF-8&oe=UTF-8&safe=off&start=50&sa=N
/>%87t+Nam%22&num=50&hl=vi&lr=&ie=UTF-8&oe=UTF-8&safe=off&start=100&sa=N
/>%87t+Nam%22&num=50&hl=vi&lr=&ie=UTF-8&oe=UTF-8&safe=off&start=150&sa=N
Phần cố định Keyword sau khi mã
hoá
Phần cố định Phần
thay đổi
Phần
cố định
gle.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=UTF-
8&safe=off&start=
50
100
150
sa=N
Alltheweb :
/>%87t+Nam%22&c=web&cs=utf-8&o=10&l=any
/>%87t+Nam%22&c=web&cs=utf-8&o=20&l=any
/>%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
Phần
cố định
t
heweb.com/sea
rch?q=
%22Tr%C3%AD+Tu
%E1%BB%87+Vi
%E1%BB%87t+Nam
%22&
&c=web&cs=utf-8&o= 10
20
30
&l=any
PanVN :
/>%87tNam"&fcid=2&any=&ww=&occ=&d=&cmdSearch=Search&advs=&pn=2&dns=&img=0
- 14 -
Chương I : Giới thiệu sản phẩm
/>%87tNam"&fcid=2&any=&ww=&occ=&d=&cmdSearch=Search&advs=&pn=3&dns=&img=0
/>%87tNam"&fcid=2&any=&ww=&occ=&d=&cmdSearch=Search&advs=&pn=4&dns=&img=0
Phần cố định Keyword sau khi mã
hoá
Phần cố định Phần
thay đổi
Phần
cố định
vn.com/index.as
p?
progid=4004&q
=
"Tr%C3%ADTu
%E1%BB%87Vi
%E1%BB%87tNam"
&fcid=2&any=&ww=&
occ=&d=&cmdSearch
=Search&advs=&pn=
2
3
4
&dns=&
img=0
VinaSeek :
/>%D6t+Nam%22&start=21
/>%D6t+Nam%22&start=41
/>%D6t+Nam%22&start=61
Phần cố định Keyword sau khi mã
hoá
Phần cố định Phần thay đổi
a
seek.com/searc
h.asp?
form=sfr&font=
tcvn&query=
%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ế : />Chuyên mục Xã Hội : />Chuyên mục Thể Thao : />Phần cố định Phần thay đổi Phần cố định
2004_10_24 /vietnamese/kinhte.htm
2004_10_24 /vietnamese/xahoi.htm
2004_10_24 /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 “+”)
- 15 -
Chương I : Giới thiệu sản phẩm
• 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)
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
- 16 -
Chương I : Giới thiệu sản phẩm
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
Phần
cố định
gl
e.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=UTF-
8&safe=off&start=
50
100
150
sa=N
1 50 50 3
/>$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
Phần
cố định
the
web.com/search?
q=
%22Tr%C3%AD+Tu
%E1%BB%87+Vi
%E1%BB%87t+Nam
%22&
&c=web&cs=utf-8&o= 10
20
30
&l=any
1 10 10 3
/>$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
Phần
cố định
v
n.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
3
4
&dns=&
img=0
- 17 -
Chương I : Giới thiệu sản phẩm
1 2 1 3
/>$UTF8
$REPLACE %22 “
&fcid=2&any=&ww=&occ=&d=&cmdSearch=Search&advs=&pn=
#
&dns=&img=0
VinaSeek :
Phần cố định Keyword mã hoá Phần cố định Phần thay đổi
as
eek.com/search.a
sp?
form=sfr&font=t
cvn&query=
%22Tr%DD+Tu
%D6+Vi%D6t+Nam
%22
&start= 21
41
61
1 21 20 3
/>$TCVN
$REPLACE %20 +
&start=
#
Đài Tiếng nói Việt Nam :
Phần cố định Phần thay đổi Phần cố định
2004_10_24 /vietnamese/kinhte.htm
2004_10_24 /vietnamese/xahoi.htm
2004_10_24 /vietnamese/thethao.htm
0
/>$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 :
- 18 -