Phân loại Web đồi trụy dựa vào văn bản và hình ảnh
Thực tế hiện nay, số lượng thanh thiếu niên suy
đồi đạo đức cũng như phạm tội ngày càng tăng
cao. Một trong những nguyên nhân đó là do ảnh
hưởng từ những thông tin không lành mạnh tràn
lan trên internet, lượng lớn thông tin đó chưa được
phân loại hay kiểm soát để giúp người sử dụng
tránh truy cập những thông tin xấu. Nghiên cứu
về phân loại web đồi trụy ở trong nước cũng như
trên thế giới đã có những kết quả cụ thể và ứng
dụng trong thực tế: công cụ chặn website khiêu
dâm của nước ngoài như STOP P-O-R-N của
PB Software LLC, Media Detective; CyberSitter
của Solid Oak Software; iShield và ScreenShield
Enterprise của Guardware,. Trong nước có công
cụ chặn web đen Killporn của tác giả Nguyễn Hữu
Bình, VwebFilter (VWF), Depraved Web Killer
(DWK) của tác giả Vũ Lương Bằng, MiniFireWall
4.0 (MFW) của tác giả Huỳnh Ngọc Ẩn [11]. Theo
hướng tiếp cận máy học về phân loại web đồi trụy
đã có một số nghiên cứu trên thế giới. Theo [12],
tác giả sử dụng SVM để phân tích ngữ nghĩa nhằm
tìm mối quan hệ ngữ nghĩa giữa các từ khóa và
giữa các tài liệu web, sau đó mô hình hóa chúng
dạng vector nhằm phân lớp văn bản, sử dụng
phân tích ngữ nghĩa tiềm ẩn (LSA) và đặc trưng
trang web (WPFS) để trích chọn các đặc trưng ngữ
nghĩa và văn bản. Kết quả phân lớp có giá trị TP
trung bình cho hai phương pháp là 96,5%, chưa
phân lớp hình ảnh trong trang web. Theo [13], tác
giả đưa ra phương pháp phát hiện nội dung web
khiêu dâm sử dụng TF-IDF tính trọng số của một
từ hoặc nhóm từ để thống kê mức độ quan trọng
của chúng trong một văn bản tiếng Anh và tiếng
Nga. Kết quả phân loại tiếng Anh sử dụng Naïve
Bayes có độ chính xác phân lớp trung bình 92,9%,
thời gian trích chọn đặc trưng cho mỗi tài liệu tiếng
Anh khá lớn (2,7 giây).
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Tóm tắt nội dung tài liệu: Phân loại Web đồi trụy dựa vào văn bản và hình ảnh
đa phần là những hình ảnh có tỉ lệ màu da nhỏ (trừ một số trường hợp ảnh bình thường có tỉ lệ điểm ảnh có màu da lớn như: ảnh khuôn mặt chụp cận cảnh, ảnh phụ nữ mặc bikini, hoặc là ảnh của các vật chất khác (không phải da người) nhưng có màu sắc giống da người). Tỉ lệ phần trăm vùng da lớn nhất (kí hiệu SPR0): Tỉ phần phần trăm của vùng da lớn nhất sẽ đóng vai trò quan trọng trong trường hợp phân biệt sự khác nhau giữa những bức ảnh có tỉ lệ phần trăm màu da xấp xỉ nhau. Số lượng vùng da (kí hiệu NSR): Sau khi áp dụng thuật toán phân khúc màu da, thực hiện loại bỏ đi những vùng da có kích thước nhỏ (≤100 pixels), những vùng da nhỏ thường gây nhiễu và không có ý nghĩa trong phân lớp, do đó chỉ đếm những vùng da có kích thước lớn. Tỉ lệ phần trăm da của 16 vùng da: Các hình ảnh nude đa phần những nhân vật nằm trung tâm bức ảnh, các vùng da phát hiện thường phân bố liền nhau và có xu hướng các vùng có màu da phân bố theo một hướng kéo dài, trong khi đó những hình ảnh bình thường nếu có nhiều vùng da thì các vùng da này thường phân bố rời rạc không liên tục nhau. Vì vậy, một hình ảnh sau khi phát hiện màu da xong có kích thước 256*256 sẽ phân chia thành 16 vùng (4*4 vùng) để tính tỉ lệ màu da của 16 vùng da tương ứng của ảnh (kí hiệu SPRi (i = 1, 2,, 16)). Trung bình và độ lệch của các thành phần màu R, G, B Từ các mô hình nhận dạng màu da, chúng ta nhận thấy rằng các điểm ảnh có màu sắc giống màu da khi các thành phần màu trong không gian màu tương ứng nằm trong một phạm vi nhất định. Do đó, những hình ảnh có chứa số lượng điểm ảnh có màu sắc giống màu da nhiều thì giá trị trung bình của các điểm ảnh theo từng kênh màu cũng sẽ rơi vào một ngưỡng nhất định. Độ lệch chuẩn sẽ có giá trị trong việc phân lớp là những hình nude thường ít có sự thay đổi màu sắc đột ngột, do đó giá trị độ lệch chuẩn sẽ thấp và ngược lại. LIÊN NGÀNH ĐIỆN - ĐIỆN TỬ - TỰ ĐỘNG HÓA Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018 31 2.3.2. Mô tả bài toán phân lớp văn bản Cho tập huấn luyện: X = {di,ci}, i = 1,2,, n; di Є D={d1,d2,,dm},ci Є C = {1,-1}, trong đó D là tập hợp chứa N văn bản với mỗi văn bản được biểu diễn dưới dạng một vector m chiều, mỗi chiều của văn bản là một token (từ đơn hoặc từ ghép) di=(w1,w2,,wm); tập C là tập nhãn với quy định 1 là nhãn của lớp các văn bản có nội dung đồi trụy, -1 là lớp các văn bản có nội dung không đồi trụy. Bài toán đặt ra: cho một văn bản d mới (d ∉ D), cho biết văn bản d được phân vào lớp nào trong hai lớp 1 và -1. Nói cách khác là tìm ánh xạ f để f(d)Є{1,-1}. Văn bản phân lớp gồm ngôn ngữ tiếng Anh: là loại hình biến cách biến đổi nguyên âm và phụ âm ở trong hình vị. Ý nghĩa từ vựng và ý nghĩa ngữ pháp dung hợp ở trong từ nhưng không thể tách bạch phần nào biểu thị ý nghĩa từ vựng, phần nào biểu thị ý nghĩa ngữ pháp nên gọi là các ngôn ngữ “hòa kết” biến hình. Ngôn ngữ biến hình có cả các phụ tố, mỗi phụ tố có thể đồng thời mang nhiều ý nghĩa và ngược lại, cùng một ý nghĩa có thể diễn đạt bằng nhiều phụ tố khác nhau. Ngôn ngữ tiếng Việt: Một từ luôn có hình thức không biến đổi trong mọi trường hợp. Quan hệ ngữ pháp và ý nghĩa ngữ pháp biểu thị chủ yếu bằng hư từ và trật tự từ. 2.3.2.1. Tiền xử lý văn bản Tiền xử lý văn bản là quá trình chuyển đổi một văn bản ban đầu sang một văn bản mới thuần túy (text), tức loại bỏ các thành phần hình ảnh, các tag trong trang web, các thông tin định dạng. Để thống nhất thì tất cả các văn bản đều được chuyển sang định dạng unicode-utf8. Ðể thực hiện được điều này có thể sử dụng tiện ích Unikey, trong nghiên cứu này sử dụng công cụ UTF8 Unicode tại: com/get/ScienceCAD/ UTF-8converter.shtml. Ngoài ra, ta cần loại bỏ đi những kí tự tab, enter, số, và các kí tự đặc biệt khác như: “,./?;:’~!@#$%^&*()*+-\=”. Quá trình này được thực hiện một cách tự động. 2.3.2.2. Tách từ Tách từ nhằm mục đích xác định ranh giới từ trong câu, tức là quá trình xác định từ đơn, từ ghép. Ðối với tiếng Anh, việc xác định ranh giới từ là việc xác định khoảng trắng phân cách giữa các từ với nhau hoặc là từ kết thúc bằng dấu chấm câu. Trong tiếng Việt, khi xử lý tách từ gặp khó khăn vì nghĩa của từ có liên quan đến trật tự từ. Có thể kể đến một số phương pháp tách từ như: so khớp từ dài nhất, so khớp cực đại, mô hình Markov, học dựa trên sự cải biến, chuyển đổi trạng thái trọng số hữu hạn. Ðể giải quyết bài toán này, tác giả sử dụng công cụ tách từ vnTokenizer của tác giả Lê Hồng Phương [6]. 2.3.2.3. Loại bỏ hư từ (stop word) Thực từ là những từ có khả năng một mình tạo thành câu, một mình làm phần nêu hoặc phần báo trong phần chính của câu, có chức năng gọi tên sự vật, thuộc tính sự vật [1]. Hư từ không có chức năng định danh, không có khả năng độc lập làm thành phần câu, dùng để biểu thị các quan hệ ngữ nghĩa - cú pháp khác nhau giữa các thực từ [2]. Hư từ phổ biến trong cả ngôn ngữ tiếng Anh lẫn tiếng Việt. 2.3.2.4. Tạo danh sách từ vựng Từ cơ sở dữ liệu văn bản thu thập trực tuyến và gán nhãn lớp cho mỗi văn bản, mỗi văn bản thuộc lớp “xấu” chứa những văn bản đồi trụy và lớp “tốt” chứa những văn bản không chứa nội dung đồi trụy. Tiến hành trích chọn ra các thực từ xuất hiện trong cả 2 lớp trong cơ sở dữ liệu văn bản huấn luyện với một ngưỡng cho trước. 2.3.2.5. Huấn luyện và phân lớp văn bản bằng Naïve Bayes Huấn luyện Naïve Bayes: Huấn luyện Naïve Bayes thực chất là quá trình tính xác suất xuất hiện của mỗi từ trong danh sách từ vựng được tạo ra. Phân lớp Naïve Bayes: Với một văn bản mới cần phân lớp, ta trích chọn những thực từ có xuất hiện trong danh sách từ vựng, sau đó áp dụng kỹ thuật phân lớp Naïve Bayes. 3. KẾT QUẢ NGHIÊN CỨU VÀ THẢO LUẬN 3.1. Thu thập dữ liệu 3.1.1. Dữ liệu hình ảnh Thu thập dữ liệu hình ảnh tại net/projects/imagecrawler. Tiếp theo, tiến hành phân loại các hình ảnh vào hai lớp gồm lớp hình nude (hình ảnh đồi trụy từ nhiều châu lục khác nhau) và lớp hình ảnh không nude (hình ảnh không chứa nội dung đồi trụy bao gồm hình ảnh về các chủ đề khác nhau: người, động vật, thực vật,). Kết quả tập hợp các hình ảnh thu được phân thành các tập sau: 32 NGHIÊN CỨU KHOA HỌC Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018 3.1.2. Dữ liệu văn bản Thu thập dữ liệu văn bản từ các website tiếng Việt đối với văn bản tiếng Việt, đối với văn bản tiếng Anh tải trực tiếp từ website http:// www.textfiles.com với nhiều chủ đề đã phân loại sẵn như: food, fun, message, erotica, Bảng 2. Bộ dữ liệu văn bản N gô n ng ữ Tập huấn luyện Tập kiểm tra Số file lớp “xấu” Số file lớp “tốt” Tổng số file Dung lượng (MB) Số file lớp “xấu” Số file lớp “tốt” Tổng số file Dung lượng (MB) Tiếng Việt 329 331 660 2.48 163 166 329 1.28 Tiếng Anh 390 341 731 14.6 302 362 644 12.7 3.2. Kết quả nghiên cứu Cài đặt trên máy tính hệ điều hành Window8, 32 bits, CPU Core I5, 2.5Ghz, ngôn ngữ lập trình Python 2.7 và sử dụng một số thư viện hỗ trợ: OpenCV, libsvm, Numpy, PIL, scipy, codecs, matplotlib và công cụ tách từ tiếng Việt vnTokenizer của tác giả Lê Hồng Phương. 3.2.1. Phát hiện màu da Trước tiên, cần đánh giá độ chính xác giữa các mô hình phát hiện màu da. Để đánh giá, sử dụng cơ sở dữ liệu dùng để phân đoạn màu da “Skin Segmentation Dataset” cung cấp bởi Rajen Bhatt, Abhinav Dhall, UCI Machine Learning Repository để chọn ra mô hình phát hiện màu da tốt nhất nhằm nâng cao độ chính xác dự đoán của mô hình phân lớp ảnh: (https://archive. ics. uci.edu/ml/datasets/ SkinSegmentation#). Skin Segmentation Dataset là một cơ sở dữ liệu có kích thước 245057x4, trong đó số mẫu là 245057, và mỗi mẫu có bốn thành phần là B,G,R (ba thành phần của một điểm ảnh trong không gian màu RGB) và thành phần thứ tư là nhãn (1 hoặc 2) của điểm ảnh (1: màu da, 2: không phải màu da). Trong 245057 mẫu thì có 50859 là các mẫu da và 194198 mẫu không phải là da. Bảng 3. Độ chính xác của các mô hình phát hiện màu da Mô hình màu da True Skin False Skin True nonskin False nonskin HSV 45781/50859 (90%) 5087/50859 (10%) 187928/194198 (96.8%) 6272/194198 (3.2%) YCbCr 50393/50859 (99.1%) 446/50859 (0.9%) 187378/194198 (96.5%) 6820/194198 (3.5%) RGB-Kovac 50634/50859 (99.6%) 225/50859 (0.4%) 185776/194198 (95.7%) 8422/194198 (4.3%) RGB- Histogram (Skinmod el.bin) [7] 34343/50859 (67.5%) 6516/50859 (32.5%) 189764/194198 (97.7%) 4434/194198 (2.3%) Bảng trên cho thấy, mô hình YcbCr và RGB-Kovac có tỷ lệ phát hiện màu da với độ chính xác cao hơn hai mô hình còn lại. Cụ thể phát hiện đúng là da (True Skin) đạt trên 99% và đúng không phải là da (True nonskin) trên 95%. 3.2.2. Huấn luyện và phân lớp hình ảnh Từ tập dữ liệu hình ảnh dùng để huấn luyện và ứng với mỗi mô hình màu da, tiến hành trích chọn đặc trưng và huấn luyện có kết quả như sau: Bảng 1. Bộ dữ liệu ảnh Tập huấn luyện Tập kiểm tra Số file lớp “xấu” Số file lớp “tốt” Tổng số file Dung lượng (MB) Số file lớp “xấu” Số file lớp “tốt” Tổng số file Dung lượng (MB) 4395 7826 12221 688 200 491 691 21.18 LIÊN NGÀNH ĐIỆN - ĐIỆN TỬ - TỰ ĐỘNG HÓA Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018 33 Bảng 4. Kết quả huấn luyện bốn mô hình phát hiện màu da Tên mô hình SVM tạo ra Mô hình màu da Thời gian trích chọn đặc trưng và huấn luyện HSV_SVM (Mô hình 1) HSV 4 giờ 9 phút YcbCr_SVM (Mô hình 2) YcbCr 5 giờ 27 phút RGB_Kovac_SVM (Mô hình 3) RGB_Kovac 5 giờ 30 phút RGB_Histogram_SVM (Mô hình 4) RGB_Histogram 5 giờ 2 phút Kết quả phân lớp hình ảnh với bộ gồm 200 hình nude và 491 hình không nude có tổng dung lượng 21.2 MB trên bốn mô hình phát hiện màu da như sau [20]: Bảng 5. Kết quả phân lớp hình ảnh SVM Mô hình 1 Mô hình 2 Mô hình 3 Mô hình 4 TP (%) 130/200 (65%) 141/200 (70.5%) 146/200 (73%) 120/200 (60%) FP (%) 70/200 (35%) 59/200 (29.5%) 54/200 (27%) 80/200 (40%) TN (%) 444/491 (90.4%) 443/491 (90.2%) 442/491 (90%) 440/491 (89.6%) FN (%) 47/491 (9.6%) 48/491 (9.8%) 49/491 (10%) 51/491 (10.4%) Acc (%) 574/691 (83%) 584/691 84.5% 588/691 (85.1%) 560/691 (81%) Thời gian (s) 896 757 865 850 Bảng 5 cho thấy mô hình phân loại SVM 2, 3 ứng với mô hình phân loại màu da YcbCr và RGB- Kovac có độ chính xác cao hơn (đạt trên 84%) so với hai mô hình còn lại. So sánh kết quả mô hình đề xuất so với một số công cụ mã nguồn mở phát hiện ảnh có nội dung đồi trụy cùng với tập kiểm tra gồm 200 hình nude và 491 hình không nude có tổng dung lượng 21.2 MB đều cho kết quả chính xác cao hơn. Bảng 6. So sánh kết quả phân loại hình ảnh Tên Mô hình 2 Mô hình 3 [8] [9] [10] TP (%) 141/200 (70.5%) 146/200 (73%) 128/200 (64%) 58/200 (29%) 115/200 (57.5%) FP (%) 59/200 (29.5%) 54/200 (27%) 72/200 (36%) 142/200 (71%) 85/200 (42.5%) TN (%) 443/491 (90.2%) 442/491 (90%) 319/491 (65%) 409/491 (83.3%) 371/491(75.6%) FN (%) 48/491 (9.8%) 49/491 (10%) 172/491 (35%) 82/491 (16.7%) 120/491(24.4%) Acc (%) 584/691 84.5% 588/691 (85.1%) 447/691 (64.5%) 467/691 (67.6%) 486/691(70.3%) Thời gian (ms) 757 865 567 925 11 3.2.3. Phân lớp văn bản Danh sách từ vựng trích chọn được từ tập huấn luyện với giá trị ngưỡng chọn là 25 đối với văn bản tiếng Việt và 80 đối với văn bản tiếng Anh (bảng 7). Kết quả phân lớp văn bản (bảng 8) có độ chính xác cao (đạt trên 96%) đối với cả hai ngôn ngữ tiếng Anh và tiếng Việt [20]. Bảng 7. Bộ dữ liệu và giá trị ngưỡng trong phân lớp văn bản Ngôn ngữ Số file lớp “xấu” Số file lớp “tốt” Tổng số File Dung lượng (MB) Ngưỡng Số lượng từ Tiếng Việt 329 331 660 2.48 25 1445 Tiếng Anh 390 341 731 14.6 80 1796 34 NGHIÊN CỨU KHOA HỌC Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018 Bảng 8. Kết quả phân lớp văn bản Ngôn ngữ TP FP TN FN Acc (%) Thời gian (s) Tiếng Việt 163/163 (100%) 0/163 (0%) 161/166 (98.98%) 5/166 (3.012%) 327/329 (99.39%) 53 Tiếng Anh 300/302 (99.34%) 2/302 (0.66%) 343/362 (94.75%) 19/362 (5.25%) 643/664 (96.83%) 515 4. KẾT LUẬN Kết quả nghiên cứu cho thấy: về phân lớp văn bản có độ chính xác cao (văn bản tiếng Việt 99,39%, văn bản tiếng Anh 96,83%) và thời gian thực hiện khá nhanh. Còn đối với kết quả phân lớp hình ảnh, độ chính xác của phân lớp vào lớp hình ảnh từ 84% đến 85% nhưng xét độ chính xác chung thì có thể chấp nhận được. Từ kết quả ta nhận thấy phương pháp phân lớp đề xuất trong nghiên cứu này có độ chính xác cao hơn. TÀI LIỆU THAM KHẢO [1]. Hồng Dân (1970). Bước đầu tìm hiểu vấn đề từ hư trong tiếng Việt. Tạp chí Ngôn ngữ, số 1, tr.68. [2]. Nguyễn Như Ý (1996). Từ điển giải thích thuật ngữ ngôn ngữ học. NXB Giáo dục, Hà Nội, tr.123. [3]. Lê Hoàng Dương, Ngô Quốc Vinh (2016). Nghiên cứu về thuật toán phân lớp sử dụng quá trình học máy bán giám sát, ứng dụng trong việc phân lớp trang web. Đề tài cấp trường Trường Đại học Hàng hải Việt Nam. [4]. Huỳnh Bé Thơ và Trương Quốc Định. Xây dựng công cụ ngăn chặn việc truy cập web đen (hình ảnh, nội dung). Tạp chí Khoa học Trường Đại học Cần Thơ, số chuyên đề: Công nghệ Thông tin (2013): 162-169. [5]. Phạm Nguyên Khang (2014). Giáo trình Nguyên lý máy học. [6]. [7]. [8]. https://pypi.python.org/pypi/nudepy. [9]. https://github.com/hhatto/nude.py.git. [10]. detecting-nude-pictures-in-wpmu -blogs. [11]. mem-chanweb-den-25784.html. [12]. Rung-Ching Chen, Chung-Hsun Hsieh (2006). Web page classification based on a support vector machine using a weighted vote schema. Expert Systems with Applications 31 (2006), 427–435. [13]. Roman Suvorov, Ilya Sochenkov, and Ilya Tikhomirov. Method for Pornography Filtering in the WEB Based on Automatic Classification and Natural Language Processing. Institute for Systems Analysis of Russian Academy of Sciences 117312, Moscow, pr. 60-letiya Oktyabrya, 9. [14]. Adrian Ulges, Armin Stahl (2011). Automatic detection of child pornography using color visual words. German Research Center for Artificial Intelligence (DFKI), D-67663 Kaiserslautern, Germany. [15]. Cheng Luo, Yiqun Liu, Shaoping Ma, Min Zhang, Liyun Ru, and Kuo Zhang. Pornography Detection with the Wisdom of Crowds. [16]. Rung-Ching Chen* and Chun-Te Ho (2006). A pornographic web page detecting method based on SVM model using text and image features. Int. J. Internet Protocol Technology, Vol. 1, No. 4. [17]. R Du, R, Safavi-Naini, R and Susilon W (2003). Web filtering using text classification. The 11th IEEE International Conference on Networks, 325-330. [18]. Yu-Chun Lin, Hung-Wei Tseng, Chiou-Shann Fuh (2003). Pornography Detection Using Support Vector Machine. 16th IPPR Conference on Computer Vision, Graphics and Image Processing (CVGIP 2003). [19]. Mohamed N. Moustafa. Applying deep learning to classify pornographic images and videos. [20]. https://machinelearningcoban.com.
File đính kèm:
- phan_loai_web_doi_truy_dua_vao_van_ban_va_hinh_anh.pdf