Ở 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ụ ở
Trang 1TRƯỜ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
Trang 2LỜ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
Trang 3LỜ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
Trang 4MỤ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
Trang 52.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
Trang 6DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT
STT Ký hiệu,
từ viết tắt
Diễn giải
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
8 CLR Common Language Runtime
9 RE Regular Expression
10 Q&A Question and Answer
Trang 7DANH 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
Trang 8DANH 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
Trang 9MỞ ĐẦ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
Trang 10Chươ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, …
Trang 11Ở 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
Trang 12Giú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
Trang 131.6.2 Ask ( http://www.ask.com/ )
Với công cụ Ask , khi tìm 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 cụ 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 cụ tìm kiếm chuyên sâu dành cho học giả, giúp người dùng tìm 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 tìm 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
Trang 14viê ̣c tìm 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
Trang 15Chươ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
Trang 16Khi 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
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
Trang 17Thuộ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ừ
Lấy nội dung trả về từ server
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
hiện gửi yêu cầu và nhận kết quả trả về từ Webserver
Trang 18Đ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 ver = response.ProtocolVersion.ToString();
StreamReader reader = new
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
Trang 19 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);
Trang 20X509Certificate cert =X509Certificate.CreateFromCertFile(@"c:\user.cer
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ư:
Trang 21- Dấu ^ cho bộ phân tích ngữ nghĩa của biểu thức chính quy biết chuỗi mà
chúng ta đang tìm phải bắt đầu bởi một hàng mới
- Các chữ From, To, Subject, Date là những literal
- Các ký tự (, ), và | là những metacharacters được dùng để tạo nhóm literal và
cho biết bất cứ những lựa chọn nào cũng phải khớp
- Dấu ^ cũng là metacharacter nó cho biết là khởi đầu một hàng
Do đó biểu thức chính quy ở trên được đọc như sau:
“cho khớp bất cứ chuỗi con nào bắt đầu bởi một hàng mới theo sau bởi bất cứ 4 chuỗi literal: From,To,Subject và Date rồi theo sau bởi dấu hai chấm”
2.2.1 Ý nghĩa của các metacharacters
: đại diện cho một ký tự bất kỳ, trừ ký tự xuống dòng \n
\s : ký tự khoảng trắng tương đương [ \f\n\r\t\v]
\S : ký tự không phải khoảng trắng tương đương [ ^\f\n\r\t\v]
\w : bất kỳ từ nào (gồm chữ cái và chữ số, dấu gạch dưới _ ) tương đương
[a-zA-Z_0-9]
\W : không có bất kỳ từ nào [^a-zA-Z_0-9]
^ : bắt đầu một chuỗi hay một dòng
$ : kết thúc một chuỗi hay một dòng
\A : bắt đầu một chuỗi
\z : kết thúc một chuỗi
| : ký tự ngăn cách so trùng tương đương với phép or (lưu ý sử dụng cái này nếu
muốn kết hợp nhiều điều kiện)
[abc]: khớp với 1 ký tự nằm trong nhóm là a hay b hay c
[a-z] so trùng với 1 ký tự nằm trong phạm vi a-z, dùng dấu - làm dấu ngăn cách [^abc] sẽ không so trùng với 1 ký tự nằm trong nhóm, ví dụ không so trùng với
a hay b hay c
() : Xác định một nhóm (group - biểu thức con) xem như nó là một yếu tố đơn lẻ
trong mẫu (pattern) Ví dụ ((a(b))c) sẽ khớp với b, ab, abc
? : khớp với đứng trước từ 0 hay 1 lần Ví dụ A?B sẽ khớp với B hay AB
* : khớp với đứng trước từ 0 lần trở lên Ví dụ A*B khớp với B, AB, AAB
Trang 22+ : khớp với đứng trước từ 1 lần trở lên Ví dụ A+B khớp với AB, AAB
{n} : n là con số, khớp đúng với n ký tự đúng trước nó Ví dụ A{2}) khớp đúng
2.2.2 Các lớp thao tác với biểu thức chính quy trong NET
Trong NET cung cấp cho chúng ta các lớp thư viện để tiếp cận thao tác với biểu thức chính quy một cách đơn giản Đó là cách cách tiếp cận hướng đối tượng về việc so khớp chuỗi và thay thế theo biểu thức chính quy
System.Text.RegularExpression là không gian tên trong thư viện các lớp chuẩn
của NET liên quan đến tất cả các đối tượng gắn liền với biểu thức chính quy
a Lớp Regex
Lớp Regex tượng trưng cho một biểu thức chính quy bất di bất dịch (chỉ
đọc) Lớp này cũng chứa phương thức tĩnh (static) cho phép chúng ta sử dụng
mà không cần khởi tạo một đối tượng khác
Thuộc tính/Phương thức Diễn giải
Options Trả về những mục chọn được trao qua cho
constructor Regex
RightToLeft Nhận một giá trị cho biết liệu xem biểu thức
chính quy dò tìm từ phải qua trái hay không
GetGroupNames() Trả về mảng gồm toàn tên nhóm thu lượm
đối với biểu thức chính quy
GetGroupNumbers() Trả về mảng gồm toàn số nhóm thu lượm
tương ứng với tên nhóm trên một mảng
GroupNameFromNumber() Đi lấy tên nhóm tương ứng với số nhóm
được khai báo
IsMatch() Trả về trị bool cho biết liệu xem biểu thức
chính quy có tìm thấy một so khớp hay không trên mẫu (pattern)
Match() Dò tìm trên mẫu (pattern) xem có xuất hiện
một biểu thức chính quy hay không rồi trả về kết quả chính xác như là một đối tượng Match duy nhất
Trang 23Matches() Dò tìm trên pattern xem tất cả các xuất hiện
của một biểu thức chính quy có hay không rồi trả về tất cả những so khớp thành công xem như Match được gọi nhiều lần
Replace() Cho phép thay thế những xuất hiện của một
pattern được định nghĩa bởi một biểu thức chính quy bởi một chuỗi ký tự thay thế được chỉ định
Split() Chia một pattern thành một mảng gồm
những chuỗi con ở những vị trí được chỉ định bởi một so khớp trên biểu thức chính quy
Unescape() Cho unescape bất cứ những ký tự nào được
escape trên pattern
Bảng 3 Một số thuộc tính và phương thức của lớp Regex
Ví dụ dùng Regex tách chuỗi sử dụng phương thức Split của nó:
Trang 24Sử dụng thuộc tính Match.Access của lớp Match báo cho biết liệu xem đã tìm ra một so khớp hay chưa
string chuoi = "123abcd456bdabc";
string pattern = "abc";
Regex regex = new Regex(pattern);
Match m = regex.Match(chuoi);
if (m.Success)
{
Trang 25Console.WriteLine("Tim thay chuoi con {0} o vi tri thu {1} trong chuoi", m.Value, m.Index);
Trang 26//khởi tạo 1 đối tượng của Regex
//truyền chuỗi pattern vào constructor
Regex regex = new Regex(pattern);
//dùng phương thức Matches của myRegex
//để tìm ra matches và chỉ mục của từng match
Chuoi con 'chuoi' xuat hien o chi muc 4
Chuoi con 'chuoi' xuat hien o chi muc 20
2.3 Thuật toán
2.3.1 Chọn các cụm từ
Mối quan hệ giữa chủ đề và các cụm từ:
Mục này trình bày mối quan hệ mật thiết giữa chủ đề và các cụm từ, nó có
ý nghĩa cực kỳ quan trọng trong quá trình xây dựng thuật toán tìm kiếm và trích rút thông tin tạo ra báo cáo phi cấu trúc
Chủ đề và các cụm từ có quan hệ mật thiết với nhau bởi vì một chủ đề được đưa ra để tìm kiếm tổng hợp các thông tin thì cần phải có các cụm từ tìm kiếm cho nó Nếu chúng ta lựa chọn các cụm từ tìm kiếm quá bao hàm không phù hợp (đồng nghĩa với việc số từ của cụm từ tìm kiếm xuất hiện trong chủ đề quá ít dẫn đến không sát với chủ đề) làm cho nội dung của báo cáo rất tản mạn không sát với chủ đề mà chúng ta muốn tổng hợp
Dưới đây là ví dụ minh họa việc lựa chọn cụm từ tìm kiếm bao gồm cụm từ tìm kiếm quá bao hàm, cụm từ tìm kiếm sát với chủ đề và cụm từ tìm kiếm không liên quan gì nhiều đến chủ đề (có từ xuất hiện trong chủ để nhưng khác
về ngữ nghĩa)
Chủ đề tìm kiếm: “Thị trường chứng khoán Việt Nam”
Trang 27Các cụm từ tìm kiếm: “Chứng khoán”, “Thị trường chứng khoán Việt Nam năm 2009”, “Chứng gà”
- Với cụm từ tìm kiếm “Chứng khoán” chúng ta có khoảng 3.510.000 bài viết
- Một số kết quả trả về từ internet với cụm từ tìm kiếm “Chứng khoán”
TIN NHANH CHUNG KHOAN: Cong thong tin Kinh te - Tai chinh - Chung
25 Tháng Mười Hai 2009 Tin nhanh chứng khoán, đầu tư, báo đầu tư, chứng khoán, chứng khoán online, đầu tư chứng khoán, thông tin
chứng khoán, bảng giá chứng khoán,
Thông tin phân tích - TIN SỞ GDCK TP HCM - Thị trường niêm yết
tinnhanhchungkhoan.vn/ - 5 giờ trước đây
Sở Giao Dịch Chứng Khoán TpHCM
Xem giá, khối lượng khớp lệnh, của các chứng khoán trong thời gian giao dịch Xem chi tiết top chứng khoán tăng, giảm giá, khối lượng giao dịch
www.hsx.vn/
Welcome to chungkhoan.24h.com.vn
BẢNG GIÁ CHỨNG KHOÁN - HoSTC Ngày 25/12/2009 - 10:59:24 AM HoSTC (Sàn HCM), HNX (Sàn Hà Nội) Lựa chọn tất cả chứng khoán Ẩn/Hiện bảng mã CK
chungkhoan.24h.com.vn/
SSIDịch vụ chứng khoán · QUẢN LÝ QUỸ · Ngân hàng đầu tư Kết quả
lễ rút thăm trúng thưởng chương trình "Giao dịch chứng khoán, trúng thưởng BMW tại SSI"
fpts.com.vn/
http://www.hnx.vn - Từ Sở GDCK HN
sở giao dịch chứng khoán hà nội,Giao dịch, Chứng khoán, Niêm yết,
OTC, Index, Bảng giá, lên xuống, tăng giảm, giao dich, chung khoan, niem
yet, bang gia,
www.hastc.org.vn/
CafeF - Dịch vụ dữ liệu thông tin tài chính chuyên sâu | CafeF.vn
25 Tháng Mười Hai 2009 Trong bài:Mọi giao dịch bán chứng khoán sẽ
bị khấu trừ 0,1% · Garung - Hôm nay 16:25:23 chuyện tính toán giá trị của
chứng khoán lúc mua [
cafef.vn/ - 1 giờ trước đây
Trang chủ- Công ty Chứng khoán Ngân hàng Đầu tư và Phát triển Việt
Nam
Trang 28Trang chủ của CTCK Ngân hàng đầu tư và phát triển Việt nam Bản tin thị
trường, giá cả các cổ phiếu Ngoài ra còn có một thị trường chứng khoán
ảo để cho
www.bsc.com.vn/
Chứng khoán – Wikipedia tiếng Việt
Chứng khoán là một giá trị tài chính đại diện bằng lãi suất có thể thỏa thuận và có thể thay thế Chứng khoán gồm các loại: chứng khoán cổ phần (ví dụ cổ
vi.wikipedia.org/ / Chứng_khoán
- Với cụm từ tìm kiếm “Thị trường chứng khoán Việt Nam năm 2009” chúng ta
có khoảng 326.000 bài viết
- Một số kết quả trả về từ internet với cụm từ tìm kiếm “Thị trường chứng khoán Việt Nam năm 2009”
VnEconomy - Cùng dự báo chứng khoán Việt Nam 2009 - Chứng khoán
2 Tháng Giêng 2009 Thị trường chứng khoán Việt Nam năm 2009 sẽ
là một năm khó khăn và nhiều thách thức Tuy vậy cái gì đến cũng đã đến
Bốn giai đoạn lớn của thị trường chứng khoán Việt Nam năm 2009
Bốn giai đoạn lớn của thị trường chứng khoán Việt Nam năm 2009
khoan-viet-na
vietchinabusiness.vn/ /13997-bon-giai-doan-lon-cua-thi-truong-chung-Dự đoán thị trường Chứng khoán Việt Nam 2009 Đầu tư vào thị trường
Ngày10 tháng 1 năm 2009 tại hội trường Dinh Độc Lập đã diễn ra hội thảo
―Dự đoán thị trường chứng khoán Việt Nam năm 2009 – Đầu tư vào thị trường nhiều biến
caohockinhte.info/ /t-7959.html
Thị trường chứng khoán Việt Nam năm 2009 - WELCOME TO MOF
Thị trường chứng khoán Việt Nam năm 2009: tiếp tục tập trung cho
chiến lược dài hạn (05/01/2009 14:39) Thị trường chứng khoán (TTCK)
được coi như một tấm
www.mof.gov.vn/Default.aspx?
Trang 29HSBC: Chứng khoán Việt Nam 2009 chưa hết khó khăn | Kinh tế
6 Tháng Ba 2009 Thị trường chứng khoán Việt Nam năm 2009 sẽ vẫn
còn bất ổn và đầy thách thức nhưng các chuyên gia phân tích tin rằng,
nhiều cơ hội vàng sẽ
nhansuvietnam.vn/ /47499.html
Bao Thong Tin Thi Truong
Thị trường chứng khoán Việt Nam năm 2009 sẽ ra sao ? [ 20/01/2009 -
Báo Thị Trường ] anh_14aa.jpg Năm qua, đa số nhà đầu tư trên thị trường
chứng khoán
www.marketnews.vn/index.php?option=com_content&task=view
Chứng khoán 2009: Không quá bi quan - Thị trường - Thể thao & Văn hóa
11 Tháng Giêng 2009 Theo các chuyên gia tham dự hội thảo ―Dự đoán thị trường chứng khoán Việt Nam năm 2009, đầu tư vào thị trường
nhiều biến động‖ do Sở Giao
- Với cụm từ tìm kiếm “Chứng gà” chúng ta có khoảng 9.340 bài viết
- Một số kết quả trả về từ internet khi chúng ta sử dụng cụm từ tìm kiếm “Chứng gà”
Avatar + Animation - Chứng Gà - Chứng Vịch - Yeah1.com Forum
Avatar + Animation - Chứng Gà - Chứng Vịch • Ävatar ω Änimation
www.photo.yeah1.com/showthread.php?
đại lý chứng gà quê nổi tiếng(ông ĐÀO VĂN TRỌNG- xom liêm)
đại lý chứng gà quê nổi tiếng(ông ĐÀO VĂN TRỌNG- xom liêm) xóm liêm
- tiêu hạ- tiêu động- bình lục- hà
wikimapia.org/ /đại-lý-chứng-gà-quê-nổi-tiếng-ông-ĐÀO-VĂN-TRỌNG-xom-l - Đã lưu trong bộ nhớ cache - Tương tự
nhận biết chứng gà công nghiệp - Các bài viết về "nhận biết chứng nhận biết chứng gà công nghiệp - Các topic về nhận biết chứng gà công
Hội chứng gà mái đẻ và cách phòng chống Khắc phục gà giảm đẻ (Nhiều
bạn chăn nuôi gà ở huyện Tầm Du, Long An) Trả lời: Nguyên nhân: Hội
Trang 30chứng giảm đẻ trên
icadl2007.vista.gov.vn/ /library.exe?
Màn LCD 17" trắng như chứng gà bóc giá chỉ có 1.390.000 đ 1
Màn hình LCD - Tình hình là bên em mới về được lô màn hình LCD 17" hàng Nhật hiệu Fujitsu trắng như trắng gà bóc vậy Em nó data 2005
390-000-d-1-e
www.vatgia.com/ /man-lcd-17-quot-trang-nhu-chung-ga-boc-gia-chi-co-1-Bệnh thường gặp ở gà [Lưu Trữ] - Diễn Đàn Cá Rồng Việt Nam - DNTN Triệu chứng: Gà ủ rũ, xù lông, chậm chạp, phân đỏ hoặc sáp nhiều khi có máu tươi Triệu chứng: Gà ủ rũ, phân trắng loãng, hôi thối Gà đẻ trứng giảm,
cacanhhonganh.com.vn/ /t-2624.html
Chào mừng bạn đến với Sở Nông nghiệp & PTNT Lâm Đồng
1/ Triệu chứng: Gà mắc bệnh thường ủ rũ, kém ăn và chậm lớn 1/ Triệu chứng: Gà con bỏ ăn, ủ rũ, lông xơ xác, nằm chết chất đống trong chuồng,
Như vậy từ các so sánh ở trên chúng ta thấy rằng việc lựa chọn cụm từ tìm kiếm và mối quan hệ mật thiết giữa nó và chủ đề tìm kiếm là rất quan trọng trong việc tìm kiếm tổng hợp báo cáo Do đó để có được nội dung báo cáo tổng hợp mà sát với chủ đề người dùng phải hiểu rõ mối quan hệ giữa cụm từ và chủ
đề để lựa chọn các cụm từ tìm kiếm sao cho sát với chủ đề tìm kiếm nhất
Từ các kết quả trên chúng ta thấy số bài viết chứa cụm từ thuộc chủ đề là một đại lượng ngẫu nhiên có quan hệ tần số tuyệt đối
Để tìm hiểu về mối quan hệ giữa các cụm từ và bài viết trước tiên chúng ta
đi tìm hiểu về khái niệm “mode” là gì?, “lớp mode” là gì? trong ngành thống kê
“Mode” của một danh sách dữ liệu là giá trị của phần tử có số lần xuất hiện lớn nhất trong danh sách
Trang 31Ví dụ, mode của {lê, hồng, mơ, mận, mận, mận, đào} là mận
Vậy mode có ý nghĩa như thế nào trong việc lựa chọn các cụm từ và mối liên hệ giữa các cụm từ với bài viết ở trong luận văn này?
Để trả lời câu hỏi trên chúng ta sử dụng công cụ tìm kiếm google trên internet thực hiện lập bảng số liệu thống kê số bài viết về cụm từ, từ đó chúng ta minh họa được mối quan hệ giữa cụm từ và bài viết
Nội dung xâu liên quan chủ đề (X) Số bài viết, tần số (f)
Bảng 4 Quan hệ giữa cụm từ và bài viết
Với bảng số liệu trên chúng ta tìm được xâu mode là xâu “Chứng khoán”, bởi vì xâu “Chứng khoán” có tần số xuất hiện trong các bài viết là lớn nhất Bằng cách phân tích trực quan chúng ta thấy rằng với xâu tìm kiếm mà có nhiều bài viết về nó thì đó là những thông tin hóng hổi và mang tính thời sự
Với việc tìm kiếm thông qua xâu mode cũng dẫn việc tìm kiếm trùng lặp các bài viết (bởi vì xâu mode là xâu có tần suất xuất hiện lớn nhất) Do đó sẽ có nhiều bài viết trên nhiều website cùng đưa nội dung về xâu mode đó
Từ bảng quan hệ giữa cụm từ và bài viết chúng ta thấy được rằng với cụm
từ tìm kiếm càng dài thì số bài viết xuất hiện cụm từ tìm kiếm đó càng ít Số bài viết càng ít thì không gian tìm kiếm được thu hẹp và nội dung bài được cô đọng
Trang 32Ngược lại với cụm từ tìm kiếm càng ngắn thì số bài viết xuất hiện cụm từ càng nhiều Số bài viết càng nhiều thì không gian tìm kiếm càng rộng và nội dung bài viết sẽ rất tản mạn
Như vậy chúng ta có thể thấy được rằng mode có một số ý nghĩa quan trọng sau:
- Ý nghĩa về mặt thống kê: xâu mode là giá trị có tần suất xuất hiện lớn nhất
- Ý nghĩa về mặt thực tế: tìm kiếm với xâu mode sẽ dẫn đến việc tìm kiếm trùng lặp các bài viết
- Ý nghĩa về mặt thông tin cập nhật: với xâu mode là xâu có tần suất xuất hiện lớn nhất do đó nó chính là thông tin nóng hổi, sốt dẻo và mang tính thời sự
Trong luận văn này có nghiên cứu ứng dụng mode vào trong thuật toán tìm kiếm
và trích rút thông tin thông qua lớp mode
Lớp (vùng, miền) mode là lớp mà các cụm từ tìm kiếm xuất hiện nhiều và có quan hệ gần gũi với chủ đề nhất
Phương pháp tìm các cụm từ có độ khả tín cao (tìm lớp mode):
Chúng ta sẽ ứng dụng phương pháp Thống kê để tìm ra các cụm từ có độ khả tín có thể có hiệu quả nhất khi tìm kiếm các bài viết liên quan đến “Chủ đề”
là lớp (miền) mode (là miền mà các cụm từ tìm kiếm có quan hệ gần gũi với chủ
đề nhất)
Để thực hiện tìm các cụm từ thuộc lớp mode chúng ta thực hiện theo các bước sau:
Bước 1 Tạo bảng sắp xếp các cụm từ tăng theo độ dài
Từ bảng mối quan hệ giữa cụm từ và bài viết chúng ta sắp xếp các cụm từ tăng theo độ dài được bảng kết quả như sau:
Nội dung xâu liên quan chủ đề (X) Số bài viết, tần số (f)
Phân tích thị trường chứng khoán 1.600.000
Mã chứng khoán tăng mạnh cuối tuần 482.000
Bảng 5 Quan hệ giữa cụm từ và bài viết
Trang 33Bước 2 Tạo bảng có cột tần số tích lũy tham gia
Từ bảng cụm từ đã được sắp xếp ở bước 1 chúng ta thực hiện tính tần số tích luỹ theo công thức:
cf(i+1) = cf(i) + f(i)
cf là tần số tích luỹ (khởi tạo cf(1) = 0)
f là tần số hay số bài viết
i là chỉ số chạy từ 1 → n-1 (n: là tổng số cụm từ)
Chúng ta được kết quả như sau:
Nội dung xâu liên quan chủ đề (X) Số bài viết,
Phân tích thị trường chứng khoán 1.600.000 12.713.000
Mã chứng khoán tăng mạnh cuối
tuần
482.000 14.313.000
Bảng 6 Tần số và tần số tích lũy
Bước 3 Vẽ đồ thị của các cụm từ theo tần số tích lũy
Từ bảng tần số tích luỹ chúng ta thực hiện vẽ đồ thị của các cụm từ theo cột tần
số tích luỹ như sau:
Hình 2 Đồ thị các cụm từ theo tần số tích luỹ
Trang 34Bước 4 Lấy các cụm từ thuộc lớp mode
Từ đồ thị được vẽ ở bước trước chúng ta thực hiện lấy các cụm từ thuộc miền phần tư thứ hai và phần tư thứ ba (các cụm từ với tần số tích lũy nằm trong đoạn từ 25% đến 75%) là các cụm có quan hệ gần gũi nhất với “chủ đề” Đây chính là lớp mode mà chúng ta cần phải tìm kiếm
Với bảng số liệu ở trên chúng ta có tần số tích lũy lớn nhất là 14.313.000
Do đó mốc bắt đầu phần tư thứ hai có giá trị là 3.578.250, mốc kết thúc phần tư thứ ba có giá trị là 10.734.750 Vậy chúng ta thực hiện lấy các cụm từ có tần số tích lũy nằm trong đoạn [3.578.250, 10.734.750] chúng ta được các cụm từ
“Bảng giá chứng khoán”, “Thị trường chứng khoán HN”, “Mã chứng khoán tăng mạnh” là các cụm từ thuộc vào lớp mode
Thuật toán tìm lớp mode:
Vào: Tập các cụm từ tìm kiếm cho chủ đề
Ra: Quan hệ TimKiem (các cụm từ thuộc lớp mode)
„ Sao các giá trị từ quan hệ CumTu sang mảng arrCumTu theo chủ đề tìm kiếm
„ Vòng lặp thực hiện thống kê số bài báo cho từng cụm từ
For i=0 to iCT
Trang 35„ Thực hiện chia tần số tích luỹ lớn nhất cho 4 ta được giá trị ¼
PhanTu = CF[jCT]/4
„ Giá trị bắt đầu ¼ thứ hai của tần số tích lũy
Int BatDauPhanTuThuHai = CF[jCT] – PhanTu*3
„Giá trị kết thúc ¼ thứ ba của tần số tích lũy
Int KetThucPhanTuThuBa = CF[jCT] – PhanTu
„ Thực hiện lấy các cụm từ thuộc vào BatDauPhanTuThuHai đến
„KetThucPhanTuThuBa của cột tần số tích luỹ
„ Lưu các cụm từ này vào quan hệ TimKiem và kết thúc thuật toán
SAVE(TimKiem)
Chú ý trong các đoạn chương trình thuật toán viết giả mã thì sau dấu „ là ghi chú, còn dòng lệnh giả mã được viết in nghiêng
Chọn cụm từ để thăm dò:
Cụm từ thăm dò là hết sức quan trọng, nó làm thu hẹp miền tìm kiếm (giảm
số lượng các bài viết có nội dung ít phù hợp với chủ đề)
Chẳng hạn với chủ đề “Thị trường chứng khoán” thì các cụm từ cần cho thăm dò có thể chỉ cần: “Thị trường chứng khoán tăng mạnh”, “Thị trường chứng khoán giảm mạnh”, “Thị trường chứng khoán Việt Nam năm 2009”, “Thị trường chứng khoán tăng mạnh cuối tuần”, Mà không cần các xâu như:
“Chứng khoán”, “Chứng gà”, …
Chúng ta cần chọn các cụm từ thích hợp cho chủ đề cần nghiên cứu Để làm được điều này, ta cần phải có kiến thức về các chủ đề, để biết khả năng xuất hiện cụm từ trong bài viết Tránh trường hợp có bài viết chứa chủ đề cần nghiên cứu nhưng khi chọn cụm từ lại không thích hợp để có thể tham chiếu đến bài viết
Để tránh được điều này chúng ta có thể chọn các cụm từ thuộc vùng “mode” như đã trình bày ở trên
2.3.2 Giới thiệu cơ sở dữ liệu
Mục này chúng ta đi vào trình bày thiết kế, tổ chức cơ sở dữ liệu để thực hiện lưu trữ thông tin và phục vụ kết xuất ra báo cáo
a Bảng ChuDe
Do quá trình thăm dò và tổng hợp không phải chỉ dành cho một mà là nhiều chủ đề, vì thế chúng ta cần thiết kế một bảng để lưu nội dung của các chủ đề Bảng chủ đề được đặt tên là ChuDe và có cấu trúc như sau:
Trang 36Tên trường Kiểu dữ
liệu
Độ rộng
Ghi chú
ChuDe Nvarchar 100 Chủ đề cần nghiên cứu và tổng hợp
Bảng 7 Cấu trúc bảng ChuDe
Dữ liệu (minh họa) của bảng ChuDe:
TCCK Thị trường chứng khoán
CNTT Công nghệ thông tin
DBTT Dự báo thời tiết
GiaXangDau Giá xăng dầu
Bảng 8 Dữ liệu minh họa bảng ChuDe
b Bảng CumTu
Bảng cụm từ chứa các “cụm từ” được dùng để tìm các địa chỉ đoạn văn hay bài viết có chứa cụm từ liên quan đến chủ đề Các “cụm từ” được người sử dụng đưa vào bảng cụm từ sau đó dùng phương pháp thống kê để tìm lớp “mode” Bảng này bao gồm các trường lưu các dữ liệu cho mục đích tổng hợp văn bản
và cung cấp tiêu đề của khối văn bản cần tổng hợp Bảng cụm từ được đặt tên là CumTu và có cấu trúc như sau:
Tên trường Kiểu dữ
liệu
Độ rộng
Ghi chú
MaCumTu varchar 10 Khoá chính
CumTu Nvarchar 4000 Cụm từ cần dùng để thu lượm thông
tin