Để giải quyết nhược điểm này các nhà phát triển web trên thế giới đã và đang phát triển hệ thống “quảng cáo hướng ngữ cảnh” - dựa vào nội dung của trang web để đưa ra những quảng cáo li
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
BÁO CÁO THỰC TẬP TỐT NGHIỆP
Đề tài: Quảng cáo hướng ngữ cảnh và ứng dụng trong website tin tức
Giảng viên hướng dẫn : PGS.TS Lê Thanh Hương
Sinh viên thực hiện : Nguyễn Trọng Tú
MSSV : 20083080
Lớp : HTTT-K53
Trang 2Mục lục
Trang 31 Bài toán:
Ngày nay Word Wide Web đã trở thành một kho tài nguyên dữ liệu khổng lồ về mọi lĩnh vực Lượng truy cập và trao đổi thông tin qua Word Wide Web diễn ra liên tục tạo ra mạng lưới truyền thông bao phủ khắp toàn cầu khiến kênh truyền thông này trở thành một mảnh đất màu
mỡ cho hoạt động quảng cáo trực tuyến
Ở Việt Nam hiện nay, tốc độ tăng trưởng người dùng Internet tăng cao nhưng tổng doanh thu quảng cáo trực tuyến ở việt nam vẫn còn ở mức khá khiêm tốn khoảng 480 tỷ đồng năm
2010, chiếm 0,4% tổng chi cho quảng cáo
Chỉ số ngân sách quảng cáo trực tuyến hàng năm trên mỗi người sử dụng việt nam hiển chi khoảng 0,5 USD, kém xa so với chỉ số này ở các nước phát triển như Mỹ là 171,5 USD hoặc của Trung Quốc 10 USD Dự kiến đến năm 2015 thị trường quảng cáo trực tuyến Việt Nam mới phát triển ổn định
Hình thức quảng cáo trực tuyến phổ biến nhất trên các trang báo điện tử ở Viêt Nam là thường dành một phần lớn diện tích để hiện thị quảng cáo Điểm mạnh của mô hình này là mọi người khi truy cập vào trang đều có thể nhìn thấy quảng cáo Nhưng điều quang trọng là Người dùng có quan tâm tới những quảng cáo đó không để họ kích vào liên kết quảng cáo hay chỉ làm cho họ cảm thấy khó chịu Để giải quyết nhược điểm này các nhà phát triển web trên thế giới đã
và đang phát triển hệ thống “quảng cáo hướng ngữ cảnh” - dựa vào nội dung của trang web để
đưa ra những quảng cáo liên quan
Đồ án đề xuất hướng khai thác quảng cáo trực tuyến bằng cách sử dụng các từ khóa tiếng Việt ở phần văn bản của nội dung chính trang web chuyển tải quảng cáo Hình thức là xu
hướng mới, cải thiện những hạn chế quảng cáo trực tuyến ở nước ta
2 Đối tượng ứng dụng
Nhận thấy tính thực tiễn của bài toán, em quyết định lựa chọn đề tài của đồ án: “Quảng cáo trực tuyến và ứng dụng nó trong website tin tức” Phạm vi nghiên cứu của đồ án là tìm hiểu lĩnh vực quảng cáo trực tuyến và mô hình dịch vụ quảng cáo trực tuyến, thực hiện khai phá dữ liệu web để xác định bóc tách nội dung chính của trang web rùi từ đó xử lý tách từ tiếng việt và xác
định từ khóa của văn bản Xây dựng thành công demo: website tin tức kết hợp với quảng cáo
hướng ngữ cảnh.
3 Nguồn dữ liệu khai thác
- Kho dữ liệu gán nhãn từ loại VN POS tag data base
Trang 44 Các hướng nghiên cứu liên quan tới bài toán
Do bài toán của em tập trung chủ yếu vào việc tách nội dung chính của bài toán, sau đó tách từ
và trích rút từ khóa Nên em tập trung tìm hiểu các hướng nghiên cưu liên quan tới vấn đề này
4.1 Bóc tách nội dung trang Web
4.1.1 Tổng quan xử lý trích xuất nội dung trang web
Để 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 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 không phải toàn bộ nội dung 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 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
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 hướ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), các 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 trang web thật sự là một kho dữ liệu khá phức tạp
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 nội dung chính chỉ có ý nghĩa khi trang web có chứa nội dung thực sự
Trang 5Mộ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ể 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.
Hình 4-1 Xác định và bóc tách nội dung chính của trang web.
Tất cả các vấn đề trên đã làm cho nội dung trang 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ó
4.1.2 Các phương pháp xử lý
Để 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:
4.1.2.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 = “ <[^>]*>" ”
Trang 6Do 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.
Hình 4-2 Tách nội dung web bằng loại bỏ thẻ HTML.
4.1.2.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), 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 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
4.1.2.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
Trang 7cung 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.
Hình 4-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 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
4.1.2.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” 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 đó
Trang 8Mộ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
Hình 4-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 đó
Trang 9Hướ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.
4.1.2.5 Tiếp cận theo hướng phân đoạn trang web – VIPS.
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) đượ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 4-5 Thuật toán VIPS, phân đoạn trang web dựa trên cấu trúc DOM.
Thuật toán VIPS sơ lược gồm 3 bước chính:
• 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à <table>, <p>,…) 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
+ 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:
Trang 10o Dựa vào tag: những tag ví dụ như <hr>, … 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.
o 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
o Dựa vào văn bản (text): nếu node là text node thì không chia tách tiếp
o 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
• 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ư đườngngang 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:
o 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
o Tag: Nếu Seperator nằm cùng vị trí với các tag dạng phân cách (ví dụ như <hr>
+ 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
• 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
Trang 11Hình 4-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
Đâ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
4.2 Xử lý tách từ khóa tiếng Việt
Mục tiêu xử lý tách từ khóa tiếng việt của đồ án nhằm thực hiện tìm ra những từ khóa chính của nội dung trang web, từ đó đưa ra những quảng cáo liên quan phù hợp
4.2.1 Tách từ tiếng Việt
4.2.1.1 Phương pháp tách từ tiếng việt dựa trên thống kê Internet
Phương pháp IGATEC do H.Nguyễn et al (2005) giới thiệu là một hướng tiếp cận mới
cho việc tách từ với mục đích phân loại văn bản mà không cần dùng đến một từ điển hay tập
huấn luyện nào Trong hướng tiếp cận này, tác giả kết hợp giữa thuật toán di truyền (Genetics Algorithm - GA) với dữ liệu thống kê được trích xuất từ Internet tiến hoá một quần thể gồm các
cá thể là các khả năng tách từ trong câu
Trang 12Hệ thống gồm ba phần:
Hình 4-7 Toàn cảnh hệ thống IGATEC.
Online Extractor : Phần này có tác dụng lấy thông tin về tần số xuất hiện của các từ trong văn
bản bằng cách sử dụng một search engine nổi tiếng như Google Sau đó, tác giả sử dụng các công thức sau đây để tính toán mức độ phụ thuộc lẫn nhau (mutual information) để là cơ sở tính fitness cho GA engine
Tính xác suất các từ xuất hiện trên Internet
Trang 13Thông tin phụ thuộc lẫn nhau (mutual information) của các từ ghép được cấu tạo bởi n tiếng (cw= w1w2…wn)
GA Engine for Text Segmentation: mỗi cá thể trong quần thể được biểu diễn bởi chuỗi các bit 0,1,
trong đó, mỗi bit đại diện cho một tiếng trong văn bản, mỗi nhóm bit cùng loại đại diện cho một segment
Các cá thể được khởi tạo ngẫu nhiên, trong đó, mỗi segment được giới hạn trong khoảng 5 GA engine sau đó thực hiện các bước đột biến và lai ghép nhằm mục đích làm tăng giá trị fitness của các cá thể, để đạt được cách tách từ tốt nhất có thể
Text Categorization: tác giả dùng độ hỗ trợ (support degree) của văn bản cần phân loại cho các từ
khoá để phân loại văn bản
Ưu điểm:
- Không cần sử dụng bất cứ tập huấn luyện hoặc từ điển nào
- Phương pháp tương đối đơn giản
- Không tốn thời gian huấn luyện
- Chưa có các thử nghiệm trên tập dữ liệu đủ lớn
4.2.1.2 Phương pháp khớp tối đa (Maximum Matching)
Phương pháp khớp tối đa (Maximum Matching) còn gọi là Left Right Maximum Matching (LRMM) Theo phương pháp này, ta sẽ duyệt một ngữ hoặc câu từ trái sang phải và