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
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
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à.
- 2 -
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
Đặ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
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ế
Chúng ta đã thật sự có thông tin mình mong đợi chưa?
- 4 -
Chương I : Giới thiệu sản phẩm
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
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
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
- 7 -
Chương I : Giới thiệu sản phẩm
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
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
đổ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.
• 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
- 10 -
Chương I : Giới thiệu sản phẩm
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
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
), 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
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 -
>
>>
endobj
>>
endobj
198 0 obj
>
>>
endobj
199 0 obj
>
>>
endobj
200 0 obj
>
>>
endobj
201 0 obj
>
>>
endobj
202 0 obj
>
>>
endobj
203 0 obj
>
>>
endobj
204 0 obj
>
>>
endobj
0000000019 00000 n
0000002434 00000 n
0001605030 00000 n
0000002455 00000 n
0000006172 00000 n
0001605176 00000 n
0000006193 00000 n
0000011046 00000 n
0001605322 00000 n
0000011067 00000 n
0000015019 00000 n
0001605470 00000 n
0000015041 00000 n
0000018427 00000 n
0001605618 00000 n
0000018449 00000 n
0000022847 00000 n
0001605766 00000 n
0000022869 00000 n
0000030756 00000 n
0000037334 00000 n
0000035740 00000 n
0000034259 00000 n
0000033055 00000 n
0000030778 00000 n
0000032829 00000 n
0000032849 00000 n
0000033035 00000 n
0000034051 00000 n
0000034239 00000 n
0001607387 00000 n
0000074326 00000 n
0000077381 00000 n
0001607535 00000 n
0000077403 00000 n
0000080959 00000 n
0001607683 00000 n
0000080981 00000 n
0000084198 00000 n
0001607831 00000 n
0000084220 00000 n
0000087717 00000 n
0001607979 00000 n
0000087739 00000 n
0000089855 00000 n
0001608127 00000 n
0000089877 00000 n
0000092395 00000 n
0001608275 00000 n
0000092417 00000 n
0000094744 00000 n
0001608423 00000 n
0000094766 00000 n
0000096337 00000 n
0000096359 00000 n
0001608590 00000 n
0000217552 00000 n
0000219218 00000 n
0000219240 00000 n
0001608757 00000 n
0000468112 00000 n
0000491936 00000 n
0001610271 00000 n
0000491960 00000 n
0000495648 00000 n
0001610448 00000 n
0000495671 00000 n
0000497544 00000 n
0000663323 00000 n
0000497567 00000 n
0001610598 00000 n
0000714992 00000 n
0000717688 00000 n
0000717711 00000 n
0001610748 00000 n
0000883631 00000 n
0000887292 00000 n
0001610898 00000 n
0000887315 00000 n
0000891010 00000 n
0001611075 00000 n
0000891033 00000 n
0000896136 00000 n
0001611225 00000 n
0000896159 00000 n
0000897860 00000 n
0000897883 00000 n
0001611375 00000 n
0000975744 00000 n
0000977892 00000 n
0001615138 00000 n
0001615353 00000 n
0001615566 00000 n
0001615779 00000 n
0001615945 00000 n
0001616113 00000 n
0001616277 00000 n
0001616443 00000 n
0001616607 00000 n
0001616774 00000 n
0001616974 00000 n
0001617174 00000 n
0001617374 00000 n
0001617574 00000 n
0001617774 00000 n
0001617974 00000 n
0001618205 00000 n
0001618436 00000 n
0001618667 00000 n
0001618898 00000 n
0001619126 00000 n
0001619356 00000 n
0001619513 00000 n
0001619655 00000 n
0001619806 00000 n
0001619957 00000 n
0001612481 00000 n
0001404772 00000 n
0001408712 00000 n
0001408735 00000 n
0001525020 00000 n
0001525803 00000 n
0001526408 00000 n
0001545687 00000 n
0001545711 00000 n
0001545908 00000 n
0001546932 00000 n
0001547744 00000 n
0001571982 00000 n
0001572006 00000 n
0001572198 00000 n
0001573324 00000 n
0001574223 00000 n
0001583045 00000 n
0001583068 00000 n
0001583265 00000 n
0001583557 00000 n
0001583723 00000 n
0001596964 00000 n
0001596988 00000 n
0001597180 00000 n
0001597593 00000 n
0001597851 00000 n
0001603583 00000 n
0001603606 00000 n
0001603803 00000 n
0001604120 00000 n
0001604307 00000 n
0001604371 00000 n
0001604543 00000 n
>
>>
endobj
191 0 obj
>
>>
endobj
192 0 obj
>
>>
endobj
193 0 obj
>
>>
endobj
>>
endobj
202 0 obj
>
>>
endobj
203 0 obj
>
>>
endobj
204 0 obj
>
>>
endobj
205 0 obj
>
>>
endobj
206 0 obj
>
>>
endobj
207 0 obj
>
>>
endobj
274 0 obj
0000022847 00000 n
0001605766 00000 n
0000022869 00000 n
0000030756 00000 n
0000037334 00000 n
0000035740 00000 n
0000034259 00000 n
0000033055 00000 n
0000030778 00000 n
0000032829 00000 n
0000032849 00000 n
0000033035 00000 n
0000034051 00000 n
0000034239 00000 n
0000035335 00000 n
0000035719 00000 n
0000036814 00000 n
0000037313 00000 n
0000039119 00000 n
0000039810 00000 n
0001605914 00000 n
0000039831 00000 n
0000046893 00000 n
0001606062 00000 n
0000046915 00000 n
0000051222 00000 n
0001606210 00000 n
0000051244 00000 n
0000055225 00000 n
0001606358 00000 n
0000089877 00000 n
0000092395 00000 n
0001608275 00000 n
0000092417 00000 n
0000094744 00000 n
0001608423 00000 n
0000094766 00000 n
0000096337 00000 n
0000096359 00000 n
0001608590 00000 n
0000217552 00000 n
0000219218 00000 n
0000219240 00000 n
0001608757 00000 n
0000269558 00000 n
0000271380 00000 n
0000271402 00000 n
0001608924 00000 n
0000352569 00000 n
0000355408 00000 n
0000355430 00000 n
0001609072 00000 n
0000408746 00000 n
0000412856 00000 n
0001609221 00000 n
0000412879 00000 n
0000419000 00000 n
0001609371 00000 n
0000419023 00000 n
0000420773 00000 n
0000887292 00000 n
0001610898 00000 n
0000887315 00000 n
0000891010 00000 n
0001611075 00000 n
0000891033 00000 n
0000896136 00000 n
0001611225 00000 n
0000896159 00000 n
0000897860 00000 n
0000897883 00000 n
0001611375 00000 n
0000975744 00000 n
0000977892 00000 n
0000977915 00000 n
0001611525 00000 n
0001081431 00000 n
0001083234 00000 n
0001091038 00000 n
0001083257 00000 n
0001611675 00000 n
0001185170 00000 n
0001187586 00000 n
0001187609 00000 n
0001611825 00000 n
0001276728 00000 n
0001279033 00000 n
0001279056 00000 n
0001611975 00000 n
0001401664 00000 n
0001618205 00000 n
0001618436 00000 n
0001618667 00000 n
0001618898 00000 n
0001619126 00000 n
0001619356 00000 n
0001619513 00000 n
0001619655 00000 n
0001619806 00000 n
0001619957 00000 n
0001612481 00000 n
0001404772 00000 n
0001408712 00000 n
0001408735 00000 n
0001408928 00000 n
0001409238 00000 n
0001409412 00000 n
0001423607 00000 n
0001423631 00000 n
0001423843 00000 n
0001424232 00000 n
0001424488 00000 n
0001442056 00000 n
0001442080 00000 n
0001442283 00000 n
0001442727 00000 n
0001443029 00000 n
0001468986 00000 n
0001469010 00000 n
0001469208 00000 n
0001583557 00000 n
0001583723 00000 n
0001596964 00000 n
0001596988 00000 n
0001597180 00000 n
0001597593 00000 n
0001597851 00000 n
0001603583 00000 n
0001603606 00000 n
0001603803 00000 n
0001604120 00000 n
0001604307 00000 n
0001604371 00000 n
0001604543 00000 n
0001612125 00000 n
0001612184 00000 n
0001620099 00000 n
0001620262 00000 n
trailer
startxref
1620799
%%EOF
">
Chương I : Giới thiệu sản phẩm
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 -
>
>>
endobj
186 0 obj
>
>>
endobj
>>
endobj
195 0 obj
>
>>
endobj
196 0 obj
>
>>
endobj
197 0 obj
>
>>
endobj
198 0 obj
>
>>
endobj
199 0 obj
>
>>
endobj
200 0 obj
>
>>
endobj
201 0 obj
>
>>
endobj
/Lang(en-US)
>>
endobj
275 0 obj
/Creator
/Producer
/CreationDate(D:20121123103544+07'00')>>
endobj
xref
0 276
0000000000 65535 f
0001604884 00000 n
0000000019 00000 n
0000002434 00000 n
0001605030 00000 n
0000002455 00000 n
0000006172 00000 n
0001605176 00000 n
0000006193 00000 n
0000011046 00000 n
0001605322 00000 n
0000011067 00000 n
0000015019 00000 n
0001605470 00000 n
0000015041 00000 n
0000018427 00000 n
0001605618 00000 n
0000018449 00000 n
0000022847 00000 n
0001605766 00000 n
0001606506 00000 n
0000058974 00000 n
0000062275 00000 n
0001606654 00000 n
0000062297 00000 n
0000066532 00000 n
0001606853 00000 n
0000066554 00000 n
0000070400 00000 n
0001607124 00000 n
0000070422 00000 n
0000074304 00000 n
0001607387 00000 n
0000074326 00000 n
0000077381 00000 n
0001607535 00000 n
0000077403 00000 n
0000080959 00000 n
0001607683 00000 n
0000080981 00000 n
0000084198 00000 n
0001607831 00000 n
0000084220 00000 n
0000087717 00000 n
0001607979 00000 n
0000087739 00000 n
0000089855 00000 n
0001608127 00000 n
0000089877 00000 n
0000092395 00000 n
0000423446 00000 n
0000423469 00000 n
0001609671 00000 n
0000458514 00000 n
0000461718 00000 n
0001609821 00000 n
0000461741 00000 n
0000465048 00000 n
0001609971 00000 n
0000465071 00000 n
0000468089 00000 n
0001610121 00000 n
0000468112 00000 n
0000491936 00000 n
0001610271 00000 n
0000491960 00000 n
0000495648 00000 n
0001610448 00000 n
0000495671 00000 n
0000497544 00000 n
0000663323 00000 n
0000497567 00000 n
0001610598 00000 n
0000714992 00000 n
0000717688 00000 n
0000717711 00000 n
0001610748 00000 n
0000883631 00000 n
0000887292 00000 n
0001610898 00000 n
0001613061 00000 n
0001613208 00000 n
0001613389 00000 n
0001613530 00000 n
0001613673 00000 n
0001613816 00000 n
0001613967 00000 n
0001614142 00000 n
0001614317 00000 n
0001614493 00000 n
0001614708 00000 n
0001614923 00000 n
0001615138 00000 n
0001615353 00000 n
0001615566 00000 n
0001615779 00000 n
0001615945 00000 n
0001616113 00000 n
0001616277 00000 n
0001616443 00000 n
0001616607 00000 n
0001616774 00000 n
0001616974 00000 n
0001617174 00000 n
0001617374 00000 n
0001617574 00000 n
0001617774 00000 n
0001617974 00000 n
0001618205 00000 n
0001618436 00000 n
0001474846 00000 n
0001474869 00000 n
0001475061 00000 n
0001475488 00000 n
0001475766 00000 n
0001485920 00000 n
0001485944 00000 n
0001486132 00000 n
0001486778 00000 n
0001487260 00000 n
0001524794 00000 n
0001524818 00000 n
0001525020 00000 n
0001525803 00000 n
0001526408 00000 n
0001545687 00000 n
0001545711 00000 n
0001545908 00000 n
0001546932 00000 n
0001547744 00000 n
0001571982 00000 n
0001572006 00000 n
0001572198 00000 n
0001573324 00000 n
0001574223 00000 n
0001583045 00000 n
0001583068 00000 n
0001583265 00000 n
0001583557 00000 n
0001583723 00000 n
>
>>
endobj
>>
endobj
195 0 obj
>
>>
endobj
196 0 obj
>
>>
endobj
197 0 obj
>
>>
endobj
198 0 obj
>
>>
endobj
199 0 obj
>
>>
endobj
200 0 obj
>
>>
endobj
201 0 obj
>
>>
endobj
/Lang(en-US)
>>
endobj
275 0 obj
/Creator
/Producer
/CreationDate(D:20121123103544+07'00')>>
endobj
xref
0 276
0000000000 65535 f
0001604884 00000 n
0000000019 00000 n
0000002434 00000 n
0001605030 00000 n
0000002455 00000 n
0000006172 00000 n
0001605176 00000 n
0000006193 00000 n
0000011046 00000 n
0001605322 00000 n
0000011067 00000 n
0000015019 00000 n
0001605470 00000 n
0000015041 00000 n
0000018427 00000 n
0001605618 00000 n
0000018449 00000 n
0000022847 00000 n
0001605766 00000 n
0001606506 00000 n
0000058974 00000 n
0000062275 00000 n
0001606654 00000 n
0000062297 00000 n
0000066532 00000 n
0001606853 00000 n
0000066554 00000 n
0000070400 00000 n
0001607124 00000 n
0000070422 00000 n
0000074304 00000 n
0001607387 00000 n
0000074326 00000 n
0000077381 00000 n
0001607535 00000 n
0000077403 00000 n
0000080959 00000 n
0001607683 00000 n
0000080981 00000 n
0000084198 00000 n
0001607831 00000 n
0000084220 00000 n
0000087717 00000 n
0001607979 00000 n
0000087739 00000 n
0000089855 00000 n
0001608127 00000 n
0000089877 00000 n
0000092395 00000 n
0000423446 00000 n
0000423469 00000 n
0001609671 00000 n
0000458514 00000 n
0000461718 00000 n
0001609821 00000 n
0000461741 00000 n
0000465048 00000 n
0001609971 00000 n
0000465071 00000 n
0000468089 00000 n
0001610121 00000 n
0000468112 00000 n
0000491936 00000 n
0001610271 00000 n
0000491960 00000 n
0000495648 00000 n
0001610448 00000 n
0000495671 00000 n
0000497544 00000 n
0000663323 00000 n
0000497567 00000 n
0001610598 00000 n
0000714992 00000 n
0000717688 00000 n
0000717711 00000 n
0001610748 00000 n
0000883631 00000 n
0000887292 00000 n
0001610898 00000 n
0001613061 00000 n
0001613208 00000 n
0001613389 00000 n
0001613530 00000 n
0001613673 00000 n
0001613816 00000 n
0001613967 00000 n
0001614142 00000 n
0001614317 00000 n
0001614493 00000 n
0001614708 00000 n
0001614923 00000 n
0001615138 00000 n
0001615353 00000 n
0001615566 00000 n
0001615779 00000 n
0001615945 00000 n
0001616113 00000 n
0001616277 00000 n
0001616443 00000 n
0001616607 00000 n
0001616774 00000 n
0001616974 00000 n
0001617174 00000 n
0001617374 00000 n
0001617574 00000 n
0001617774 00000 n
0001617974 00000 n
0001618205 00000 n
0001618436 00000 n
0001474846 00000 n
0001474869 00000 n
0001475061 00000 n
0001475488 00000 n
0001475766 00000 n
0001485920 00000 n
0001485944 00000 n
0001486132 00000 n
0001486778 00000 n
0001487260 00000 n
0001524794 00000 n
0001524818 00000 n
0001525020 00000 n
0001525803 00000 n
0001526408 00000 n
0001545687 00000 n
0001545711 00000 n
0001545908 00000 n
0001546932 00000 n
0001547744 00000 n
0001571982 00000 n
0001572006 00000 n
0001572198 00000 n
0001573324 00000 n
0001574223 00000 n
0001583045 00000 n
0001583068 00000 n
0001583265 00000 n
0001583557 00000 n
0001583723 00000 n
>
>>
endobj
>>
endobj
196 0 obj
>
>>
endobj
197 0 obj
>
>>
endobj
198 0 obj
>
>>
endobj
199 0 obj
>
>>
endobj
200 0 obj
>
>>
endobj
201 0 obj
>
>>
endobj
202 0 obj
>
>>
endobj
/Creator
/Producer
/CreationDate(D:20121123103544+07'00')>>
endobj
xref
0 276
0000000000 65535 f
0001604884 00000 n
0000000019 00000 n
0000002434 00000 n
0001605030 00000 n
0000002455 00000 n
0000006172 00000 n
0001605176 00000 n
0000006193 00000 n
0000011046 00000 n
0001605322 00000 n
0000011067 00000 n
0000015019 00000 n
0001605470 00000 n
0000015041 00000 n
0000018427 00000 n
0001605618 00000 n
0000018449 00000 n
0000022847 00000 n
0001605766 00000 n
0000022869 00000 n
0000030756 00000 n
0000037334 00000 n
0000035740 00000 n
0000062297 00000 n
0000066532 00000 n
0001606853 00000 n
0000066554 00000 n
0000070400 00000 n
0001607124 00000 n
0000070422 00000 n
0000074304 00000 n
0001607387 00000 n
0000074326 00000 n
0000077381 00000 n
0001607535 00000 n
0000077403 00000 n
0000080959 00000 n
0001607683 00000 n
0000080981 00000 n
0000084198 00000 n
0001607831 00000 n
0000084220 00000 n
0000087717 00000 n
0001607979 00000 n
0000087739 00000 n
0000089855 00000 n
0001608127 00000 n
0000089877 00000 n
0000092395 00000 n
0001608275 00000 n
0000092417 00000 n
0000094744 00000 n
0001608423 00000 n
0000461718 00000 n
0001609821 00000 n
0000461741 00000 n
0000465048 00000 n
0001609971 00000 n
0000465071 00000 n
0000468089 00000 n
0001610121 00000 n
0000468112 00000 n
0000491936 00000 n
0001610271 00000 n
0000491960 00000 n
0000495648 00000 n
0001610448 00000 n
0000495671 00000 n
0000497544 00000 n
0000663323 00000 n
0000497567 00000 n
0001610598 00000 n
0000714992 00000 n
0000717688 00000 n
0000717711 00000 n
0001610748 00000 n
0000883631 00000 n
0000887292 00000 n
0001610898 00000 n
0000887315 00000 n
0000891010 00000 n
0001611075 00000 n
0000891033 00000 n
0001613673 00000 n
0001613816 00000 n
0001613967 00000 n
0001614142 00000 n
0001614317 00000 n
0001614493 00000 n
0001614708 00000 n
0001614923 00000 n
0001615138 00000 n
0001615353 00000 n
0001615566 00000 n
0001615779 00000 n
0001615945 00000 n
0001616113 00000 n
0001616277 00000 n
0001616443 00000 n
0001616607 00000 n
0001616774 00000 n
0001616974 00000 n
0001617174 00000 n
0001617374 00000 n
0001617574 00000 n
0001617774 00000 n
0001617974 00000 n
0001618205 00000 n
0001618436 00000 n
0001618667 00000 n
0001618898 00000 n
0001619126 00000 n
0001619356 00000 n
0001475766 00000 n
0001485920 00000 n
0001485944 00000 n
0001486132 00000 n
0001486778 00000 n
0001487260 00000 n
0001524794 00000 n
0001524818 00000 n
0001525020 00000 n
0001525803 00000 n
0001526408 00000 n
0001545687 00000 n
0001545711 00000 n
0001545908 00000 n
0001546932 00000 n
0001547744 00000 n
0001571982 00000 n
0001572006 00000 n
0001572198 00000 n
0001573324 00000 n
0001574223 00000 n
0001583045 00000 n
0001583068 00000 n
0001583265 00000 n
0001583557 00000 n
0001583723 00000 n
0001596964 00000 n
0001596988 00000 n
0001597180 00000 n
0001597593 00000 n
>
>>
endobj
189 0 obj
>
>>
endobj
>>
endobj
198 0 obj
>
>>
endobj
199 0 obj
>
>>
endobj
200 0 obj
>
>>
endobj
201 0 obj
>
>>
endobj
202 0 obj
>
>>
endobj
203 0 obj
>
>>
endobj
204 0 obj
>
>>
endobj
0000000019 00000 n
0000002434 00000 n
0001605030 00000 n
0000002455 00000 n
0000006172 00000 n
0001605176 00000 n
0000006193 00000 n
0000011046 00000 n
0001605322 00000 n
0000011067 00000 n
0000015019 00000 n
0001605470 00000 n
0000015041 00000 n
0000018427 00000 n
0001605618 00000 n
0000018449 00000 n
0000022847 00000 n
0001605766 00000 n
0000022869 00000 n
0000030756 00000 n
0000037334 00000 n
0000035740 00000 n
0000034259 00000 n
0000033055 00000 n
0000030778 00000 n
0000032829 00000 n
0000032849 00000 n
0000033035 00000 n
0000034051 00000 n
0000034239 00000 n
0001607387 00000 n
0000074326 00000 n
0000077381 00000 n
0001607535 00000 n
0000077403 00000 n
0000080959 00000 n
0001607683 00000 n
0000080981 00000 n
0000084198 00000 n
0001607831 00000 n
0000084220 00000 n
0000087717 00000 n
0001607979 00000 n
0000087739 00000 n
0000089855 00000 n
0001608127 00000 n
0000089877 00000 n
0000092395 00000 n
0001608275 00000 n
0000092417 00000 n
0000094744 00000 n
0001608423 00000 n
0000094766 00000 n
0000096337 00000 n
0000096359 00000 n
0001608590 00000 n
0000217552 00000 n
0000219218 00000 n
0000219240 00000 n
0001608757 00000 n
0000468112 00000 n
0000491936 00000 n
0001610271 00000 n
0000491960 00000 n
0000495648 00000 n
0001610448 00000 n
0000495671 00000 n
0000497544 00000 n
0000663323 00000 n
0000497567 00000 n
0001610598 00000 n
0000714992 00000 n
0000717688 00000 n
0000717711 00000 n
0001610748 00000 n
0000883631 00000 n
0000887292 00000 n
0001610898 00000 n
0000887315 00000 n
0000891010 00000 n
0001611075 00000 n
0000891033 00000 n
0000896136 00000 n
0001611225 00000 n
0000896159 00000 n
0000897860 00000 n
0000897883 00000 n
0001611375 00000 n
0000975744 00000 n
0000977892 00000 n
0001615138 00000 n
0001615353 00000 n
0001615566 00000 n
0001615779 00000 n
0001615945 00000 n
0001616113 00000 n
0001616277 00000 n
0001616443 00000 n
0001616607 00000 n
0001616774 00000 n
0001616974 00000 n
0001617174 00000 n
0001617374 00000 n
0001617574 00000 n
0001617774 00000 n
0001617974 00000 n
0001618205 00000 n
0001618436 00000 n
0001618667 00000 n
0001618898 00000 n
0001619126 00000 n
0001619356 00000 n
0001619513 00000 n
0001619655 00000 n
0001619806 00000 n
0001619957 00000 n
0001612481 00000 n
0001404772 00000 n
0001408712 00000 n
0001408735 00000 n
0001525020 00000 n
0001525803 00000 n
0001526408 00000 n
0001545687 00000 n
0001545711 00000 n
0001545908 00000 n
0001546932 00000 n
0001547744 00000 n
0001571982 00000 n
0001572006 00000 n
0001572198 00000 n
0001573324 00000 n
0001574223 00000 n
0001583045 00000 n
0001583068 00000 n
0001583265 00000 n
0001583557 00000 n
0001583723 00000 n
0001596964 00000 n
0001596988 00000 n
0001597180 00000 n
0001597593 00000 n
0001597851 00000 n
0001603583 00000 n
0001603606 00000 n
0001603803 00000 n
0001604120 00000 n
0001604307 00000 n
0001604371 00000 n
0001604543 00000 n
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)
$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&sa
fe=off&start=
50
&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
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 -