CATEGORY
Tên trƣờng Kiểu dữ liệu Độ dài Diễn giải
CategoryID Int 4 CategoryName Nvarchar 256 ParentID Int 4 Description Nvarchar 256 IsActive bit 256 Bảng 3.4. Kênh tin CHANNELS
Tên trƣờng Kiểu dữ liệu Độ dài Diễn giải
ChannelID Int 4 Url Nvarchar 256 ChannelName Int 4 XpathTitle Nvarchar 256 XpathDescription Nvarchar 256 XpathContent Nvarchar 256 3.4. Phát triển chƣơng trình 3.4.1. Xây dựng phân hệ Crawler
WebCrawler đƣợc xây dựng trong hệ thống là các robot thu thập thơng tin tự động từ các kinh tin đƣợc cấu hình sẵn trong hệ thống. Khi chƣơng trình quản lý tin tức đƣợc khởi động, nĩ sẽ tải danh sách các kênh tin trong CSDL và ứng với mỗi kênh tin sẽ tạo ra một crawler để tải các tin từ kênh đĩ về. Việc khởi tạo và chạy nhiều Crawler sẽ khiến chƣơng trình bị chậm lại, ảnh hƣởng đến tốc độ hệ thống. Do đĩ, các Crawler đƣơc tạo ra sẽ chạy ở chế độ nền, theo một tiến trình (thread) khác với chƣơng trình chính. Do đĩ chƣơng trình chính sẽ khơng bị ảnh hƣởng.
Hình 3.1. Giải thuật hoạt động phân hệ Crawler 3.4.2. Xây dựng phân hệ Extractor 3.4.2. Xây dựng phân hệ Extractor
Tài liệu do Crawler tải về ở dạng HTML trong đĩ chứa nội dung TEXT và các thẻ (tag) HTML. Đặc thù của file HMTL là định dạng trang web bằng thẻ. Mỗi thẻ sẽ cĩ các thuộc tính và giá trị, các thẻ cũng cĩ thể lồng nhau. Do đĩ cần phải bĩc tách lấy các thẻ để lấy nội dung thơng tin. Việc bĩc tách nội dung đƣợc thực hiện cụ thể tùy theo từng kênh tin.
Với một file HTML đúng chuẩn (XHTML), ta cĩ thể biểu diễn file này dƣới dạng cây nhƣ sau:
Bắt đầu
Hết danh
Kết thúc
Tải thơng tin cấu hình các kênh từ CSDL Duyệt danh sách kênh tin
Khởi tạo tiến trình robot thu thập tin tức
Hình 3.2. Ví dụ sơ đồ cây DOM
Ở hình trên, thẻ <a> đƣợc đánh dấu chính là tiêu đề một tin của trang careerlink.vn (Thời điểm năm 2014). Ngồi ra ta cĩ thể xác định chính xác thơng tin của thẻ này thơng qua XPath và các thuộc tính của thẻ. Nhƣ vậy để phân biệt đƣợc các thơng tin cĩ định dạng giống nhau, ta cĩ thể dựa vào:
- Tên của thẻ chứa thơng tin đĩ (Ví dụ thẻ <a>). - Vết của thẻ đĩ trên cây (VD:…).
Ví dụ: XpathTitle của kênh tin: http://www.careerlink.vn/ nhƣ sau: - Dạng 1: /html[1]/body[1]/div[2]/div[2]/div[1]/div[2]/div[1]/div[1]/ul[1]/li[5]/a[1]/#text[1] - Dạng 2: //div[@id=‟main‟]/div[@id=‟homecontent‟]/div[@class=‟container‟]/div[@id=‟leftl]/ div[@class=‟box‟]/div[@class=‟listjob‟]/ul[1]/li/a
Do đĩ để cung cấp thơng tin cho bộ Extractor bĩc dữ liệu text từ nội dung HTML, cần phải cung cấp đƣờng dẫn Xpath nhƣ trên đến đối tƣợng cần lấy. Thơng tin này đƣợc cấu hình trong các kênh tin nhƣ sau:
- Url: Địa chỉ kênh tin - Name: Mơ tả tên kênh tin
- XPathTitle: Đƣờng dẫn XPath của phần tiêu đề - XPathDecription: Đƣờng dẫn XPath phần tĩm tắn tin - XPathContent: Đƣờng dẫn XPath phần nội dung tin chi tiết
Trên cơ sở các thơng tin về kênh tin nhƣ trên, Extractor sẽ đọc cây tài liệu DOM của các tin tức thuộc Url của kênh và dựa vào các chỉ dẫn XPath, tự động tách và lƣu các phần của tin tức nhƣ tiêu đề, tĩm tắt tin, nội dung chi tiết tin.
Bắt đầu
Kết thúc
Chuẩn hĩa tài liệu HTML
Duyệt qua tất cả các node trong cây DOM Xác định node thỏa mãn biểu thức XPath
Lấy thơng tin thuộc tính Text của node Lƣu thơng tin
Hình 3.2. Giải thuật hoạt động của phân hệ Extractor 3.4.3. Xây dựng phân hệ xử lý dữ liệu 3.4.3. Xây dựng phân hệ xử lý dữ liệu
Phân hệ này cĩ chức năng xử lý các tin tức thu thập đƣợc nhằm mục đích phân loại chuyên mục cho tin tức. Các bƣớc xử lý bao gồm:
Loại bỏ dấu câu. Tách từ.
Tính tốn ma trận trọng số TF-IDF của tập tin tức.
So sánh độ tƣơng tự giữa tin mới và các tin cĩ sẵn trong chuyên mục. Xác định chuyên mục cho tin mới cập nhật.
3.4.4. Xây dựng cổng thơng tin tổng hợp
Các phân hệ đƣợc xây dựng thành 02 module chính: Module tin tức và Module chuyên mục.
Module tin tức cĩ nhiệm vụ lấy và hiển thị tin trên trang chủ, quản lý tin (sửa, xĩa, duyệt tin), hiển thị theo chuyên mục, tìm kiếm.
Module chuyên mục cĩ chức năng quản lý các chuyên mục (nhĩm) tin, cho phép thêm, sửa, xĩa nhĩm tin, gán các tin đƣợc tải về tự động vào các chuyên mục nếu hệ thống phân loại sai.
3.5. Kết quả thử nghiệm hệ thống
Chƣơng trình đƣợc cài đặt trên 01 máy chủ Web cĩ kết nối mạng. Các máy trạm cĩ thể truy cập vào hệ thống qua mạng Lan (cĩ chứa máy chủ Web) hoặc qua Intenet. Các máy cĩ cấu hình và phần mềm cần thiết nhƣ sau:
Bảng 3.5. Cấu hình và yêu cầu của máy thử nghiệm MÁY CHỦ MÁY CHỦ
Cấu hình Intel Core 2 Duo 3Ghz, Ram 2G
Hệ điều hành Microsoft Windows Server, Window Xp, Window7, Window8. Cơ sở dữ liệu Microsoft SQL Server
Webserver ASP.NET
MÁY TRẠM
Hệ điều hành Window Xp, Window7, Window8 hoặc Linux Trình duyệt IE, FireFox, Chrome, Opera..
- Giao diện trang chủ:
Hiển thị danh sách các tin mới nhất trên trang chủ, hỗ trợ hiển thị tin theo từng
chuyên mục đƣợc lựa chọn.
- Quản lý nguồn tin (kênh tin)
Hình 3.4. Quản lý kênh tinh
- Quản lý cập nhật tin
- Quản lý chuyên mục tin
Hình 3.6. Quản lý chuyên mục tin
- Quản lý tin tức: Duyệt/Xuất bản, sửa, xĩa tin
Đánh giá kết quả:
Phân hệ Crawler và Extractor hoạt động tốt theo đúng yêu cầu đề ra, cho phép tải tin tức về từ các kênh đƣợc cấu hình sẵn. Kết quả bĩc tác nội dung tốt, khơng cĩ sai sĩt.
Phân hệ xử lý dữ liệu và phân loại: Kết quả phân loại tƣơng đối chính xác, tuy nhiên do số lƣợng tin thử nghiệm chƣa nhiều nên chƣa cĩ số liệu về tỉ lệ sai sĩt.
Các phân hệ quản lý hệ thống khác vận hành theo đúng thiết kế.
3.6. Tổng kết chƣơng 3
Chƣơng 3 mơ tả về các chức năng hệ thống đồng thời giới thiệu về cơng cụ rút trích dữ liệu HtmlAgiliti Pack và Ngơn ngữ truy vấn Xpath, từ đĩ thực hiện xây dựng hệ thống theo đúng các yêu cầu đề ra.
KẾT LUẬN
Đề tài đã trình bày đƣợc kiến thức tổng quan về khai phá dữ liệu, ứng dụng của phân loại dữ liệu trong khai phá dữ liệu web, một số thuật tốn tách từ và thuật tốn phân loại tiếng Việt. Đồng thời ứng dụng để xây dựng hệ thống tự động rút trích thơng tin từ các Website khác và phân loại tin tức tự động.
Kết quả đạt đƣợc:
- Trình bày tổng quan về khai phá dữ liệu, khai phá web, các bài tốn thơng dụng trong khai phá dữ liệu và ứng dụng.
- Trình bày về bài tốn phân lớp văn bản, cách biểu diễn và một số vấn đề trong xử lý dữ liệu văn bản, các phƣơng pháp tách từ tiếng Việt và các phƣơng pháp phân loại văn bản.
- Đề xuất giải pháp kỹ thuật tổng hợp thơng tin tự động trên internet và phân loại các tin thu thập đƣợc. Xây dựng mơ hình, cài đặt và thử nghiệm hệ thống.
Hạn chế:
- Thời gian bĩc tách, xử lý, phân loại tƣơng đối chậm do phải tính tốn trên tồn bộ dữ liệu.
- Hệ thống Crawler đƣợc xây dựng đơn giản, hiện tại mới chỉ giới hạn ở 2 cấp Url.
Hƣớng phát triển:
- Cải thiện chức năng của phân hệ bĩc tách dữ liệu cĩ độ tùy biến, linh động cao hơn thay vì phải cấu hình sẵn từng kênh tin một.
- Nghiên cứu các giải thuật phân loại nhằm tăng cƣờng tốc độ hệ thống và độ chính xác của việc phân loại thơng tin.
Mặc dù đã thực hiện đƣợc các nội dung cơ bản và xây dựng thử nghiệm thành cơng nhƣng luận văn cịn nhiều thiếu sĩt cần đƣợc bổ sung. Em rất mong nhận đƣợc ý kiến đĩng gĩp của thầy, cơ, bạn bè, đồng nghiệp để luận văn đƣợc hồn thiện hơn.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Hà Quang Thụy (chủ biên) và các tác giả (2009), Giáo trình khai phá dữ
liệu web, Nhà xuất bản giáo dục.
[2] N.T. Hùng (2006), Hướng tiếp cận mới trong việc tách từ để phân loại văn bản tiếng Việt sử dụng giải thuật di truyền và thống kê trên Internet,
Đại học Quốc gia TP. HCM.
[3] Nguyễn Văn Ba (2003), Phân tích và thiết kế hệ thống thơng tin, NXB Đại học Quốc gia Hà Nội.
[4] Đinh Điền (2004), Giáo trình xử lý ngơn ngữ tự nhiên, Đại học Khoa học Tự Nhiên Tp.HCM.
Tiếng Anh
[5] Soumen Chakrabarti (2003), Mining the Web: Discovering Knowledge from Hypertext Data. Morgan Kaufmann Publishers.
[6] William W. Cohen and Andrew McCallum (2003), Information Extraction
from the World Wide Web. KDD.
[7] Pierre Baldi, Paolo Frasconi, Padhraic Smyth (2003), Modeling the Internet and theWeb: Probabilistic Methods and Algorithms, JohnWiley &
Sons Ltd.
[8] David L. Olson, Dursun Delen (2008), Advanced Data Mining Techniques, Springer-Verlag.
[9] Oded Maimon, Lior Rokach (2010), Data Mining and Knowledge Discovery Handbook, Second Edition, Springer Science + Business
Media, LLC.
[10] Hillol Kargupta, Jiawei Han, Philip S. Yu, Rajeev Motwani, and Vipin Kumar (2009), Next Generation of Data Mining, Taylor & Francis Group, LLC.
[11] Le An Ha (2003), A method for word segmentation Vietnamese,