Tuesday, December 16, 2008

Bóc tách nội dung từ trang Web

Việc bóc tách nội dung trên web thường được thực hiện bằng cách sử dụng các crawler hay wrapper. Một wrapper được xem như là một thủ tục được thiết kế để có thể rút trích được những nội dung cần quan tâm của một nguồn thông tin nào đó. Đã có nhiều công trình nghiên cứu khác nhau trên thế giới sử dụng nhiều phương pháp tạo wrapper khác nhau để thực hiện rút trích thông tin trên web. Các phương pháp này bao gồm:

+ Phân tích mã HTML

+ So sánh khung mẫu

+ Xử lí ngôn ngữ tự nhiên

Cũng giống như Google News, hệ thống khai thác và tổng hợp nội dung có nhiệm vụ khai thác, tổng hợp, lưu trữ rồi phát hành lại tới người dùng. Wrapper nhận cấu hình đầu vào của một website (tin tức, nhật ký trực tuyến, ...) tiến hành bóc tách, tổng hợp chủ đề liên quan, lưu trữ trong database và phát hành lại tới người đầu cuối. Nội dung được bóc tách toàn vẹn, sạch sẽ và được tổng hợp từ nhiều nguồn khác nhau giúp người đọc có thể theo dõi, kiểm soát, tìm kiếm, biên soạn, lưu trữ, xuất bả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. 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

1. Phân tích mã HTML

Hiện nay, VietSpider[1] của tác giả Nhữ Đình Thuần là một phần mềm bóc tách đúng nghĩa, chúng truy xuất trực tiếp vào nội dung toàn diện rồi tiến hành bóc tách. Sau đó những đặc tả dữ liệu (meta data) được xây dựng tự động trên nền nội dung đã bóc tách. Sau quy trình khai thác, nội dung sẽ trở thành độc lập với website nguồn, được lưu trữ và tái sử dụng cho những mục đích khác nhau.

Hình 1: Hệ thống bóc tách nội dung của VietSpider

Hệ thống của tác giả Nhữ Đình Thuần cũng đã cài đặt mô hình khai phá dữ liệu cho phép tổng hợp những nội dung liên quan. Xây dựng mô hình topic tracking cho phép theo dõi các sự kiện đang diễn ra theo tuần tự thời gian. Mô hình thuật toán được cài đặt là LOR (Linked Object Representation) với sự hỗ trợ của kỹ thuật Stopping trong phân tách nội dung. Giải pháp đánh chỉ mục (indexing) và tìm kiếm (searching) được sửa đổi và cải tiến từ một giải pháp nguồn mở nổi tiếng của Apache là Lucene Search.

Tuy nhiên, hạn chế của chương trình là cần phải xác định đường dẫn đến vùng nội dung chính trước khi bóc tách đối với mỗi domain. Như thế sẽ khó khăn nếu hệ thống khi gặp phải một trang web mới hoàn toàn.

2. 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 [5]. 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 2: 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 wrapper hay phải thay đổi wrapper 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 domain, 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.

3. Xử lý ngôn ngữ tự nhiên

Đây là phương pháp sử dụng các kỹ thuật xử lý ngôn ngữ tự nhiên được áp dụng cho những tài liệu mà thông tin trên đó thường không có một cấu trúc nhất định (như truyện). Các kỹ thuật này xem xét sự ràng buộc về mặt cú pháp và ngữ nghĩa để nhận dạng ra các thông tin liên quan và rút trích ra thông tin cần thiết cho các bước xử lý nào đó. Các công cụ sử dụng phương pháp này thích hợp cho việc rút trích thông tin trên những trang web có chứa những đoạn văn tuân theo quy luật văn phạm. Một số công cụ sử dụng phương pháp xử lý ngôn ngữ tự nhiên trong việc bóc tách nội dung như: WHISK hay RAPIER

Đặc trưng của phương pháp này còn phụ thuộc vào ngôn ngữ trên trang web cần được bóc tách nội dung. Đối với tiếng Việt có đề tài “Rút trích nội dung chính trang web dựa vào ngữ cảnh của trang web” của tác giả Hồ Anh Thư [3]. Đề tài tiến hành xác định nội dung chính của trang web dựa vào ngữ cảnh của nội dung, sau đó tiến hành rút trích bản tóm tắt của nội dung dựa trên phương pháp chọn câu trội. Việc xác định nội dung chính được thực hiện qua các bước:

- Loại bỏ thông tin định dạng

- Tách vùng nội dung dựa vào cấu trúc, mà cụ thể là sử dụng tag TABLE để tách vùng văn bản.

- Xác định mức độ liên quan về mặt nội dung để ghép nối các vùng kế cận với nhau.

- Chọn vùng văn bản có kích thước lớn nhất để xử lý tiếp

Tuy nhiên phương pháp này có một số nhược điểm sau:

- Tùy theo mức độ xử lý mà quá trình bóc tách phụ thuộc nhiều hoặc ít vào ngôn ngữ xử lý

- Phương pháp dựa vào độ đo tương tự giữa các vùng để ghép nối từ đó xác định nội dung chính. Những nếu các nội dung chính được chia trên nhiều table với các thông tin ít liên quan đến nhau thì sẽ khó khăn trong việc mở rộng và xác định vùng nội dung chính chứa tất cả chúng.

- Trường hợp thông tin trong một vùng (table) quá ít, sẽ ảnh hưởng đến quá trình tính tương đồng và mở rộng vùng nội dung chính.

4. Kết hợp phân tích mã và xử lý ngôn ngữ tự nhiên

Giải pháp thực hiện của tôi cũng 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[2] để tạo thành cây Document Tree. 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 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 3: Node chứa nội dung chính trên cây văn bản [3]

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 đó.


Mọi tham khảo vui lòng ghi rõ nguồn gốc:
Ngô Quốc Hưng, 2008, "Tìm kiếm tự động văn bản song ngữ Anh-Việt từ Internet", Luận văn Thạc sỹ, tr.5-10, ĐH KHTN TP.HCM

No comments:

Post a Comment