Để hiểu được trang Web đang nói về vấn đề gì, trước hết phải xác định được nội dung chính của trang Web. Chú ý rằng trang web ở đây được hiểu là trang web bất kỳ, nghĩa là cấu trúc của trang web không được biết trước. Hơn nữa, trang web phải thật sự có nội dung chính (nghĩa là nếu chúng ta nhìn vào sẽ biết đâu là chủ đề của trang web) thì việc xác định này mới thật sự có ý nghĩa.
                
              
                                            
                                
            
 
            
                 28 trang
28 trang | 
Chia sẻ: vietpd | Lượt xem: 3213 | Lượt tải: 1 
              
            Bạn đang xem trước 20 trang tài liệu Phương pháp tự động xác định phần nội dung chính của một trang web bất kỳ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
21 
Phương pháp tự động xác định phần nội dung chính của một 
trang web bất kỳ 
1.6 Tổng quan 
Để hiểu được trang Web đang nói về vấn đề gì, trước hết phải xác định được nội 
dung chính của trang Web. Chú ý rằng trang web ở đây được hiểu là trang web bất kỳ, 
nghĩa là cấu trúc của trang web không được biết trước. Hơn nữa, trang web phải thật sự 
có nội dung chính (nghĩa là nếu chúng ta nhìn vào sẽ biết đâu là chủ đề của trang web) 
thì việc xác định này mới thật sự có ý nghĩa. 
Tại sao cần phải bóc tách nội dung chính? 
Khối lượng thông tin lưu trữ trên Internet ngày càng tăng chóng mặt theo thời gian. Từ 
đây đã làm nảy sinh các nhu cầu nghiên cứu, xử lý trên khối lượng dữ liệu thông tin 
này sao cho hiệu quả và nhanh chóng nhất. Một số ứng dụng như Search Engine, RSS, 
Feedback, Tóm tắt văn bản, Tìm kiếm song ngữ… rất cần rút trích được các thông tin 
chính xác, gọn gẽ, có ý nghĩa từ kho dữ liệu trên. 
Khó khăn của bài toán là không phải toàn bộ nội dung của trang web đều cần thiết. 
Chúng hay bị “nhiễu” bởi rất nhiều các thông tin khác nhau. Nếu chỉ đơn thuần loại các 
chuỗi script HTML thì nội dung lọc được sẽ rất nhiều lỗi rác không cần thiết. Ví dụ: 
phần thông tin quảng cáo, tin mới cập nhật, nội dung tin ngắn, menu... những nội dung 
như thế này thường cần phải bỏ qua trong quá trình bóc tách nội dung chính của trang 
web. Cụ thể hơn, nội dung của các các trang web được tổ chức theo dạng dữ liệu 
HTML với cấu trúc theo dạng tag, node… Những tag này chỉ có ý nghĩa với trình 
duyệt để hiển thị tài liệu, văn bản theo một bố cục và trình diễn cho trước, và hoàn toàn 
không có ngữ nghĩa nào đối với người duyệt web. 
22 
Bên cạnh đó, do tính phong phú của Internet nên nội dung trang web thường chứa 
nhiều thông tin khác nhau. Bên cạnh các nội dung chính lại thường chứa thêm nhiều 
nội dung bên lề, không liên quan. Ví dụ như các trang web thường chứa các thanh thực 
đơn (menu) ngang hoặc dọc, các danh sách đường dẫn (link) dùng để định hướng cho 
người sử dụng có thể dễ dàng truy xuất tới nội dung mà mình cần. Các quảng cáo dạng 
banner, các đoạn phim Flash, các hiệu ứng âm thanh, hình ảnh, các định dạng 
stylesheet (css) , mã kịch bản javascript, cũng như các đoạn văn bản (text) không liên 
quan khác đã làm cho nội dung web thật sự là một kho dữ liệu khá phức tạp. 
Hình 0-1: Xác định và bóc tách nội dung chính của trang web 
Vấn đề: Quá nhiều nhiễu 
trong trang web. 
Mục tiêu: Khử nhiễu để 
lọc ra nội dung chính. 
23 
Ngoài ra, trên cùng một trang web lại cũng có thể chứa nhiều chủ đề khác nhau. (ví dụ 
như là rất khó để xác định nội dung chính của trang chủ Yahoo.com!). Do đó, bóc tách 
khối nội dung chính chỉ có ý nghĩa khi trang web có chứa nội dung thật sự. 
Một khó khăn nữa là nội dung HTML của các trang web có cú pháp rất “dễ dãi”. Bạn 
có thể có tag mở, nhưng không có tag đóng, các mã HTML có thể bị khai báo sai cú 
pháp, chồng chéo lên nhau, vẫn được trình duyệt ưu ái hiển thị bình thường mà không 
bắt lỗi. 
Tất cả các vấn đề trên đã làm cho nội dung web bị “nhiễu” khá nhiều, đặt ra một thách 
thức không nhỏ trong việc định dạng nội dung chính của nó. 
1.7 Một số nghiên cứu gần đây 
Để xác định được khối nội dung chính của một trang web bất kỳ, không biết trước 
cấu trúc, hiện nay đã có nhiều cách tiếp cận khác nhau: 
1.7.1 Tiếp cận theo hướng loại bỏ các tag HTML 
Đây là cách tiếp cận đơn giản nhất, và dĩ nhiên hiệu quả cũng thấp nhất. Sử dụng 
biểu thức chính quy (regular expression) sau để loại bỏ các tag HTML: 
Regular Expression = “ ]*>" ”. 
Do như đã trình bày ở trên, nội dung web không chỉ là các tag HTML mà còn chứa các 
nội dung rác khác. Vì thế cách này chỉ có thể áp dụng được cho các đoạn HTML nhỏ 
và riêng lẻ, không thể áp dụng cho toàn bộ trang web. 
24 
Hình 0-2: Tách nội dung web bằng loại bỏ tag HTML 
1.7.2 Tiếp cận theo hướng rút trích các Text node 
Phương pháp này cũng tương tự phương pháp loại bỏ các tag HTML nhưng tiếp 
cận theo hướng khác. Bằng cách thực hiện phân tích mã HTML để tạo thành cây biểu 
diễn nội dung trang web Document tree (DOM)1, trong đó các node của cây đại diện 
cho các thành phần khác nhau trong trang web. Khi đó, phần văn bản chính sẽ được lấy 
ra bằng việc nối nội dung các node được đánh dấu với tag là “TEXT”. 
Tiếp cận theo phương pháp này có thể áp dụng cho toàn bộ trang web và cho kết quả 
chính xác hơn so với phương pháp loại bỏ các tag HTML. Nhưng vẫn không thể khắc 
1 Document Object Model (DOM): mô hình đối tượng tài liệu, có dạng một cây cấu trúc dữ liệu, được dùng để 
truy xuất các tài liệu dạng HTML và XML. 
RSS Thứ bảy, 18/4/2009, 15:24 GMT+7 
Email Bản In Trang nhất Xã hội Thế giới 
Kinh doanh Văn hóa Thể Thao Pháp luật 
Đời sống Khoa học Vi tính Ô tô Rao vặt 
Cười BẠN ĐỌC VIẾT /> VnExpress - 
Chứng khoán thăng hoa một cách khó hiểu - 
Chung khoan thang hoa mot cach kho hieu 
var PAGE_SITE=0; var 
PAGE_FOLDER=139; var 
PAGE_ID=1000399507; var 
DOMESTIC_IP=1; setTypingMode(1); 
sLoDID=sLoDID.concat('1000399507').con
cat(','); checkCookie(); ShowTopBanner(); 
Hiện tượng bùng nổ của thị trường chứng 
khoán thời gian qua thật khó tưởng. Theo 
cách nhìn nhận của cá nhân tôi thì nền kinh 
25 
phục nhược điểm là không thể lọc nội dung rác để lấy phần nội dung chính mà chỉ đơn 
thuần là lấy toàn bộ văn bản text của trang web. 
1.7.3 Tiếp cận theo hướng so sánh khung mẫu 
Phương pháp rút trích thông tin bằng cách so trùng hai trang web được xây 
dựng trên nền tảng nhận dạng mẫu được tác giả Trang Nhật Quang thực hiện trong việc 
rút trích nội dung nhằm cung cấp tin tức trên trang web hành chính. Phương pháp này 
cho phép so khớp trang web cần rút trích với một trang web mẫu để xác định khung 
trình bày chung cho cả hai trang web cần rút trích, từ đó đi đến rút trích ra nội dung 
nằm trong phần được xác định chứa nội dung chính trên trang mẫu. 
 (a) (b) (c) 
Hình 0-3: Mô hình bóc tách nội dung chính bằng so sánh khung mẫu 
(a) Trang web cần rút nội dung chính 
(b) Trang web khung mẫu (được xác định trước) 
(c) Nội dung chính sau khi so khớp và rút được 
Phương pháp này không đòi hỏi người sử dụng phải biết về ngôn ngữ xây dựng 
hoặc phải chỉ ra khu vực nội dung cần bóc tách khi cách trình bày thay đổi do trang 
26 
web mẫu có thể lấy trực tiếp từ trang chủ và có cùng cách trình bày với trang cần 
rút trích. Tuy nhiên, đối với mỗi tên miền khác nhau, cần phải xác định được một 
trang web làm mẫu cho những trang khác. Đây cũng là một hạn chế trong quá trình 
tự động hóa xác định nội dung chính của web. 
1.7.4 Tiếp cận theo hướng phân tích mã HTML và xử lý ngôn ngữ tự nhiên 
Giải pháp thực hiện này được tác giả Ngô Quốc Hưng phát triển trong luận án 
“Tìm kiếm tự động văn bản song ngữ Anh-Việt từ Internet” [21]. Hướng tiếp cận này 
dựa trên phương pháp bóc tách nội dung nhờ vào phân tích mã HTML theo các bộ mã 
nguồn HTMLParser của dự án Majestic-12 để tạo thành cây DOM biểu diễn nội dung 
trang web. Từ đó áp dụng các công cụ và kỹ thuật ngôn ngữ để quyết định phần nội 
dung chính. 
Phương pháp này dựa trên tiền đề là trang web đã được phân tích các tag HTML để 
xây dựng nên cây Document Tree. Từ cây này chúng ta đi xác định node nào ở trên cây 
chứa nội dung chính của trang WEB. Phương pháp cho điểm các node dựa vào kết quả 
xử lý ngôn ngữ tự nhiên trên nội dung mà nó chứa bên trong đó. 
Một số quy tắc cho điểm được áp dụng: 
 + Chỉ cho điểm cho những NODE có tag là TEXT. Vì chỉ có những node này mới là 
node chứa nội dung thực sự. Các node khác tổng hợp từ node này. 
 + Cho điểm NODE TEXT dựa vào số câu của nội dung chứa bên trong node đó. 
Càng nhiều câu thì node có điểm càng cao. 
 + Node được cho điểm phải chứa tối thiểu một đoạn văn. (Tuy nhiên việc xác định 
như thế nào là một đoạn văn vẫn chỉ là một heuristic) 
 + Điểm của các node cha sẽ bằng điểm của các node con cộng lại. 
27 
Hình 0-4: Node chứa nội dung chính trên cây văn bản 
Xác định node nội dung: Để xác định node nội dung chính mà không chứa các nội 
dung không cần thiết chính là đi xác định node sâu nhất trên cây có điểm cao nhất. 
Bằng việc xác định node nội dung như vậy, hệ thống có thể tự động xác định nội dung 
trang web mà không cần biết trước khung mẫu cũng như nguồn gốc của trang web đó. 
Hướng tiếp cận này cho kết quả rất khả quan, tuy nhiên cách này có thể bị bỏ sót nội 
dung nếu nội dung chính được nằm phân tán trên các node độc lập khác nhau trong cây 
Document Tree. 
28 
1.7.5 Tiếp cận theo hướng phân đoạn trang web 
Hướng tiếp cận này tiến hành phân đoạn trang web thành các khối (block) riêng 
biệt theo cách tiếp cận trực quan (vision-based approach), nghĩa là mắt người cảm nhận 
thấy ra sao thì sẽ phân đoạn như vậy. Bằng cách sử dụng giải thuật VIPS (Vision-
based Page Segmentation) [5] được phát triển bởi phòng thí nghiệm của Microsoft. Ý 
tưởng chính là dựa trên độ liền mạch của các node trong cấu trúc cây DOM với một số 
nhận xét heuristic để thực hiện phân đoạn tự động trang web theo khu vực một cách 
trực quan. 
Hình 0-5: Thuật toán VIPS, phân đoạn trang web dựa trên cấu trúc cây DOM 
Thuật toán VIPS sơ lược gồm 3 bước chính: 
o Bước 1: Tách các khối chính (Block Extraction) 
+ Tiến hành phân tách các node của cây DOM ra thành các khối lớn bằng 
cách: lần lượt chia tách các node chứa đựng (container node - là node có khả 
năng chứa các node khác, ví dụ như node có tag là , ,…) cho đến 
khi không còn các container node nào. Từ đó xây dựng được cây chỉ bao 
gồm các container node trên, gọi là cây Visual Block 1 (VB1), biểu diễn các 
khối chính của trang web. 
29 
+ Từ cây VB1 này, ta tiến hành xem xét xem các node nào trong cây nên 
bị chia tách tiếp hay không bằng một số luật Heuristic như sau: 
 Dựa vào tag: những tag ví dụ như , … thường dùng để chia 
tách các chủ đề khác nhau, do đó nếu node là những tag này thì 
tiến hành chia tách tiếp. 
 Dựa vào màu sắc (color): giả sử như nếu màu nền của node cha 
khác với một trong các node con của nó thì tiến hành chia tách 
tiếp vì nếu màu sắc khác nhau thì thường thể hiện nội dung của 
các chủ đề khác nhau. 
 Dựa vào văn bản (text): nếu node là text node thì không chia tách 
tiếp. 
 Dựa vào kích thước (size): Nếu độ sai biệt về kích thước của node 
cha và các node con lớn hơn một ngưỡng cho trước thì tiến hành 
chia tách node đó tiếp. 
+ Tới đây, ta thu được cây mới, tạm gọi là cây VB2. 
o Bước 2: Xác định các đường phân cách (Seperator Detection) 
+ Các block trong cây VB2 được đưa vào một pool để xác định ranh giới 
phân tách (seperator). Các đường phân tách được định nghĩa như đường 
ngang hoặc dọc trong trang web mà không chứa block nào trong pool. 
+ Từ đó xác định tiếp trọng số của các seperator. Các trọng số này sẽ 
được xác định dựa vào các tiêu chí Heuristic sau: 
 Khoảng cách: trọng số sẽ càng cao nếu khoảng cách, khoảng trống 
xung quanh Seperator càng nhiều. 
30 
 Tag: Nếu Seperator nằm cùng vị trí với các tag dạng phân cách (ví dụ 
như …) thì trọng số sẽ càng cao. 
 Font: Nếu font chữ, kích thước chữ (font,size) của các khối xung 
quanh Seperator càng khác nhau thì trọng số Seperator đó sẽ càng 
cao. 
 Color: Nếu màu nền (background color) xung quanh Seperator càng 
khác nhau thì trọng số của Seperator càng cao. 
+ Từ đây, ta xác định được các Seperator trên trang web cùng với trọng 
số của chúng. 
o Bước 3: Tổng hợp cấu trúc nội dung (Content Structure Construction) 
+ Khi các Seperator đã được xác định, ta tiến hành bỏ đi các Seperator có 
trọng lượng thấp bằng cách gom (merge) các block nằm hai phía của 
Seperator này lại với nhau. 
+ Quá trình gom block này sẽ được thực hiện cho đến khi gặp được 
Seperator có trọng lượng lớn nhất. Tiếp tục xác định độ đo liền mạch 
(DoC) của block vừa gom được. 
+ Sau đó mỗi block sẽ được kiểm tra xem độ đo DoC của nó có lớn hơn 
ngưỡng cho trước hay không? Nếu thõa yêu cầu ngưỡng thì dừng, nếu 
chưa thì tiếp tục quay lại Bước 1 để tiếp tục tách block. 
Sau khi chạy thuật giải VIPS, trang Web sẽ được phân đoạn thành các khối riêng biệt. 
Ta tiếp tục tiến hành xác định khối nào là khối chứa nội dung chính của trang Web 
bằng cách xét độ quan trọng từng khối trong trang Web [6]. 
31 
Hình 0-6: Ước lượng độ quan trọng của từng khối phân đoạn 
Độ quan trọng của mỗi khối có thể được xác định bằng cách sử dụng một số độ đo 
heuristic để xác định dựa vào các đặc trưng của khối: như tần suất xuất hiện các liên 
kết (link) trong khối, chiều dài của đoạn văn bản trong khối, màu nền, màu chữ của các 
đoạn văn bản, kích thước của khối. Bên cạnh đó, có thể tiếp cận xây dựng một mô hình 
học có giám sát bằng mạng Neuron với đầu vào là các đặc trưng trên để xác định khối 
nội dung chính [6]. 
Đây là cách tiếp cận mạnh và hiệu quả nhất, tuy nhiên rất phức tạp và khó khăn trong 
cài đặt trên thực tế nếu đầu vào chỉ là những mã văn bản HTML mà không có sự hỗ trợ 
đặc biệt của trình duyệt. 
32 
1.8 Mô hình đề xuất của luận văn 
Luận văn sẽ tiếp cận vấn đề này theo hướng phân đoạn trang web bằng mô hình lược 
đồ (histogram). 
Hướng tiếp cận này sẽ dựa trên phân tích cấu trúc cây Document Tree (DOM) của 
trang web. Sử dụng bộ mã nguồn HTMLParser của dự án mã nguồn mở 
HtmlAgilityPack [22] để tạo thành cây Document Tree. Sau khi phân tích được cấu 
trúc cây DOM của trang web, dựa trên cấu trúc này chúng ta sẽ thực hiện biểu diễn lại 
nội dung trang web như là một lược đồ histogram bằng cách rút trích ra các Content 
node. Tiếp đến, chúng ta tiến hành mịn hóa Histogram để loại bỏ các Content node có 
độ quan trọng thấp và chống bỏ sót các Content node có độ quan trọng cao. Sau cùng, 
dựa vào nhận xét heuristic rằng “vùng nội dung chính của trang web sẽ là vùng tập 
trung mật độ văn bản cao nhất”, chúng ta tiến hành gom nhóm trên histogram này để 
lọc ra được nhóm có giá trị mật độ ngưỡng cao nhất. Đây được xem là nội dung chính 
của trang web. 
Hình 0-7: Mô hình bóc tách nội dung chính trang web 
Biểu diễn bằng lược đồ: 
+ Rút trích cây DOM 
+ Tính trọng số của Text node 
Tiền xử lý: 
+ Lọc trung bình 
+ Khử bớt nhiễu 
Phân đoạn trang web: 
+ Gom cụm bằng K-means 
+ Xác định trọng số cụm 
Html 
Nội dung chính 
33 
1.8.1 Biểu diễn nội dung web dưới dạng lược đồ Histogram 
Trang web của chúng ta, dưới dạng mã HTML, thực chất được các trình duyệt 
hiểu như là một cấu trúc dạng cây, bao gồm các node cha và con có quan hệ với nhau 
theo một trình bày nhất định nào đó, được gọi là cây DOM (Document Object Model). 
Sau khi phân tích được các tag HTML trong trang web để xây dựng nên cây DOM, 
chúng ta tiến hành duyệt cây DOM để thực hiện các xử lý cần thiết. Đầu tiên, tiến hành 
xóa bỏ các node không liên quan, không thể nhìn thấy bởi người dùng trên trình duyệt 
như các node có tag là script, style, remark,.v.v… Sau đó bóc tách ra các node là Text 
node, vì chỉ có những node này mới là node chứa nội dung văn bản thật sự. Sau đó tổ 
chức lại các node này dưới dạng mảng các Text node, cùng với tỷ trọng (weight) của 
chúng. Tỷ trọng của node ở đây được hiểu như là độ đo sự quan trọng của node đó 
trong trang web, và trong khuôn khổ luận văn này nó được hiểu heuristic như là kích 
thước của node đó, cụ thể là số ký tự của node đó. Chúng ta có thể tùy ngữ cảnh mà cải 
thiện độ chính xác của giải thuật bằng cách mô tả chính xác hơn độ đo này bằng cách 
kết hợp thêm các yếu tố khác, ví dụ như là vị trí của node, định dạng của node, độ liền 
mạch với các node xung quanh,… Độ đo này càng được thể hiện rõ thì độ chính xác 
của giải thuật càng cao. 
34 
Các bước thực hiện được mô tả như trong giải thuật sau: 
Bảng 0-1: Giải thuật biểu diễn nội dung web dưới dạng lược đồ histogram 
Để làm rõ hơn giải thuật trên, ta cần hiểu thêm một số định nghĩa về các loại node 
trong cây DOM. Trong khuôn khổ luận văn này, chúng ta chia các node nầy thành 4 
loại chính: InvisibleNode, InlineNode, TextNode, VirtualTextNode. 
+ InvisibleNode: 
Chính là các node không thể nhìn thấy được bởi người dùng, nó chỉ được hiểu bởi 
trình duyệt để tô vẽ thêm cho trang web (ví dụ các node có tag là , 
, ,…). Nó cũng có thể là các node mà chúng ta không cần 
Input 
DOM Å mã nguồn HTML 
 Begin 
 Xóa bỏ các InvisibleNode. 
 Với mỗi node trong cây DOM: 
 Nếu (node là VirtualTextNode) thì: 
 TEXTNodeArray[i] Å Weight (node) 
 Nếu không thì 
 TEXTNodeArray[i] Å 0 
 Return TEXTNodeArray 
 End 
35 
quan tâm nhiều khi tiến hành bóc tách nội dung (như các node có nội dung rỗng, 
các node xuống hàng, line break…). 
+ InlineNode: 
Là node không gây ảnh hưởng gì nhiều đến nội dung của văn bản. Chúng chỉ ảnh 
hưởng đến định dạng của các chuỗi văn bản mà không gây ra sự xuống hàng hoặc 
khoảng phân cách nào đáng kể (Ví dụ như các node có tag là , , , 
, , , , …). 
+ TextNode: 
Là node có tag là TEXT, chỉ đơn giản chứa văn bản thuần túy, không chứa mã 
hoặc tag HTML (Ví dụ như “tôi đi học ở KHTN”là một text node). 
+ VirtualTextNode: 
Là dạng mở rộng của TextNode, nhưng nội dung node có thể chứa các InlineNode. 
VirtualTextNode được định nghĩa một cách đệ quy như sau: 
Việc xác định một node là VirtualTextNode rất quan trọng vì nếu xác định không 
đúng sẽ làm mất mát các node có nội dung ngắn, làm ảnh hưởng đến sự liền mạch 
của kết quả bóc tách được. 
Một node được gọi là VirtualTextNode nếu: 
 - Nếu node có các node con đều là InlineNode hoặc TextNode thì là 
VirtualTextNode 
 - Nếu node có các node con đều là InlineNode hoặc TextNode hoặc 
VirtualTextNode thì là VirtualTextNode. 
36 
Ghi chú: Do có cùng ý nghĩa nên để ngắn gọn, từ đây chúng ta sẽ gọi chung 
VirtualTextNode và TextNode là ContentNode. 
Hình 0-8: Minh họa một trích đoạn nội dung web và cây DOM của nó với các loại 
node khác nhau 
Từ giải thuật này, chúng ta sẽ xây dựng được một mảng các ContentNode chứa nội 
dung văn bản từ trang web. Từ mảng này, ta sẽ biểu diễn được lược đồ histogram theo 
tỷ trọng của node. 
Virtual 
Text Node 
Invisible 
Node 
Text Node 
37 
Lấy ví dụ với một trang web tin tức của vnexpress.net đăng ngày 18/8/2009 tại 
 Trang web này tương tự như 
vô vàn các trang tin khác trên Internet: có tựa đề, banner, hình ảnh, menu, và quảng cáo 
chiếm hầu hết khoảng trống, còn nội dung chính của nó thì chỉ được giới hạn ngay ở 
phần giữa của trang. Ở phía cuối trang cũng có các quảng cáo, các liên kết, các nội 
dung thông tin bản quyền và các thông tin dùng để quản trị khác… 
Hình 0-9: Trang web vnexpress.net dùng để minh họa việc xác định nội dung chính 
Khi chúng ta tiến hành phân tích trang web này bằng thuật toán trên, ta sẽ xây dựng 
được mảng các content node, và thu được lược đồ histogram sau: 
38 
VnExpress.net Histogram
0
50
100
150
200
250
300
350
400
450
500
1 23 45 67 89 111 133 155 177 199 221 243 265 287 309 331 353 375 397 419
Node's Number
N
od
e'
s 
W
ei
gh
t
Hình 0-10: Lược đồ của trang web 
song/2009/07/3BA119E9/ 
Ở lược đồ histogram trên: Trục X chính là thứ tự của các node trong mảng (cũng chính 
là thứ tự của node trên cây DOM). Còn trục Y chính là tỷ trọng của node đó (cụ thể ở 
đây là chiều dài của node). 
Phân tích kỹ lược đồ trên, chúng ta nhận thấy rằng vùng có chứa tỷ trọng cao chính là 
vùng chứa nội dung chính của trang web (vùng chứa các node nằm từ vị trí thứ 23 đến 
67 trong hình 2-10 tương ứng với phần nội dung chính trong trang web ở hình 2-9, là 
phần văn bản chính ở bên trái). Thử nghiệm trên một số trang web khác, ta cũng có 
nhận xét tương tự như vậy. 
Vì thế, dựa trên ý tưởng này, ta sẽ tiến hành bóc tách nội dung chính của trang web 
bằng cách trích xuất nội dung của các node từ 23 đến 67, là vùng tập trung mật độ cao 
nhất (xem hình 2-10). Tự mình kiểm chứng lại, ta thấy đó thật sự đúng là nội dung 
chính cần bóc tách của trang web này (các vùng quảng cáo, các menu, các liên kết 
banner,… đã bị loại bỏ). 
39 
Do đó, dựa vào đặc điểm này, ta sẽ thực hiện xác định nội dung chính c