NGHIÊN CỨU KHOA HỌC
Phân loại web đồi trụy dựa vào văn bản và hình ảnh
Pornographic web classification based on text and images
1
2
Phạm Thị Hường , Nguyễn Văn Thanh
Email:
1
2
Trường Đại học Sao Đỏ
Trường THPT Châu Thành
Ngày nhận bài: 15/6/2018
Ngày nhận bài sửa sau phản biện: 23/11/2018
Ngày chấp nhận đăng: 27/12/2018
Tóm tắt
Nghiên cứu này tiếp cận theo phương pháp máy học để từ đó có thể phát hiện tự động những website
chứa hình ảnh khiêu dâm và văn bản có nội dung đồi trụy. Cụ thể, sử dụng giải thuật SVM để phân lớp
hình ảnh dựa vào phân loại màu da cải tiến và Naïve Bayes để phân lớp văn bản. Kết quả cho thấy mô
hình đề xuất có độ chính xác phân lớp cao hơn một số phương pháp đã công bố.
Từ khóa: Máy vector hỗ trợ; phân lớp văn bản; phân lớp hình ảnh; Naïve Bayes; phân loại web.
Abstract
This study approaches a machine learning method to automatically detect websites containing
pornographic images and texts. Specifically, SVM is used to image classify based on the improved skin
color classification, and Naïve Bayes is used to text classify. The results show that the proposed model
has higher classification accuracy than some published methods.
Keywords: Support vector machine; text classification; image classification; Naïve Bayes; web classification.
1. GIỚI THIỆU
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à
Người phản biện: 1. GS.TSKH. Thân Ngọc Hoàn
2. TS. Đặng Hồng Hải
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). Theo [14], tác giả sử dụng
SVM với đặc trưng dựa trên thống kê về kết cấu
và màu sắc của một hình ảnh, tính score để xác
định hình ảnh có phải khiêu dâm trẻ em không,
sử dụng các visual words cùng tăng cường màu
sắc DCT để biểu diễn hình ảnh, kết quả có tỷ lệ
lỗi trong phạm vi 11-24%. Theo [15], tác giả sử
dụng trí tuệ nhóm trong nhật ký click qua công cụ
tìm kiếm dựa trên ý tưởng “Hành vi nhấp chuột
trên các trang khiêu dâm phản ánh ý định tìm kiếm
khiêu dâm của người dùng” và những người dùng
khác nhau thường sử dụng các truy vấn như nhau
26 Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018
LIÊN NGÀNH ĐIỆN - ĐIỆN TỬ - TỰ ĐỘNG HÓA
để tìm nội dung khiêu dâm trên web. Từ đó, tập
hợp số lượng các nhấp chuột của người dùng và
mối tương quan giữa các truy vấn hay URL để
đề xuất phương pháp truyền bá nhãn trên đồ thị
lưỡng phân có trọng số, điều này làm cơ sở xác
định một trang web có nội dung khiêu dâm hay
không. Tác giả sử dụng phân loại văn bản bằng cả
SVM và Naïve Bayes bổ sung đặc trưng là điểm
khiêu dâm (pornography score – PS) để làm tăng
hiệu quả tìm kiếm. Kết quả cài đặt trên ngôn ngữ
tiếng Anh và tiếng Trung có giá trị TP tương ứng là
91% và 94%. Theo [16], tác giả sử dụng SVM để
phân loại văn bản và hình ảnh trong web. Cụ thể,
sử dụng đặc trưng màu da để phát hiện hình ảnh
khiêu dâm và tần suất các thuật ngữ khiêu dâm so
với tổng số văn bản, khoảng thời gian và mức độ
của các thuật ngữ khiêu dâm. Kết quả thử nghiệm
cho độ chính xác phân loại văn bản là 95,8% và
độ chính xác phân loại hình ảnh là 84%. Ngoài ra,
độ chính xác của phân loại trang web sau khi hợp
nhất thành một bộ lọc gồm cả văn bản và hình ảnh
là 91,8%. Theo [17], tác giả đưa ra phương pháp
lọc web thông thường, dựa trên phân lớp văn bản
sử dụng URL. Phương pháp này chỉ yêu cầu các
tập huấn luyện cho lớp tốt và do đó không phải
xây dựng và duy trì tập huấn luyện lớp xấu. Tuy
nhiên, chưa phân lớp được hình ảnh, phân lớp
văn bản mới chỉ dựa trên URL mà không dựa vào
nội dung, việc không quan tâm đến huấn luyện
lớp xấu cũng là hạn chế cho phân lớp web đồi
trụy vốn cần quan tâm lớp xấu để chặn. Theo [18],
tác giả trích chọn đặc trưng là vùng da từ ảnh và
tìm mối tương quan giữa vùng đó là da hay không
phải da, sử dụng SVM để xác định xem một hình
ảnh có là ảnh khiêu dâm hay không. Kết quả thực
nghiệm cho độ chính xác 75%. Theo [19], tác giả
đề xuất mô hình phân loại dựa trên kỹ thuật học
sâu. Việc trích chọn đặc trưng và phân loại bằng
mạng nơron tích chập nhiều lớp làm cho việc tạo
các đặc trưng và bộ phân loại không phải thực
hiện thủ công. Cụ thể, nghiên cứu tập trung vào
tín hiệu thị giác là hình thức khiêu dâm nổi bật
nhất và hệ thống học sâu tự động phân tích hình
ảnh (và khung hình video) trước khi phân loại nội
dung là bình thường hay khiêu dâm. Kết quả thực
nghiệm đạt tỷ lệ phân loại trên 94%.
giả biểu diễn ảnh bằng đặc trưng SIFT và dùng
mô hình bag of words (BoW) để thực hiện kết tập
các đặc trưng cục bộ SIFT đó. Với phân loại văn
bản, tác giả chọn các đặc trưng để phân loại là
ngưỡng tần suất văn bản (Document Frequency
thresholding –DF). Theo cách tiếp cận này, việc
đếm số lượng văn bản có chứa từ cấm đơn giản
nhưng độ chính xác chưa cao (93,65%) và phân
lớp hình ảnh dựa vào đặc trưng SIFL có độ chính
xác 76,3255%.
Tại Việt Nam, theo [3], tác giả sử dụng SVM
để phân lớp nội dung văn bản trong trang web.
Thực nghiệm được tiến hành trên bộ dữ liệu mẫu
20-newsgroups (là bộ dữ liệu dành cho các thí
nghiệm trong các ứng dụng phân lớp văn bản)
với độ chính xác trung bình 94%, chưa phân lớp
hình ảnh. Về phân lớp web chứa cả hình ảnh và
nội dung văn bản, theo [4], sử dụng thuật toán
SVM để phân lớp văn bản và hình ảnh. Cụ thể, tác
2.2. Phân lớp hình ảnh trong web
Đa phần những công cụ cung cấp bởi các nhà
phát triển nước ngoài đều phải trả phí, một số
nghiên cứu phân loại web chỉ dựa trên từ khóa,
URL, chưa phân loại cả văn bản và hình ảnh, một
số hạn chế về thời gian phân lớp hay độ chính
xác,… Một số công cụ trong nước nhưng chưa
được sử dụng rộng rãi và còn một số hạn chế
như: DWK, VFW chặn website dựa vào những
từ khóa thông dụng có trong nội dung trang web
hoặc chặn những URL cụ thể, điều này có thể
dẫn đến là phần mềm chặn nhầm website bởi
thực tế địa chỉ của một số website có nội dung
khiêu dâm thường thay đổi. Mặt khác, người dùng
không thể liệt kê ra hết những từ khóa và địa chỉ
website cần cấm truy cập. Nghiên cứu này tiếp
cận theo phương pháp máy học để phát hiện tự
động những website chứa hình ảnh khiêu dâm
bằng kỹ thuật SVM và website chứa văn bản có
nội dung đồi trụy bằng giải thuật Naïve Bayes. Kết
quả nghiên cứu cho thấy hiệu quả của đề xuất.
2. NỘI DUNG NGHIÊN CỨU
2.1. Bài toán phân lớp dữ liệu web
Phân lớp dữ liệu là xếp đối tượng dữ liệu vào
một trong các lớp đã xác định trước. Phân lớp
dữ liệu gồm hai bước là xây dựng mô hình và
vận hành mô hình. Cho sẵn một tập dữ liệu các
trang web được gán nhãn là web đồi trụy hay
bình thường gọi tắt là lớp xấu và lớp tốt, cần một
phương pháp huấn luyện để xây dựng một mô
hình phân lớp từ tập dữ liệu mẫu đó, sau đó dùng
mô hình này dự đoán lớp của những trang web
mới chưa biết nhãn.
2.2.1. Giải thuật SVM
Cho trước một tập huấn luyện được biểu diễn
trong không gian vector, phương pháp này tìm ra
một siêu phẳng quyết định tốt nhất có thể để chia
các điểm trong không gian này thành hai lớp riêng
biệt. Phương pháp này yêu cầu dữ liệu được diễn
tả như các vector của số thực [5].
Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018 27
NGHIÊN CỨU KHOA HỌC
(R>95) và (G>40) và (B>20) và (max{R,G,B})
2.2.2. Huấn luyện SVM
Huấn luyện SVM thực chất là việc giải bài toán
quy hoạch toàn phương, yêu cầu phải lưu một ma
trận có kích thước bằng bình phương số lượng
mẫu huấn luyện. Trong thực tế, điều này là không
khả thi vì thông thường số lượng mẫu huấn luyện
lớn. Có nhiều thuật toán được phát triển để giải
quyết bài toán trên. Những thuật toán này dựa
trên việc phân rã tập huấn luyện thành những
nhóm dữ liệu nhỏ hơn, nghĩa là thay vì giải bài
toán toàn phương có kích thước lớn thì đi giải
những bài toán toàn phương có kích nhỏ hơn.
Sau đó, những thuật toán này kiểm tra điều kiện
để xác định phương án tối ưu. Một trong những
thuật toán dùng để giải bài toán toàn phương là
Sequential Minimal Optimization – SMO do Platt
đưa ra năm 1999.
2.2.3. Phân đoạn màu da
Phát hiện da là một bước quan trọng đầu tiên
trong việc phát hiện ảnh, được sử dụng làm cơ
sở cho việc phát hiện hình ảnh có nội dung đồi
trụy. Mục tiêu của phát hiện màu da là xây dựng
một bộ quy tắc quyết định sẽ phân biệt màu của
một điểm ảnh (pixel) là màu da (skin color) hay là
không phải da (non-skin color) dựa trên các thành
phần màu sắc.
2.2.3.1. Mô hình phát hiện màu da trong không
gian màu YcrCb
Không gian màu YcbCr được biểu diễn bằng
ba giá trị. Thành phần Y đại diện cho cường độ
của ánh sáng. Hai thành phần Cb và Cr cho biết
cường độ của các thành phần màu xanh và đỏ so
với thành phần màu xanh lá cây. Mô hình cho bởi
công thức xác định điều kiện để một điểm ảnh có
màu là màu da khi và chỉ khi thỏa mãn điều kiện:
85 ≤ Cb ≤ 135, 135 ≤ Cr ≤ 180, Y ≥ 80
(1)
2.2.3.2. Mô hình phát hiện màu da trong không
gian màu HSV
Không gian màu HSV do A.R. Smith đề xuất năm
1978, còn gọi là không gian màu HSB, là một
không gian màu dựa trên ba số liệu: H (Hue): Sắc
thái (0=H=360). S (Saturation): Ðộ bão hòa màu
(0=S=1). B (Brightness) hay V (Value): Ðộ sáng
(0=V=1). Mô hình cho bởi công thức xác định điều
kiện để một điểm ảnh có màu là màu da khi và chỉ
khi thỏa mãn điều kiện:
0
(2)
(3)
-min{R,G,B}>15 và (|R-G|>15) và (R>G) và (G>B)
Trong điều kiện chiếu sáng là ánh sáng đèn thì
cho bởi công thức:
(R>220)và(G>210)và (B>170)và (max{R,G,B}min{R,G,B}>15) và (|R-G|<15) và (R>B) và (G>B)
(4)
Ðể kết hợp chung hai điều kiện chiếu sáng khác
nhau ta sử dụng phép toán OR.
2.2.3.4. Mô hình phát hiện màu da dựa vào phân
phối histogram
Là mô hình xác định màu da dựa vào phân phối
histogram của các thành phần màu trong không
gian màu RGB và quy tắc phân lớp. Trong mô
hình này sử dụng 14,985,845 skin pixels (điểm
ảnh màu da) và 304,844,751 non-skin pixels
(điểm ảnh không phải màu da) để tạo ra RGB
histogram với kích thước 32*32*32 cho điểm ảnh
da và không da (mỗi thành phần r, g, b được phân
phối vào biểu đồ màu có 32 bins). Với mỗi bin cụ
thể, ta tính log likelihood để phân lớp:
Trong đó H(rgb), h(rgb) tương ứng là số skin pixels
và non-skin pixels có trong bin rgb tương ứng của
biểu đồ màu. Với mỗi điểm ảnh rgb sẽ rơi vào 1
bin trong 32*32*32 bin của mô hình, khi một điểm
ảnh rgb được phân lớp là màu da khi thỏa mãn
công thức (4). Trong nghiên cứu này tác giả sử
dụng file mô hình màu da “skinmodel.bin”(https://
github.com/zhouxc/Adult-WebSite-Classifier)
Tuy nhiên, không có một mô hình phát hiện da
nào là chính xác 100%, các vùng ảnh chứa da
rất “trơn” (không chứa biên của ảnh) và hình
ảnh thuộc lớp “xấu” thường là những hình chứa
những vùng da có kích thước lớn, từ đó tác giả
đề xuất thuật toán cải tiến để phát hiện màu da
của ảnh.
Thuật toán cải tiến:
Input: ảnh input_Image (ảnh đen trắng)
Output: ảnh output_Image (ảnh đen trắng) chứa
màu da được xác định.
2.2.3.3. Mô hình phát hiện màu da của tác
giả Kovac
Bước 1: Phát hiện da của ảnh input_Image sử
dụng một trong 4 mô hình phát hiện da, thu được
ảnh Skin_Image.
Trong điều kiện chiếu sáng là ánh sáng ban ngày
được cho bởi công thức:
Bước 2: Phát hiện biên của ảnh (sử dụng thuật
toán Canny) thu được ảnh Edges_Image
28 Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018
LIÊN NGÀNH ĐIỆN - ĐIỆN TỬ - TỰ ĐỘNG HÓA
Bước 3: Loại bỏ những điểm ảnh là “da” trên
Skin_Image mà thuộc ảnh Edges_Image thu
được ảnh Skin_Image1.
hình có thể phân lớp “sớm” (phân lớp mà không
cần thông qua mô hình SVM để dự đoán) xảy ra
nếu thuộc một trong bốn trường hợp sau:
Bước 4: Sử dụng phép toán hình thái OPEN với
mẫu B đối với ảnh Skin_Image1 để loại bỏ những
liên kết yếu giữa các vùng có màu “da” trong ảnh
Skin_Image1.
(i) Phát hiện có xuất hiện hình vòng 1 trong ảnh
thì kết luận ảnh nude (ảnh “xấu”).
Bước 5: Gán nhãn cho từng vùng da trong ảnh
Skin_Image1 và đồng thời loại bỏ những vùng da
nhỏ (≤100 pixels) thu được Skin_Image2.
Bước 6: Sử dụng phép toán hình thái CLOSE
với mẫu B đối với ảnh Skin_Image1 để thu được
ảnh đầu ra là output_Image.
(ii) Số khuôn mặt phát hiện trong ảnh ≥3.
(iii) Không thỏa (i) và (ii) và có diện tích khuôn mặt
lớn nhất ≥30% diện tích của ảnh thì ảnh not nude
(ảnh “tốt”).
(iv) Không thỏa (i) và (ii) và (iii) và có SPI (tỉ lệ %
màu da) ≥40 và có tồn tại khuôn mặt thì ảnh nude.
2.2.5. Phát hiện vòng 1
Để giải quyết trường hợp (i) tác giả sử dụng
mô hình cascadebreast1981.xml sử dụng trong
OpenCV phát hiện vòng 1 với nguồn:http://
e n. p ud n. c o m/ d o w n l o a d s 1 8 0 / s o u r e c o d e /
windows/detail836282_en.html. Kết quả là vị trí
vòng 1 trong ảnh đầu vào.
B=
2.2.6. Phát hiện khuôn mặt
2.2.4. Phân lớp hình ảnh nude
Hình ảnh đồi trụy (nude) thường là những hình
ảnh có tỉ lệ phát hiện “màu da” lớn so với những
hình ảnh bình thường (hình ảnh thuộc lớp “tốt”),
nhân vật trong hình thường nằm vị trí trung tâm
của hình ảnh. Nhân vật trong hình nude thường
là phụ nữ để hở những bộ phận “nhạy cảm”. Mô
hình phân lớp ảnh được đề xuất như hình 1. Trong
hình 1, giá trị 0, 1 để chỉ hình ảnh được phân
tương ứng vào lớp hình ảnh “tốt” và “xấu”. Một
Mặc dù hình ảnh thuộc lớp “xấu” thường là những
hình ảnh chứa những khuôn mặt ở những tư thế
rất khó phát hiện bởi các thuật toán phát hiện
khuôn mặt. Để phát hiện khuôn mặt trong nghiên
cứu này sử dụng mô hình phát hiện khuôn mặt của
Viola và Jones được tích hợp sẵn trong OpenCV.
Trong mô hình phát hiện khuôn mặt này thường
phát hiện tốt những khuôn mặt chính diện, do
đó việc phát hiện khuôn mặt giải quyết được các
trường hợp (ii), (iii) và (iv).
Hình 1. Mô hình phân lớp hình ảnh
Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018 29
NGHIÊN CỨU KHOA HỌC
2.2.7. Trích chọn đặc trưng
Độ do entropy của biểu đồ màu histogram
Tỉ lệ phần trăm màu da (kí hiệu SPI): Sự khác biệt
lớn nhất giữa hình nude và hình not nude ta nhận
thấy đó hình nude có số lượng điểm ảnh có màu
da chiếm một tỉ lệ lớn so với kích thước bức ảnh,
trong khi đó hình ảnh bình thường (not nude) đ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).
Mỗi thành phần R, G, B của mỗi hình ảnh sẽ được
phân phối vào biểu đồ histogram với 32 bin. Giả
sử p1,p2,…p32 là các giá trị nguyên tương ứng
với các bin trong biểu đồ màu histogram của mỗi
thành phần x (xϵ{R,G,B}) của hình ảnh. Khi đó
giá trị entropy H(x) của mỗi thành phần được tính
bằng công thức sau:
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.
(5)
2.2.8. Huấn luyện và phân lớp hình ảnh bằng
mô hình SVM
2.2.8.1. Huấn luyện
Cơ sở dữ liệu hình ảnh thu thập tại http://
sourceforge.net/projects/imagecrawler sau đó
tiến hành gán nhãn lớp cho mỗi hình ảnh, mỗi hình
ảnh phân vào một trong hai lớp là lớp hình nude
(hình ảnh có nội dung đồi trụy) và lớp hình not
nude (hình ảnh không chứa nội dung đồi trụy).
Tập hình ảnh này gọi là tập huấn luyện. Trong
nghiên cứu này, tác giả sử dụng 6556 hình ảnh
not nude và 3905 hình ảnh nude làm cơ sở dữ liệu
huấn luyện mô hình SVM. Tiến hành trích chọn
đặc trưng của mỗi hình ảnh (trừ những hình ảnh
được phát hiện sớm là thuộc lớp nào trong 2 lớp
đã định), mỗi hình ảnh được trích chọn gồm 27
đặc trưng biểu diễn thành một vector có 28 chiều
(27 chiều ứng với 27 đặc trưng và chiều thứ 28
là nhãn lớp tương ứng). Kết thúc quá trình trích
chọn đặc trưng thu được một cơ sở dữ liệu lưu
trữ vector đặc trưng của tập dữ liệu hình ảnh huấn
luyện. Sau đó tiến hành huấn luyện mô hình SVM
(sử dụng thư viện libsvm link: .
edu.tw/~cjlin/libsvm/ để cài đặt).
2.2.8.2. Phân lớp
Kết quả của quá trình huấn luyện ta thu được mô
hình SVM. Để phân lớp một hình ảnh mới (chưa
có trong tập huấn luyện), tiến hành trích chọn
vector đặc trưng của hình ảnh và áp vào mô hình
SVM đã huấn luyện để phân lớp hình ảnh.
2.3. Phân lớp văn bản
2.3.1. Phương pháp Naïve Bayes
Phân loại Naïve Bayes đơn giản là phương pháp
phân loại sử dụng tri thức các xác suất đã qua
huấn luyện. Phương pháp này thích hợp với
những lớp bài toán đòi hỏi phải dự đoán chính xác
lớp của mẫu cần kiểm tra dựa trên những thông
tin từ tập huấn luyện ban đầu [5].
30 Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018
LIÊN NGÀNH ĐIỆN - ĐIỆN TỬ - TỰ ĐỘNG HÓA
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: tpedia. 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 http://sourceforge.
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:
Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018 31
NGHIÊN CỨU KHOA HỌC
Bảng 1. Bộ dữ liệu ảnh
Tập huấn luyện
Số file lớp
“xấu”
4395
Tập kiểm tra
Số file
lớp
“tốt”
Tổng số file
7826
12221
Dung lượng
(MB)
Số file lớp
“xấu”
Số file
lớp “tốt”
Tổng số file
Dung lượng
(MB)
688
200
491
691
21.18
3.1.2. Dữ liệu văn bản
Anh tải trực tiếp từ website http:// www.textfiles.com
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
Bảng 2. Bộ dữ liệu văn bản
với nhiều chủ đề đã phân loại sẵn như: food, fun,
message, erotica,…
Tập kiểm tra
Ngôn ngữ
Tập huấn luyện
lớp “xấu”
lớp
“tốt”
Tổng số file
Tiếng Việt
329
331
660
Tiếng Anh
390
341
731
Dung
Số file
Số file
Số file
Số file
lớp “xấu”
2.48
14.6
lượng
(MB)
Dung lượng
lớp “tốt”
Tổng số
file
163
166
329
1.28
302
362
644
12.7
(MB)
3.2. Kết quả nghiên cứu
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
Cài đặt trên máy tính hệ điều hành Window8, 32
nâng cao độ chính xác dự đoán của mô hình phân
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ợ: lớp ảnh: (https://archive. ics. uci.edu/ml/datasets/
OpenCV, libsvm, Numpy, PIL, scipy, codecs, SkinSegmentation#). Skin Segmentation Dataset
matplotlib và công cụ tách từ tiếng Việt vnTokenizer 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
của tác giả Lê Hồng Phương.
thành phần là B,G,R (ba thành phần của một điểm
3.2.1. Phát hiện màu da
ảnh trong không gian màu RGB) và thành phần
Trước tiên, cần đánh giá độ chính xác giữa các thứ tư là nhãn (1 hoặc 2) của điểm ảnh (1: màu
mô hình phát hiện màu da. Để đánh giá, sử dụng da, 2: không phải màu da). Trong 245057 mẫu thì
cơ sở dữ liệu dùng để phân đoạn màu da “Skin có 50859 là các mẫu da và 194198 mẫu không
Segmentation Dataset” cung cấp bởi Rajen Bhatt, 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
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%)
34343/50859 (67.5%)
6516/50859 (32.5%)
189764/194198
(97.7%)
4434/194198 (2.3%)
màu da
RGBHistogram
(Skinmod
el.bin) [7]
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:
32 Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018
LIÊN NGÀNH ĐIỆN - ĐIỆN TỬ - TỰ ĐỘNG HÓA
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
Thời gian trích chọn đặc trưng và
Mô hình màu da
HSV_SVM (Mô hình 1)
HSV
4 giờ 9 phút
YcbCr
5 giờ 27 phút
RGB_Kovac
5 giờ 30 phút
RGB_Histogram
5 giờ 2 phút
YcbCr_SVM (Mô hình 2)
RGB_Kovac_SVM (Mô hình 3)
RGB_Histogram_SVM (Mô hình 4)
huấn luyện
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à RGBKovac 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%)
FN (%)
48/491 (9.8%)
49/491 (10%)
172/491 (35%)
Acc (%)
584/691 84.5%
Thời gian (ms)
757
588/691 (85.1%) 447/691 (64.5%)
865
409/491 (83.3%) 371/491(75.6%)
82/491 (16.7%)
120/491(24.4%)
467/691 (67.6%)
486/691(70.3%)
925
11
567
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
Số file lớp
Số file lớp
“xấu”
“tốt”
Tiếng Việt
329
331
660
Tiếng Anh
390
341
731
Ngôn ngữ
Tổng số File
Dung lượng
Ngưỡng
Số lượng từ
2.48
25
1445
14.6
80
1796
(MB)
Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018 33
NGHIÊN CỨU KHOA HỌC
Bảng 8. Kết quả phân lớp văn bản
Thời
Ngôn
TP
ngữ
Tiếng
Việt
Tiếng
Anh
FP
TN
FN
Acc (%)
gian
(s)
163/163 (100%)
0/163 (0%)
161/166 (98.98%)
5/166 (3.012%)
327/329 (99.39%)
53
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]. />[9]. />[10]. />detecting-nude-pictures-in-wpmu -blogs.
[11]. />[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]. .
34 Tạp chí Nghiên cứu khoa học - Đại học Sao Đỏ, ISSN 1859-4190 Số 4(63).2018