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

