MỤC LỤC 1. Tổng quan về lọc thông tin và hệ thống lọc thông tin 3 2. Lọc thông tin theo từ khóa 4 3. Ứng dụng lọc thông tin theo từ khóa cho loại trừ spam mail 4 3.1. Thuật toán lọc từ khóa 4 3.2. Thuật toán lọc từ khóa dựa trên tập độc lập tối đa 5 3.2.1. Ma trận sự liên quan phù hợp của chuỗi (Matching relation matrix) 5 3.2.2. Thuật toán tập độc lập tối đa của ma trận quan hệ phù hợp 6 3.2.3. Tiêu chí phán đoán và đánh giá 7 3.2.4. Phân tích độ phức tạp 7 4. Chương trình minh họa 7 5. Kết luận 9 TÀI LIỆU THAM KHẢO 10 1. Tổng quan về lọc thông tin và hệ thống lọc thông tin Trước khi Internet ra đời, đã có một số phương pháp lọc thông tin (IF). Ví dụ, một chính phủ điều khiển và hạn chế luồng thông tin bất lợi, các biên tập viên, nhà báo cũng cần chọn lọc thông tin khi cung cấp cho độc giả, khán giả. Thậm chí trong trường học, giáo viên cũng cần chọn lọc thông tin để giảng dạy cho học sinh… Với sự ra đời của Internet, bất kể ai cũng có thể cung cấp thông tin nhanh với chi phí thấp. Điều này đã làm tăng đáng kể các thông tin, vấn đề là thông tin nào là cần thiết với người dùng? Với vấn đề này, các nhà nghiên cứu đã đưa ra phương pháp lọc mới để chúng ta có thể nhận được thông tin cần thiết cho mỗi chủ đề cụ thể một cách tự động. Như vậy, lọc thông tin không phải là một khái niệm mới, cũng không phải chỉ giới hạn ở các tài liệu điện tử. Tuy nhiên, với sự ra đời và tăng nhanh của thông tin dạng điện tử, thì vấn đề về lọc thông tin một cách tự động trở nên quan trọng hơn, cũng chính từ đòi hỏi này dẫn đến sự ra đời của nhiều hệ thống lọc thông tin tự động. Vậy lọc thông tin là gì và thế nào là một hệ thống lọc thông tin? Lọc thông tin là lĩnh vực nghiên cứu các quá trình cung cấp thông tin thích hợp, ngăn ngừa và loại bỏ thông tin không thích hợp cho người sử dụng. Thông tin được cung cấp có thể là văn bản, trang web, phim, ảnh hoặc bất kỳ dạng thông tin nào được sinh ra từ các phương tiện thông tin truyền thông. Lọc thông tin trải rộng trong nhiều ứng dụng khác nhau của công nghệ thông tin như: lọc kết quả tìm kiếm trong các máy tìm kiếm, lọc mail, lọc thông tin trên máy chủ… Một hệ thống lọc thông tin bao gồm một số công cụ giúp mọi người tìm thấy những thông tin có giá trị nhất, nên sẽ tiết kiệm thời gian đọc nghe xem, đó là những thông tin đúng hướng trong các tài liệu thú vị nhất và có giá trị. Các bộ lọc này cũng được sử dụng để tổ chức và cấu trúc thông tin một cách chính xác, dễ hiểu. Các bộ lọc này rất cần thiết trong các kết quả thu được của các công cụ tìm kiếm trên Internet. Các chức năng của bộ lọc không ngừng được cải thiện để có được tài liệu Web và các thông điệp hiệu quả hơn. Có rất nhiều hệ thống lọc thông tin khác nhau (khác về nguyên lý, phương pháp, kỹ thuật và miền ứng dụng…) nhưng điều có mục tiêu cung cấp cho người sử dụng những thông tin cần thiết, loại bỏ các thông tin không phù hợp. Nguyên lý phổ biến được sử dụng trong lọc thông tin là nguyên lý dựa vào dữ liệu (DataBased) và nguyên lý dựa vào tri thức (KnowledgeBased). Các kỹ thuật lọc được phát triển dựa trên nền tảng từ lĩnh vực truy vấn thông tin, tách thông tin, phân loại thông tin.
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ KHOA CÔNG NGHỆ THÔNG TIN SEMINAR Môn học: An ninh cơ sở dữ liệu LỌC THÔNG TIN THEO TỪ KHÓA Giảng viên: PGS.TS. Trịnh Nhật Tiến Học viên: Nguyễn Viết Minh Hà Nội, tháng 12 năm 2013 MỤC LỤC 2.Lọc thông tin theo từ khóa 4 3.1.Thuât toan loc t khoá ̀ ̣́ ̣ ư 4 3.2.Thuât toan loc t khoa d a trên tâp ôc lâp tôi á ̀ ́ ̣́ ̣ ư ự ̣ đ ̣ ̣ đ 5 3.2.1.Ma trân s liên quan phu h p cua chuôi (Matching relation matrix)̀ ̣̃ ự ợ ̉ 5 3.2.2.Thuât toan tâp ôc lâp tôi a cua ma trân quan hê phu h ṕ ́ ̣̀ ̣ đ ̣ ̣ đ ̉ ̣ ̣ ợ 6 3.2.3.Tiêu chi phan oan va anh giá ́ ́ ̀ ́ ́đ đ 7 3.2.4.Phân tich ô ph c taṕ ́đ ̣ ư ̣ 7 4.Chương trình minh họa 7 TÀI LIỆU THAM KHẢO 10 Page 2 1. Tổng quan về lọc thông tin và hệ thống lọc thông tin Trước khi Internet ra đời, đã có một số phương pháp lọc thông tin (IF). Ví dụ, một chính phủ điều khiển và hạn chế luồng thông tin bất lợi, các biên tập viên, nhà báo cũng cần chọn lọc thông tin khi cung cấp cho độc giả, khán giả. Thậm chí trong trường học, giáo viên cũng cần chọn lọc thông tin để giảng dạy cho học sinh… Với sự ra đời của Internet, bất kể ai cũng có thể cung cấp thông tin nhanh với chi phí thấp. Điều này đã làm tăng đáng kể các thông tin, vấn đề là thông tin nào là cần thiết với người dùng? Với vấn đề này, các nhà nghiên cứu đã đưa ra phương pháp lọc mới để chúng ta có thể nhận được thông tin cần thiết cho mỗi chủ đề cụ thể một cách tự động. Như vậy, lọc thông tin không phải là một khái niệm mới, cũng không phải chỉ giới hạn ở các tài liệu điện tử. Tuy nhiên, với sự ra đời và tăng nhanh của thông tin dạng điện tử, thì vấn đề về lọc thông tin một cách tự động trở nên quan trọng hơn, cũng chính từ đòi hỏi này dẫn đến sự ra đời của nhiều hệ thống lọc thông tin tự động. Vậy lọc thông tin là gì và thế nào là một hệ thống lọc thông tin? Lọc thông tin là lĩnh vực nghiên cứu các quá trình cung cấp thông tin thích hợp, ngăn ngừa và loại bỏ thông tin không thích hợp cho người sử dụng. Thông tin được cung cấp có thể là văn bản, trang web, phim, ảnh hoặc bất kỳ dạng thông tin nào được sinh ra từ các phương tiện thông tin truyền thông. Lọc thông tin trải rộng trong nhiều ứng dụng khác nhau của công nghệ thông tin như: lọc kết quả tìm kiếm trong các máy tìm kiếm, lọc mail, lọc thông tin trên máy chủ… Một hệ thống lọc thông tin bao gồm một số công cụ giúp mọi người tìm thấy những thông tin có giá trị nhất, nên sẽ tiết kiệm thời gian đọc / nghe / xem, đó là những thông tin đúng hướng trong các tài liệu thú vị nhất và có giá trị. Các bộ lọc này cũng được sử dụng để tổ chức và cấu trúc thông tin một cách chính xác, dễ hiểu. Các bộ lọc này rất cần thiết trong các kết quả thu được của các công cụ tìm kiếm trên Internet. Các chức năng của bộ lọc không ngừng được cải thiện để có được tài liệu Web và các thông điệp hiệu quả hơn. Có rất nhiều hệ thống lọc thông tin khác nhau (khác về nguyên lý, phương pháp, kỹ thuật và miền ứng dụng…) nhưng điều có mục tiêu cung cấp cho người sử dụng những thông tin cần thiết, loại bỏ các thông tin không phù hợp. Nguyên lý phổ biến được sử dụng trong lọc thông tin là nguyên lý dựa vào dữ liệu (Data-Based) và nguyên lý dựa vào tri thức (Knowledge-Based). Các kỹ thuật lọc được phát triển dựa trên nền tảng từ lĩnh vực truy vấn thông tin, tách thông tin, phân loại thông tin. Trong khuôn khổ tài liệu này, ta sẽ tìm hiểu phương pháp lọc thông tin theo từ khóa trong hệ thống lọc spam mail. Page 3 2. Lọc thông tin theo từ khóa Từ khóa là một chuỗi các ký tự (như một từ, một cụm từ hoặc từ viết tắt). Lọc thông tin theo từ khóa cho phép bạn ngăn chặn những trang web, những email, … có nội dung không phù hợp, hoặc chọn ra được những nội dung cần thiết bằng cách so khớp các từ khóa trong nội dung trang web, email… với tập từ khóa sẵn có. Ví dụ, để lọc nội dung không phù hợp theo từ khóa khi truy cập Internet, ta quét nội dung truy cập Internet vào máy tính và tìm các từ mà được liệt kê trong một danh sách đen. Một trang web bị chặn nếu nó có chứa bất cứ từ nào trong danh sách chặn đó. Hình thức lọc từ được áp dụng đối với cả những yêu cầu (request) được gửi đi từ máy tính để đảm bảo truy cập đối với từ khóa cấm được lọc ngay từ đầu. Các trang web khiêu dâm thương mại cần phải được tìm thấy một cách dễ dàng được tìm thấy bởi các khách hàng tiềm năng và các công cụ tìm kiếm mà họ sử dụng để lướt web. Một trong những cơ chế của các trang web là để thêm một số khả năng tìm kiếm từ khóa để trang Web của họ, thậm chí nếu họ không thực sự hiển thị. Những từ này sẽ được chọn của trang Web crawlers, thêm vào danh mục được sử dụng bởi các công cụ tìm kiếm của họ và sau đó có thể được tìm thấy bằng cách lướt web. Do đó, lọc từ khóa áp dụng triệt để đối với các từ khóa xuất hiện trong trang web tìm kiếm hay thẻ meta của nội dung các trang web truy cập. Một số nhược điểm với lọc từ khóa: chỉ kiểm tra nội dung dạng văn bản, không thực hiện kiểm tra đối với các hình ảnh. Cụ thể đối với những trang web khiêu dâm như tiếng Nga, tiếng Nhật có cả những từ nội địa và hình ảnh thực sự cần lọc thì những từ khoá tiếng Anh, tiếng Việt hoàn toàn mất tác dụng. Khác nữa, lọc từ khóa gặp trường hợp từ khóa cần lọc nằm trong cụm từ có nghĩa khác và trong những bối cảnh khác nhau sẽ có nghĩa không cần phải lọc. Lọc cụm từ là một trường hợp mở rộng của lọc từ khóa. Lọc cụm từ thực hiện kiểm soát nội dung truy cập thông qua một cụm từ, không phải xem xét từng từ một xuất hiện trong cụm từ đó. Với biện pháp lọc này đạt kết quả cao hơn nhiều so với lọc từ khóa, hạn chế tối đa trường hợp phát sinh của việc từ khóa có nghĩa khác nhau trong bối cảnh khác nhau. Sau đây, ta sẽ tìm hiểu một ứng dụng sử dụng lọc thông tin theo từ khóa để xác định spam mail. 3. Ứng dụng lọc thông tin theo từ khóa cho loại trừ spam mail 3.1. Thuật toán lọc từ khóa Lọc email sử dụng một từ khóa hoặc nhiều từ khóa là một cơ sở chung để đánh giá email nào là spam. Ta sử dụng tỷ lệ hit từ khóa để xác nhận một tin nhắn là thư rác hay không, nếu tỷ lệ hit là lớn hơn một ngưỡng quy định, nó được coi như một thư rác . Ngoài ra, các từ khóa cũng có thể là cụm từ và câu ngắn. Tiêu đề mail là dữ liệu đầu tiên có ý nghĩa quan trọng trong việc phát hiện thư rác. Người gửi thư rác (spammer) sử dụng Page 4 các công cụ khác nhau và gửi ngẫu nhiên để giả mạo người gửi tin cậy, chủ đề, nội dung, nhưng một số thông tin chung được lưu trữ trong các thông tin tiêu đề tin nhắn , trong đó bao gồm địa chỉ IP, tên máy chủ… Thông qua bộ lọc thông tin này, ta có thể tìm ra các thư rác từ các mail được gửi từ cùng một địa chỉ bao gồm địa chỉ thu phát và chủ đề khác nhau. Thuật toán lọc từ khóa thường tạo ra bảng từ khoá để phán đoán và xử lý thư rác. Nếu từ khóa xuất hiện trong một lượng lớn thư rác thì ta có thể đặt chúng trên danh sách lọc. Các khiếm khuyết của thuật toán này là tốn tài nguyên và một số spammer có thể sử dụng tính năng tách từ, kết hợp từ để tránh được quá trình lọc 3.2. Thuật toán lọc từ khóa dựa trên tập độc lập tối đa 3.2.1. Ma trận sự liên quan phù hợp của chuỗi (Matching relation matrix) Cho hai chuỗi bất kỳ S và T, vấn đề so khớp tối đa chúng là tương đương với tập độc lập tối đa của ma trận quan hệ so khớp. Định nghĩa S = a 1 a 2 …a n , T = b 1 b 2 …b n ; Lưu ý rằng: <n> = {1, 2, …, n}; <m> = {1, 2, …, m} Do đó: {(i,j)| i ji banjm =>∈<>∈< ,, } được gọi là khớp với mối quan hệ bộ S và T và được viết là: M(S,T). Ở đây chúng ta giả định rằng n≥m. Ma trận C về mối quan hệ phù hợp có thể được xác định như sau: Với c ij =1 nếu a i =b j và c ij =0 nếu a i ≠ b j Trong tài liệu này, ta chỉ xét với trọng số c ij =1. Mỗi nút trong tập độc lập chỉ tồn tại một nút tương ứng với nút ở góc dưới bên phải nằm ở hàng khác nhau hoặc cột khác nhau, được gọi là bán chéo. Tập hợp các nút mà giá trị là 1 (c ij =1) trên một đường chéo của ma trận quan hệ phù hợp được gọi là một bộ độc lập. Vấn đề kết hợp từ khoá có thể được chuyển đổi thành giải quyết tối đa bộ độc lập của ma trận quan hệ phù hợp, và tìm kiếm tất cả các tập độc lập đặt trong một ma trận liên quan phù hợp nhất định. Vì vậy, các bộ dài nhất là chính là đáp án. Đặc biệt, ta có thể tìm kiếm các điểm phù hợp trong ma trận quan hệ mà trong đó giá trị là 1 để xác định xem chúng là hoàn toàn khớp trong quá trình này. Tuy nhiên, ý tưởng thảo luận trên sẽ làm cho vấn đề phức tạp hơn, chúng ta thấy rằng việc tìm kiếm các bộ độc lập tối đa có thể được coi là tìm kiếm một đường trong ma trận Page 5 quan hệ phù hợp, trong đó giá trị là 1. Mỗi nút trong bộ độc lập chỉ tồn tại một nút tương ứng ở góc dưới bên phải nằm ở hàng hoặc cột khác nhau, được gọi là bán chéo, tìm góc dưới bên phải theo bán chéo. Ta giới thiệu một thuật toán giải quyết vấn đề mới để tìm bộ độc lập trong tài liệu này (sẽ mô tả chi tiết trong phần sau). Mối quan hệ giữa kết quả đầu ra với chuỗi đầu vào ban đầu sẽ đáp ứng các mối quan hệ sau: 3.2.2. Thuật toán tập độc lập tối đa của ma trận quan hệ phù hợp Để tìm kiếm góc dưới bên phải tương ứng với đường chéo, ta đề xuất cải thiện thuật toán của bộ độc lập tối đa với ma trận quan hệ phù hợp như sau: Giả sử chuỗi α và β là các tập độc lập thu được trong tìm kiếm, ta đặt độ dài của chúng là | α | và | β |. Các thủ tục của thuật toán mô tả như sau: Bước 1: Khi tìm kiếm trên cột j, nếu | α | ≥ | β | và hoành độ của kí tự cuối cùng của α i1 < i2 (hoành độ ký tự cuối cùng của β), sau đó dừng hoạt động của β. Bước 2: Khi tìm kiếm trên hàng i, nếu | α | ≥ | β |, và tung độ của ký tự cuối cùng của α j1 < j2 (tung độ ký tự cuối cùng của β), sau đó dừng hoạt động của β. Bước 3: Khi tìm kiếm mối quan hệ ma trận kết hợp được hoàn thành, chiều dài của α bằng chuỗi ban đầu, sau đó từ khóa được tìm thấy. Trong thuật toán này , có thể tạo ra nhiều kết quả của β , bởi vì ta chỉ tìm thấy chiều dài của α với chiều dài của chuỗi ban đầu, vì vậy ta có thể nhận được nhiều bộ độc lập. Thủ tục tìm kiếm sẽ được biểu diễn bằng mã giả như sau: search d[]=0;col=0;η[]=0;k=0; for j∈col,…,n do for i∈k,…, m do if equal(S[i],T[j]) { d[]++;col++;k++; continue;} Page 6 if(j<n&&k>=m) k=0; End of For η[] = d[]/m; End Với d [] chỉ chiều dài mảng của mỗi tập độc lập trong việc lưu trữ và tính toán, η [] chỉ sự kết hợp chính xác của mỗi bộ độc lập, col là bắt đầu vị trí tiếp theo phù hợp của chuỗi mục tiêu T [j], tập thiết lập của col phần lớn có thể làm giảm thời gian so khớp và độ phức tạp. K là định danh của chuỗi tìm kiếm ban đầu. Khi lầm tìm kiếm đầu tiên của chuỗi ban đầu kết thúc và chuỗi mục tiêu không được hoàn thành, và sau đó tìm kiếm từ các ký tự đầu tiên của chuỗi ban đầu một lần nữa, quá trình tìm kiếm sẽ dừng lại cho đến khi nó tìm tất cả các chuỗi khớp. 3.2.3. Tiêu chí phán đoán và đánh giá Tính so khớp chính xác c N N α η = với N α là chiều dài của từ khóa chuỗi ban đầu, N c = ∑∑ = = m i n j ij C 1 1 là độ dài của tất cả các bán chéo (C ij chỉ bằng 0 hoặc 1). Nếu η < 1 nghĩa là chuỗi α và chuỗi mục tiêu phát hiện không phù hợp thì hệ thống trả ra kết quả: mail là an toàn. Nếu η > 1, vô nghĩa. Nếu η = 1 thì hệ thống hiển thị chuỗi α và phát hiện mục tiêu ma trận chuỗi chính xác, từ khóa ẩn trong chuỗi β được tìm thấy, sau đó hệ thống cung cấp cho một cảnh báo, và tiếp tục các bước tiếp theo. 3.2.4. Phân tích độ phức tạp Trong tài liệu này, ta cũng đưa vào hai kỹ thuật trong thuật toán trên. Thứ nhất là ma trận mối quan hệ phù hợp được tự động tạo ra, ta không cần bất kỳ không gian khác để lưu trữ ma trận bảng . Thứ hai, trong các thủ tục của sự so khớp chuỗi, ta không yêu cầu tất cả các yếu tố của chuỗi ban đầu và chuỗi mục tiêu bình đẳng, chúng ta chỉ cần tìm kiếm dọc theo phía dưới bên phải của bán chéo, các chi tiết tìm kiếm có thể được tìm thấy trên các mô tả thuật toán bằng mã giả của định nghĩa của cột. Độ phức tạp của cả không gian và thời gian của thuật toán này là ít hơn so với O(mn). 4. Chương trình minh họa Trong tài liệu này, em sử dụng chương trình miễn phí Spam Reader có nhiều chức năng lọc spam mail, trong đó có chức năng lọc spam mail theo từ khóa. Chương trình này được gửi kèm với tài liệu này. Page 7 Chương trình sau khi cài đặt sẽ được tích hợp luôn vào Outlook Express nên khi sử dụng ta không phải mở cùng lúc nhiều chương trình. Chương trình hoạt động khá hiệu quả với giao diện tích hợp vào Outlook 2007 như sau: Để lọc các email spam theo từ khóa, ta có thể nhập trực tiếp các từ khóa vào phần từ khóa spam. Chương trình sẽ tự động lọc ra những email nào chứa từ khóa đó và hiện cảnh báo spam mail để người dùng lựa chọn xem xét email này. Page 8 5. Kết luận Như đã trình bày trong tài liệu, phương pháp lọc thông tin theo từ khóa mang lại nhiều ứng dụng hữu ích, giúp ta quản lý và sử dụng các thông tin điện tử một cách hiệu quả và an toàn. Đặc biệt là trong hệ thống quản lý spam mail. Tuy nhiên, phương pháp này cũng còn một số hạn chế, đôi khi có thể bỏ sót keyword hoặc lọc cả những keyword an toàn. Phương pháp này nên được sử dụng kết hợp với các phương pháp khác để đạt hiệu quả tốt hơn. Trong thời gian tới, em sẽ tiếp tục nghiên cứu mở rộng lĩnh vực này. Page 9 TÀI LIỆU THAM KHẢO [1] Z. Li and H. Shen, “SOAP: A Social network Aided Personalized and effective spam filter to clean your e-mail box”, INFOCOM, 2011 Proceedings IEEE, (2011), pp. 1835-1843. [2] M. T. B. Aun, B. -M. Goi and V. T. H. Kim, “Cloud enabled spam filtering services: Challenges and opportunities”, Sustainable Utilization and Development in Engineering and Technology (STUDENT), 2011 IEEE Conference on, (2011), pp. 63-68. [3]. Vinaitheerthan Renganathan, Ajit N Babu and Suptendra Nath Sarbadhikar, “A Tutorial on Information Filting Concepts and Methods for Bio-medical Searching”. Health & Medical, 2013 [4]. Information Filtering System: http://en.wikipedia.org/wiki/Information_filtering_system Page 10 . lọc. Lọc cụm từ là một trường hợp mở rộng của lọc từ khóa. Lọc cụm từ thực hiện kiểm soát nội dung truy cập thông qua một cụm từ, không phải xem xét từng từ một xuất hiện trong cụm từ đó. Với. như sau: Để lọc các email spam theo từ khóa, ta có thể nhập trực tiếp các từ khóa vào phần từ khóa spam. Chương trình sẽ tự động lọc ra những email nào chứa từ khóa đó và hiện cảnh báo spam mail. rác từ các mail được gửi từ cùng một địa chỉ bao gồm địa chỉ thu phát và chủ đề khác nhau. Thuật toán lọc từ khóa thường tạo ra bảng từ khoá để phán đoán và xử lý thư rác. Nếu từ khóa