Chuẩn hóa và xác định mối quan hệ giữa các cụm từ, tìm và lấy thông tin liên quan đến cụm từ

đang tải dữ liệu....

Nội dung tài liệu: Chuẩn hóa và xác định mối quan hệ giữa các cụm từ, tìm và lấy thông tin liên quan đến cụm từ

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đào Tùng Thịnh CHUẨN HOÁ VÀ XÁC ĐỊNH MỐI QUAN HỆ GIỮA CÁC CỤM TỪ, TÌM VÀ LẤY THÔNG TIN LIÊN QUAN ĐẾN CỤM TỪ Ngành: Công nghệ thông tin Chuyên ngành: Hệ thống thông tin Mã số: 60 48 05 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. LÊ HUY THẬP Hà Nội - 2009 i LỜI CAM ĐOAN Trong quá trình thực hiện luận văn tác giả đã nghiên cứu xây dựng đề tài luận văn của mình trên cơ sở tham khảo các nguồn tài liệu đã được giới thiệu ở phần TÀI LIỆU THAM KHẢO và không sao chép từ bất kỳ một nguồn nào khác. Tác giả luận văn xin cam đoan đây là công trình nghiên cứu của riêng mình. Các dữ liệu, kết quả trình bày trong luận văn là trung thực và chưa từng được công bố trong bất kỳ công trình nào trước đây. Tác giả luận văn Đào Tùng Thịnh ii LỜI CẢM ƠN Trong suốt quá trình thực hiện đề tài luận văn này tôi đã nhận được sự động viên, chỉ bảo tận tình của thầy giáo hướng dẫn TS. Lê Huy Thập. Tôi xin chân thành được bày tỏ lòng biết ơn sâu sắc tới thầy. Tôi xin chân thành cảm ơn tới tất cả các thầy cô giáo đã tận tình giảng dạy trong suốt quá trình học tập, giúp tôi có thêm những kiến thức quý báu làm nền tảng phục vụ cho quá trình xây dựng đề tài của mình. Cảm ơn tất cả các bạn học đã nhiệt tình chia sẻ kinh nghiệm và những góp ý chân thành giúp tôi hoàn thành tốt luận văn này. Mặc dù đã cố gắng nỗ lực để hoàn thành luận văn của mình, nhưng trong quá trình nghiên cứu làm đề tài chắc chắn không thể tránh khỏi những thiếu sót. Tôi kính mong nhận được sự cảm thông chỉ bảo tận tình của các thầy cô, các bạn và những ai đọc luận văn này. Hà Nội, tháng 12 năm 2009 Học viên Đào Tùng Thịnh iii MỤC LỤC LỜI CAM ĐOAN ............................................................................................... i LỜI CẢM ƠN .................................................................................................... ii MỤC LỤC ........................................................................................................ iii DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT .................................................. v DANH MỤC CÁC BẢNG ................................................................................ vi DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ ........................................................... vii MỞ ĐẦU ........................................................................................................... 1 Chương 1- TỔNG QUAN ................................................................................ 2 1.1 Đặt vấn đề .................................................................................................... 2 1.2 Tình hình nghiên cứu trong và ngoài nước ................................................... 2 1.3 Mục đích, yêu cầu của luận văn .................................................................... 3 1.4 Ý nghĩa, lợi ích của luận văn ........................................................................ 3 1.5 Nội dung nghiên cứu .................................................................................... 4 1.6 Một số công cụ tìm kiếm .............................................................................. 4 1.6.1 Google (http://www.google.com) ......................................................... 4 1.6.2 Ask ( http://www.ask.com/ ) ................................................................. 5 1.6.3 Exalead (http://www.exalead.com/search) ............................................ 5 1.6.4 Google Scholar ( http://scholar.google.com/)........................................ 5 1.6.5 ( http://www.scirus.com/) ..................................................................... 6 1.6.6 Xalo(www.xalo.vn) .............................................................................. 6 1.6.7 Timnhanh (www.timnhanh.com) .......................................................... 6 1.6.8 Vatgia (www.vatgia.com) ..................................................................... 6 1.6.9 Baamboo (www.baamboo.com) ........................................................... 6 1.7 Kết luận chương ........................................................................................... 6 Chương 2 - CƠ SỞ LÝ THUYẾT ................................................................... 7 2.1 .NET Framework .......................................................................................... 7 2.1.1 Mô hình kiến trúc .Net FrameWork [5] ................................................ 7 2.1.2 Lớp WebRequest và WebResponse ...................................................... 8 2.1.3 Lớp HttpWebRequest và HttpWebResponse ........................................ 9 2.1.4 Trích rút thông tin từ các website có yêu cầu xác thực ........................ 10 2.2 Biểu thức chính quy.................................................................................... 12 2.2.1 Ý nghĩa của các metacharacters .......................................................... 13 2.2.2 Các lớp thao tác với biểu thức chính quy trong .NET ......................... 14 2.3 Thuật toán .................................................................................................. 18 2.3.1 Chọn các cụm từ ................................................................................. 18 iv 2.3.2 Giới thiệu cơ sở dữ liệu ...................................................................... 27 2.3.3 Sơ đồ quan hệ ..................................................................................... 34 2.3.4 Thuật toán tìm kiếm và trích rút thông tin ........................................... 34 2.4 Kết luận chương ......................................................................................... 43 Chương 3 - CÀI ĐẶT THUẬT TOÁN .......................................................... 44 3.1 Công nghệ sử dụng ..................................................................................... 44 3.1.1 Công nghệ lập trình ............................................................................ 44 3.1.2 Hệ quản trị cơ sở dữ liệu ..................................................................... 44 3.1.3 Công cụ thiết kế .................................................................................. 45 3.2 Thành phần ứng dụng ................................................................................. 45 3.2.1 Thành phần giao diện ......................................................................... 45 3.2.2 Thành phần truy xuất cơ sở dữ liệu ..................................................... 45 3.2.3 Thành phần truy xuất tìm kiếm lấy thông tin trên internet .................. 46 3.3 Thiết kế chi tiết phần mềm ......................................................................... 46 3.3.1 Thiết kế phần mềm ............................................................................. 46 3.3.2 Kết quả thực nghiệm........................................................................... 59 3.4 Kết luận chương ......................................................................................... 62 Chương 4 - KẾT LUẬN ................................................................................. 63 4.1 Kết luận ...................................................................................................... 63 4.2 Hướng phát triển ........................................................................................ 63 TÀI LIỆU THAM KHẢO ................................................................................ 64 v DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT STT Ký hiệu, Diễn giải từ viết tắt 1 CSDL Cơ sở dữ liệu 2 CNTT Công nghệ thông tin 3 HTTP HyperText Transfer Protocol 4 RDBMS Relationship DataBase Managerment System 5 XML eXtended Markup Language 6 URL Uniform Resource Locator, được dùng để tham chiếu tới tài nguyên trên Internet 7 URI Uniform Resource Identifier 8 CLR Common Language Runtime 9 RE Regular Expression 10 Q&A Question and Answer 11 NXB Nhà xuất bản 12 Tr Trang vi DANH MỤC CÁC BẢNG Bảng 1. Một số thuộc tính và phương thức của lớp WebRequest ........................ 8 Bảng 2. Một số thuộc tính và phương thức của lớp WebResponse ..................... 9 Bảng 3. Một số thuộc tính và phương thức của lớp Regex ................................ 15 Bảng 4. Quan hệ giữa cụm từ và bài viết .......................................................... 23 Bảng 5. Quan hệ giữa cụm từ và bài viết .......................................................... 24 Bảng 6. Tần số và tần số tích lũy ...................................................................... 25 Bảng 7. Cấu trúc bảng ChuDe .......................................................................... 28 Bảng 8. Dữ liệu minh họa bảng ChuDe ............................................................ 28 Bảng 9. Cấu trúc bảng CumTu ......................................................................... 29 Bảng 10. Dữ liệu minh họa bảng CumTu ......................................................... 29 Bảng 11. Cấu trúc bảng TimKiem .................................................................... 29 Bảng 12. Dữ liệu minh họa bảng TimKiem ...................................................... 30 Bảng 13. Cấu trúc bảng TongHop .................................................................... 30 Bảng 14. Cấu trúc bảng NguoiDung ................................................................. 31 Bảng 15. Cấu trúc bảng ThamSo ...................................................................... 31 Bảng 16. Mô tả màn hình đăng nhập hệ thống .................................................. 46 Bảng 17. Mô tả màn hình quản trị người dùng ................................................. 49 Bảng 18. Mô tả màn hình quản trị nhóm người dùng........................................ 50 Bảng 19. Mô tả màn hình Sao lưu dữ liệu ........................................................ 51 Bảng 20. Mô tả màn hình phục hồi dữ liệu ....................................................... 52 Bảng 21. Mô tả màn hình Đổi mật khẩu ........................................................... 52 Bảng 22. Mô tả màn hình Phân quyền hệ thống................................................ 54 Bảng 23. Mô tả màn hình Cập nhật tham số hệ thống ....................................... 54 Bảng 24. Mô tả màn hình quản lý Chủ đề tìm kiếm .......................................... 56 Bảng 25. Mô tả màn hình quản lý Cụm từ tìm kiếm ......................................... 57 Bảng 26. Mô tả màn hình Tìm kiếm ................................................................. 59 vii DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1. Kiến trúc .Net Framework ..................................................................... 7 Hình 2. Đồ thị các cụm từ theo tần số tích luỹ .................................................. 25 Hình 3 Sơ đồ quan hệ ....................................................................................... 34 Hình 4. Màn hình đăng nhập hệ thống .............................................................. 46 Hình 5. Màn hình kết nối máy chủ ................................................................... 47 Hình 6. Màn hình chính của ứng dụng .............................................................. 47 Hình 7. Màn hình quản trị người dùng ............................................................. 48 Hình 8. Màn hình quản trị nhóm người dùng .................................................... 49 Hình 9. Màn hình Sao lưu dữ liệu..................................................................... 50 Hình 10. Màn hình Phục hồi dữ liệu ................................................................. 51 Hình 11. Màn hình Đổi mật khẩu ..................................................................... 52 Hình 12. Màn hình Phân quyền hệ thống .......................................................... 53 Hình 13. Màn hình Cập nhật tham số hệ thống ................................................. 54 Hình 14. Màn hình chính khi chọn tab “Báo cáo phi cấu trúc” ......................... 55 Hình 15. Màn hình quản lý Chủ đề tìm kiếm .................................................... 55 Hình 16. Màn hình quản lý Cụm từ tìm kiếm ................................................... 57 Hình 17. Màn hình Tìm kiếm ........................................................................... 58 Hình 18. Thực hiện tìm kiếm tổng hợp báo cáo phi cấu trúc............................. 59 1 MỞ ĐẦU Ngày nay cuộc cách mạng Khoa học – Công nghệ đang phát triển một cách nhanh chóng, nó đã làm thay đổi nền kinh tế toàn cầu và trở thành lực lượng sản xuất trực tiếp. Khoa học – Công nghệ đã đưa nhân loại chuyển dần từ nền văn minh công nghiệp sang nền kinh tế tri thức. Trong đó CNTT là một trong các ngành mũi nhọn để đưa nền kinh tế toàn cầu có một bước phát triển đột phá mạnh mẽ. Nó có tầm quan trọng cho mọi quốc gia nhất là đối với các nước đang phát triển muốn hoà nhập với nền kinh tế thế giới như nước ta. Một ứng dụng quan trọng của CNTT là việc áp dụng vào quản lý, đặc biệt trong lĩnh vực quản lý nhà nước, quản lý kinh tế - xã hội. Nó giúp cho các nhà quản lý đưa ra những quyết định chính xác, kịp thời, xử lý nhanh chóng các tình huống nhằm nâng cao hiệu quả quản lý. Với sự bùng nổ mạnh mẽ của internet, hầu như các thông tin đều có thể tìm trên các website thông qua các công cụ tìm kiếm. Tuy nhiên số website và các công cụ khác để đưa thông tin lên internet ngày càng nhiều, nội dung ngày càng phong phú và đa dạng. Đa số là các dữ liệu phi cấu trúc tồn tại ở nhiều loại như các tờ trình, báo cáo, email, văn bản, hình ảnh, âm thanh, các đoạn phim. Thông tin về chủ đề nào đó có thể nằm rải rác trên các vùng, miền,...của mạng. Do đó chúng ta sẽ gom nhóm chúng lại cùng với các thông tin liên quan và lưu lại dưới dạng tệp văn bản hoặc dạng quan hệ trong CSDL quan hệ. Khi các thông tin trên được lưu dưới dạng tệp văn bản, chúng ta có thể tạo ra các báo cáo phi cấu trúc với nội dung thay đổi phụ thuộc vào thời điểm thực hiện thuật toán. Dựa vào báo cáo phi cấu trúc này người dùng có thể tổng hợp được nhanh các thông tin cần thiết theo thời gian, gần gũi với người đọc và hỗ trợ ra quyết định. Còn khi các thông tin trên được lưu trong CSDL, chúng ta có thể tạo ra các báo cáo dựa vào các tiêu chí (các thuộc tính) có trong CSDL. Kiểu báo cáo này được gọi là báo cáo có cấu trúc và động. Cách tạo ra báo cáo phi cấu trúc động hoặc có cấu trúc động là một vấn đề mới đang được quan tâm do có các ưu điểm như: tổng hợp nhanh các thông tin cần thiết theo thời gian; gần gũi với người đọc và những người cần thông tin hỗ trợ để ra quyết định. 2 Chương 1- TỔNG QUAN 1.1 Đặt vấn đề Trong thời đại bùng nổ thông tin Internet, gần như các thông tin đều có thể tìm trên các Website. Tuy nhiên Internet là kho dữ liệu khổng lồ có nhiều nội dung phong phú và đa dạng. Các thông tin về chủ đề nào đó có thể nằm rải rác trên các vùng, miền,...của mạng. Chúng ta sẽ gom nhóm chúng lại cùng với các thông tin liên quan và lưu lại dưới dạng tệp văn bản hoặc dạng quan hệ trong CSDL quan hệ. Khi các thông tin trên được lưu dưới dạng văn bản, có nghĩa là chúng ta có thể tạo ra báo cáo phi cấu trúc với nội dung động phụ thuộc vào thời điểm thực hiện thuật toán. Còn khi các thông tin trên được lưu trong CSDL, chúng ta có thể tạo ra các báo cáo dựa vào các chỉ tiêu (các thuộc tính) có trong CSDL. Kiểu báo cáo này được gọi là báo cáo có cấu trúc và động. Cách tạo ra báo cáo phi cấu trúc động hoặc có cấu trúc động là một vấn đề mới đang được quan tâm do có các ưu điểm như tổng hợp nhanh các thông tin cần thiết theo thời gian; gần gũi với người đọc và những người cần thông tin hỗ trợ để ra quyết định. Để nắm bắt các thông tin về một lĩnh vực nào đó ta gọi là chủ đề, ta thường phải tìm kiếm thông qua một xâu mang toàn bộ hoặc một phần nội dung của chủ đề đó. Thông qua tập các xâu đầu vào ta thực hiện xây dựng mối quan hệ giữa các xâu dựa trên phương pháp thống kê dựa vào tần số tích luỹ sự xuất hiện của các cụm từ. Từ đó sẽ lấy được các xâu nằm trong vùng “mode” là vùng nằm ở phần tư thứ hai và phần tư thứ ba nơi mà cụm từ xuất hiện nhiều. Sau đó ta truy cập và trích rút các đoạn văn bản trên các Website phục vụ cho việc xây dựng báo cáo phi cấu trúc. Việc làm này chính là ta đi tìm hiểu giải quyết bài toán “Chuẩn hóa và xác định mối quan hệ giữa các cụm từ, tìm và lấy thông tin liên quan đến cụm từ”. 1.2 Tình hình nghiên cứu trong và ngoài nước Ngày nay với sự phát triển chóng mặt của internet thì internet là một kho dữ liệu tri thức khổng lồ có nhiều nội dung phong phú và đa dạng. Vậy câu hỏi đặt ra ở đây là làm sao để các tổ chức, doanh nghiệp, cá nhân khai thác được hiệu quả kho dữ liệu tri thức này phục vụ cho công việc kinh doanh, hay những mục đích riêng của mình đạt hiệu quả? Để khai thác kho dữ liệu internet khổng lồ này chính là chúng ta đi tìm kiếm thông tin được lưu trữ trên internet. Trên thế giới đã phát triển rất nhiều công cụ tìm kiếm chẳng hạn như google, yahoo, alexa, Ask, Exalead, Scirus, … 3 Ở Việt Nam cũng có một số công ty xây dựng các công cụ kiếm chẳng hạn như xalo do Công ty Tinh Vân phát triển, Baamboo thuộc Công ty cổ phần truyền thông Việt Nam, … Tất cả các công cụ ở trên mới chỉ cho phép chúng ta tìm kiếm thông tin chung theo các từ khóa và kết quả trả là danh sách các website hợp lệ chứ chưa có công cụ nào xây dựng chức năng mà cho phép chúng ta tổng hợp nội dung chi tiết của các bài báo dựa trên mối quan hệ giữa các cụm từ tìm kiếm. Vì vậy đề tài luận văn này là đề tài mới mà hiện nay chưa có nơi nào nghiên cứu và đi vào giải quyết vấn đề trên nhằm cung cấp giải pháp tìm kiếm và tổng hợp tự động thông tin trên các website theo yêu cầu người sử dụng. 1.3 Mục đích, yêu cầu của luận văn Khi ta muốn tổng hợp thông tin về một lĩnh vực nào đó (chúng ta gọi là chủ đề), ta phải sử dụng công cụ tìm kiếm chẳng hạn như google để thực hiện tìm kiếm thông qua một xâu mang toàn bộ hoặc một phần nội dung của chủ đề đó. Google sẽ trả về danh sách các website hợp lệ mà có một phần hay toàn bộ xâu tìm kiếm. Sau đó ta phải tự truy cập và đọc các đoạn văn bản này trên danh sách các website mà google trả về. Công việc này làm cho ta mất nhiều thời gian và không hiệu quả khi cần tổng hợp nhanh các thông tin mang tính thời sự nóng hổi và mang tính chất hỗ trợ ra quyết định để kịp thời đưa ra hướng đầu tư kinh doanh. Vậy để khắc phục vấn đề trên chúng ta phải nghiên cứu đưa ra giải pháp tìm kiếm tự động và tổng hợp nhanh thành các báo cáo phi cấu trúc giúp người dùng tổng hợp nhanh các thông tin cần thiết phục vụ cho việc quyết định đầu tư kinh doanh có hiệu quả. Để việc thực hiện thuật toán tìm kiếm tổng hợp nhanh chúng ta ứng dụng phương pháp thống kê dựa vào tần số tích lũy của các cụm từ để tìm ra các xâu nằm trong vùng “mode” nhằm giảm bớt không gian tìm kiếm do đó sẽ giảm bớt được thời gian tìm kiếm tổng hợp và kết xuất ra báo cáo. Qua mục này chúng ta thấy rõ được mục đích và yêu cầu của luận văn là xây dựng được các thuật toán tìm kiếm tự động, thuật toán tìm lớp “mode” và phần mềm tìm kiếm tổng hợp tự động giúp người dùng tổng hợp được nhanh các thông tin mang tính thời sự. 1.4 Ý nghĩa, lợi ích của luận văn Cung cấp giải pháp tìm kiếm và tổng hợp tự động thông tin trên các website theo yêu cầu người sử dụng. 4 Giúp người sử dụng tổng hợp thông tin một cách nhanh nhất để hỗ trợ ra quyết định thông qua phần mềm. 1.5 Nội dung nghiên cứu Mục này chúng ta sẽ trình bày nội dung nghiên cứu của luận văn dựa trên những vấn đề đã được đặt ra và mục đích yêu cầu của luận văn. Các vấn đề cần nghiên cứu để thực hiện đề tài:  Cơ sở lý thuyết phục vụ đề tài  Nghiên cứu thuật toán tìm các xâu mode bằng phương pháp thống kê  Nghiên cứu các phương pháp tìm kiếm trên các website  Tổng hợp văn bản đưa ra báo cáo phi cấu trúc Luận văn này được tổ chức thành 4 chương như sau:  Chương 1 – TỔNG QUAN: chương này nêu tổng quan về đề tài bao gồm vấn đề đặt ra để giải quyết là gì, những gì trên thế giới đã làm, mình định làm gì, lợi ích của đề tài là gì và nội dung nghiên cứu là gì.  Chương 2 – CƠ SỞ LÝ THUYẾT: chương này trình bày các kiến thức cơ sở phục vụ cho đề tài, phân tích thiết kế, xây dựng tổ chức CSDL và các thuật toán của đề tài.  Chương 3 – CÀI ĐẶT ỨNG DỤNG: chương này trình bày các công nghệ sử dụng để cài đặt ứng dụng, kiến trúc ứng dụng, thiết kế chi tiết phần mềm ứng dụng và kết quả thực nghiệm.  Chương 4 – KẾT LUẬN: chương này nêu kết luận và những ý nghĩa đạt được cũng như những vấn đề còn tồn tại của luận văn, từ đó đưa ra hướng phát triển của đề tài trong tương lai. 1.6 Một số công cụ tìm kiếm Để phục vụ cho việc tìm kiếm thông tin trên internet, có rất nhiều hãng phần mềm phát triển các công cụ tìm kiếm rất mạnh. Ở đây tác giả luận văn xin giới thiệu một số công cụ tìm kiếm mạnh ở trên thế giới và Việt Nam. 1.6.1 Google (http://www.google.com) Google là một công cụ tìm kiếm mạnh thông dụng nhất hiện nay, với google bạn có thể truy xuất tìm kiếm thông tin trên kho dữ liệu khổng lồ internet chỉ bằng một vài thao tác đơn giản. Để tìm kiếm bạn chỉ cần nhập vào cụm từ tìm kiếm rồi nhấn nút tìm kiếm, google sẽ trả về cho bạn danh sách kết quả các website phù hợp với cụm từ tìm kiếm. 5 1.6.2 Ask ( http://www.ask.com/ ) Với công cu ̣ Ask , khi tim ̀ thông tin kết quả tìm kiếm sẽ hiển thị cả những câu hỏi gợi ý khác có liên quan đến câu hỏi truy vấn trong phầ n Q &A, giúp người sử dụng nghiên cứu sâu hơn vấn đề của họ. Phần tìm kiếm ảnh có chức năng phân loại ảnh màu và ảnh đen trắng. 1.6.3 Exalead (http://www.exalead.com/search) Exalead là công cụ tìm kiếm được sử dụng rất rộng rãi ở Châu Âu . Công cu ̣ tìm kiếm này có giao diện tìm kiếm dễ sử dụng cho phép người dùng tìm thông một cách dễ dàng. Kết quả tìm kiếm phù hợp được Exalead trả về là danh sách các website và bao gồm cả các đánh giá thống kê về ngôn ngữ sử dụng và nguồn gốc của các bài báo từ nước nào bằng biểu đồ trực quan. Ví dụ: Với từ khóa tìm kiếm “thị trường chứng khoán việt nam” Thì kết quả trả về danh sách một số website hợp lệ và các thống kê từ Exalead như sau: 1.6.4 Google Scholar ( http://scholar.google.com/) Google Scholar là công cu ̣ tim ̀ kiế m chuyên sâu dành cho học giả, giúp người dùng tim ̀ kiế m các tài liê ̣u ho ̣c thuâ ̣t (luâ ̣n văn , luâ ̣n án , sách, các bài báo khoa ho ̣c ,…) về nhiề u lĩnh vực . Google Scholar có chức năng tim ̀ kiế m đơn giản và chức năng tìm kiếm nâng cao để tăng tính chính xá c và hiê ̣u quả cho 6 viê ̣c tim ̀ thông tin . Ngoài ra người dùng còn có thể sử dụng chức năng “Scholar preferences” để lựa cho ̣n cách hiển thị kết quả tìm kiếm hay chức năng “Library Links- online and offline” để tìm hiể u xem mô ̣t thư v iê ̣n đa ̣i ho ̣c ba ̣n đang quan tâm có tài liê ̣u đó hay không . 1.6.5 ( http://www.scirus.com/) Scirus là công cụ tìm kiếm web về thông tin khoa học . Scirus cho phép các nhà khoa học tìm kiếm không chỉ nội dung các bài báo , các trang web của các nhà khoa học , các phần mềm học tập ,… mà còn cả các thông tin riêng của các tổ chức khoa học. 1.6.6 Xalo(www.xalo.vn) Xalo là công cụ tìm kiếm được Công ty Tinh Vân phát triển. Phiên bản beta của công cụ này được Công ty Tinh Vân cho ra mắt vào cuối tháng 3 năm 2008. Hiện công cụ này có bốn dịch vụ tìm kiếm là Web, Tin tức, Blog và Diễn đàn. 1.6.7 Timnhanh (www.timnhanh.com) Timnhanh vừa là một trang thông tin tổng hợp, vừa là một công cụ tìm kiếm theo kiểu Yahoo và được chính Yahoo hỗ trợ. Trang này còn cung cấp miễn phí các dịch vụ như e-mail, tạo blog, tra cứu từ điển. 1.6.8 Vatgia (www.vatgia.com) Vatgia là website tìm kiếm chú trọng đến lĩnh vực thương mại với đầy đủ các tính năng như tổng hợp, phân chia hàng hóa một cách khoa học. Cung cấp đầy đủ thông tin về các loại sản phẩm, dịch vụ, được trình bày một cách khoa học; giúp người tiêu dùng có thể tìm được những sản phẩm, dịch vụ một cách nhanh nhất. 1.6.9 Baamboo (www.baamboo.com) Công cụ tìm kiếm Baamboo thuộc Công ty cổ phần truyền thông Việt Nam. Baamboo giúp người dùng tìm kiếm nhạc mp3, video, lời bài hát... 1.7 Kết luận chương Chương này trình bày tổng quan bài toán đưa ra để nghiên cứu giải quyết; mục đích, yêu cầu, nội dung nghiên cứu của luận văn; tình hình nghiên cứu trong, ngoài nước và một số công cụ tìm kiếm đã có. 7 Chương 2 - CƠ SỞ LÝ THUYẾT 2.1 .NET Framework Mục này trình bày các kiến thức cơ bản về .Net Framework, các lớp thư viện cơ sở trong .Net Framework được sử dụng để lập trình thực nghiệm cho luận văn; thực hiện thống kê các bài báo trên internet và thực hiện trích rút thông tin từ các bài báo đó. .Net Framework là một nền tảng công nghệ phát triển phần mềm giúp các nhà phát triển phần mềm có thể xây dựng các ứng dụng nhanh và hiệu quả trên nhiều ngôn ngữ lập trình khác nhau như C#.NET, VB.NET, ASP.NET, J#.NET. 2.1.1 Mô hình kiến trúc .Net FrameWork Hình 1. Kiến trúc .Net Framework .Net Framework bao gồm 3 tầng:  Tầng ứng dụng: gồm có ASP.NET và Windows Forms. - ASP.NET cung cấp các thành phần thực hiện xây dựng các ứng dụng web (chạy trong mạng cục bộ hay trên mạng internet), các dịch vụ web. - Windows Forms: cung cấp các thành phần thực hiện phát triển các ứng dụng chạy trên windows.  Tầng giữa: cung cấp các thư viện lập trình cơ sở bao gồm các gói thư viện phục vụ cho lập trình mạng (Net), các gói thư viện giao tiếp với database (ADO.NET), các gói thư viện cho bảo mật (Security), …  Tầng dưới cùng: quản lý việc biên dịch và chạy các ứng dụng. 8 Khi sử dụng .Net Framework, chúng ta sẽ không còn phải quá quan tâm đến việc lựa chọn ngôn ngữ nào để phát triển ứng dụng. Thậm chí trong một ứng dụng chúng ta có thể viết bằng nhiều ngôn ngữ .NET khác nhau. Điều này là do tất cả các ngôn ngữ .NET đều được quản lý bởi CLR (Common Language Runtime). 2.1.2 Lớp WebRequest và WebResponse Lớp WebRequest và WebResponse là hai lớp cơ sở nằm trong gói thư viện System.Net. Hai lớp này được xây dựng để phục vụ cho lập trình mạng giao tiếp giữa Client và Server. Vì luận văn là đề tài chủ yếu nghiên cứu sâu về các thuật toán tìm kiếm và trích rút thông tin trên mạng internet do đó hai lớp WebRequest và WebResponse có ý nghĩa cực kỳ quan trọng trong việc lập trình thực nghiệm. Hai lớp WebRequest và WebResponse tương ứng được sử dụng trong luận văn để thực hiện gửi yêu cầu và lấy dữ liệu từ các nguồn thông tin trên internet thông qua giao thức HTTP. Lớp WebRequest dùng để tạo ra một yêu cầu gửi tới một Website cụ thể. Lớp WebResponse dùng để lấy thông tin trả về từ WebServer. Để tạo một thể hiện (instance) của lớp WebRequest ta dùng phương thức Create(URL). Để lấy dữ liệu từ đối tượng WebResponse ta dùng phương thức GetResponseStream() trả về kiểu dữ liệu Stream. Thuộc tính/Phương thức Diễn giải System.Net.WebRequest.RequestUri Lấy các URI từ các nguồn được tham chiếu đến. System.Net.WebRequest.Headers Lấy các tiêu đề tên/cặp giá trị liên kết với yêu cầu. System.Net.WebRequest.ContentLength Lấy hoặc gán nội dung chiều dài của yêu cầu được gửi đi. System.Net.WebRequest.ContentType Lấy hoặc gán kiểu nội dung của yêu cầu được gửi đi. System.Net.WebRequest.Credentials Lấy hoặc gán Credentials được dùng để xác nhận yêu cầu. System.Net.WebRequest.PreAuthenticate Lấy hoặc gán giá trị để gửi thông tin xác thực với yêu cầu. System.Net.WebRequest.GetRequestStream() Lấy dòng văn bản cho dữ liệu đến nguồn dữ liệu. System.Net.WebRequest.GetResponse() Lấy phản hồi của một yêu cầu. Bảng 1. Một số thuộc tính và phương thức của lớp WebRequest 9 Thuộc tính/Phương thức Diễn giải System.Net.WebResponse.Headers Lấy các tiêu đề tên/cặp giá trị liên kết với nội dung trả về. System.Net.WebResponse.ContentLength Lấy chiều dài của nội dung trả về từ server. System.Net.WebResponse.ContentType Lấy kiểu nội dung của dữ liệu được trả về từ server. System.Net.WebResponse.GetResponseHe Lấy thông tin của header thông qua ader(string headerName) headerName. System.Net.WebResponse.GetResponseStr Lấy nội dung trả về từ server. eam() Bảng 2. Một số thuộc tính và phương thức của lớp WebResponse Đoạn chương trình bên dưới sử dụng các đối tượng WebRequest và WebResponse thực hiện gửi yêu cầu và nhận kết quả trả về. protected void Button1_Click(object sender, EventArgs e) { string URL = "http://www.google.com.vn"; WebRequest request = WebRequest.Create(URL); WebResponse response = request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream()); string str = reader.ReadLine(); while(str != null) { txtBox1.text = txtBox1.text + str; txtBox1.text = txtBox1.text + "\n"; str = reader.ReadLine(); } } 2.1.3 Lớp HttpWebRequest và HttpWebResponse Lớp WebRequest và WebResponse là các lớp trừu tượng trong gói thư viện System.Net, vì vậy chúng ta không nên sử dụng trực tiếp chúng. Do đó chúng ta dùng thông qua lớp HttpWebRequest và HttpWebResponse tương ứng để thực hiện gửi yêu cầu và nhận kết quả trả về từ Webserver. 10 Đoạn chương trình bên dưới sử dụng các đối tượng HttpWebRequest và HttpWebResponse thay thế cho các đối tượng WebRequest và WebResponse. protected void Button1_Click(object sender, EventArgs e) { string URL = "http://www.google.com.vn"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); String ver = response.ProtocolVersion.ToString(); StreamReader reader = new StreamReader(response.GetResponseStream() ); string str = reader.ReadLine(); while(str != null) { txtBox1.text = txtBox1.text + str; txtBox1.text = txtBox1.text + "\n"; str = reader.ReadLine(); } } 2.1.4 Trích rút thông tin từ các website có yêu cầu xác thực Khi thực hiện tìm kiếm và trích rút thông tin từ nhiều nguồn khác nhau trên internet, sẽ xuất hiện trường hợp chúng ta truy xuất phải các website được bảo mật, các website đó yêu cầu một số thông tin xác thực trước khi có thể truy xuất vào được. Như vậy trước khi gửi yêu cầu tới website có yêu xác thực chúng ta phải cấu hình thuộc tính WebRequest.Credentials với các thông tin xác thực. Một số kiểu xác thực mà website thường sử dụng:  Website sử dụng Basic authentication hay Digest authentication, chúng ta cần gửi kết hợp username và password bằng cách tạo đối tượng System.Net.NetworkCredential và gán nó vào thuộc tính HttpWebRequest.Credentials.  Website sử dụng Integrated Windows authentication, chúng ta thực hiện tương tự như trên. Chúng ta có thể lấy các thông tin đăng nhập của người dùng hiện hành từ đối tượng System.Net.CredentialCache. 11  Website đòi hỏi chứng chỉ, chúng ta cần nạp chứng chỉ từ một tệp bằng lớp System.Security.Cryptography.X509Certificates.X509Certificate, và thêm nó vào tập hợp HttpWebRequest.ClientCertificates. Đoạn mã dưới đây thực hiện cả 3 cách tiếp cận trên: using System; using System.Net; using System.Security.Cryptography.X509Certificates; public class DownloadWithAuthentication { private static void Main() { string uriBasic, uriIntegrated, uriCertificate; // Xác thực username và password với Basic authentication. WebRequest requestA = WebRequest.Create(uriBasic); requestA.Credentials =new NetworkCredential("userName", "password") ; requestA.PreAuthenticate = true; // Đăng nhập người dùng hiện hành với // Integrated Windows authentication. WebRequest requestB = WebRequest.Create(uriIntegrated); requestB.Credentials = CredentialCache.DefaultCredentials; requestB.PreAuthenticate = true; // Xác thực người dùng bằng chữ ký điện tử. HttpWebRequest requestC = (HttpWebRequest) WebRequest.Create(uri Certificate); 12 X509Certificate cert =X509Certificate.CreateFromCertFile(@"c:\user.cer "); requestC.ClientCertificates.Add(cert); // (Bắt đầu xử lý trích rút thông tin.) } } 2.2 Biểu thức chính quy Biểu thức chính quy được sử dụng trong luận văn để thực hiện so khớp các cụm từ tìm kiếm với các từ xuất hiện trong các bài báo để từ đó thực hiện đánh dấu trích rút các đoạn văn bản phục vụ cho việc tổng hợp xây dựng báo cáo phi cấu trúc. Biểu thức chính quy (regular expression) viết tắt là regexp, regex hay regxp là một chuỗi miêu tả một bộ các chuỗi khác, theo những quy tắc cú pháp nhất định. Biểu thức chính quy thường được dùng trong các trình biên tập văn bản và các tiện ích tìm kiếm và xử lý văn bản dựa trên các mẫu được quy định. Nhiều ngôn ngữ lập trình cũng hỗ trợ biểu thức chính quy trong việc xử lý chuỗi (chẳng hạn như C#, Java, PHP) có bộ máy mạnh mẽ để xử lý biểu thức chính quy được xây dựng trực tiếp trong cú pháp của chúng. Một biểu thức chính quy là một kiểu mẫu văn bản gồm hai phần: literal và metacharacters.  Một literal đơn thuần chỉ là một ký tự (a-z) mà chúng ta muốn đem so khớp với chuỗi đích.  Metacharacters là ký tự đặc biệt hoạt động như là một mệnh lệnh đối với bộ phận phân tích ngữ nghĩa (parser) của biểu thức chính quy. Ví dụ một biểu thức chính quy như: ^(From|To|Subject|Date): Biểu thức chính quy này sẽ khớp với bất cứ chuỗi con nào miễn là chuỗi này là một hàng mới bắt đầu với “From” hoặc “To” hoặc các chữ “Subject” hoặc “Date”. - Dấu ^ nghĩa là bắt đầu một hàng mới.

Tìm luận văn, tài liệu, khoá luận - 2024 © Timluanvan.net