KIỂM DUYỆT BÀI VIẾT VÀ BÌNH LUẬN TIẾNG VIỆT CÓ NỘI ...

89
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ BÙI VĂN MINH KIỂM DUYỆT BÀI VIẾT VÀ BÌNH LUẬN TIẾNG VIỆT CÓ NỘI DUNG KHÔNG PHÙ HỢP TRÊN MẠNG XÃ HỘI FACEBOOK LUẬN VĂN THẠC SĨ AN TOÀN THÔNG TIN Hà Nội, tháng 12/2021

Transcript of KIỂM DUYỆT BÀI VIẾT VÀ BÌNH LUẬN TIẾNG VIỆT CÓ NỘI ...

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

BÙI VĂN MINH

KIỂM DUYỆT BÀI VIẾT VÀ BÌNH LUẬN TIẾNG VIỆT

CÓ NỘI DUNG KHÔNG PHÙ HỢP TRÊN

MẠNG XÃ HỘI FACEBOOK

LUẬN VĂN THẠC SĨ AN TOÀN THÔNG TIN

Hà Nội, tháng 12/2021

2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

BÙI VĂN MINH

KIỂM DUYỆT BÀI VIẾT VÀ BÌNH LUẬN TIẾNG VIỆT

CÓ NỘI DUNG KHÔNG PHÙ HỢP TRÊN

MẠNG XÃ HỘI FACEBOOK

Ngành: Công nghệ thông tin

Chuyên ngành: An toàn thông tin

Mã số: 8480202.01

LUẬN VĂN THẠC SĨ AN TOÀN THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Lê Đình Thanh

Hà Nội, tháng 12/2021

3

LỜI CAM ĐOAN

Tôi cam đoan rằng, luận văn “Kiểm duyệt bài viết và bình luận tiếng Việt

có nội dung không phù hợp trên mạng xã hội Facebook” là công trình nghiên

cứu của riêng tôi. Những số liệu được sử dụng trong luận văn là trung thực được

chỉ rõ nguồn trích dẫn. Kết quả nghiên cứu này chưa được công bố trong bất kỳ

công trình nghiên cứu nào từ trước đến nay.

Tôi hoàn toàn chịu trách nhiệm với lời cam đoan của mình.

Hà Nội, ngày tháng 12 năm 2021

Người cam đoan

Bùi Văn Minh

4

LỜI CẢM ƠN

Để hoàn thành luận văn này, ngoài sự cố gắng của bản thân, tôi đã nhận

được sự giúp đỡ của nhiều tập thể, cá nhân trong và ngoài trường.

Tôi xin bày tỏ lòng biết ơn đến TS. Lê Đình Thanh đã luôn tận tình hướng

dẫn, động viên tôi thực hiện luận văn này.

Tôi xin bày tỏ lòng biết ơn tới các quý thầy cô Ngành An toàn thông tin,

Khoa Công nghệ Thông tin nói riêng và trong Trường Đại học Công nghệ -

ĐHQGHN nói chung đã tạo điều kiện tốt nhất cho tôi trong quá trình học tập,

nghiên cứu và hoàn thiện luận văn này.

Cuối cùng, tôi xin cảm ơn gia đình, đồng nghiệp, bạn bè, người thân đã

động viên, khích lệ tôi trong quá trình học tập và nghiên cứu.

Mặc dù bản thân đã có rất nhiều cố gắng nhưng luận văn không tránh khỏi

những khiếm khuyết, hạn chế. Vì vậy, tôi rất mong được sự góp ý chân thành

của quý thầy cô, đồng nghiệp và bạn đọc để luận văn được hoàn thiện hơn.

Xin trân trọng cảm ơn!

Hà Nội, tháng 12 năm 2021

Tác giả luận văn

Bùi Văn Minh

5

MỤC LỤC

LỜI CAM ĐOAN .................................................................................................. 3

LỜI CẢM ƠN ....................................................................................................... 4

MỤC LỤC ............................................................................................................. 5

DANH SÁCH CÁC HÌNH ................................................................................... 7

DANH SÁCH CÁC BẢNG ................................................................................ 10

DANH SÁCH CHỮ VIẾT TẮT ......................................................................... 11

LỜI MỞ ĐẦU ..................................................................................................... 12

CHƯƠNG 1: CƠ SỞ KHOA HỌC .................................................................... 14

1.1. Nội dung phản động trên Facebook ......................................................... 14

1.2. Tác hại của nội dung phản động trên Facebook ...................................... 17

1.3. Kiểm duyệt nội dung phản động trên Facebook ...................................... 19

1.4. Mục tiêu nghiên cứu của luận văn ........................................................... 20

1.5. Cấu trúc của luận văn ............................................................................... 21

CHƯƠNG 2: ĐỀ XUẤT PHƯƠNG PHÁP ....................................................... 23

2.1. Danh sách đen .......................................................................................... 23

2.1.1. User Facebook phản động ................................................................... 23

2.1.2. Fanpage Facebook phản động............................................................. 24

2.1.3. Group Facebook phản động ................................................................ 24

2.1.4. Website, blog phản động .................................................................... 24

2.2. Phương pháp học máy .............................................................................. 25

2.2.1. Trích chọn đặc trưng nội dung phản động .......................................... 25

2.2.2. Mô hình, thuật toán phân loại phổ biến .............................................. 39

2.3. Sử dụng Hệ số tương quan Matthews ...................................................... 44

CHƯƠNG 3: CÀI ĐẶT THỬ NGHIỆM ........................................................... 46

3.1. Mô hình kiểm duyệt nội dung phản động ................................................ 46

3.2. Xây dựng các blacklist phản động ........................................................... 47

3.3. Xây dựng tập dữ liệu mẫu ........................................................................ 51

3.3.1. Thu thập dữ liệu .................................................................................. 51

3.3.2. Gán nhãn dữ liệu ................................................................................. 54

3.4. Xây dựng bộ từ điển phản động ............................................................... 55

3.5. Xây dựng vector đặc trưng ....................................................................... 56

6

3.6. Các mô hình thử nghiệm .......................................................................... 58

3.6.1. SVM-3f ............................................................................................... 59

3.6.2. SVM-2f ............................................................................................... 60

3.6.3. MLP-2f ................................................................................................ 60

3.6.4. MLP-3f ................................................................................................ 61

3.6.5. SVM-BERT ........................................................................................ 61

3.6.6. MLP-BERT ......................................................................................... 62

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................... 72

4.1. Kết luận .................................................................................................... 72

4.2. Hướng phát triển ...................................................................................... 72

TÀI LIỆU THAM KHẢO .................................................................................. 74

PHỤ LỤC............................................................................................................ 78

Mục 1: Trích xuất dữ liệu bình luận vào CSDL ............................................. 78

Mục 2: Xây dựng vector đặc trưng ................................................................. 78

Mục 3: Một số kết quả thực nghiệm ............................................................... 85

Mục 4: Kiểm duyệt nội dung phản động trên Facebook ................................. 88

7

DANH SÁCH CÁC HÌNH

Hình 2.1: Quy trình NLP ..................................................................................... 26

Hình 2.2. Kết quả thử nghiệm các mô hình phân loại văn bản tiếng Việt của

nhóm Underthesea ............................................................................................... 32

Hình 2.3. Kiến trúc mô hình BERT ..................................................................... 34

Hình 2.4. Mô hình chung của Word2Vec ............................................................ 38

Hình 2.5. Support Vectors trong SVM ................................................................ 41

Hình 2.6. Margin trong SVM .............................................................................. 41

Hình 2.7: Cấu tạo mạng MLP cơ bản ................................................................. 43

Hình 2.8: Sử dụng mô hình MLP cho bài toán phân loại văn bản ..................... 43

Hình 3.1: Mô hình kiểm duyệt 02 lớp đối với bài viết, bình luận phản động ..... 46

trên Facebook ...................................................................................................... 46

Hinh 3.2: Minh họa thu thập bài viết bằng Selenium ......................................... 52

Hinh 3.3: Minh họa thu thập bình luận bằng Selenium ...................................... 53

Hinh 3.4: Mẫu dữ liệu bài viết thu thập được ..................................................... 54

Hình 3.5: Mẫu dữ liệu bình luận thu thập được ................................................. 54

Hình 3.6: Mẫu dữ liệu bình luận sau khi được gán nhãn ................................... 55

Hình 3.7: Danh sách từ điển phản động đã xây dựng ........................................ 56

Hình 3.8: Tham số C tốt nhất .............................................................................. 59

Hình 3.9: Kết quả thử nghiệm bộ vector đặc trưng bao gồm Blacklist word phản

động, hình thái, n-gram với thuật toán SVM ...................................................... 60

Hình 3.10: Kết quả thử nghiệm bộ vector đặc trưng bao gồm Blacklist word

phản động, hình thái với thuật toán SVM ........................................................... 60

Hình 3.11: Kết quả huấn luyện bộ vector đặc trưng bao gồm Blacklist word

phản động và hình thái với mô hình MLP ........................................................... 60

Hình 3.12: Kết quả huấn luyện bộ vector đặc trưng bao gồm Blacklist word

phản động, hình thái và n-gram với mô hình MLP ............................................. 61

Hình 3.13: Kết quả huấn luyện mô hình sử dụng pretrained PhoBERT kết hợp

với thuật toán SVM .............................................................................................. 61

Hình 3.14: Kết quả huấn luyện mô hình sử dụng pretrained PhoBERT kết hợp

với mô hìnhMLP .................................................................................................. 62

8

Hình 3.15: Kết quả thực nghiệm các mô hình .................................................... 62

Hinh 3.16: Cấu trúc thư mục extension .............................................................. 64

Hinh 3.17: File manifest.json .............................................................................. 64

Hình 3.18: Giao diện extension Chrome ............................................................ 66

Hinh 3.19: Cài đặt extension thành công ........................................................... 66

Hinh 3.20: Trước khi sử dụng extension ............................................................. 67

Hình 3.21: Extension chặn các nhóm độc hại, chống phá .................................. 68

Hình 3.22: Extension chặn các người dùng có hành vi phản động .................... 68

Hình 3.23: Extension chặn các trang mạng có hành vi phản động .................... 69

Hinh 3.24: Kết quả hoạt động của extension trên bài viết ................................. 69

Hinh 3.25: Sau khi hiện ra bài viết bi ân (bài viết sẽ vẫn bi làm mờ). ............... 70

Hinh 3.26: Kết quả hoạt động của extension trên bình luận .............................. 71

Hinh 3.27: Sau khi hiện ra binh luận bi ân. ........................................................ 71

Hinh 3.28: Code tách comment json bằng Python.............................................. 78

Hình 3.29: Mã nguồn đọc bộ dữ liệu bao gồm 20.000 bài viết, bình luận trên

Facebook từ nhiều user, fanpage, group khác nhau. .......................................... 78

Hình 3.30: Mẫu dữ liệu sử dụng cho huấn luyện và kiểm tra mô hình .............. 79

Hình 3.31: Mã nguồn tính toán độ phản động của các bài viết, bình luận ........ 79

Hình 3.32: Hàm tính toán tỉ lệ ký tự viết hoa trong bình luận, bài viết ............. 80

Hinh 3.33: Hàm tính độ dài bài viết ................................................................... 80

Hình 3.34: Hàm tính tần suất sử dụng các ký tự không phải alphabet .............. 80

Hình 3.35: Hàm tính tần suất sử dụng các ký tự đặc biệt................................... 81

Hinh 3.36: Hàm tính độ dài trung bình các từ .................................................... 81

Hình 3.37: Hàm tính tần suất sử dụng các từ viết tắt ......................................... 82

Hình 3.38: Sử dụng bigram và trigram mức ký tự cho bài viết, bình luận. ........ 82

Hinh 3.39: Đặc trưng về độ phản động .............................................................. 83

Hinh 3.40: Đặc trưng về hình thái ...................................................................... 83

Hinh 3.41: Đặc trưng n-gram ............................................................................. 83

Hình 3.42: Phân chia dữ liệu và tính toán vector đặc trưng .............................. 83

Hình 3.43: Thuật toán GridSearchCV tìm tham số C tối ưu .............................. 84

Hình 3.44: Load pretrained PhoBERT model và tiền xử lý văn bản .................. 84

Hình 3.45: Tạo features từ PhoBert .................................................................... 85

9

Hình 3.46: Kết quả huấn luyện SVM-3f .............................................................. 86

Hình 3.47: Kết quả huấn luyện SVM-2f .............................................................. 86

Hình 3.48: Kết quả huấn luyện MLP-2f .............................................................. 86

Hình 3.49: Kết quả huấn luyện MLP-3f .............................................................. 87

Hình 3.50: Kết quả huấn luyện SVM-BERT ....................................................... 87

Hình 3.51: Kết quả huấn luyện MLP-BERT ....................................................... 87

Hình 3.52: Mã nguồn Server backend ................................................................ 88

Hình 3.53: Kiểm tra sự xuất hiện của các đường link URL đến website, blog

phản động trong nội dung bài viết, bình luận trên Facebook. ........................... 89

Hình 3.54: Một số thẻ div được sử dụng để lấy thông tin từ bài viết, bình luận 89

10

DANH SÁCH CÁC BẢNG

Bảng 3.1: Danh sách một số user Facebook phản động .................................... 47

Bảng 3.2: Danh sách một số fanpage Facebook phản động .............................. 48

Bảng 3.3: Danh sách một số group Facebook phản động .................................. 49

Bảng 3.4: Danh sách một số website, blog phản động ....................................... 50

11

DANH SÁCH CHỮ VIẾT TẮT

CH-CĐCT Cơ hội, chống đối chính trị

CNN Convolution Neural Network

DOM Document Object Model

Extension Thành phần mở rộng

Layer Tầng

MXH Mạng xã hội

MLP Multi-layer Perceptron

MCC Matthews Correlation Coefficient

NLP Natural Language Processing

URL Uniform Resource Locator

SVM Support Vetor Machines

12

LỜI MỞ ĐẦU

Facebook là một website mạng xã hội (MXH) truy cập miễn phí do Công ty

Facebook, Inc điều hành và sở hữu tư nhân. Người dùng có thể tham gia các

mạng lưới được tổ chức theo thành phố, nơi làm việc, trường học và khu vực để

liên kết và giao tiếp với người khác. Hiện nay, Facebook là MXH có số lượng

người sử dụng nhiều nhất, với khoảng 2,8 tỷ người dùng hàng tháng và 1,84 tỷ

người dùng hàng ngày (số liệu tháng 12/2020) [1]. Trong đó, Việt Nam xếp thứ

7 trong top 10 quốc gia sử dụng MXH Facebook đông nhất thế giới, với 69,28

triệu người dùng (số liệu tháng 6/2020) [2].

Về mặt tích cực, MXH Facebook đang là công cụ truyền thông phổ biến và

gần gũi với mọi người, đặc biệt là giới trẻ; cho phép kết nối người dùng trên

khắp thế giới tới gần nhau hơn; mang đến cho người dùng nhiều tính năng vượt

trội, hiện đại, đáp ứng nhu cầu giao tiếp trong xã hội như: Trò chuyện, xem

phim ảnh, nhật kí cá nhân, thành lập hội nhóm, tìm kiếm thông tin, kinh doanh

trực tuyến…

Qua quá trình nghiên cứu, tìm hiểu về MXH Facebook, tôi nhận thấy rằng,

bên cạnh những nội dung tích cực, cũng có rất nhiều những nội dung tiêu cực,

không phù hợp trên Facebook, như: Các nội dung về bạo hành/đe dọa trực tuyến

(cyberbullying), nội dung về lời nói căm thù (hate speech), nội dung ngôn ngữ

xúc phạm (offensive language), nội dung tin giả, tin đầu độc, nội dung phản

động… thuộc các thể loại, lĩnh vực khác nhau, như: Chính trị, sắc tộc, tôn giáo,

giới tính, khủng bố,… Để kiểm duyệt tất cả các thể loại nội dung không phù hợp

thuộc các lĩnh vực khác nhau trên MXH Facebook là điều rất khó. Trong giới

hạn phạm vi nghiên cứu của luận văn, tôi chọn một chủ đề nghiên cứu nhỏ

hơn là về nội dung phản động trong lĩnh vực chính trị, nhằm làm nổi bật về

phương pháp, cách thức trong kiểm duyệt các nội dung không phù hợp trên

MXH Facebook, từ đó có thể làm nền tảng để áp dụng trên các MXH khác.

Việc nghiên cứu các nội dung liên quan đến vấn đề chính trị mặc dù rất

nhạy cảm, ít người làm, nhưng tôi vẫn lựa chọn là bởi vì: Thực trạng hiện nay,

nhiều đối tượng xấu đã và đang lợi dụng MXH Facebook để tuyên truyền, kích

động bạo lực, chiến tranh, gây thù hằn dân tộc, đòi lật đổ chế độ; xúc phạm nhân

phẩm, bôi nhọ danh dự cá nhân, tổ chức; chia rẽ dân tộc tôn giáo;… Tại Việt

Nam, nhiều đối tượng cơ hội, chống đối chính trị (CH-CĐCT) ở trong và ngoài

nước đã và đang sử dụng Facebook để tạo lập, kêu gọi nhiều đối tượng khác

13

tham gia các trang cộng đồng (fanpage), hội/nhóm (group) chống đối chính trị,

như: Việt Tân, Nhật ký yêu nước, VOA Tiếng Việt, Đài Á Châu Tự Do, BBC

News Tiếng Việt, Quân Đội Việt Nam Cộng Hòa,… Bên cạnh đó, nhiều đối

tượng tinh vi hơn còn lập ra rất nhiều fanpage núp dưới những tên gọi nghiêm

túc, chính thống, như: “Đảng Cộng sản Việt Nam Vinh quang”, hay trang “Nhật

ký tin tức thể hiện lòng yêu nước”… để đăng tải những thông tin xuyên tạc, bịa

đặt về tình hình chính trị ở Việt Nam, xen vào những nội dung phản động, chống

phá Đảng, Nhà nước rất quyết liệt [3]. Với nhiều thủ đoạn khác nhau, các đối

tượng này tập trung tuyên truyền, xuyên tạc chủ trương, đường lối của Đảng,

chính sách và pháp luật của Nhà nước; chống phá, đòi lật đổ chế độ XHCN; mạo

danh, nói xấu các lãnh đạo cấp cao của Đảng, Nhà nước…

Việc đăng tải, tán phát các bài viết, bình luận có nội dung phản động,

chống phá trên MXH Facebook đã trở thành vấn đề nhức nhối nhiều năm qua.

Các cơ quan chức năng của Nhà nước Việt Nam cũng đã đề ra những quy định

nghiêm ngặt nhằm hạn chế việc sử dụng các nền tảng MXH trực tuyến để tuyên

truyền chống phá Đảng, Nhà nước, chế độ. Tuy nhiên, việc theo dõi, giám sát,

phát hiện và xử lý các đối tượng lợi dụng MXH Facebook để tuyên truyền,

chống phá Đảng, Nhà nước vẫn còn nhiều hạn chế nhất định cả về con người,

phương tiện, cũng như cơ chế hợp tác của nhà phát triển Facebook với Chính

phủ Việt Nam.Vì vậy, rất cần có một giải pháp công nghệ để hỗ trợ để phát hiện

và kịp thời ngăn chặn các thông tin phản động đến với người dùng Facebook.

Luận văn được thực hiện với mục tiêu nghiên cứu giải pháp phát hiện, loại

bỏ bài viết và bình luận tiếng Việt có nội dung phản động trước khi tiếp cận đến

các người dùng Facebook. Trong toàn bộ nội dung của luận văn, tôi sẽ tập trung

làm rõ thế nào là các nội dung phản động và phương pháp để phát hiện, kiểm

duyệt các nội dung phản động trước khi tiếp cận người dùng.

Luận văn của tôi tập trung nghiên cứu cơ sở lý thuyết về xử lý ngôn ngữ tự

nhiên (NLP-Natural Language Processing); các thuật toán học máy, mô hình

mạng nơ-ron nhân tạo áp dụng cho phát hiện nội dung phản động như SVM

(Support Vector Machine), MLP (Multi-layer Perceptron) và các phương pháp

trích trọn đặc trưng của bài viết và bình luận tiếng Việt có nội dung phản động

trên Facebook. Luận văn đã phát triển một mô-đun dịch vụ phát hiện nội dung

phản động trong bài viết và bình luận tiếng Việt trên MXH Facebook. Với mô-

đun này, các bài viết, bình luận tiếng Việt có nội dung phản động sẽ được kiểm

duyệt và ẩn khỏi trang Facebook của người dùng.

14

CHƯƠNG 1: CƠ SỞ KHOA HỌC

1.1. Nội dung phản động trên Facebook

Trong những năm gần đây, sự ra đời, phát triển của internet và MXH đã

thay đổi một cách đáng kể cách sống, suy nghĩ và hành động của người dân trên

toàn thế giới, đặc biệt là giới trẻ. Ở Việt Nam, Facebook là MXH được sử dụng

nhiều nhất và đã trở thành một phần không thể thiếu trong cuộc sống hiện đại.

Nhờ có MXH nói chung và Facebook nói riêng, không thể phủ nhận rằng, nếu

sử dụng một cách hợp lý và đúng đắn nó mang lại những lợi ích to lớn. Đầu tiên

phải kể đến giúp con người dễ dàng chia sẻ, trao đổi thông tin với nhau thông

qua việc nhắn tin, trò chuyện trực tuyến, chia sẻ âm thanh, hình ảnh, bày tỏ cảm

xúc, bình luận..., mà không bị giới hạn về không gian và địa lý. Đặc biệt, tất cả

đều miễn phí, do vậy, giúp tiết kiệm tài chính và tạo điều kiện lí tưởng để kết nối

mọi người lại gần nhau hơn.

Các thông tin trên Facebook được cập nhật nhanh chóng theo thời gian

thực, từ những chia sẻ của cá nhân, gia đình, bạn bè, nhà trường cho đến những

sự kiện chính trị trong nước và trên thế giới. Qua đó, giúp người dùng nắm bắt

nhanh thông tin và xu thế phát triển của xã hội. Những nội dung thông tin được

đăng tải trên Facebook không chỉ đa dạng mà còn là kho kiến thức khổng lồ, góp

phần làm phong phú đời sống tinh thần, nâng cao nhu cầu hưởng thụ, trao đổi

thông tin trong xã hội. Thông qua những thông tin được đăng tải, chia sẻ dưới

dạng bài viết, hình ảnh, video cũng là cách mà mọi người thể hiện nhận thức và

hành động. Khi mà thông tin ngày càng trở thành nhân tố quan trọng trong việc

nắm bắt thời cơ, cơ hội để hợp tác và phát triển, thì những tiện ích mà Facebook

mang lại còn giúp cho kinh tế, xã hội ngày càng phát triển hơn thông qua các

hoạt động trao đổi, kinh doanh, buôn bán… góp phần làm phong phú hơn đời

sống vật chất và tinh thần của người dân.

Bên cạnh những mặt tích cực, MXH Facebook cũng tồn tại thực trạng xuất

hiện nhiều thông tin giả, thông tin xấu độc, đặc biệt là những thông tin phản

động, chống phá Đảng, Nhà nước ảnh hưởng tiêu cực đến tình hình kinh tế,

chính trị, văn hóa - xã hội, an ninh quốc phòng… của đất nước; đặt ra nguy cơ

mất an ninh chính trị, trật tự và an toàn xã hội.

Với đặc tính lan truyền nhanh, có khả năng mở rộng phạm vi tác động,

vượt qua rào cản ngôn ngữ, khoảng cách địa lý, gây tác hại trên diện rộng hơn

bất cứ hình thức chống phá nào khác của các thế lực thù địch, việc lợi dụng

MXH Facebook để tuyên truyền, xuyên tạc, chống phá Đảng, Nhà nước được

15

coi là thủ đoạn có tổ chức phổ biến hiện nay, có tính chất phức tạp và ngày càng

tinh vi.

Tại Việt Nam, để thực hiện âm mưu chống phá Đảng, Nhà nước, các tổ

chức phản động lưu vong cùng nhiều đối tượng CH-CĐCT trong và ngoài nước

đã lợi dụng chính sách quản lý còn lỏng lẻo của Facebook để tạo lập, kêu gọi

nhiều đối tượng tham gia các fanpage, group chống đối chính trị (cả group công

khai và group kín) để cùng trao đổi, bàn bạc các thủ đoạn tuyên truyền, chống

phá chính quyền, như: Việt Tân, Nhật ký yêu nước, Khối 8406, VOA Tiếng

Việt, Đài Á Châu Tự Do, BBC News Tiếng Việt, Quân Lực Việt Nam Cộng

Hòa… Thủ đoạn của các thế lực thù địch là lợi dụng các sự kiện chính trị nóng

của đất nước để tuyên truyền xuyên tạc chủ trương, đường lối của Đảng, chính

sách và luật pháp của Nhà nước. Bản chất của những thông tin có nội dung phản

động trên MXH Facebook là những thông tin bịa đặt, bóp méo sự thật, xuyên tạc

vấn đề, “đổi trắng, thay đen”, cố tình đưa tin với dụng ý xấu, phân tích và định

hướng dư luận bằng luận điệu thù địch. Các thông tin bị xuyên tạc thuộc đa dạng

các thể loại, chủ đề, lĩnh vực khác nhau, từ kinh tế, chính trị, văn hóa, ngoại

giao, an ninh - quốc phòng cho tới việc nói xấu tổ chức, lãnh đạo cấp cao của

Đảng, Nhà nước… Tất cả đều nhằm định hướng dư luận để chống phá Đảng,

Nhà nước, hòng lật đổ chế độ XHCN tại Việt Nam… Đáng chú ý, việc chống

phá sự lãnh đạo của Đảng Cộng sản Việt Nam là một trong những mục tiêu hàng

đầu thường được các thế lực thù địch nhắc tới mối khi tuyên truyền chống phá.

Hoạt động của các thế lực thù địch thường diễn ra dưới nhiều thủ đoạn tinh vi,

như: Lợi dụng sai sót nhỏ của chính quyền để thổi phồng vụ việc, vu cáo, đổ lỗi

cho sự lãnh đạo của Đảng, nhằm bôi nhọ, hạ thấp uy tín của Đảng; lợi dụng các

thành phần có dân trí thấp, dễ bị tác động, để kích động biểu tình, bạo loạn, làm

mất trật tự an ninh, an toàn xã hội… Điển hình như thời gian gần đây, trên MXH

xuất hiện rất nhiều thông tin sai lệch về công tác phòng, chống dịch Covid-19 tại

Việt Nam, như: “Từ 0h ngày 15/7, TP.HCM sẽ giới nghiêm người dân, ngưng

tất cả các ngành nghề, cấm người dân di chuyển ra ngoài”, “lãnh đạo TP.HCM

đã nhiễm Covid-19”, hay bức ảnh nhiều thi thể nạn nhân trong bệnh viện, được

chụp ở Indonesia thì lại bị các đối tượng gán là “chụp ở bệnh viện Chợ Rẫy,

TP.HCM” [4]; lợi dụng vụ việc liên quan đến sự kiện quân nhân Trần Đức Đô tử

vong tại Trường Quân sự thuộc Quân khu 1, các phần tử CH-CĐCT đã đăng tải

các bài viết, hình ảnh về khám nghiệm tử thi, cảnh tang thương của gia đình

quân nhân, kèm những bình luận phê phán nhằm bóp méo sự thật, kích động hận

thù, gây chia rẽ mối quan hệ Quân - Dân, xuyên tạc bản chất, truyền thống Quân

đội và phẩm chất “Bộ đội Cụ Hồ”. Bên cạnh đó, gần đây vào ngày 08/09/2021,

16

Trương Châu Hữu Danh và nhóm “Báo Sạch” đã bị Viện Kiểm sát nhân dân

huyện Thới Lai, TP. Cần Thơ truy tố về các hành vi đăng tải, chia sẻ bài viết,

hướng cộng đồng mạng tham gia bình luận tiêu cực, cố ý xâm phạm đến lợi ích

của Nhà nước, cơ quan tổ chức tại tỉnh Cần Thơ [5]…

Ngoài những thông tin đăng tải trên bài viết (post), nhiều user, fanpage,

group Facebook tận dụng triệt để tính năng chia sẻ bài viết từ các website, blog

khác để thu hút bình luận (comment) của người dùng, tạo dư luận trái chiều, qua

đó thu thập thông tin, tiếp tục tuyên truyền, kích động chống phá… Điển hình là

các blog “Dân Làm Báo”, “Báo Tiếng Dân”, “Anh Ba Sàm”, “Việt Nam Thời

Báo”, “VOA Tiếng Việt”,... Các website, blog này thường được các đối tượng

xấu, đối tượng chống phá tạo lập ẩn danh hoặc sử dụng những dịch vụ tạo blog

miễn phí của Google, WordPress…, đăng ký tên miền và đặt máy chủ lưu trữ dữ

liệu tại Mỹ để tránh bị lực lượng chức năng của Việt Nam bóc gỡ. Những thông

tin từ các website, blog phản động này đang ngày càng đa dạng, phong phú, tổ

chức dưới nhiều hình thức, có lực lượng đăng tải thông tin hàng ngày lên các

MXH (nhất là Faccebook) để thu hút người đọc, gây hoang mang dư luận, ảnh

hưởng xấu đến tư tưởng chính trị của người dân trong xã hội.

Các bài viết, bình luận tiếng Việt có nội dung phản động được đăng tải trên

MXH Facebook dưới nhiều thể loại, hình thức khác nhau, từ văn bản, âm thanh,

hình ảnh đến các video-clip (bao gồm cả trực tuyến-livestream). Do giới hạn về

khả năng, công nghệ, cũng như lực lượng thực hiện, phạm vi của luận văn này

chỉ tập trung nghiên cứu phát hiện các nội dung phản động dưới dạng văn bản,

chưa xét đến các nội dung hình ảnh, âm thanh, video-clip trên MXH Facebook.

Để xác định các nội dung phản động trên Facebook, bản thân tôi đã tự tìm

hiểu, nghiên cứu các điều khoản của Luật An ninh mạng 2018 và Nghị định

174/2013/NĐ-CP của Chính phủ Việt Nam công khai trên không gian mạng

[7,8,9,10], từ đó rút ra 11 nội dung sau đây được coi là nội dung phản động,

bao gồm:

(1) Tổ chức, hoạt động, câu kết, xúi giục, mua chuộc, lừa gạt, lôi kéo, đào

tạo, huấn luyện người chống Nhà nước Cộng hòa xã hội chủ nghĩa Việt Nam;

(2) Xuyên tạc lịch sử, phủ nhận thành tựu cách mạng, phá hoại khối đại

đoàn kết toàn dân tộc, xúc phạm tôn giáo, phân biệt đối xử về giới, phân biệt

chủng tộc;

(3) Thông tin sai sự thật gây hoang mang trong Nhân dân, gây thiệt hại cho

hoạt động kinh tế - xã hội, gây khó khăn cho hoạt động của cơ quan nhà nước

17

hoặc người thi hành công vụ, xâm phạm quyền và lợi ích hợp pháp của cơ quan,

tổ chức, cá nhân khác;

(4) Tuyên truyền xuyên tạc, phỉ báng chính quyền nhân dân;

(5) Chiến tranh tâm lý, kích động chiến tranh xâm lược, chia rẽ, gây thù

hận giữa các dân tộc, tôn giáo và nhân dân các nước;

(6) Xúc phạm dân tộc, quốc kỳ, quốc huy, quốc ca, vĩ nhân, lãnh tụ, danh

nhân, anh hùng dân tộc;

(7) Kêu gọi, vận động, xúi giục, đe dọa, gây chia rẽ, tiến hành hoạt động vũ

trang hoặc dùng bạo lực nhằm chống chính quyền nhân dân;

(8) Kêu gọi, vận động, xúi giục, đe dọa, lôi kéo tụ tập đông người gây rối,

chống người thi hành công vụ, cản trở hoạt động của cơ quan, tổ chức gây mất

ổn định về an ninh, trật tự;

(9) Tuyên truyền chống Nhà nước Cộng hòa xã hội chủ nghĩa Việt Nam;

phá hoại khối đại đoàn kết toàn dân tộc mà chưa đến mức truy cứu trách nhiệm

hình sự;

(10) Tuyên truyền kích động chiến tranh xâm lược, gây hận thù giữa các

dân tộc và nhân dân các nước; kích động bạo lực; truyền bá tư tưởng phản động

mà chưa đến mức truy cứu trách nhiệm hình sự;

(11) Xuyên tạc sự thật lịch sử, phủ nhận thành tựu cách mạng; xúc phạm

dân tộc, danh nhân, anh hùng dân tộc mà chưa đến mức truy cứu trách nhiệm

hình sự.

Ngoài 11 nội dung tổng hợp nêu trên, có thể còn nhiều nội dung khác chưa

được liệt kê hết. Tuy nhiên, trong phạm vi luận văn, tôi sử dụng 11 nội dung này

làm căn cứ để đánh giá, huấn luyện mô hình học máy phục vụ cho thử nghiệm

hoạt động của dịch vụ kiểm duyệt bài viết và bình luận tiếng Việt có nội dung

phản động trên MXH Facebook.

1.2. Tác hại của nội dung phản động trên Facebook

Những nội dung mang tính chất phản động, chống phá Đảng, Nhà nước,

chống phá chế độ… trên MXH Facebook đã và đang gây ảnh hưởng tiêu cực

mạnh mẽ đến nhận thức, suy nghĩ và hành động của nhiều người, thuộc mọi

thành phần, lứa tuổi. Hiện nay, những thông tin phản động được lan truyền, tán

phát với tần suất lớn, tức thời, kèm theo là tính chất phản động rất tinh vi khiến

người dùng MXH Facebook khó nhận ra được đâu là thông tin chính

thống/không chính thống, đâu là thông tin thật/giả. Thông tin phản động sẽ dần

làm ảnh hưởng lớn tới nhận thức của người dùng; càng tiếp cận nhiều thông tin

18

phản động thì càng làm cho người dùng có cách nhìn nhận lệch chuẩn. Từ đó, có

những hành vi đi ngược lại với các chuẩn mực thông thường. Việc cân bằng

giữa quyền tự do ngôn luận và sự tôn trọng cá nhân là điều vô cùng khó kiểm

soát đối với những thông tin được đưa ra trên MXH Facebook. Đối với người trẻ

nói chung, trong đó có thiếu niên và trẻ em, là một trong những đối tượng chính

sử dụng Facebook với tần suất lớn. Lợi dụng điều này, những đối tượng xấu sẽ

tiêm nhiễm dần các thông tin xấu độc, nhằm lan truyền tư tưởng chống phá từ

khi còn trẻ. Ở một bộ phận người trung niên, cao tuổi tại Việt Nam, trong những

năm gần đây đang có xu hướng sử dụng Facebook làm phương tiện liên lạc, chia

sẻ thông tin song hành cùng các phương tiện thông tin đại chúng khác. Với đặc

điểm, dễ bị lôi kéo và không thông thạo cách sử dụng Facebook, không am hiểu

về tình hình chính trị của Việt Nam, có thể chính là nguyên nhân gián tiếp tiếp

tay cho những hành động tán phát thông tin phản động. Đặc biệt, có nhiều đối

tượng vì thiếu bản lĩnh, thiếu niềm tin vào Đảng, Nhà nước, vì lợi ích bản thân,

suy thoái về tư tưởng, chính trị, đạo đức, lối sống, dễ bị các đối tượng xấu trên

MXH Facebook mua chuộc, tác động, dẫn đến “tự diễn biến”, “tự chuyển hóa”,

quay lại đối đầu với Đảng, Nhà nước.

Hiện nay, ngoài các trang diễn đàn cũng như các MXH khác, tại Việt Nam,

các thế lực thù địch, lực lượng phản động, CH-CĐCT trong và ngoài nước đã và

đang triệt để lợi dụng MXH Facebook làm công cụ để tuyên truyền, tán phát các

nội dung phản động, chống phá Đảng, Nhà nước, chống phá chế độ... Có thể

nhận thấy rằng, việc tạo lập một tài khoản cũng như một trang cộng đồng trên

Facebook rất dễ dàng và đơn giản. Các trang cộng đồng thường giả danh các cơ

quan, tổ chức của Đảng, Nhà nước nhưng lại đăng các thông tin đi ngược với

các chủ trương, đường lối của Đảng, chính sách và pháp luật của Nhà nước. Đặc

biệt, trước những sự kiện nóng diễn ra trong nước, các trang cộng đồng này

thường thu hút được số lượng lớn thành viên, từ đó lôi kéo người dùng

Facebook tham gia các hoạt động chống phá. Do vậy, cần thiết phải có giải pháp

để hạn chế nguồn thông tin có tác động xấu đối với người dùng Facebook.

Trước thực trạng đó, các cơ quan chức năng của Việt Nam cũng đã đề ra những

quy định nghiêm ngặt về việc sử dụng các nền tảng MXH, tiêu biểu như: Luật

An toàn thông tin mạng năm 2015; Luật An ninh mạng Việt Nam năm 2018, có

hiệu lực từ 01/01/2019 hay quy định của Bộ Thông tin và Truyền thông về việc

yêu cầu các MXH phải thực hiện các yêu cầu của cơ quan quản lý để ngăn chặn,

gỡ các tài khoản giả mạo, bài viết xuyên tạc, đưa thông tin sai lệch [6]. Tuy

nhiên, việc giám sát, theo dõi, phát hiện và xử lý các đối tượng lợi dụng MXH

Facebook để chống phá Đảng, Nhà nước vẫn còn nhiều hạn chế nhất định cả về

19

nhân lực, phương tiện thực hiện, cũng như sự hợp tác của nhà phát triển

Facebook với Chính phủ Việt Nam. Bên cạnh đó, MXH Facebook hiện nay

không có tính năng cho phép người dùng báo cáo (report) đối với các bài viết,

bình luận có nội dung phản động (các nước phương Tây chỉ coi đây là quan

điểm chính tri binh thường của người dùng), mà chỉ tập trung vào các vấn đề

như bạo hành, bạo lực, khủng bố, phân biệt giới tính, sắc tộc, tôn giáo… Từ đó,

những nội dung phản động thường không nằm trong các thể loại mà Facebook

cho phép người dùng report, cho nên việc report các bài viết, bình luận phản

động (nhất là các nội dung phản động bằng tiếng Việt) thường không hiệu quả.

Với những đặc điểm, tình hình và hệ lụy nêu trên, việc nghiên cứu giải

pháp kiểm duyệt nội dung bài viết, bình luận tiếng Việt có nội dung phản động

trên MXH Facebook hiện nay là hết sức cần thiết.

1.3. Kiểm duyệt nội dung phản động trên Facebook

Qua tìm hiểu, tôi nhận thấy, hiện có nhiều nghiên cứu về phát hiện nội

dung bạo hành/đe dọa trực tuyến (cyberbullyingdetection), lời nói căm thù (hate

speechdetection), ngôn ngữ xúc phạm (offensive languagedetection) trên các nền

tảng MXH như Facebook, YouTube, Twitter, Instagram... với ngôn ngữ phổ

biến là tiếng Anh. Ngoài ra còn một số nghiên cứu khác trên các ngôn ngữ

không phổ biến như tiếng Ý, tiếng Hà Lan… Với tiếng Việt, nhiều tác giả người

Việt cũng đã có những nghiên cứu liên quan đến các vấn đề nêu trên. Tuy nhiên,

chưa có nghiên cứu cụ thể nào về việc phát hiện bài viết, bình luận tiếng Việt có

nội dung phản động trên các MXH, nhất là MXH Facebook.

Để thực hiện luận văn về nghiên cứu phát hiện nội dung phản động trên

MXH Facebook, bản thân tôi đã tự tìm hiểu về nội dung, quy trình các bước và

kết quả của các nghiên cứu trước đây về phát hiện bạo hành, xúc phạm, căm thù

trên các nền tảng MXH. Các vấn đề mà tôi đã tìm hiểu, như: Vấn đề NLP tiếng

Việt; tiền xử lý dữ liệu; trích chọn đặc trưng; xây dựng danh sách đen (blacklist

word); áp dụng các phương pháp, thuật toán học máy, để huấn luyện mô hình…

Một số bài báo mà tôi đã nghiên cứu, tìm hiểu, bao gồm:

Nghiên cứu của Ying Chen [15] đã ứng dụng kiến trúc đặc trưng cú pháp từ

vựng (LSF-Lexical Syntactic Feature) để phát hiện nội dung xúc phạm, đồng

thời xác định người dùng có khả năng đưa ra nội dung xúc phạm trên MXH. Kết

quả là, khung kiến trúc LSF hoạt động tốt hơn những phương pháp hiện tại trong

việc phát hiện nội dung xúc phạm. Đạt độ chính xác (precision) 98,24% và độ

hồi tưởng (recall) 94,34% khi phát hiện nội dung xúc phạm; đạt độ chính xác

20

77,9% và recall 77,8% đối với xác định người dùng có khả năng đưa ra nội dung

xúc phạm trên MXH.

Nghiên cứu của Chikashi Nobata [16] đã đề cập đến khả năng phát hiện

ngôn ngữ lạm dụng (abusive language) trong nội dung của người dùng trực

tuyến bằng cách sử dụng đặc trưng n-gram, các đặc trưng ngôn ngữ (chiều dài

câu, chiều dài trung binh của từ, số lượng dấu chấm câu, dấu chấm hỏi, ngoặc

kép…), đặc trưng về cú pháp, đặc trưng về ngữ nghĩa; tiến hành huấn luyện đối

với từng loại đặc trưng riêng rẽ và gộp tất cả các đặc trưng để so sánh kết quả.

Nghiên cứu đạt được độ chính xác 79,5% đối với tập dữ liệu về tài chính và

81,7% đối với tập dữ liệu về tin tức.

Nghiên cứu của Anna Schmidt [17] về một khảo sát việc phát hiện lời nói

căm thù bằng NLP. Tác giả đã sử dụng các đặc trưng bề mặt đơn giản như đặc

trưng túi từ BoW (bag of words - một túi các từ không phân biệt thứ tự), đặc

trưng n-gam (cấp độ từ và cấp độ ký tự); tổng quát hóa từ (word generalization)

bổ sung cho BoW; đề cập đến phân tích sắc thái câu (sentiment analysis), tài

nguyên từ vựng (lexical resources), các đặc trưng ngôn ngữ, đặc trưng về siêu

dữ liệu (meta-data) khác…

Nghiên cứu của Theodora Chu [18] sử dụng các mô hình thuật toán học sâu

như LSTM (mạng nơ-ron hồi quy RNN với ô nhớ ngắn hạn và dài hạn) và CNN

(mạng nơ-ron tích chập kết hợp với word embedding và character embedding).

Kết quả, đối với CNN kết hợp character embedding cho F1 score là 0,73 với

50.000 bước; còn CNN kết hợp word embedding cho F1 score là 0,70 với chỉ

5.000 bước. LSTM thực hiện gần giống với CNN kết hợp word embedding, cho

F1 score là 0,69 với 5.000 bước để huấn luyện.

1.4. Mục tiêu nghiên cứu của luận văn

Nhằm xây dựng giải pháp tự động phát hiện, loại bỏ các bài viết và bình

luận tiếng Việt có nội dung phản động trước khi đến với người dùng Facebook;

thử nghiệm xây dựng công cụ/dịch vụ (extension) triển khai trên máy tính người

dùng nhằm ngăn chặn các bài viết, bình luận có nội dung phản độngtiếp cận

người dùng Facebook. Tuy nhiên, hai mục tiêu này cũng không hề đơn giản,

nhất là việc chưa có một bộ từ điển phản động nào được xây dựng trước đây

dùng để phát hiện các nội dung phản động. Đây cũng chính là mục tiêu thứ ba

của luận văn, nhằm xây dựng một bộ từ điển các từ ngữ phản động. Bộ từ điển

này sẽ thường xuyên được cập nhật, thay đổi cùng thời gian theo sự phát triển

của xã hội, cách mà các đối tượng đăng tải bài viết, bình luận có nội dung phản

động. Bên cạnh đó, luận văn còn đề cập đến danh sách các user, fanpage, group

21

trên Facebook, các website, blog phản động, những đối tượng này (là nguồn gốc

xuất phát các nội dung phản động) được tập hợp thành một blacklist để ngăn

chặn ngay từ đầu, không để tán phát thông tin xấu độc đến người dùng.

1.5. Cấu trúc của luận văn

Nội dung của luận văn được chia thành 04 chương, tập trung nghiên cứu cơ

sở lý thuyết về NLP; các phương pháp trích trọn đặc trưng; các thuật toán học

máy, mô hình mạng nơ-ron tiêu biểu áp dụng cho phát hiện nội dung phản động

như: SVM, mô hình mạng nơ-ron đa tầng truyền thẳng MLP. Luận văn cũng đã

phát triển một dịch vụ tự động phát hiện nội dung phản động trong bài viết và

bình luận tiếng Việt trên MXH Facebook. Dịch vụ này kiểm duyệt nội dung

phản động theo mô hình 02 tầng (Layer). Layer 1, kiểm duyệt dựa vào tập danh

sách các user, fanpage, group đã nằm trong blacklist phản động. Khi gặp các đối

tượng trong danh sách này, dịch vụ sẽ ngăn chặn ngay các nội dung, không để

tiếp cận đến người dùng; Layer 2, kiểm duyệt dựa vào nội dung của bài viết,

bình luận thu thập được từ Facebook. Tại đây, dịch vụ sẽ thực hiện kiểm tra nội

dung đầu vào, nếu phát hiện nội dung phản động thì sẽ ẩn nội dung đó đi. Với

dịch vụ này, các bài viết, bình luận tiếng Việt có nội dung phản động sẽ bị ẩn

khỏi Facebook trước khi đến với người dùng.

Bố cục của luận văn cụ thể như sau:

Chương 1. Cơ sở khoa học

Giới thiệu về thực trạng báo động về các bài viết và bình luận tiếng Việt có

nội dung phản động trên MXH Facebook; nhu cầu cần thiết trong việc kiểm

duyệt nội dung của các bài viết và bình luận tiếng Việt có nội dung phản động

trên MXH Facebook; tìm hiểu các nghiên cứu trước đây về phát hiện nội dung

phản động trên các nền tảng MXH. Cuối cùng là mục tiêu và nội dung chính của

luận văn.

Chương 2. Đề xuất phương pháp

Phần thứ nhất của chương này nhằm tìm hiểu và làm rõ các nội dung, như:

Blacklist là gì; cách sử dụng blacklist trong kiểm duyệt bài viết, bình luận có nội

dung phản động trên Facebook; giới thiệu chi tiết các loại blacklist user,

fanpage, group, website và blog phản động.

Phần thứ hai của chương này trình bày các phương pháp tiếp cận để trích

chọn đặc trưng nội dung phản động của văn bản đầu vào, tập trung chính là các

văn bản trên MXH Facebook. Trước khi xác định các đặc trưng cụ thể, tôi đi vào

tìm hiểu trích chọn đặc trưng trong công nghệ NLP; tìm hiểu các đặc trưng ngôn

ngữ tiếng Việt. Tiếp đến, tôi tìm hiểu các đặc trưng ngôn ngữ trong kiểm duyệt

22

bài viết, bình luận phản động; tìm hiểu về các phương pháp biểu diễn từ trong

trích chọn đặc trưng; phương pháp trích chọn đặc trưng (n-gram;

BERT/PhoBERT); tìm hiểu các mô hình, thuật toán phân loại văn bản phổ biến.

Cuối cùng, tôi giới thiệu một số thuật toán về phân lớp nhị phân; trình bày đại

diện các thuật toán được sử dụng để phát hiện bài viết, bình luận tiếng Việt có

nội dung phản động, gồm: Thuật toán học máy SVM và mô hình mạng nơ-ron

đa tầng truyền thẳng MLP. Đây đều là các thuật toán cơ bản và phổ biến ứng

dụng trong phân lớp dữ liệu văn bản.

Chương 3. Cài đặt thử nghiệm

Trong chương này, đầu tiên, tôi trình bày về cách thức xây dựng blacklist

user, fanpage, group, website, blog phản động; cách thức thu thập dữ liệu mẫu

(dataset); xây dựng từ điển phản động; xây dựng vector đặc trưng cho dữ liệu;

cài đặt các thuật toán đã nghiên cứu trong Chương 3. Cuối cùng là thử nghiệm

phát triển một dịch vụ trên trình duyệt Google Chrome nhằm tự động kiểm

duyệt các bài viết, bình luận tiếng Việt có nội dung phản động trên MXH

Facebook. Dịch vụ này bao gồm một Backend có chức năng phát hiện bài viết,

bình luận tiếng Việt có nội dung phản động, nó cung cấp một API cho phép các

ứng dụng gửi nội dung đến để thẩm định; một Frontend dưới dạng extension cho

trình duyệt Chrome, có thể đọc các bài viết, bình luận trên Facebook, thực hiện

kiểm duyệt thông qua mô hình 02 tầng.

Chương 4. Kết luận và hướng phát triển

Chương này nhằm tóm tắt lại các công việc chính đã thực hiện và kết quả

đạt được của luận văn; đề xuất các hướng nghiên cứu, phát triển trong tương lai.

23

CHƯƠNG 2: ĐỀ XUẤT PHƯƠNG PHÁP

2.1. Danh sách đen

Danh sách đen (blacklist) là một tập hợp danh sách các đối tượng, gồm:

User, fanpage, group phản động trên Facebook; các website, blog phản động.

Các blacklist này được dùng để đối chiếu với dữ liệu đầu vào của Facebook.

Nếu dữ liệu đầu vào của Facebook đến từ các blacklist user, fanpage, group

phản động hoặc chứa blacklist website, blog phản động thì sẽ bị chặn lại ngay từ

đầu, không cho dữ liệu tiếp cận đến người dùng Facebook. Thông tin cụ thể về

các đối tượng blacklist được nêu dưới đây:

2.1.1. User Facebook phản động

Thông tin về user Facebook là một yếu tố góp phần xác định được chính

xác các nội dung mà user đăng tải có là phản động hay không. Thông thường,

các user thường xuyên đăng tải bài viết, bình luận có nội dung phản động (nằm

trong 11 nội dung đã xác đinh trong Mục 1.1) thì đều được xác định là các tài

khoản phản động, được đưa vào blacklist. Như vậy, việc lập blacklist chứa tên

và địa chỉ URL của các user Facebook phản động sẽ giúp nhanh chóng xác định

được các nội dung phản động trên Facebook (kể cả đối tượng có đăng tải hoặc

không đăng tải nội dung phản động), kịp thời ngăn chặn các nội dung mà user

Facebook phản động này đăng tải đến với người dùng.

Đối với những user Facebook thông thường, không thuộc blacklist. Việc

xác định nội dung mà người dùng đăng tải có phản động hay không sẽ dựa vào

blacklist word (từ điển phản động có đánh trọng số) và các đặc trưng ngôn

ngữ khác.

Ngoài ra, đối với những user Facebook mà trong danh sách bạn bè của user

này có những user thuộc blacklist phản động thì cũng có thể coi là user phản

động. Bởi vì, một khi user có bạn bè là phản động thì các thông tin do user phản

động đăng tải sẽ tự động hiển thị trên tường (feed) của user này. Khi đó, nội

dung phản động sẽ tiếp cận được đến các user khác. Tuy nhiên, trong phạm vi

của luận văn này, tôi chỉ đề cập đến các user Facebook thường xuyên đăng tải,

tán phát các nội dung hoặc có nhiều bình luận phản động.

Blacklist user phản động nằm trong Layer 1 của dịch vụ kiểm duyệt. Dịch

vụ kiểm duyệt sẽ thực hiện kiểm tra, đối chiếu dữ liệu Facebook thu được với

URL của blacklist user. Nếu trùng khớp, dịch vụ sẽ ẩn tất cả nội dung của user

phản động trước khi tiếp cận các user Facebook khác.

24

2.1.2. Fanpage Facebook phản động

Thông tin về fanpage là một trong những nhân tố góp phần xác định đâu là

nội dung phản động trên Facebook. Đối với bất kỳ fanpage nào, nếu thường

xuyên đăng tải các nội dung phản động (nằm trong 11 nội dung đã xác đinh

trong Mục 1.1.) thì đều được xác định là fanpage phản động và được đưa vào

blacklist. Một khi fanpage năm trong blacklist thì mặc định bất kỳ nội dung nào

đăng tải trên đó đều được coi là phản động và cần hạn chế tiếp cận đến những

người dùng Facebook khác.

Blacklist fanpage phản động nằm trong Layer 1 của dịch vụ kiểm duyệt.

Dịch vụ kiểm duyệt sẽ thực hiện kiểm tra, đối chiếu dữ liệu Facebook thu được

với URL của blacklist fanpage. Nếu trùng khớp, dịch vụ sẽ ẩn tất cả nội dung

của fanpage phản động trước khi tiếp cận các user khác.

2.1.3. Group Facebook phản động

Thông tin về các hội/nhóm là một nhân tố góp phần xác định nội dung phản

động trên Facebook. Đối với các group thường xuyên xuất hiện các bài viết,

bình luận phản động thì được coi là group phản động, được đưa vào blacklist.

Một khi đã nằm trong blacklist, thì bất kỳ nội dung nào mà thành viên trong

group này đăng lên đều được coi là phản động và cần hạn chế tiếp cận đến các

tài khoản người dùng Facebook khác.

Đối với những group bình thường nhưng trong danh sách thành viên

(members) lại có tài khoản thuộc blacklist user Facebook phản động, thì những

thông tin bình luận mà user phản động đăng tải trên fanpage sẽ phải đi qua bước

kiểm tra user phản động được nêu tại Mục 2.1.

Blacklist group phản động nằm trong Layer 1 của dịch vụ kiểm duyệt. Dịch

vụ kiểm duyệt sẽ thực hiện kiểm tra, đối chiếu dữ liệu Facebook thu được với

URL của blacklist group. Nếu trùng khớp, dịch vụ sẽ ẩn tất cả nội dung của

group phản động trước khi tiếp cận các user khác.

2.1.4. Website, blog phản động

Thông tin về các website, blog (tên, đia chỉ URL) là một nhân tố góp phần

xác định nội dung bài viết, bình luận có là phản động hay không. Thông thường,

các tài khoản Facebook chính thống không đăng tải đường dẫn URL của các

website, blog phản động; coi đó như một hình thức tiếp tay, tán phát cho các đối

tượng phản động. Do đó, mặc định, cứ có bài viết, bình luận nào chứa URL của

website, blog phản động thì được coi là nội dung phản động.

Blacklist website, blog phản động nằm trong Layer 2 của dịch vụ kiểm

duyệt. Dịch vụ kiểm duyệt sẽ thực hiện kiểm tra, đối chiếu dữ liệu Facebook thu

25

được với URL của blacklist website, blog phản động. Nếu các bài viết, bình luận

chứa URL của website, blog phản động thì mặc định dịch vụ sẽ ẩn nội dung đó

trước khi tiếp cận người dùng Facebook.

2.2. Phương pháp học máy

2.2.1. Trích chọn đặc trưng nội dung phản động

Với bài toán phát hiện bài viết, bình luận có nội dung phản động trên MXH

Facebook, nhiệm vụ quan trọng hàng đầu đặt ra là trích chọn được các đặc trưng

tiêu biểu của dữ liệu đầu vào. Trong mục này, tôi sẽ trình bày các phương pháp

tiếp cận để trích chọn đặc trưng nội dung phản động của văn bản đầu vào, tập

trung chính là các văn bản trên MXH Facebook. Ngoài những đặc trưng của văn

bản nói chung, văn bản trên Facebook cũng như các phương tiện truyền thông

xã hội khác có những đặc trưng khác biệt so với văn bản chính quy như: Phi

hình thức, sử dụng nhiều từ lóng, từ viết tắt, từ cách điệu không có trong từ điển,

câu không hoàn chỉnh hoặc không đúng ngữ pháp… Tất cả những đặc trưng này

cần được khai thác nhằm đem lại hiệu quả tốt trong phát hiện nội dung phản

động. Trước khi xác định các đặc trưng cụ thể, tôi đi vào tìm hiểu trích chọn đặc

trưng trong công nghệ NLP; tìm hiểu các đặc trưng ngôn ngữ tiếng Việt. Tiếp

đến, tôi tìm hiểu các đặc trưng ngôn ngữ trong kiểm duyệt bài viết, bình luận

phản động (gồm: blacklist word, các đặc trưng hinh thái). Tiếp theo tôi tìm hiểu

về các phương pháp biểu diễn từ trong trích chọn đặc trưng; phương pháp trích

chọn đặc trưng (n-gram; BERT/PhoBERT). Cuối cùng, tôi tìm hiểu các mô hình,

thuật toán phân loại văn bản phổ biến. Dưới đây là chi tiết các tìm hiểu của tôi:

2.2.1.1. Ứng dụng công nghệ xử lý ngôn ngữ tự nhiên

Ứng dụng công nghệ NLP là một nhánh của Trí tuệ nhân tạo, được xem là

một quy trình phức tạp với các công nghệ, quy trình giúp máy tính hiểu, giải

thích và mô phỏng ngôn ngữ con người bằng cách học hỏi từ cả ngôn ngữ học

máy tính và ngôn ngữ học tính toán. Ngày nay, nhu cầu ứng dụng công nghệ

NLP ngày một tăng cao, phát triển với nhiều ứng dụng thực tiễn trong đời sống

như robot, chat-bot, call-bot, sửa lỗi chính tả, sửa lỗi cú pháp, dịch tự động,

phân loại văn bản, phân tích sắc thái văn bản, suy luận ngôn ngữ tự nhiên, tóm

tắt trích rút văn bản.

Quy trình xử lý ứng dụng ngôn ngữ tự nhiên có thể được khái quát như sau:

Thu thập, gán nhãn dữ liệu; xử lý tiền huấn luyện; sử dụng các kiến trúc, mô

hình, thuật toán học máy/học sâu; ứng dụng vào bài toán/nhu cầu thực tế.

26

Hình 2.1: Quy trình NLP

Trong các phương pháp học máy, thông thường số lượng đặc trưng

(features) càng nhiều thì độ chính xác càng cao. Tuy nhiên, khi số lượng đặc

trưng quá nhiều sẽ khiến cho quá trình huấn luyện, quá trình phân loại mất nhiều

thời gian hơn. Ngoài ra, điều này còn dẫn đến tình trạng chương trình chiếm

nhiều dung lượng bộ nhớ lưu trữ và bộ nhớ tạm thời. Do đó, đối với phương

pháp học máy, rất cần thiết phải lựa chọn từ tập các đặc trưng ra một tập con

nhỏ hơn mà vẫn đảm bảo độ chính xác của quá trình phân loại. Việc lựa chọn

đó, gọi là trích chọn đặc trưng (Feature Selection, hay còn các tên khác như

Variable Selection, Feature Reduction, Attribute Selection hoặc Variable Subset

Selection). Từng phương pháp học máy sẽ có hiệu quả riêng, từng bài toán cụ

thể cũng sẽ có những phương pháp trích chọn đặc trưng mang lại hiệu quả

riêng biệt.

Trích chọn đặc trưng là một phần quan trọng trong quá trình xử lý dữ liệu

tiền huấn luyện, thường được đi kèm với một số kỹ thuật mô hình hóa, biểu diễn

các từ tiếng Việt lên không gian vector. Dữ liệu văn bản có thể đến từ nhiều

nguồn và có nhiều định dạng khác nhau (kí tự thường, kí tự hoa, kí tự đặc

biệt…). Do đó sẽ có nhiều phương pháp xử lý dữ liệu phù hợp với từng bài toán

cụ thể. Tuy nhiên, phương pháp phổ biến nhất là sử dụng kỹ thuật tokenization

sẽ giúp ta thực hiện điều này. Mã hóa đơn giản là việc chúng ta chia đoạn văn

thành các câu văn, các câu văn thành các từ. Trong mã hóa thì từ là đơn vị cơ sở.

Chúng ta cần một bộ tokenizer có kích thước bằng toàn bộ các từ xuất hiện trong

văn bản hoặc bằng toàn bộ các từ có trong từ điển. Một câu văn sẽ được biểu

diễn bằng một sparse vector (vector có nhiều phần tử bằng 0) mà mỗi một phần

tử đại diện cho một từ, giá trị của nó bằng 0 hoặc 1 tương ứng với từ không xuất

27

hiện hoặc có xuất hiện. Các bộ tokernizer sẽ khác nhau cho mỗi một ngôn ngữ

khác nhau.

2.2.1.2. Đặc trưng ngôn ngữ tiếng Việt

2.2.1.2.1. Đặc trưng hinh thái

Tiếng Việt không sử dụng các hình thái (morpheme) để tạo ra các ý nghĩa

của từ và tạo ra các sắc thái ý nghĩa khác nhau, tiếng Việt phụ thuộc vào trật tự

của từ chứ không thay đổi hình thái của từ (như trong tiếng Anh, class → classes

thi ‘es’ là hinh thái số nhiều).

Ví dụ: với năm âm tiết (năm từ đơn): “sao, nó, bảo, không, đến” khi sắp

xếp theo các trật tự khác nhau sẽ cho ra các nghĩa khác nhau: Nó bảo sao không

đến? Nó bảo không đến sao? Nó đến, sao không bảo? Nó đến, không bảo sao?

Nó đến, sao bảo không? Nó đến bảo không sao! Nó đến, bảo sao không?…

Mặt khác, dấu cách (space) trong tiếng Việt không có tác dụng phân tách

các từ như tiếng Anh mà chỉ có tác dụng phân tách các tiếng (âm tiết) mà thôi.

Vì thế việc phân tách từ trong tiếng Việt là một việc không thể thiếu.

2.2.1.2.2. Đặc trưng cấu tạo từ tiếng Việt

Theo thống kê từ Vietnam Lexicography Center (Vietlex) [11], tiếng Việt

sử dụng nhiều và rộng rãi dựa trên 40.181 từ, với 7.729 âm tiết, trong đó 81,55%

các âm tiết đồng thời là từ đơn, 70,72% các từ ghép có 2 âm tiết, 13,59% các từ

ghép có 3, 4 âm tiết, và 1,04% các từ ghép có từ 5 âm tiết trở lên.

Các phương thức cấu tạo từ tiếng Việt:

- Từ đơn: Từ có ý nghĩa từ vựng; từ có ý nghĩa ngữ pháp (từ công cụ); từ

tượng thanh; từ cảm thán.

- Từ phức: Từ ghép; từ ghép đẳng lập (tổng hợp); từ ghép chính phụ; từ

ghép phụ gia (yếu tố ghép trước hay ghép sau để tạo từ hàng loạt); từ láy;

dạng lặp.

- Ngữ cố định: Thành ngữ, tục ngữ; quán ngữ (nói tóm lại, đáng chú ý là,

mặt khác thi…).

- Ngoài ra, trong văn bản còn có các thành phần sau: Tên riêng (tên người,

đia danh, tổ chức); các dạng ngày - tháng - năm; các dạng số - chữ số - kí hiệu;

dấu câu, dấu ngoặc; từ tiếng nước ngoài; chữ viết tắt.

2.2.1.3. Đặc trưng nội dung phản động

2.2.1.3.1. Blacklist word

Trong nhiều nghiên cứu về phát hiện ngôn ngữ bạo hành trực tuyến, lời nói

căm thù…, các tác giả thường sử dụng một danh sách đen (blacklist) các từ/cụm

từ có đánh trọng số về nội dung nghiên cứu. Các blacklist này được sử dụng một

28

cách rộng rãi và gần như trở thành một danh sách quy chuẩn, từ đó chỉ việc áp

dụng các phương pháp học máy vào để nhận dạng nội dung bạo hành trực tuyến.

Tương tự, trong luận văn này, tôi sử dụng một blacklist các từ/cụm từ phản động

có đánh trọng số để xác định nội dung phản động. Tuy nhiên, blacklist word

phản động hiện tại trong luận văn được xác định và đánh trọng số bằng phương

pháp thủ công. Việc làm thủ công như hiện tại mặc dù sẽ thiếu sự chính xác

hoàn toàn và còn phụ thuộc vào ý kiến chủ quan của tác giả. Tuy nhiên, trong

giới hạn luận văn này, tôi chỉ trình bày về phương pháp để phát hiện nội dung

phản động, không đi sâu phân tích phương pháp trích chọn và đánh trọng số cho

các blacklist word phản động. Một số quy định chính trong việc xác định các

blacklist word phản động như sau:

- Blacklist word là một danh sách các từ tiếng Việt (từ đơn hoặc từ ghép)

liên quan đến nội dung phản động được gán trọng số trong khoảng (0, 1]. Ví dụ:

“Tổng Trọng”, “Trọng Lú”, “Thủ tướng Fuck”, “Fuck Niễng”, “Phúc Niễng

Nổ”, “độc đảng”, “ngày quốc hận”, “độc tài cộng sản”…

- Blacklist word có thể chứa tên (đã bi các đối tượng xấu biến tướng) của

những lãnh đạo cấp cao của Đảng, Nhà nước.

- Blacklist word có thể chứa tên của các đối tượng phản động trong và

ngoài nước, các đối tượng CH-CĐCT, “tù nhân lương tâm”, như: Thanh Hiếu

Bùi; Lê Nguyễn Hương Trà; Cấn Thị Thêu; Trịnh Bá Tư; Nguyễn Văn Đài;

Huỳnh Ngọc Chênh, Nguyễn Thúy Hạnh...

2.2.1.3.2. Đặc trưng hinh thái

Đối với các đặc trưng hình thái trong kiểm duyệt bài viết, bình luận có nội

dung phản động, ta xét các đặc trưng cụ thể sau:

- Độ dài của bài viết.

- Số ký tự viết hoa/tổng số ký tự của câu hoặc bài viết.

- Số các ký tự không phải alphabet xuất hiện trong câu hoặc bài viết.

- Số các dấu câu xuất hiện trong câu hoặc bài viết.

- Số từ không có trong từ điển tiếng Việt xuất hiện trong bài viết (từ lóng,

từ viết tắt).

- Độ dài trung bình của các từ.

- Độ dài trung bình của các câu.

2.2.1.4. Các phương pháp biểu diễn từ

Thực tế khi NLP phát sinh nhu cầu không chỉ biểu diễn cho dữ liệu ở cấp

độ từ mà còn ở mức độ câu văn, đoạn văn. Ví dụ, đối với bài toán kiểm duyệt

29

bài viết, bình luận có nội dung phản động được đề cập đến trong nghiên cứu

này, nếu chỉ dựa trên một số từ ngữ hay một số câu văn riêng lẻ, không có trong

ngữ cảnh nhất định, sẽ không thể đưa ra nhận định, đánh giá chính xác nội dung

của toàn bộ bài viết.

Một số phương pháp biểu diễn từ tiêu biểu, gồm:

2.2.1.4.1. Word embedding

Word embedding là một nhóm các kỹ thuật đặc biệt trong NLP, có nhiệm

vụ ánh xạ một từ hoặc một cụm từ trong bộ từ vựng tới một vector số thực. Từ

không gian một chiều cho mỗi từ tới không gian các vector liên tục. Các vector

từ được biểu diễn theo phương pháp word embedding thể hiện được ngữ nghĩa

của các từ, từ đó ta có thể nhận ra được mối quan hệ giữa các từ với nhau (tương

đồng, trái nghich,...).

Các phương pháp thường được sử dụng trong word embedding bao gồm:

Giảm kích thước của ma trận đồng xuất hiện; mạng nơ-ron (Word2vec, Glove

[19],...); sử dụng các mô hình xác suất,…

2.2.1.4.2. Tf-idf

Những từ hiếm khi được tìm thấy trong tập văn bản (corpus) nhưng có mặt

trong một văn bản cụ thể có thể quan trọng hơn. Do đó, cần tăng trọng số của

các nhóm từ ngữ để tách chúng ra khỏi các từ phổ biến. Cách tiếp cận này được

gọi là Tf-idf (Term Frequency - Inverse Document Frequency), thường được sử

dụng như một trọng số trong việc khai phá dữ liệu văn bản. Tf-idf chuyển đổi

dạng biểu diễn văn bản thành dạng không gian vector (VSM), hoặc thành những

vector thưa thớt.

TF (Term Frequency): Là tần suất xuất hiện của một từ trong một đoạn văn

bản. Với những đoạn văn bản có độ dài khác nhau, sẽ có những từ xuất hiện

nhiều ở những đoạn văn bản dài thay vì những đoạn văn bản ngắn. Vì thế, tần

suất này thường được chia cho độ dài của đoạn văn bản như một phương thức

chuẩn hóa (normalization). TF được tính bởi công thức:

(1)

(với t là một từ trong đoạn văn bản; f(t,d) là tần suất xuất hiện của t trong

đoạn văn bản d; T là tổng số từ trong đoạn văn bản).

IDF (Inverse Document Frequency): Tính toán độ quan trọng của một từ.

Khi tính toán TF, mỗi từ đều quan trọng như nhau, nhưng có một số từ trong

tiếng Việt như “và”, “thì”, “là”, “mà”... xuất hiện khá nhiều nhưng lại rất ít quan

trọng. Vì vậy, chúng ta cần một phương thức bù trừ những từ xuất hiện nhiều lần

30

và tăng độ quan trọng của những từ ít xuất hiện những có ý nghĩa đặc biệt cho

một số đoạn văn bản hơn bằng cách tính IDF:

(2)

(trong đó, N là tổng số đoạn văn bản; tập |{ }| là số văn bản

chứa từ t).

Một từ càng phổ biến khi IDF càng nhỏ và Tf-idf càng lớn. Đặc biệt, Tf-idf

được sử dụng rộng rãi trong hệ thống tìm kiếm. Hệ thống sẽ xác định được từ

nào mà người dùng quan tâm nhất, từ đó sẽ trả ra kết quả đáp ứng mong muốn

của người dùng. Ví dụ khi tiến hành tìm kiếm: “làm thế nào để học AI” thì AI có

Tf-idf cao nhất. Hệ thống sẽ xác định và trả ra một loạt các kết quả có AI trước

rồi sau đó mới đối chiếu với văn bản cần tìm kiếm.

2.2.1.4.3. Mô hinh ngôn ngữ n-gram

Mô hình ngôn ngữ là một phân bố xác suất trên các tập văn bản. Nói đơn

giản, mô hình ngôn ngữ có thể cho biết xác suất một câu (hoặc cụm từ) thuộc

một ngôn ngữ là bao nhiêu.

Ví dụ: khi áp dụng mô hình ngôn ngữ cho tiếng Việt:

P[“hôm nay là thứ hai”] = 0,001

P[“hai thứ hôm là nay”] = 0

Mô hình ngôn ngữ được áp dụng trong rất nhiều lĩnh vực của NLP, như:

Kiểm lỗi chính tả, dịch máy hay phân đoạn từ... Chính vì vậy, nghiên cứu mô

hình ngôn ngữ chính là tiền đề để nghiên cứu các lĩnh vực tiếp theo. Mô hình

ngôn ngữ có nhiều hướng tiếp cận, nhưng chủ yếu được xây dựng theo mô hình

n-gram. Nhiệm vụ của mô hình ngôn ngữ là cho biết xác suất của một câu w1w2

...wm là bao nhiêu. Theo công thức Bayes: P(AB) = P(B|A) * P(A),thì:

P(w1w2…wm) = P(w1) * P(w2|w1) * P(w3|w1w2) *…* P(wm|w1w2…wm-1) (3)

Theo công thức này, mô hình ngôn ngữ cần phải có một lượng bộ nhớ vô

cùng lớn để có thể lưu hết xác suất của tất cả các chuỗi độ dài nhỏ hơn m. Rõ

ràng, điều này là không thể khi m là độ dài của các văn bản ngôn ngữ tự nhiên

(m có thể tiến tới vô cùng). Để có thể tính được xác suất của văn bản với lượng

bộ nhớ chấp nhận được, ta sử dụng xấp xỉ Markov bậc n:

P(wm|w1,w2,…, w ) = P(wm|wm-n,wn-m+1, …,wm-1) (4)

Nếu áp dụng xấp xỉ Markov, xác suất xuất hiện của một từ (wm) được coi

như chỉ phụ thuộc vào n từ đứng liền trước nó (wm-nwm-n+1…wm-1) chứ không

31

phải phụ thuộc vào toàn bộ dãy từ đứng trước (w1w2…wm-1). Như vậy, công

thức tính xác suất văn bản được tính lại theo công thức:

P(w1w2…wm) = P(w1) * P(w2|w1) * P(w3|w1w2) *…* P(wm-1|wm-n-1wm-n

…wm-2)* P(wm|wm-nwm-n+1…wm-1) (5)

Với công thức này, ta có thể xây dựng mô hình ngôn ngữ dựa trên việc

thống kê các cụm có ít hơn n+1 từ. Mô hình ngôn ngữ này gọi là mô hình ngôn

ngữ n-gram.

2.2.1.5. Phương pháp trích chọn đặc trưng

2.2.1.5.1. Mô hình n-gram

N-gram là tần suất xuất hiện của n kí tự (hoặc từ) liên tiếp nhau có trong dữ

liệu của nghiên cứu. N-gram được sử dụng dưới 2 dạng là word n-gram (n-gram

cấp độ từ) và character n-gram (n-gram cấp độ ký tự) với các kiểu phổ biến là:

- Unigram với n = 1 và tính trên kí tự, ta có thông tin về tần suất xuất hiện

nhiều nhất của các chữ cái. Ví dụ ‘b’, ‘t’, ‘m’.

- Bigram với n = 2. Ví dụ với các chữ cái tiếng Việt, bigram ta có ‘th’, ‘iê’,

‘ch’, ‘au’, ‘mi’.

Bigram được sử dụng nhiều trong việc phân tích hình thái (từ, cụm từ, từ

loại) cho các ngôn ngữ khó phân tích như tiếng Việt [20], tiếng Nhật [21,22],

tiếng Trung [23,24],… Dựa vào tần suất xuất hiện cạnh nhau của các từ, người

ta sẽ tính cách chia một câu thành các từ sao cho tổng bigram là cao nhất có thể.

Với thuật giải phân tích hình thái dựa vào trọng số nhỏ nhất, người ta sử dụng

n = 1 để xác định tần suất xuất hiện của các từ và tính trọng số.

- Trigram với n = 3. Ví dụ ‘đản’, ‘cộn’, ‘sản’.

Để xây dựng một mô hình n-gram, ban đầu người ta dựa trên một tập dữ

liệu huấn luyện (training set). Sau khi mô hình được xây dựng sẽ tiến hành kiểm

tra mô hình dựa trên một tập dữ liệu test. Việc kiểm tra tốt nhất là sử dụng một

tập dữ liệu không có trong tập huấn luyện. Dựa vào việc kiểm tra này mà ta có

thể biết được mô hình có tốt hay không.

Theo kết quả nghiên cứu được công bố của nhóm Underthesea [12] đối với

bài toán phân loại văn bản tiếng Việt cho thấy, kết quả sử dụng mô hình Tf-idf

với unigram, bigram cho kết quả tốt hơn mô hình CountVectorizer với unigram,

bigram và trigram.

32

Hình 2.2. Kết quả thử nghiệm các mô hình phân loại văn bản tiếng Việt của

nhóm Underthesea

Vì n càng lớn thì số trường hợp càng lớn nên thường người ta chỉ sử dụng

n-gram với n = 1, 2 hoặc đôi lúc là 3. Đặc biệt, với đặc điểm về sắp xếp tiếng

Việt và thành phần ký tự, âm tiết (a à ả ã á ạ ă ằ ẳ ẵ ắ ặ â ầ â ẫ ấ ậ b c d đ e è ẻ

ẽ é ẹ ê ề ể ễ ế ệ g h i ì ỉ ĩ í i j k l m n o ò ỏ õ ó ọ ô ồ ổ ỗ ố ộ ơ ờ ở ỡ ớ ợ p q r s t u

ù ủ ũ ú ụ ư ừ ử ữ ứ ự v x y ỳ ỷ ỹ ý ỵ), n-gram ở cấp độ ký tự đối với tiếng Việt là

lớn hơn nhiều so với xử lý ngôn ngữ tiếng Anh (90 ký tự so với 26 ký tự). Ví dụ,

khi sử dụng bigram, việc vector hóa sẽ tiến hành với vector gồm 902 = 8.100

chiều; số chiều sẽ tăng lên tới 903 = 729.000 chiều đối với trigram.

Trong nghiên cứu này, n-gram được sử dụng là n-gram cấp độ ký tự với hai

kiểu là bigram và trigram.

Nhược điểm của mô hình ngôn ngữ n-gram:

- Phân bố không đều: Khi sử dụng mô hình n-gram theo công thức “xác

suất thô”, sự phân bố không đều trong tập văn bản huấn luyện có thể dẫn đến

các ước lượng không chính xác. Khi các n-gram phân bố thưa, nhiều cụm n-

gram không xuất hiện hoặc chỉ có số lần xuất hiện nhỏ, việc ước lượng các câu

có chứa các cụm n-gram này sẽ có kết quả tồi. Với V là kích thước bộ từ vựng,

ta sẽ có V*n cụm n-gram có thể sinh từ bộ từ vựng. Tuy nhiên, thực tế thì số

cụm n-gram có nghĩa và thường gặp chỉ chiếm rất ít.

Ví dụ: Tiếng Việt có khoảng hơn 5.000 âm tiết khác nhau, ta có tổng số

cụm 3-gram có thể có là: 5.0003 = 125.000.000.000. Tuy nhiên, số cụm trigram

thống kê được chỉ xấp xỉ 1.500.000. Như vậy sẽ có rất nhiều cụm trigram không

xuất hiện hoặc chỉ xuất hiện rất ít.

Khi tính toán xác suất của một câu, có rất nhiều trường hợp sẽ gặp cụm

n-gram chưa xuất hiện trong dữ liệu huấn luyện bao giờ. Điều này làm xác suất

của cả câu bằng 0, trong khi câu đó có thể là một câu hoàn toàn đúng về mặt ngữ

33

pháp và ngữ nghĩa. Để khắc phục tình trạng này, người ta phải sử dụng một số

phương pháp “làm mịn”.

- Kích thước bộ nhớ của mô hình ngôn ngữ: Khi kích thước tập văn bản

huấn luyện lớn, số lượng các cụm n-gram và kích thước của mô hình ngôn ngữ

cũng rất lớn. Nó không những gây khó khăn trong việc lưu trữ mà còn làm tốc

độ xử lý của mô hình ngôn ngữ giảm xuống do bộ nhớ của máy tính là hạn chế.

Để xây dựng mô hình ngôn ngữ hiệu quả, chúng ta phải giảm kích thước của mô

hình ngôn ngữ mà vẫn đảm bảo độ chính xác.

Một số phương pháp làm mịn dữ liệu khắc phục điểm yếu của mô hình

ngôn ngữ n-gram:

Để khắc phục tình trạng các cụm n-gram phân bố thưa như đã đề cập,

người ta đã đưa ra các phương pháp “làm mịn” kết quả thống kê nhằm đánh giá

chính xác hơn (min hơn) xác suất của các cụm n-gram. Các phương pháp “làm

mịn” đánh giá lại xác suất của các cụm n-gram bằng cách:

- Gán cho các cụm n-gram có xác suất 0 (không xuất hiện) một giá trị

khác 0.

- Thay đổi lại giá trị xác suất của các cụm n-gram có xác suất khác 0 (có

xuất hiện khi thống kê) thành một giá trị phù hợp (tổng xác suất không đổi).

Các phương pháp làm mịn có thể được chia ra thành loại như sau:

- Chiết khấu (Discounting): Giảm (lượng nhỏ) xác suất của các cụm n-gram

có xác suất lớn hơn 0 để bù cho các cụm n-gram không xuất hiện trong tập

huấn luyện.

- Truy hồi (Back-off): Tính toán xác suất các cụm n-gram không xuất hiện

trong tập huấn luyện dựa vào các cụm n-gram ngắn hơn có xác suất lớn hơn 0.

- Nội suy (Interpolation): Tính toán xác suất của tất cả các cụm n-gram dựa

vào xác suất của các cụm n-gram ngắn hơn.

2.2.1.5.2. Biểu diễn BERT/PhoBERT

Mô hình mã hóa hai chiều dữ liệu từ các khối Transformer (Bidirectional

Encoder Representations from Transformers - BERT) [25], là một phương pháp

kỹ thuật được xây dựng dựa trên mô hình mạng mô phỏng theo hệ thống nơ-ron

thần kinh của con người, dùng để đào tạo trước (pre-train) quá trình NLP. Nói

một cách đơn giản, thì nó có thể được sử dụng để giúp Google phân biệt rõ hơn

ngữ cảnh của các từ xuất hiện trong truy vấn tìm kiếm.

Ví dụ, trong các cụm từ “nine to five” (từ 9 giờ sáng đến 5 giờ chiều) và “a

quarter to five” (5 giờ kém 15 phút) thì từ “to” có hai ý nghĩa khác nhau, sự

34

khác biệt này có thể rõ ràng đối với con người chúng ta nhưng không phải đối

với các máy tìm kiếm. BERT được thiết kế để phân biệt những sắc thái ngữ

nghĩa như thế, từ đó giúp đưa ra những kết quả phù hợp và có liên quan hơn.

Điểm đột phá của BERT nằm ở khả năng huấn luyện các mô hình ngôn ngữ

dựa trên toàn bộ tổ hợp các từ trong một câu hoặc truy vấn (huấn luyện hai

chiều), thay vì cách thức huấn luyện truyền thống dựa trên thứ tự xuất hiện của

các từ (từ trái qua phải hoặc kết hợp giữa trái qua phải và phải qua trái). BERT

cho phép mô hình ngôn ngữ học về ngữ cảnh của từ vựng dựa trên các từ xung

quanh nó, thay vì chỉ dựa vào từ ngữ đứng trước hoặc ngay sau nó.

Google gọi BERT là công nghệ “có tính hai chiều rất sâu” [26] bởi vì sự

diễn giải ngữ cảnh của các từ bắt đầu từ “tầng đáy thấp nhất trong một mạng

lưới nơ-ron gồm rất nhiều tầng”.

Kiến trúc mô hình BERT là một bộ mã hóa Transformer hai chiều

(Bidirectional Transformer Encoder). Việc sử dụng Transformer không có gì

đáng ngạc nhiên vì đây là một xu hướng gần đây do tính hiệu quả và hiệu suất

vượt trội của huấn luyện Transformers trong việc phát hiện các phụ thuộc với

khoảng cách xa (long-distance dependencies) so với kiến trúc Mạng nơ-ron hồi

quy (RNN-Recurrent Neural Network). Trong khi đó, bộ mã hóa hai chiều

(Bidirectional Encoder) là một tính năng nổi bật giúp phân biệt BERT với

OpenAI GPT [27] (sử dụng từ trái sang phải Transformer) và ELMo [13] (kết

hợp giữa huấn luyện từ trái sang phải và một mạng riêng rẽ phải sang

trái LSTM).

Hình 2.3. Kiến trúc mô hình BERT

Sử dụng bộ mã hóa Transformer được tiền huấn luyện, BERT có thể biểu

diễn bất kỳ token nào dựa trên ngữ cảnh hai chiều của nó. Trong quá trình học

35

có giám sát trên các tác vụ xuôi dòng, BERT tương tự như GPT ở hai khía cạnh.

Đầu tiên, các biểu diễn BERT sẽ được truyền vào một tầng đầu ra được bổ sung,

với những thay đổi tối thiểu tới kiến trúc mô hình tùy thuộc vào bản chất của tác

vụ, chẳng hạn như dự đoán cho mỗi token hay dự đoán cho toàn bộ chuỗi. Thứ

hai, tất cả các tham số của bộ mã hóa Transformer đã tiền huấn luyện đều được

tinh chỉnh, trong khi tầng đầu ra bổ sung sẽ được huấn luyện từ đầu.

Hiện tại, có nhiều phiên bản khác nhau của mô hình BERT. Các phiên bản

đều dựa trên việc thay đổi kiến trúc của Transformer tập trung ở 3 tham số: Số

lượng các block sub-layers trong Transformer; kích thước của embedding vector

(hay còn gọi là hidden size); số lượng head trong multi-head layer, mỗi một

head sẽ thực hiện một self-attention. Tên gọi của 2 kiến trúc bao gồm:

- BERT base: Tổng tham số 110 triệu.

- BERT Large: Tổng tham số 340 triệu.

Như vậy, ở kiến trúc BERT Large chúng ta tăng gấp đôi số layer, tăng kích

thước hidden size của embedding vector gấp 1,33 lần và tăng số lượng head

trong multi-head layer gấp 1,33 lần.

Mô hình BERT multilingual:

BERT multilingual là một mô hình của google BERT đa ngôn ngữ. Mô

hình được đào tạo trước trên 104 ngôn ngữ hàng đầu có Wikipedia lớn nhất bằng

cách sử dụng mục tiêu tạo mô hình ngôn ngữ bị che (MLM-masked language

modeling). Mô hình này phân biệt chữ hoa và chữ thường.

Các kỹ thuật quen thuộc phổ biến như Word2vec, Fasttext hay Glove cũng

tìm ra đại diện của từ thông qua ngữ cảnh chung của chúng. Tuy nhiên, những

ngữ cảnh của các kỹ thuật này là đa dạng trong dữ liệu tự nhiên. Ví dụ các từ

như “con chuột” có ngữ nghĩa khác nhau ở các ngữ cảnh khác nhau như “Con

chuột máy tính này thật đep!” và “con chuột này to thật”. Trong khi các mô hình

như Word2vec, FastText tìm ra 01 vector đại diện cho mỗi từ dựa trên 01 tập

ngữ liệu lớn nên không thể hiện được sự đa dạng của ngữ cảnh. Việc biểu diễn

mỗi từ dựa trên các từ khác trong câu thành một đại diện sẽ mang lại kết quả ý

nghĩa rất nhiều. Như trong ví dụ trên, ý nghĩa của từ “con chuột” sẽ được biểu

diễn cụ thể dựa vào các từ phía trước hoặc sau nó trong câu. Nếu đại diện của từ

“con chuột” được xây dựng dựa trên những ngữ cảnh cụ thể này thì sẽ có được

biểu diễn tốt hơn.

Mô hình BERT đã tạo các biểu diễn theo ngữ cảnh dựa trên các từ trước và

sau đó để dẫn đến một mô hình ngôn ngữ với ngữ nghĩa phong phú hơn. Điều

này cho thấy, mô hình BERT mở rộng khả năng của các phương pháp trước đây.

36

PhoBERT là mô hình huấn luyện trước dành riêng cho tiếng Việt.

PhoBERT huấn luyện dựa trên kiến trúc và cách tiếp cận giống RoBERTa [28]

của Facebook, được Facebook giới thiệu giữa năm 2019. Tương tự như BERT,

PhoBERT cũng có hai phiên bản là PhoBERT base với 12 transformers block và

PhoBERT Large với 24 transformers block.

Hiện nay BERT đã được ứng dụng rất rộng rãi trong các bài toán NLP như

tóm tắt văn bản [29], phân tích sắc thái [30,31], phân biệt đối thoại [32],….

Ngoài PhoBERT đã được huấn luyện cho tiếng Việt, BERT cũng đã được fine-

tuning trên nhiều ngôn ngữ khác nhau như tiếng Đức [33], Ả rập [34], Pháp

[35], Tây Ban Nha [36]….

2.2.1.6. Một số phương pháp trích chọn đặc trưng khác

Bên cạnh những đặc trưng đã nêu ở trên, còn nhiều các đặc trưng khác và

phương pháp biểu diễn từ khác bổ trợ cho việc xác định nội dung bài viết, bình

luận mang tính chất phản động hay không. Tuy nhiên do sự phức tạp trong tính

toán cũng như khó khăn trong việc phân tích, đánh giá, kết hợp vào mô hình, tôi

không sử dụng những đặc trưng này như một phần trong xây dựng vector đặc

trưng của bài viết, bình luận. Một số đặc trưng có thể kể đến như:

2.2.1.6.1. Một số đặc trưng khác

(1) Đặc trưng về ngữ cảnh:

Việc sử dụng đặc trưng về ngữ cảnh đã được áp dụng để giải quyết nhiều

bài toán liên quan đến ngôn ngữ tự nhiên [37-38]. Một văn bản là phản động hay

bình thường có thể phụ thuộc nhiều vào yếu tố thế giới xung quanh văn bản. Do

đó việc phát hiện nội dung phản động có thể dựa vào việc phân tích các thông

tin không liên quan trực tiếp đếnngôn ngữ.

Khi có các thông tin về ngữ cảnh, có thể phán đoán, suy luận về tính chất

của văn bản.Các yếu tố ngữ cảnh được xét đến có thể bao gồm:

- Văn bản thuộc lĩnh vực gì? Có sự kiện gì xoay quanh?

- Thời điểm xuất bản.

- Ngôn ngữ (ở đây là tiếng việt).

- Vị trí địa lý (thông thường những đối tượng viết nội dung phản động đều

có đia chỉ đăng ký tại Mỹ, Pháp, Đức và nhiều nước châu Âu khác). Số còn lại

vẫn có thể ở trong nước nhưng thường tạo nick ảo, không có thông tin thật.

(2) Đặc trưng về sắp xếp tiếng Việt:

37

Các mục từ (đơn vi từ vựng) trong từ điển tiếng Việt được xếp theo thứ tự

các chữ cái: a ă â b c d đ e ê g h i j k l m n o ô ơ p q r s t u ư v x y,và theo các

dấu giọng: không dấu, huyền, hỏi, ngã, sắc, nặng. Có thể cụ thể hoá hai quy tắc

trên bằng trật tự như sau: a à ả ã á ạ ă ằ ẳ ẵ ắ ặ â ầ â ẫ ấ ậ b c d đ e è ẻ ẽ é ẹ ê ề

ể ễ ế ệ g h i ì ỉ ĩ í i j k l m n o ò ỏ õ ó ọ ô ồ ổ ỗ ố ộ ơ ờ ở ỡ ớ ợ p q r s t u ù ủ ũ ú ụ

ư ừ ử ữ ứ ự v x y ỳ ỷỹ ý ỵ.

Đơn vị căn cứ để sắp xếp là từng khối viết liền (tổ hợp các con chữ), đơn

tiết hoặc đa tiết, tính từ trái sang phải, khối chữ viết thường xếp trước khối chữ

viết hoa, khối chữ nào có ít con chữ hơn (thường là âm tiết) luôn xếp trước khối

chữ (có phần trùng với khối chữ có ít con chữ) có nhiều chữ hơn. Ví dụ a (đơn vi

đo diện tích) xếp trước A (kí hiệu viết tắt của Ampere); cha xếp trước

chan. Ngoài ra, tiếng Việt ưu tiên trật tự chữ cái trước, sau mới đến thanh điệu

trong khi sắp xếp.

2.2.1.6.2. Một số phương pháp biểu diễn từ khác

(1) One-hot vector:

Trong các ứng dụng về NLP, học máy,... các thuật toán không thể nhận

được đầu vào là chữ với dạng biểu diễn thông thường. Để máy tính có thể hiểu

được, ta cần chuyển các từ trong ngôn ngữ tự nhiên về dạng mà các thuật toán

có thể hiểu được (dạng số). Một kỹ thuật đơn giản nhất được sử dụng là One-hot

vector (1-of-N) [14]. Để chuyển đổi ngôn ngữ tự nhiên về dạng 1-of-N, cần tiến

hành xây dựng một bộ từ vựng. Mỗi vector đại diện cho một từ có số chiều bằng

số từ trong bộ từ vựng. Trong đó, mỗi vector chỉ có một phần tử duy nhất khác 0

(bằng 1) tại vị trí tương ứng với vị trí từ đó trong bộ từ vựng. Tuy nhiên, phương

pháp này lại để lộ ra những điểm hạn chế vô cùng lớn: Thứ nhất, độ dài của

vector là quá lớn (Ví dụ: Corpus Size(74M), Vocabulary size(10K) - theo

Vietwiki); Thứ hai, phương pháp này không xác định được sự tương quan ý

nghĩa giữa các từ do tích vô hướng của 2 từ bất kì đều bằng 0 dẫn đến độ tương

đồng cosin giữa 2 từ bất kì luôn bằng 0.

(2) Word2vec:

Năm 2013, Tomas Mikolov- một kỹ sư đang làm tại Google, đã giới thiệu

một mô hình mới có thể giải quyết tốt các vấn đề trên, mô hình được sử dụng tốt

cho đến ngày nay và được gọi là mô hình Word2vec [40]. Thay vì đếm và xây

dựng ma trận đồng xuất hiện, Word2vec học trực tiếp word vector có số chiều

thấp trong quá trình dự đoán các từ xung quanh mỗi từ. Đặc điểm của phương

pháp này là nhanh hơn và có thể dễ dàng kết hợp một câu văn bản mới hoặc

thêm vào từ vựng.

38

Word2vec là một mạng nơ-ron 2 lớp với duy nhất 1 tầng ẩn, lấy đầu vào là

một corpus lớn và sinh ra không gian vector (với số chiều khoảng vài trăm), với

mỗi từ duy nhất trong corpus được gắn với một vector tương ứng trong không

gian. Các word vector được xác định trong không gian vector sao cho những từ

có chung ngữ cảnh trong corpus được đặt gần nhau trong không gian. Dự đoán

chính xác cao về ý nghĩa của một từ dựa trên những lần xuất hiện trước đây.

Có 2 phương pháp chính được sử dụng trong quá trình xây dựng Word2vec:

- Sử dụng ngữ cảnh để dự đoán mục tiêu (Continuous Bag of Word -

CBOW).

- Sử dụng một từ để dự đoán ngữ cảnh mục tiêu (skip-gram) (cho kết quả

tốt hơn với dữ liệu lớn).

Mô hình chung của Word2vec (cả CBOW và Skip-gram) đều dựa trên 1

mạng nơ-ron khá đơn giản. Gọi V là tập tất cả các từ hay vocabulary với n từ

khác nhau. Layer input biểu diễn dưới dạng one-hot encoding với n node đại

diện cho n từ trong vocabulary. Activation function (hàm kích hoạt) chỉ có tại

layer cuối là softmax function, loss function là cross entropy loss, tương tự như

cách biểu diễn mô hình của các bài toán phân lớp thông thường vậy. Ở giữa 2

layer input và output là 1 layer trung gian với size = k, chính là vector sẽ được

sử dụng để biểu diễn các từ sau khi huấn luyện mô hình. Ta sẽ sử dụng từ ở giữa

(target word hoặc center word) cùng với các từ xung quanh nó (context words)

để mô hình thông qua đó sẽ tiến hành huấn luyện, cùng với đó, quy định 1 tham

số c hay window là việc sử dụng bao nhiêu từ xung quanh, gồm 2 bên trái, phải

của target word.

Hình 2.4. Mô hình chung của Word2Vec

39

Ý tưởng chính của CBOW là dựa vào các context word (hay các từ xung

quanh) để dự đoán center word (từ ở giữa). CBOW có điểm thuận lợi là training

mô hình nhanh hơn so với mô hình skip-gram, thường cho kết quả tốt hơn với

frequence words (các từ thường xuất hiện trong văn cảnh).

Skip-gram thì ngược lại với CBOW, dùng target word để dự đoán các từ

xung quanh. Skip-gram huấn luyện chậm hơn. Thường làm việc khá tốt với các

tập data nhỏ, đặc biệt do đặc trưng của mô hình nên khả năng vector hóa cho các

từ ít xuất hiện tốt hơn CBOW.

(3) Wordnet:

Wordnet [41] là một cơ sở dữ liệu về từ, trong đó các từ được nhóm lại

thành các loạt từ đồng nghĩa, các loạt từ đồng nghĩa này được gắn kết với nhau

nhờ các quan hệ ngữ nghĩa. Tuy nhiên, wordnet có một số hạn chế như:

- Thiếu sắc thái, ví dụ như các từ đồng nghĩa: Cố, cố gắng, gắng, nỗ lực

được xem là có mức độ như nhau.

- Thiếu từ mới hoặc ý nghĩa mới (không thể cập nhật): Sống thử, lầy, thả

thính, trẻ trâu, gấu…

- Chủ quan, phụ thuộc vào người tạo.

- Yêu cầu nhiều công sức tạo ra và cập nhật để thích ứng.

- Khó đo chính xác khoảng cách về nghĩa giữa các từ.

- Các hạn chế khác về chất lượng và cấu trúc lưu trữ.

(4) Fasttext:

Một nhược điểm lớn của Word2vec là nó chỉ sử dụng được những từ có

trong dataset, để khắc phục được điều này, chúng ta có Fasttext [42] là mở rộng

của Word2vec, được xây dựng bởi Facebook năm 2016. Thay vì training cho

đơn vị word, Fasttext chia văn bản ra làm nhiều đoạn nhỏ được gọi là n-gram

với cấp độ ký tự, ví dụ apple sẽ thành app, ppl và ple, vector của từ apple sẽ

bằng tổng của tất cả cái các thành phần này. Do vậy, nó xử lý rất tốt cho những

trường hợp từ hiếm gặp.

2.2.2. Mô hình, thuật toán phân loại phổ biến

Trong phần trước, luận văn đã đưa ra các phương pháp trích chọn đặc trưng

của ngôn từ phản động; cách thức vector hóa các đặc trưng của văn bản. Mỗi bài

viết, bình luận sau khi được trích chọn đặc trưng, đều sẽ được biểu diễn bằng

một vector đặc trưng như đã được trình bày. Nội dung của Mục này sẽ trình bày

một số mô hình, thuật toán phân lớp phổ biến được sử dụng để phát hiện nội

dung phản động.

40

Trong NLP, các kiến trúc, mô hình huấn luyện được áp dụng chủ yếu là

thuật toán học máy (Machine Learning) và thuật toán học sâu (Deep Learning).

Các thuật toán học máy được chia làm 3 loại chính: Học có giám sát (Supervised

Learning), học không giám sát (Unsupervised Learning), học tăng cường

(Reinforcement Learning). Học có giám sát thường được dùng trong các trường

hợp một thuộc tính/nhãn có sẵn cho một tập dữ liệu nhất định (tập huấn luyện),

nhưng không được đầy đủ và được dự đoán cho nhiều trường hợp khác. Học

không giám sát thường được sử dụng trong các trường hợp cần khám phá các

mối quan hệ tiềm ẩn nằm trong dữ liệu không có nhãn. Học tăng cường là

phương pháp nằm giữa hai loại thuật toán trên.

Zaghloul và cộng sự [54] đã so sánh độ hiệu suất trong việc phân lớp nhị

phân khi sử dụng SVM và mạng nơ-ron nhân tạo. Nghiên cứu chỉ ra rằng, SVM

là bộ phân loại tốt nhất, và mạng nơ-ron nhân tạo có thể sử dụng làm bộ phân

loại văn bản nếu hiệu suất của chúng tương đương với SVM. Các tác giả đã phát

hiện ra rằng, mạng nơ-ron nhân tạo là công cụ phân lớp văn bản rất khả thi với

hiệu suất tương đương với SVM, hơn thế, nó còn làm giảm kích thước dữ liệu đi

nhiều lần. Việc sử dụng các mạng nơ-ron để phân lớp văn bản sẽ là một lợi thế

lớn như một công cụ phân loại so với các công cụ khác vì nó có thể mang lại sự

tiết kiệm đáng kể về thời gian và chi phí tính toán.

Trong phạm vi bài toán xây dựng giải pháp kiểm duyệt bài viết, bình luận

tiếng Việt có nội dung phản động, tôi thử nghiệm một thuật toán học có giám sát

là thuật toán máy vector hỗ trợ SVM và một mô hình mạng nơ-ron đa tầng

truyền thẳng MLP.

2.2.2.1. Thuật toán SVM

Thuật toán SVM được Vapnik giới thiệu vào năm 1995. SVM được dùng

cho bài toán phân lớp nhị phân, tức là số lớp hạn chế là hai lớp. Giả sử đầu bài

cho tập hợp các điểm thuộc 2 loại trong môi trường N chiều, SVM là phương

pháp để tìm ra N-1 mặt phẳng để ngăn các điểm thành 2 nhóm. Một ví dụ cụ thể

đó là cho một tập hợp các điểm thuộc 2 loại như hình mô tả phía dưới, SVM có

nhiệm vụ tìm ra một đường thẳng để phân tách những điểm đó thành 2 loại sao

cho độ dài khoảng cách giữa đường thẳng và những điểm là xa nhất có thể.

SVM rất hiệu quả để giải quyết các bài toán với dữ liệu có số chiều lớn như các

vector biểu diễn văn bản. Hiện nay, SVM được đánh giá là bộ phân lớp chính

xác nhất cho bài toán phân lớp văn bản, bởi đặc tính phân lớp với tốc độ rất

nhanh và hiệu quả đối với bài toán phân lớp văn bản. Đối với bài toán phân lớp

văn bản sử dụng phương pháp SVM thì việc lựa chọn thuộc tính cho từng phân

41

lớp lại là vấn đề cực kỳ quan trọng, nó quyết định đến hiệu quả của phân lớp.

Phương pháp này thực hiện phân lớp dựa trên nguyên lý Cực tiểu hóa rủi ro

có cấu trúc SRM (Structural Risk Minimization) [43], được xem là một trong các

phương pháp phân lớp giám sát không tham số tinh vi. Các hàm công cụ của

SVM cho phép tạo không gian chuyển đổi để xây dựng mặt phẳng phân lớp để

phân chia các lớp ra thành các phần riêng biệt.

Hình 2.5. Support Vectors trong SVM

Các đường phân chia lớp được gọi là siêu phẳng (hyper-plane). Support

Vectors là các đối tượng trên đồ thị tọa độ quan sát, SVM là một biên giới để

chia hai lớp tốt nhất.

Hình 2.6. Margin trong SVM

Margin là khoảng cách giữa siêu phẳng đến 2 điểm dữ liệu gần nhất tương

ứng với các phân lớp. Trong ví dụ ở hình trên, margin chính là khoảng cách giữa

siêu phẳng và hai hình vuông, tròn gần nó nhất. Điều quan trọng ở đây đó là

phương pháp SVM luôn cố gắng cực đại hóa margin này, từ đó thu được một

42

siêu phẳng tạo khoảng cách xa nhất so với các hình vuông và tròn.

Ưu điểm của SVM:

Là một kĩ thuật phân lớp khá phổ biến, SVM thể hiện được nhiều ưu điểm

trong số đó có việc tính toán hiệu quả trên các tập dữ liệu lớn. Có thể kể thêm

một số ưu điểm của phương pháp này như:

- Xử lý trên không gian số chiều cao: SVM là một công cụ tính toán hiệu

quả trong không gian có số chiều cao, trong đó đặc biệt áp dụng cho các bài toán

phân loại văn bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn.

- Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử dụng

trong quá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới

nên chỉ có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra

quyết định.

- Tính linh hoạt - phân lớp thường là phi tuyến tính. Khả năng áp dụng

Kernel mới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến

tính từ đó khiến cho hiệu suất phân loại lớn hơn.

Nhược điểm của SVM:

- Bài toán số chiều cao: Trong trường hợp số lượng thuộc tính (p) của tập

dữ liệu lớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả

khá tồi.

- Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc cố

gắng tách các đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM. Điều

này chưa giải thích được xác suất xuất hiện của một thành viên trong một nhóm

là như thế nào. Tuy nhiên, hiệu quả của việc phân lớp có thể được xác định dựa

vào khái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp đã nêu trên.

2.2.2.2. Mô hình MLP

MLP là mạng nơ-ron đơn giản được tạo ra từ các liên kết giữa các

perceptron (nơ-ron đơn lẻ) và là nền tảng để hiểu các mạng khác phức tạp hơn

trong học sâu. Một mạng MLP tổng quát là mạng có n (n≥2) tầng (thông thường

tầng đầu vào không được tính đến): Trong đó, gồm một tầng đầu ra (tầng thứ n)

và (n-1) tầng ẩn.

43

Hình 2.7: Cấu tạo mạng MLP cơ bản

Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau:

Đầu vào là các vector (x1, x2, …, xp) trong không gian p chiều, đầu ra là

các vector (y1, y2, …, yq) trong không gian q chiều. Đối với các bài toán phân

loại, p chính là kích thước của mẫu đầu vào, q chính là số lớp cần phân loại.

Mỗi nơ-ron thuộc tầng sau liên kết với tất cả các nơ-ron thuộc tầng liền

trước nó. Đầu ra của nơ-ron tầng trước là đầu vào của nơ-ron thuộc tầng liền

sau nó.

Hoạt động của mạng MLP như sau:

Hình 2.8: Sử dụng mô hình MLP cho bài toán phân loại văn bản

44

Tại tầng đầu vào các nơ-ron nhận tín hiệu vào xử lý (tính tổng trọng số, gửi

tới hàm truyền) rồi cho ra kết quả (là kết quả của hàm truyền); kết quả này sẽ

được truyền tới các nơ-ron thuộc tầng ẩn thứ nhất; các nơ-ron tại đây tiếp nhận

như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ 2. Quá trình tiếp tục

cho đến khi các nơ-ron thuộc tầng ra cho kết quả. Mạng MLP có thể được huấn

luyện bởi cả ba phương pháp học phổ biến là học có giám sát, học không giám

sát và học tăng cường.

Ứng dụng MLP cho bài toán phân loại văn bản: Để có thể sử dụng MLP

cho bài toán phân loại văn bản, cần nhúng từ (word embedding) để chuyển đổi

dữ liệu văn bản sang mô hình vector. Sau khi qua các lớp ẩn, đầu ra của mạng

MLP là số lượng lớp văn bản cần phần loại. Chúng ta có thể dễ dàng thiết kế

mạng MLP với số lượng lớp ẩn, số lượng nút tùy biến phù hợp với yêu cầu bài

toán. Các hàm kích hoạt thường được sử dụng bao gồm hàm ReLU, hàm

sigmoid và hàm tanh.

2.3. Sử dụng Hệ số tương quan Matthews

Độ chính xác của mô hình thử nghiệm trong luận văn được đánh giá dựa

trên Hệ số tương quan Matthews (MCC) [51].

MCC là một phương pháp riêng của giới Machine Learning, dùng để đánh

giá phẩm chất của mô hình phân loại nhị phân. Mục tiêu của MCC là khắc phục

vấn đề dữ liệu bị mất cân bằng. MCC có bản chất là một hệ số tương quan giữa

giá trị thực tế và kết quả dự báo của mô hình, nó được xác định như sau:

(6)

Trong đó: TP - True Positive (dự đoán đúng là Positive), TN - True

Negative (dự đoán đúng là Negative), FP - False Positive (dự đoán sai là

Positive), FN - False Negative (dự đoán sai là Negative).

Giá trị của MCC dao động trong khoảng từ -1 đến +1, MCC = +1 biểu thị

cho “kết quả phân loại hoàn hảo”, MCC = 0 cho thấy mô hình vô dụng (không

hơn gi sự phán đoán ngẫu nhiên), còn MCC = -1 cho thấy mô hình không những

vô dụng hoàn toàn mà còn tuyệt đối sai, vì kết quả phân loại hoàn toàn trái

nghịch với quan sát thực tế.

Như giải thích của Davide Chicco và Giuseppe Jurman [51] trong bài báo

“Ưu điểm của hệ số tương quan Matthews (MCC) so với điểm F1 và độ chính

xác trong hệ nhị phân đánh giá phân loại” (2020), hệ số tương quan MCC có

nhiều thông tin trong việc đánh giá các vấn đề phân loại nhị phân, vì nó tính đến

tỷ lệ cân bằng của bốn loại ma trận nhầm lẫn (TP, TN, FP, FN), trong khi nhiều

độ đo khác bỏ qua số lượng phủ định thực (TN).

45

Ví dụ: Ma trận nhầm lẫn với các mục: TP = 90, FP = 4; TN = 1, FN = 5.

Điểm F1 = 0,9524, khiến chúng ta hiểu nhầm rằng, bộ phân loại là cực kỳ tốt.

Ngược lại, bằng cách cắm những con số đó vào công thức của MCC, chúng ta

nhận được MCC = 0,14. MCC nằm trong khoảng từ -1 đến 1 (dù sao nó cũng là

hệ số tương quan) và 0,14 có nghĩa là bộ phân loại rất gần với bộ phân loại đoán

ngẫu nhiên. Từ ví dụ này, chúng ta có thể nói rằng, MCC giúp người ta xác định

sự kém hiệu quả của bộ phân loại trong việc phân loại, đặc biệt là các mẫu lớp

phủ định.

Hãy xem xét một ví dụ khác bằng cách đảo ngược nhãn âm và dương: Ma

trận nhầm lẫn với các mục: TP = 1, FP = 5; TN = 90, FN = 4. Điểm F1 là 0,18

và MCC là 0,103. Cả hai chỉ số đều gửi tín hiệu cho rằng, trình phân loại hoạt

động không tốt.

Kết luận: Để đánh giá phân loại nhị phân, các nhà nghiên cứu có thể sử

dụng một tỉ lệ thống kê phù hợp với mục tiêu bài toán mà họ đặt ra. Mặc dù đây

là một vấn đề quan trọng trong học máy, tuy nhiên hiện nay vẫn chưa đạt được

sự đồng thuận rộng rãi về lựa chọn chỉ số nào là tốt nhất. Độ chính xác

(Acccuracy) và F1 score tính toán trên ma trận nhầm lẫn (confusion matrix) đã

(và vẫn là) những chỉ số được sử dụng phổ biến nhất trong các nhiệm vụ phân

loại nhị phân. Tuy nhiên, các biện pháp thống kê nhiều khi sử dụng các chỉ số

này để thổi phồng quá mức các kết quả thí nghiệm đạt được, đặc biệt là trên các

bộ dữ liệu không cân bằng (imbalanced dataset). Trong khi F1 score bỏ qua số

lượng phủ định thực (TN), MCC mở rộng công thức của mình áp dụng cho cả 4

chỉ số của ma trận nhầm lẫn (TP, FP, TN, FN). Chỉ số MCC chỉ cao khi mô hình

“hoạt động tốt trên cả hai yếu tố tích cực và tiêu cực”. Đối với bài toán phân loại

bài viết, bình luận phản động, tôi nhận thấy sự mất cân bằng giữa hai loại nội

dung phản động và không phản động. Do đó, trong luận văn này, tôi thử nghiệm

dùng hệ số tương quan Matthews (MCC) để tính toán độ chính xác của các

bộ phân lớp.

46

CHƯƠNG 3: CÀI ĐẶT THỬ NGHIỆM

Trong chương này, tôi trình bày mô hình dịch vụ phát hiện bài viết, bình

luận mang nội dung phản động trên MXH Facebook. Từ mô hình này, tôi tập

trung tìm hiểu và khai thác các đặc trưng bổ trợ là blacklist về user, fanpage,

group trên Facebook và các website, blog phản động. Sau đó, tôi xây dựng mô

hình huấn luyện sử dụng học máy để tự động phát hiện nội dung phản động

trong các bài viết, bình luận. Để xây dựng mô hình, tôi bắt đầu từ việc thu thập

dữ liệu mẫu, gán nhãn dữ liệu, xây dựng bộ từ điển phản động (do nhiều hạn

chế, thuật toán được cài đặt mới chỉ dừng lại ở khai thác đặc trưng blacklist

word là chủ yếu, chưa xét đến phụ thuộc cú pháp hay từ loại trong tính độ phản

động của bài viết, binh luận). Tôi cũng trình bày quy trình triển khai, cài đặt một

extension cho trình duyệt Chrome với chức năng phát hiện nội dung phản động

trong bài viết, bình luận trên Facebook. Với extension này, các nội dung phản

động trên Facebook sẽ hạn chế hiển thị trên dòng thời gian của người dùng vì

phải chạy qua các bộ lọc của extension kiểm duyệt. Nếu phát hiện nội dung phản

động, extension sẽ ẩn nội dung đó trước khi đến với người dùng.

3.1. Mô hình kiểm duyệt nội dung phản động

Nhận thấy, thực trạng các bài viết, bình luận mang nội dung phản động,

chống phá Đảng, Nhà nước đang tràn lan trên MXH Facebook, tôi nhận thấy,

cần phải phát triển một dịch vụ kiểm duyệt nội dung bài viết, bình luận phản

động ngay trên trình duyệt của người dùng.

Hình 3.1: Mô hình kiểm duyệt 02 lớp đối với bài viết, bình luận phản động

trên Facebook

47

Cụ thể: Tôi xây dựng một extension trên trình duyệt Google Chrome bao

gồm 02 thành hần là Backend và Frontend. Phần Backend có chức năng đánh

giá nội dung của bài viết, bình luận có phản động hay không. Phần Frontend có

chức năng lọc các user, fanpage, group độc hại và gửi request kiểm duyệt nội

dung tới Backend. Backend sẽ cung cấp một API cho Frontend bất kỳ (trình

duyệt, app di động,…) có thể gửi bài viết, bình luận đến để thẩm định nội dung.

Extension hoạt động dựa trên mô hình gồm 02 lớp (Layer): Layer 1 có chức

năng thẩm định user, fanpage, group Facebook và Layer 2 có chức năng thẩm

định nội dung bài viết, bình luận.

3.2. Xây dựng các blacklist phản động

Căn cứ vào cách thức xây dựng blacklist nêu tại Chương 2. Tôi đã tập hợp

được danh sách những user, fanpage, group, website và blog phản động tiêu biểu

để đưa vào backlist. Các blacklist tập hợp được đến thời điểm hiện tại nhỏ hơn

so với thực tế rất nhiều. Tuy nhiên, những blacklist này sẽ tiếp tục được bổ sung

trong quá trình vận hành, sử dụng dịch vụ kiểm duyệt bài viết, bình luận phản

động. Những user, fanpage, group đều có lịch sử đăng tải rất nhiều bài đăng,

bình luận mang tính chất phản động, xúc phạm lãnh đạo Đảng và Nhà nước, do

vậy việc xây dựng danh sách này là vô cùng cần thiết. Người dùng sẽ được hạn

chế tối đa việc tiếp cận nội dung trên tường của các user, fanpage, group này.

Đối với blacklist các website, blog phản động, thông thường những website này

đều có lịch sử lâu dài đăng tải những bài viết xuyên tạc, bôi nhọ chủ trương,

đường lối của Đảng, chính sách và luật pháp của Nhà nước. Thuật toán tôi sẽ tự

động xác định xem bài viết, bình luận trên Facebook có chứa đường link URL

của các website, blog trong blacklist hay không, nếu có dịch vụ của tôi sẽ tự

động khóa bài đăng, bình luận đó.

Chi tiết các blacklist như sau:

Bảng 3.1: Danh sách một số user Facebook phản động

TT Tên người dùng Địa chỉ URL

01 Thanh Hieu Bui

(Người Buôn Gió) https://www.facebook.com/nguoibuon.gio.9

02

Lê Nguyễn Hương

Trà (Cô Gái Đồ

Long)

https://www.facebook.com/lenguyenhuongtra.de

03 Nguyễn Đình Ngọc https://www.facebook.com/profile.php?id=1000

48

TT Tên người dùng Địa chỉ URL

26376973361

04 Le Trung Khoa https://www.facebook.com/le.t.khoa.1

05 Nguyễn Văn Đài https://www.facebook.com/nguyenvandai0906

06 Dũng Trương https://www.facebook.com/truong.v.dung.73

07 Thao Teresa https://www.facebook.com/thao.teresa.3

08 Võ Hồng Ly https://www.facebook.com/hongly.vo.5059

09 Huynh Ngoc Chenh https://www.facebook.com/ho.lytien.1

10 ThanhTam Nguyen https://www.facebook.com/thanhtam.nguyen.52

643

11 Dominic Pham https://www.facebook.com/dominic.pham.12

12 Phạm Thanh Nghiên https://www.facebook.com/thanh.nghien.1

13 Nguyễn Thúy Hạnh

(Liberty) https://www.facebook.com/Melinh.liberty

14 Võ Hồng Ly https://www.facebook.com/hongly.vo.35

15 Pham Doan Trang https://www.facebook.com/pham.doan.trang

Bảng 3.2: Danh sách một số fanpage Facebook phản động

TT Tên fanpage Địa chỉ URL

01 Việt Tân https://www.facebook.com/Vi%E1%BB%87t

t%C3%A2n-206659726627079/

02 Bùi Thanh Hiếu https://www.facebook.com/nguoibuongio197

2hanoi/

03 Trương Châu Hữu

Danh https://www.facebook.com/hdanh81/

04 Nhật ký yêu nước https://www.facebook.com/nhatkyyeunuoc1/

05 VOA Tiếng Việt https://www.facebook.com/VOATiengViet/

06 Đài Á Châu Tự Do https://www.facebook.com/RFAVietnam/

07 Chân Trời Mới Media https://www.facebook.com/chantroimoimedia

08 ThuVien VietNam

ToanCau https://www.facebook.com/thuvientoancau/

49

TT Tên fanpage Địa chỉ URL

09 Dong Mau Lac Hong https://www.facebook.com/dongmau.lachong

10 Khối 8406 https://www.facebook.com/tudodanchudangu

yen

11

Hội Anh Em Dân Chủ -

Brotherhood For

Democracy

https://www.facebook.com/hoianhemdanchu/

12 Luật Sư Nguyễn Văn

Đài https://www.facebook.com/nvdai0906/

13 BBC News Tiếng Việt https://www.facebook.com/BBCVietnamese/

14 RFI Tiếng Việt https://www.facebook.com/RFIvi/

15 Đáp Lời Sông Núi https://www.facebook.com/radiodlsnvn/

Bảng 3.3: Danh sách một số group Facebook phản động

TT Tên nhóm Địa chỉ URL

01 VIỆT NAM CỘNG

HÒA

https://www.facebook.com/groups/Republico

fVN/

02 Quân Đội Việt Nam

Cộng Hòa

https://www.facebook.com/groups/80206172

3169611/

03 Quân lực - Việt Nam -

Cộng hòa

https://www.facebook.com/groups/RepublicO

fvietnamArmedForces/

04

TỔ QUỐC VN ĐANG

LÂM NGUY PHẢI

DIỆT CỘNG, THOÁT

TÀU

https://www.facebook.com/groups/17648929

2534071/

05 Lật đổ đảng Cộng Sản

VN Bán Nước, Hại Dân

https://www.facebook.com/groups/65267145

4882680/

06 Chế Độ Cộng Sản Thối

Nát

https://www.facebook.com/groups/29605356

4311454/

07 Hội anh em Dân Chủ

VNCH

https://www.facebook.com/groups/50133652

3359919/

08 HẬU DUỆ QUÂN

LỰC VNCH

https://www.facebook.com/groups/10370343

76349291/

50

TT Tên nhóm Địa chỉ URL

09

GÌN GIỮ VĂN HÓA

VÀ TRUYỀN THỐNG

CỜ VÀNG VNCH

https://www.facebook.com/groups/55146917

1673500/

10 Chiến Sĩ Việt Nam

Cộng Hòa

https://www.facebook.com/groups/chiensivod

anh/

11

Bộ Môi Trường Chính

Phủ Việt Nam Cộng

Hoà Lưu Vong.

https://www.facebook.com/groups/32381913

1434115/

12

Diễn Đàn Chính Phủ

Việt Nam Cộng Hoà

Lưu Vong

https://www.facebook.com/groups/RepublicO

fVietnamGovernmentInExile.Group/

13 Thân Hữu Chính Phủ

Việt Nam Cộng Hoà

https://www.facebook.com/groups/NguoiViet

QuocGiaChongTauCongVaVietCong/

14

Hội Đồng Chính Quyền

Địa Phương Việt Nam

Cộng Hoà

https://www.facebook.com/groups/HoiDong.

ChinhQuyen.DiaPhuong.VNCH.Group/

Bảng 3.4: Danh sách một số website, blog phản động

TT Tên website, blog Đường dẫn URL

01 Anh Ba Sàm https://basamnguyenhuuvinh.wordpress.com

02 Thông tin để tiến bộ http://dinhdan.blogspot.com

03 Bốn phương http://bon-phuong.blogspot.com/

04

TNT MEDIA SAN

DIEGO – Tiếng Nước

Tôi San Diego

http://tntmediasandiego.com

05 BÁO TIẾNG DÂN https://baotiengdan.com

06 THÁNH GIÓNG VIỆT

NAM

https://www.youtube.com/channel/UCnyZ9f0

InySiC7Ya5hzth5w

07 Viet vision https://www.youtube.com/user/vietvisionchan

nel

08 TIN MỚI HOA KỲ https://www.youtube.com/channel/UCrSaD9

wnMjaHB85GQJ-bxvA

51

TT Tên website, blog Đường dẫn URL

09 RFA Tiếng Việt https://www.youtube.com/user/RFAVietname

se

10 Hội nhà báo độc lập VN http://www.vietnamthoibao.org

11 CSVN-NHAN-QUYEN http://csvn-nhan-quyen.blogspot.com

12 CSVN lũ hèn https://fucksho.blogspot.com

13 Đài Đáp Lời Sông Núi http://www.radiodlsn.com

14 BBC News Tiếng Việt https://www.youtube.com/user/BBCVietnam

ese

15 RFA https://www.rfa.org/vietnamese

3.3. Xây dựng tập dữ liệu mẫu

3.3.1. Thu thập dữ liệu

Qua khảo sát, tôi đã tìm hiểu các công cụ thu thập dữ liệu Facebook được

sử dụng nhiều như Proxy Crawl [44], Octoparse [45], GNU Wget Software [46]

và Facepager [47]. Các công cụ có thể thu thập được dữ liệu Facebook với rất

nhiều tham số khác nhau page, post, comment, photo, video,... Tuy nhiên, điểm

yếu của các bộ công cụ là sử dụng Graph API [48], được Facebook thường

xuyên cập nhật phiên bản mới mà đa số các công cụ đều sử dụng phiên bản cũ.

Do đó, một số tính năng đôi khi sẽ bị lỗi khi sử dụng.

Trong nghiên cứu này, tôi đã tìm hiểu và sử dụng một Headless Browser

(chương trinh giả lập một trinh duyệt nhưng không có giao diện người dùng) là

Selenium [49] kết hợp trong ngôn ngữ Python để giả lập hành vi người dùng

trên trình duyệt web. Việc sử dụng Headless Browser sẽ làm cho các giới hạn

khi sử dụng Graph API được giải quyết, thu thập được nhiều dữ liệu hơn từ

Facebok. Các bước thực hiện để thu thập dữ liệu Facebook như sau:

Bước 1: Truy cập trang https://m.facebook.com và đăng nhập bằng tài

khoản, mật khẩu có sẵn.

Bước 2: Tìm ID của một user/fanpage bằng công cụ findmyfbid.in

Bước 3: Truy cập vào user/fanpage để thu thập các PostID (đặt giới hạn

mỗi page khoảng 2.500 post)

Bước 4: Từ danh sách PostID, thực hiện truy cập chi tiết bài viết, thu thập

dữ liệu bài viết và các bình luận.

Bước 5: Trích xuất dữ liệu bài viết và bình luận từ trang chi tiết bài viết.

52

Hinh 3.2: Minh họa thu thập bài viết bằng Selenium

Ứng với mỗi bài viết cụ thể, thuật toán tiếp tục thực hiện các bước trích

xuất nội dung bài viết và bình luận của bài viết như sau:

53

Hinh 3.3: Minh họa thu thập bình luận bằng Selenium

Thực hiện thuật toán trên tương ứng với các bài đăng trên trang cá nhân và

group ta thu được dữ liệu bài đăng của các đối tượng trên Facebook.

Dữ liệu được lưu trữ vào Hệ quản trị cơ sở dữ liệu MongoDB [50] để dễ

dàng trích xuất sang định dạng khác sau này. Trong đó, các thông tin bài viết

được lưu vào bảng post, gồm các trường cơ bản như: post_id, text, photo, video,

shared_text,... Tương tự, các bình luận trong các bài viết được lưu vào bảng

comment, gồm các trường cơ bản như: comment_id, text, photo, reaction,... Tôi

54

đã viết một đoạn script chạy bằng Python để trích xuất dữ liệu ra dạng CSV

(hình 3.28 phần Phụ lục).

Sau khi truy vấn dữ liệu từ MongoDB, thực hiện lưu dữ liệu dưới định

dạng CSV bằng thư viện Pandas trong Python.

Hinh 3.4: Mẫu dữ liệu bài viết thu thập được

Hình 3.5: Mẫu dữ liệu bình luận thu thập được

Kết thúc quá trình thu thập dữ liệu, tôi thu được dataset với gần hơn 20.000

bài viết và bình luận trên Facebook.

3.3.2. Gán nhãn dữ liệu

Sau khi thu thập dữ liệu, để phục vụ cho việc cài đặt các thuật toán đã tìm

hiểu, tôi tiến hành gán nhãn cho dữ liệu. Việc gán nhãn dữ liệu được thực hiện

hoàn toàn thủ công.

55

Mỗi bài viết hoặc bình luận sẽ được gán nhãn tương ứng. Cụ thể như sau:

- Nhãn là 1 nếu bài viết hoặc bình luận là phản động.

- Nhãn là -1 nếu bài viết hoặc bình luận không phải là phản động.

Một bài viết hoặc bình luận được coi là phản động khi thuộc một trong 11

nội dung mà tôi đã chỉ ra ở Mục 1.1.

Để có thể gán nhãn chính xác cho toàn bộ dataset đã thu thập ở trên, tôi đã

kêu gọi sự giúp đỡ từ đồng nghiệp với hai lượt gán nhãn và kiểm tra.

Tập dữ liệu được chia thành 20 file dữ liệu, mỗi file dữ liệu được một

người phụ trách gán nhãn. Sau khi quá trình gán nhãn hoàn tất, mỗi file dữ liệu

đã gán nhãn được kiểm tra lại bởi một người khác để đảm bảo nhãn của dữ liệu

là chính xác nhất có thể. Nếu có sự bất đồng quan điểm giữa người gán nhãn và

người kiểm tra, sẽ tiến hành mời một người thứ ba tham gia biểu quyết số đông

để xác định nhãn cho dữ liệu.

Hình 3.6: Mẫu dữ liệu bình luận sau khi được gán nhãn

3.4. Xây dựng bộ từ điển phản động

Do chưa có blacklist word các từ phản động cho tiếng Việt, cho nên luận

văn của tôi là công trình đầu tiên xây dựng từ điển phản động trong tiếng Việt.

Mỗi từ trong từ điển phản động được đánh trọng số tương ứng. Trọng số của các

từ trong blacklist word thể hiện mức độ phản động của từ và nằm trong khoảng

từ (0; 1]. Từ có trọng số càng lớn thì mức độ phản động càng cao. Để xây dựng

từ điển phản động cho tiếng Việt, tôi và đồng nghiệp hỗ trợ gán nhãn đã thực

hiện như sau: (1) Trong quá trình gán nhãn, nếu gặp từ nào là phản động sẽ thêm

từ đó vào từ điển (căn cứ vào 11 nội dung phản động đã xác đinh ở Mục 1.1);

(2) Tập hợp và theo dõi các user, fanpage, group, website, blog phản động để

56

nhận biết được các từ, cụm từ thường dùng trong các bài viết, bình luận

phản động.

Việc đánh trọng số cho các từ phản động cũng được tiến hành dựa trên việc

khảo sát từ các đồng nghiệp có cùng chuyên môn. Danh sách các từ phản động

sau khi được tập hợp sẽ được gửi cho nhóm từ 3-5 chuyên gia thẩm định, đánh

trọng số. Trọng số cuối cùng sẽ bằng trung bình chung trọng số của các thành

viên. Trọng số của từ phản động được đánh giá trên thang điểm từ 0-1, lẻ 2 số

thập phân.

Hình 3.7: Danh sách từ điển phản động đã xây dựng

3.5. Xây dựng vector đặc trưng

Sau khi hoàn tất khâu chuẩn bị dữ liệu và xây dựng các blacklist word phản

động, tôi đã tiến hành biểu diễn các đặc trưng cho dữ liệu như đã được trình bày

ở Chương 3 để tiến hành tổng hợp thành vector đặc trưng cho bài viết, bình luận.

Vector đặc trưng của bài viết, bình luận bao gồm:

57

- Các đặc trưng ngôn ngữ được xây dựng từ blacklist word phản động.

- Một số đặc trưng hình thái liên quan đến nội dung và ngữ pháp:

+ Độ dài của bình luận hoặc bài viết.

+ Số ký tự viết hoa/ tổng số ký tự của bình luận hoặc bài viết.

+ Số các ký tự không phải alphabet xuất hiện trong bình luận hoặc bài viết.

+ Số các dấu câu xuất hiện trong bình luận hoặc bài viết.

+ Số từ không có trong từ điển tiếng Việt xuất hiện trong bình luận hoặc

bài viết.

+ Tần xuất các từ viết tắt trong bài viết.

+ Độ dài trung bình của các từ.

+ Độ dài trung bình của các câu.

- Đặc trưng hình thái n-gram.

Một số đặc trưng hỗ trợ khác như ngữ cảnh, đặc trưng liên quan đến người

dùng và thông tin đa phương tiện, do khó khăn về kĩ thuật nên chưa áp dụng cho

việc xây dựng vector đặc trưng trong luận văn này. Cụ thể các bước được thực

hiện theo quy trình như sau:

(1) Bước 1: Đọc dữ liệu.

(2) Bước 2: Tách từ và gán trọng số phản động cho các từ trong câu.

Những từ nào có trong bộ từ điển phản động sẽ được gắn trọng số khác 0; những

từ còn lại có trọng số bằng 0. Để tính trọng số phản động cho toàn bộ nội dung

của bài viết hoặc bình luận, trước hết tôi tách dữ liệu văn bản thành các câu. Sau

đó, sử dụng thư viện VnCoreNLP để tách từ. Sau khi tách từ, đối chiếu với bộ từ

điển phản động để gắn trọng số cho các từ trong từng câu. Độ phản động của bài

viết, bình luận là tổng hợp toàn bộ độ phản động của các câu trong nó.

(3) Bước 3: Đặc trưng hình thái liên quan đến nội dung và ngữ pháp. Tính

toán các chỉ số liên quan đến các đặc trưng hình thái đã được mô tả ở Chương 3

để tạo thành thành phần vector đặc trưng của bài viết, bình luận.

- Tính số ký tự viết hoa/tổng số ký tự của bài viết hoặc bình luận. Sau đó

chuẩn hóa dữ liệu thành dưới dạng số trong khoảng [0;1].

- Tính độ dài bài viết, bình luận sau đó chuẩn hóa độ dài đó dưới dạng số

trong khoảng [0-1].

- Tính số ký tự không phải chữ cái xuất hiện trong bài viết, bình luận sau

đó chuẩn hóa thành số nằm trong khoảng [0-1].

- Tính tần suất sử dụng các ký tự đặc biệt trong bài viết, bình luận, sau đó

chuẩn hóa thành số nằm trong [0-1].

58

- Tính độ dài trung bình các từ sau đó chuẩn hóa thành số nằm trong [0-1].

- Tính tần suất xuất hiện từ viết tắt trong bài viết hoặc bình luận, sau đó

chuẩn hóa dữ liệu thu được thành dạng số nằm trong [0-1].

(Mã nguồn đọc dữ liệu, tính toán đặc trưng hinh thái liên quan đến nội

dung và ngữ pháp của bài viết, bình luận được tôi trình bày ở hình 3.29 đến

hình 3.37 mục 2 phần Phụ lục).

(4) Bước 4: Đặc trưng hình thái n-gram. Áp dụng bigram và trigram mức

ký tự cho bài viết và bình luận để trở thành một phần vector đặc trưng. Sử dụng

thư viện sklearn thông qua CountVectorizer. Do giới hạn về trang thiết bị dùng

để huấn luyện, tôi chỉ sử dụng mô hình bigram và trigram ở mức kí tự mà không

sử dụng mức từ. Tương lai nếu tiếp tục theo đuổi đề tài này, tôi sẽ thử áp dụng

nhiều phương pháp hơn, trong đó có sử dụng n-gram cấp độ từ.

(5) Bước 5: Tổng hợp vector đặc trưng. Gom các đặc trưng đã tạo ta có

vector đặc trưng hoàn chỉnh cho bài viết, bình luận.Vector đặc trưng là tổng hợp

từ 3 loại đặc trưng như đã nêu ở Bước 2, 3, 4.

Dữ liệu được scale lại bằng StandardScaler để mỗi đặc trưng thu được có

độ lệch chuẩn và trung bình tương tự phân phối chuẩn, thuận lợi cho việc huấn

luyện.Dữ liệu được phân chia thành tập huấn luyện và tập kiểm thử, trong đó tập

kiểm thử chiếm 30% toàn bộ lượng dữ liệu như đoạn code mô hình thể hiện

(14.000 mẫu ở tập huấn luyện, 6.000 mẫu ở tập kiểm tra).

Như vậy, bộ dữ liệu huấn luyện bao gồm 14.000 mẫu, mỗi mẫu đặc trưng

bởi 1 vector 42.229 chiều bao gồm các đặc trưng về hình thái, độ phản động dựa

trên bộ từ điển và đặc trưng n-gram. Cụ thể:

Đặc trưng về độ phản động: 1 chiều

Đặc trưng về hình thái: 6 chiều

Đặc trưng n-gram: 42.222 chiều

(Chi tiết tính toán các đặc trưng và tổng hợp vector đặc trưng được mô tả

ở hình 3.38-3.42 mục 2 phần Phụ lục).

3.6. Các mô hình thử nghiệm

Sau khi xử lý và chuẩn hóa dữ liệu, vector đặc trưng đã có được từ Mục 3.5

sẽ được sử dụng để huấn luyện mô hình.

* Độ quan trọng của mô hình n-gram trong xây dựng vector đặc trưng:

Để kiểm tra độ quan trọng của mô hình n-gram trong xây dựng vector đặc trưng

của bài viết, bình luận tiếng Việt, tôi tiến hành thử nghiệm theo phương pháp đó

là: Sử dụng thuật toán SVM và mô hình MLP để lần lượt huấn luyện với đầu

vào là 02 loại vector đặc trưng. Vector đặc trưng thứ nhất, bao gồm độ phản

59

động, hình thái và n-gram; vector đặc trưng thứ hai, chỉ có độ phản động và hình

thái mà không có n-gram.

* Thử nghiệm: Tôi lần lượt thực hiện 06 thử nghiệm, bao gồm:

SVM-3f: Bộ vector đặc trưng bao gồm: Blacklist word phản động, hình

thái và n-gram kết hợp với thuật toán SVM.

SVM-2f: Bộ vector đặc trưng bao gồm: Blacklist word phản động và hình

thái kết hợp với thuật toán SVM.

MLP-2f: Bộ vector đặc trưng bao gồm: Blacklist word phản động và hình

thái kết hợp mô hình MLP.

MLP-3f: Bộ vector đặc trưng bao gồm: Blacklist word phản động, hình

thái và n-gram kết hợp mô hình MLP.

SVM-BERT: Sử dụng pretrained PhoBert kết hợp với thuật toán SVM.

MLP-BERT: Sử dụng pretrained PhoBert kết hợp với mô hình MLP.

3.6.1. SVM-3f

Tôi sử dụng thư viện scikit-learn [52] cùng thuật toán LinearSVM để huấn

luyện mô hình. Cùng lúc, tôi sử dụng GridSearchCV để lựa chọn tham số C cho

thuật toán. C là tham số phạt trong bài toán soft-margin, được điều chỉnh để giúp

đưa các điểm dữ liệu nằm trong khoảng hai siêu mặt phẳng được vẽ bởi thuật

toán SVM về đúng phân lớp của chúng. Tôi cho chạy thuật toán GridSearchCV

với các tham số C lần lượt là [0.001, 0.01, 0.1, 1, 10, 100, 1.000, 10.000] (hình

3.43 phần Phụ lục).

Với mỗi tham số C, tôi sử dụng phương pháp cross-validation trên tập huấn

luyện với số lượng là 5.

Hình 3.8: Tham số C tốt nhất

Như vậy với tham số C ở giá trị 0,001, mô hình đạt kết quả khả quan nhất.

Đối với các bài viết, bình luận không phản động: Mô hình nhận diện sai

602/4.030 mẫu.

Đối với bài viết, bình luận có tính chất phản động: Mô hình nhận diện sai

539/1.970mẫu.

Kết quả tính toán hệ số MCC của mô hình là 0,572:

60

Hình 3.9: Kết quả thử nghiệm bộ vector đặc trưng bao gồm Blacklist word phản

động, hình thái, n-gram với thuật toán SVM

3.6.2. SVM-2f

Kết quả thử nghiệm bộ vector đặc trưng bao gồm Blacklist word phản

động, hình thái với thuật toán SVM đạt được như sau:

Hình 3.10: Kết quả thử nghiệm bộ vector đặc trưng bao gồm Blacklist word

phản động, hình thái với thuật toán SVM

Đối với các bài viết, bình luận không phản động: Mô hình nhận diện sai

1.889/4.279 mẫu.

Đối với bài viết, bình luận có tính chất phản động: Mô hình nhận diện sai

310/1.721 mẫu.

Kết quả tính toán hệ số MCC của mô hình là 0,344. Mô hình đem lại kết

quả phân loại khá tốt. Tuy nhiên, trong khi đạt kết quả khả quan trong việc nhận

diện các nội dung phản động, mô hình lại tỏ ra kém hiểu quả trong việc nhận

diện nội dung không phản động. Việc áp dụng mô hình này vào trong sản phẩm

thực tế sẽ gây khó dễ cho người dùng, khi gần như mô hình đánh giá quá nhiều

nội dung bài viết, bình luận là phản động.

3.6.3. MLP-2f

Kết quả mô hình đạt được như sau:

Hình 3.11: Kết quả huấn luyện bộ vector đặc trưng bao gồm Blacklist word

phản động và hình thái với mô hình MLP

Đối với các bài viết, bình luận không phản động: Mô hình nhận diện sai

398/4.279 mẫu.

Đối với bài viết, bình luận có tính chất phản động: Mô hình nhận diện sai

1.255/1.721 mẫu.

61

Kết quả tính toán hệ số MCC của mô hình là 0,228, phân loại khá tốt trong

việc xác định các bài viết, bình luận không phản động, tuy nhiên độ chính xác

khá thấp trong việc xác định các bài viết, bình luận phản động.

3.6.4. MLP-3f

Kết quả mô hình đạt được như sau:

Hình 3.12: Kết quả huấn luyện bộ vector đặc trưng bao gồm Blacklist word

phản động, hình thái và n-gram với mô hình MLP

Đối với các bài viết, bình luận không phản động: Mô hình nhận diện sai

897/4.279 mẫu.

Đối với bài viết, bình luận có tính chất phản động: Mô hình nhận diện sai

580/1.721 mẫu.

Kết quả tính toán hệ số MCC của mô hình là 0,432. Mô hình đạt chỉ số

tương đối khả quan trong việc nhận diện các bình luận không phản động lẫn

phản động. Tuy nhiên các chỉ số đạt được đều thấp hơn SVM-3f.

3.6.5. SVM-BERT

Với lần thử nghiệm này, tôi tiếp tục sử dụng Google Colab [53] để huấn

luyện và kiểm thử mô hình. Bộ dữ liệu huấn luyện vẫn bao gồm 20.000 dữ liệu,

chia ra thành 02 phần:

Bước 1: Load pretrained PhoBERT model và tiền xử lý văn bản.

Bước 2: Tạo features từ PhoBert. Bao gồm các công đoạn như:

- Tách từ trước khi đưa văn bản vào PhoBert.

- Tokenize văn bản bằng bộ Tokenizer của PhoBert (thêm 2 Token đặc biệt

là CLS và SEP vào đầu và cuối câu).

- Đưa văn bản đã được tokenize vào model kèm theo Attension Mask.

- Lấy output đầu ra làm đặc trưng cho đoạn văn bản sử dụng cho bước

tiếp theo.

Bước 3: Huấn luyện mô hình với SVM.

Hình 3.13: Kết quả huấn luyện mô hình sử dụng pretrained PhoBERT kết hợp

với thuật toán SVM

62

Đối với các bài viết, bình luận không phản động: Mô hình nhận diện sai

567/4.313 mẫu.

Đối với bài viết, bình luận có tính chất phản động: Mô hình nhận diện sai

857/1.687 mẫu.

Kết quả tính toán hệ số MCC của mô hình là 0,383. Mô hình có kết quả

phân loại tương tự MLP-3f, khá tốt với cả các bài viết, bình luận phản động và

không phản động. Tuy nhiên, mô hình này có độ chính xác trong nhận diện bài

viết, bình luận phản động thấp hơn MLP-3f.

3.6.6. MLP-BERT

Kết quả mô hình đạt được như sau:

Hình 3.14: Kết quả huấn luyện mô hình sử dụng pretrained PhoBERT kết hợp

với mô hìnhMLP

Đối với bài viết, bình luận không phản động: Mô hình nhận diện sai

1.618/4.274.

Đối với bài viết, bình luận phản động: Mô hình nhận diện sai

630/1.726 mẫu.

Kết quả tính toán hệ số MCC của mô hình là 0,233, tương đối thấp khi so

sánh với các mô hình đã được huấn luyện trước đó.

So sánh kết quả của 06 lần thử nghiệm:

Hình 3.15: Kết quả thực nghiệm các mô hình

63

Như vậy, dễ dàng nhận thấy hệ số MCC của việc sử dụng các bộ vector đặc

trưng gồm độ phản động, hình thái và n-gram kết hợp với thuật toán SVM

(SVM-3f) đạt kết quả cao nhất (0,572) khi so sánh tương quan với các mô

hình khác.

SVM-3f và MLP-3f có hệ số MCC cao hơn hẳn so với SVM-2f và MLP-2f

cho thấy đặc trưng n-gram vẫn đóng vài trò rất quan trọng trong việc đánh giá

nội dung bài viết, bình luận. Điều đó dẫn tới việc hi sinh các đặc trưng n-gram

khỏi tính toán bộ vector đặc trưng để tăng tốc độ đánh giá nội dung bình luận,

bài viết sẽ đem tới những kết quả không mong đợi.

Mặc dù không có mô hình nào đạt kết quả cao nhất, nhưng có thể nhận thấy

PhoBert hoạt động khá tốt, có tiềm năng cao trong việc ứng dụng xử lý ngôn

ngữ tiếng Việt. Đối với bài toán kiểm duyệt bài viết, bình luận phản động, có thể

do hạn chế về mặt kĩ thuật tôi fine-tune (tinh chỉnh) PhoBert theo ý của mình.

Do đó, tôi quyết định sẽ sử dụng mô hình SVM-3f để phát triển dịch vụ kiểm

duyệt bài viết, bình luận phản động trên Facebook.

(Một số kết quả chi tiết hơn của các mô hinh được tôi trình bày ở Mục 3

phần Phụ lục).

Cách thức làm việc: Dữ liệu bài viết, bình luận Facebook (kèm theo đinh

danh của user, fanpage, group) khi đi qua extension, Layer 1 sẽ kiểm tra, đối

chiếu, ngăn chặn các dữ liệu chứa user, fanpage, group nằm trong blacklist như

đã đề cập ở nội dung Chương 2. Dữ liệu Facebook nào vượt qua Layer 1, tiếp

tục được Layer 2 kiểm tra, Layer 2 có chức năng kiểm duyệt nội dung dựa trên

mô hình tôi đã thử nghiệm và phát triển tại Chương 3. Hệ thống sẽ trả lại giá trị

1 (dương tính) nếu bài viết mang tính chất phản động, và -1 (âm tính) đối với bài

viết không mang tính chất phản động.

Backend RESTful API được xây dựng trên framework Flask của Python dễ

dàng tích hợp với checkpoint của model. Backend gửi trả lại kết quả phân loại

nội dung bài viết, bình luận cho Frontend (mã nguồn của Backend được thể hiện

ở hình 3.52 trong phần Phụ lục).

Trước khi đánh giá nội dung phản động, các bài viết, bình luận sẽ được

kiểm tra liệu có chứa các đường link URL của các website, blog phản động hay

không. Nếu có, extension sẽ lập tức ẩn đi các nội dung đường link URL đó (hình

3.53 phần Phụ lục). Nội dung các bài viết, bình luận sẽ được tính toán, xây dựng

thành bộ vector đặc trưng như trong bước huấn luyện model. Bộ vector đặc

trưng này sẽ được Backend sử dụng và gán nhãn cho bài viết, bình luận phản

động hay không phản động, tương ứng kết quả trả về cho Frontend là 1 hoặc -1.

64

Bên cạnh Backend, tôi đã phát triển một Frontend khai thác dịch vụ do

Backend cung cấp để kiểm duyệt các bài viết, bình luận có nội dung phản động

trên Facebook. Frontend được cài đặt dưới dạng extension cho trình duyệt

Chrome, có chức năng đọc các bài viết, bình luận trên Facebook, gửi bài viết,

bình luận đến Backend để thẩm định và ẩn đi bài viết, bình luận nếu nó chứa nội

dung phản động.

Extension của Chome có cây thư mục bao gồm các file dưới đây:

Hinh 3.16: Cấu trúc thư mục extension

Hinh 3.17: File manifest.json

- Manifest.json: Là một file JSON bắt buộc phải có của extension trên trình

duyệt Google Chrome. File này khai báo các quyền cần cung cấp để hoạt động,

các thư viện dùng bên thứ ba, khai báo icon, các URL mà extension này hoạt

động, giới thiệu về extension.

Trong file này có khai báo name là tên extension, description là giới thiệu

về extension, version cho biết phiên bản của extension, conten_scripts cho biết

nhưng đoạn script sẽ được sử dụng trong extension. Trong extension này chỉ sử

dụng một file là content.js nhằm tương tác với trình duyệt, matches cho biết

những url sẽ thực thi extension (ở đây là facebook -

https://www.facebook.com/*). Đặc biệt là khai báo permissions bắt buộc phải có

url của server để khai báo xin phép Chrome là URL này được phép hoạt động.

Trong thử nghiệm này, tôi thử nghiệm server trên chính máy tính nội bộ, chạy

dịch vụ ở cổng 5.000 trong localhost, nên ta sẽ khai báo http://localhost:5000.

- Content.js: Là file javascript quan trọng nhất trong tiện ích mở rộng này,

có chức năng thực hiện nhiệm vụ đọc bài viết trên Facebook. Sau khi đọc được

65

bài viết, bình luận trên Facebook, extension sẽ gửi nội dung bài viết, bình luận

lên Backend để nhờ kiểm tra nội dung. Việc này được thực hiện thông qua hàm

startApp và kỹ thuật short polling (frontend sẽ gửi request đến server nhiều lần,

nếu có kết quả thi sẽ cập nhật). Như đã biết, Facebook dùng cơ chế loadmore để

để hiển thị thêm bài viết trên newsfeeds hoặc hiển thị thông tin bài viết trên

fanpage, group. Mỗi khi loadmore dữ liệu được load về và được đưa vào cây

DOM và render lại. Tương tự với bình luận, mỗi khi chọn xem thêm bình luận,

thì các bình luận mới được thêm vào cây DOM. Như vậy, cứ mỗi 03 giây, ta sẽ

lại xử lý những bài viết, bình luận mới được thêm vào trên cây DOM.

Nhận thấy, các bài viết và bình luận trong Facebook được gán vào những

thẻ div với những class tương ứng. Như vậy, sau khi tìm được những class mà

Facebook dùng để gán cho bình luận và bài viết, ta có thể lọc ra được nội dung

chứa trong thẻ div đó. Trước đây, để thực hiện được việc tìm HTMLElement

theo class đòi hỏi phải sử dụng thêm những thư viện ngoài như JQuery. Tuy

nhiên, từ năm 2015, với sự ra đời của tiêu chuẩn ES6, Javascript giờ đã hỗ trợ

lệnh querySelector, cho phép ta có thể tra các HTMLElement theo tên thẻ, tên

class, tên id.

Sau khi sử dụng querySelector để tìm được những HTMLElement cần, ta

có thể dễ dàng lọc ra nội dung của nó thông qua attribute (thuộc tính) innerText,

từ đó lấy được nội dung bên trong là bài viết, bình luận. Đồng thời, ta có thể

thay đổi và quản lý nó, thông qua việc update DOM (hình 3.54 phần Phụ lục).

Cơ chế hoạt động của hàm startApp: Để lấy được nội dung bài viết và

bình luận, ta sử dụng selector để lấy. Trước hết, ta cần phải tìm được các class,

id chứa nội dung cần tìm. Để làm được điều này ta có thể dùng công cụ inspect

elements trên Google chrome. Sau khi tìm được selector, ta sử dụng hàm

document.querySelector và document.querySelectorAll trong Javascript. Để hạn

chế việc gửi lên các nội dung cũ đã từng được check thì qua mỗi vòng lặp ta

thêm class “checked” để nếu có class này thì extension bỏ qua, việc này hạn chế

việc submit những nội dung đã check lên server, thông qua đó giảm tải cho

server, đồng thời tăng hiệu năng cho extension. Sau khi đã lấy được nội dung thì

ta gửi request tới server kiểm tra. Nếu response trả về là -1 nghĩa là không chứa

nội dung phản động. Ngược lại, nếu response trả về là 1 thì có chứa nội dung

phản động và ta tiến hành ẩn bài viết, bình luận.

Cài đặt Extension:

Để cài đặt extension cho trình duyệt Chrome, ta thực hiện các bước sau:

66

Bước 1: Vào trình duyệt Chrome > Customize and Control Google Chrome

> More Tools > Extensions

Bước 2: Nhấn vào Load unpacked.

Bước 3: Trỏ đến folder chứa extension và nhấn OK.

Hình 3.18: Giao diện extension Chrome

Hinh 3.19: Cài đặt extension thành công

Thực hiện cài đặt extension “Bộ lọc bình luận 1.0” thành công.

67

Hình 3.20: Trước khi sử dụng extension

Trước khi sử dụng extension, các bài viết, bình luận trên Facebook hiển thị

bình thường. Sau khi cài đặt extension thành công, extension sẽ đọc và phân tích

nội dung các bài viết, bình luận trên Facebook và sẽ có hành động tương ứng.

Khi người dùng truy cập vào trang cá nhân, fanpage hay hội nhóm bị cấm,

extension sẽ chặn người dùng tiếp cận đến những thông tin độc hại mà những

trang đó cung cấp.

68

Hình 3.21: Extension chặn các nhóm độc hại, chống phá

Hình 3.22: Extension chặn các người dùng có hành vi phản động

69

Hình 3.23: Extension chặn các trang mạng có hành vi phản động

Khi đánh giá bài viết, bình luận là phản động, extension sẽ tự động hiển thị

thông báo “phản động” bên cạnh bài viết, bình luận đó và ẩn đi nội dung bài

viết. Các bài viết, bình luận khác sẽ hiển thị thông báo “bình thường”.

Hinh 3.24: Kết quả hoạt động của extension trên bài viết

70

Có thể thấy rõ 02 bài viết trên fanpage BBC News Tiếng Việt, một bài viết

đã bị ẩn đi, một bài viết vẫn hiển thị bình thường. Khi nhấn vào xem nội dung

bài viết phản động, bài viết vẫn sẽ được hiển thị bình thường, nhưng được làm

mờ đi.

Hinh 3.25: Sau khi hiện ra bài viết bi ân (bài viết sẽ vẫn bi làm mờ).

Đối với các bình luận, cách thức hoạt động tương tự đối với các bài đăng.

Các bình luận có nội dung phản động sẽ được ẩn đi nội dung như hình dưới.

71

Hinh 3.26: Kết quả hoạt động của extension trên bình luận

Người dùng có thể nhấn vào chữ “đây” để hiển thị bình luận bị ẩn. Các

bình luận bị ẩn khi người dùng muốn hiển thị trợ lại sẽ được làm mờ.

Hinh 3.27: Sau khi hiện ra binh luận bi ân.

Sau khi đã hiện bình luận bị ẩn, để ẩn lại, chúng ta click vào icon “Phản

động” của bình luận đó.

72

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

4.1. Kết luận

Luận văn nghiên cứu về kiểm duyệt bài viết và bình luận tiếng Việt có nội

dung phản động trên MXH Facebook nhằm hạn chế các thông tin tiêu cực, có

ảnh hưởng, tác động xấu đến tư tưởng chính trị của người dùng. Đây là một

nghiên cứu ban đầu, làm nền tảng cơ sở xây dựng các bộ công cụ hạn chế âm

mưu của các thế lực thù địch, lực lượng phản động, CH-CĐCT sử dụng MXH

Facebook nhằm lôi kéo, kích động người dân chống đối chính quyền, chống phá

Đảng, Nhà nước Việt Nam. Luận văn đã thực hiện những công việc chính sau:

(1) Ứng dụng 02 tầng (Layer) để kiểm duyệt nội dung phản động, gồm:

Layer 1 kiểm duyệt các blacklist đã xây dựng sẵn; Layer 2 kiểm duyệt nội dung

bằng các phương pháp học máy.

(2) Layer 2 ứng dụng các phương pháp học máy tiêu biểu (SVM, MLP)

trong phân lớp văn bản nhị phân kết hợp với các phương pháp trích chọn đặc

trưng phổ biến là n-gram để huấn luyện các mô hình kiểm duyệt.

(3) Xây dựng bộ từ điển phản động (blacklist word) có đánh trọng số làm

tiêu chí đánh giá bài viết, bình luận có nội dung phản động.

(4) So sánh độ hiệu quả của việc sử dụng và không sử dụng mô hình n-

gram trong việc trích trọn đặc trưng phản động.

(5) So sánh độ hiệu quả của phương pháp xây dựng vector đặc trưng mới là

PhoBERT với các phương pháp xây dựng vector đặc trưng truyền thống.

(6) Sử dụng Hệ số tương quan Matthews (MCC) thay cho F1 score để đánh

giá phẩm chất của mô hình phân loại nhị phân; đã khắc phục được vấn đề dữ

liệu mất cân bằng.

(7) Sử dụng Headless Browser kết hợp với ngôn ngữ lập trình Python để

thu thập dữ liệu huấn luyện; giải quyết được những hạn chế trước đây khi sử

dụng Graph API của Facebook.

4.2. Hướng phát triển

Trong phạm vi luận văn này, dịch vụ kiểm duyệt nội dung phản động mới

chỉ đơn giản là tổng hợp một số đặc trưng để tính mức độ phản động của bài

viết, bình luận; kết hợp với việc sử dụng các blacklist user, fanpage, group,

website, blog phản động. Để nâng cao hiệu quả kiểm duyệt và đạt độ chính xác

cao hơn, cần xác định thêm các đặc trưng phản động khác; thử nghiệm trên các

mô hình, thuật toán khác nhau để tìm ra được mô hình, thuật toán hiệu quả nhất.

73

Từ đó ứng dụng để phát triển các công cụ, phần mềm hỗ trợ hiệu quả cho việc

ngăn chặn, kiểm duyệt các nội dung phản động trên các nền tảng MXH nói

chung và trên Facebook nói riêng. Tiến tới nghiên cứu, cài đặt thuật toán trên

Forward Proxy Server để áp dụng tại các cơ quan, tổ chức, trường học... nhằm

hạn chế người dùng tiếp cận các nội dung không phù hợp (phản động) trên

MXH Facebook./.

74

TÀI LIỆU THAM KHẢO

Tiếng Việt

1. Hơn 35 thống kê và sự kiện của Facebook cho năm 2021 (2021).

https://www.websitehostingrating.com/vi/research/facebook-statistics/

2. Số liệu thống kê: Việt Nam có 69.280.000 người sử dụng Facebook

(2020). https://vietnamnet.vn/vn/goc-nhin/so-lieu-thong-ke-viet-nam-co-

69-280-000-nguoi-su-dung-facebook-700013.html

3. Kiên quyết đấu tranh với thủ đoạn lợi dụng internet và mạng xã hội để

thúc đây “tự diễn biến”, “tự chuyển hóa”.

http://tinhuyhoabinh.vn/chuyenmuc/chitietchuyenmuc/tabid/236/title/759

1/ctitle/234/Default.aspx?TopMenuId=6&cMenu1=234

4. Các thế lực thù đich đang lợi dụng dich Covid-19 để chống phá Đảng,

Nhà nước (2021). https://vov.vn/phap-luat/cac-the-luc-thu-dich-dang-loi-

dung-dich-covid-19-de-chong-pha-dang-nha-nuoc-875534.vov

5. Cần xử lý nghiêm hành vi của Trương Châu Hữu Danh và các thành viên

nhóm “Báo Sạch” (2021). https://cand.com.vn/Lan-theo-dau-vet-toi-

pham/can-xu-ly-nghiem-hanh-vi-cua-truong-chau-huu-danh-va-cac-

thanh-vien-nhom-bao-sach-i628982/

6. Facebook sẽ chặn quảng cáo chính tri từ các tài khoản phản động (2020).

https://congan.com.vn/tin-chinh/facebook-se-chan-quang-cao-chinh-tri-tu-

cac-tai-khoan-phan-dong_100905.html

7. Khoản 1, Điều 8 của Luật An ninh mạng 2018 quy định “Các hành vi bị

nghiêm cấm về an ninh mạng”

8. Khoản 1, Điều 16 của Luật An ninh mạng 2018 quy định “Thông tin trên

không gian mạng có nội dung tuyên truyền chống Nhà nước Cộng hòa xã

hội chủ nghĩa Việt Nam”

9. Khoản 2, Điều 16 của Luật An ninh mạng 2018 quy định “Thông tin trên

không gian mạng có nội dung kích động gây bạo loạn, phá rối an ninh,

gây rối trật tự công cộng”

10. Khoản 4, Điều 64, Nghị định 174/2013/NĐ-CP ngày 13/11/2013 của

Chính phủ quy định về “xử phạt vi phạm hành chính trong lĩnh vực bưu

chính, viễn thông, công nghệ thông tin và tần số vô tuyến điện”

11. Vietlex. http://www.vietlex.com/

12. Phân loại văn bản tiếng Việt (2019).

https://github.com/undertheseanlp/classification

13. Biểu diễn Mã hóa hai chiều từ Transformer (BERT).

https://d2l.aivivn.com/chapter_natural-language-processing-

75

pretraining/bert_vn.html

14. Mã hóa one-hot.

https://machinelearningcoban.com/tabml_book/ch_data_processing/oneho

t.html

Tiếng Anh

15. Ying Chen, Sencun Zhu, Yilu Zhou, Heng Xu (2012), Detecting Offensive

Language in Social Media to Protect Adolescent Online Safety,

International Conference on Privacy, Security, Risk and Trust and 2012

International Confernece on Social Computing, Amsterdam, Netherlands.

16. Chikashi Nobata, Joel Tetreault, Achint Thomas, Yashar Mehdad, Yi

Chang (2016), Abusive Language Detection in Online User Content,

WWW '16: Proceedings of the 25th International Conference on World

Wide Web, pp 145-153, Montréal Québec, Canada.

17. Anna Schmidt, Michael Wiegand (2017), A Survey on Hate Speech

Detection using Natural Language Processing, Saarbrucken, Germany

18. Chu, Theodora, Kylie Jue and Max Wang. “Comment Abuse

Classification with Deep Learning.” (2017).

19. Jeffrey Pennington, Richard Socher, Christopher D Manning 2014 Glove:

Global vectors for word representation , Proceedings of the 2014

conference on empirical methods in natural language processing

(EMNLP)

20. Cao Van Viet, Do Ngoc Quynh, Le Anh Cuong Building and Evaluating

Vietnamese Language Models VNU Jounal of science, Mathermatics -

Physics 27 (2011) 134-146

21. Chung, Sungyup et al. “N-gram language modeling of Japanese using

bunsetsu boundaries.” INTERSPEECH (2004).

22. Ito, Akinori & Kohda, M. (1996). Language modeling by string pattern N-

gram for Japanese speech recognition. 1. 490 - 493 vol.1.

10.1109/ICSLP.1996.607161.

23. S. Yang, H. Zhu, A. Apostoli and P. Cao, “N-gram Statistics in English

and Chinese: Similarities and Differences”, International Conference on

Semantic Computing (ICSC 2007), 2007, pp. 454-460, doi:

10.1109/ICSC.2007.46.

24. Ha, Le Quan et al. “Extension of Zipf's Law to Word and Character N-

grams for English and Chinese.” Int. J. Comput. Linguistics Chin. Lang.

Process. 8 (2003): n. pag.

25. Nguyen, Dat Quoc and Anh Gia-Tuan Nguyen. “PhoBERT: Pre-trained

language models for Vietnamese.” ArXiv abs/2003.00744 (2020): n. pag.

26. Devlin, Jacob et al. “BERT: Pre-training of Deep Bidirectional

76

Transformers for Language Understanding.” NAACL (2019).

27. Radford, Alec and Karthik Narasimhan. “Improving Language

Understanding by Generative Pre-Training.” (2018).

28. Yinhan Liu, Myle Ott, Naman Goyal, Jingfei Du, Mandar Joshi, Danqi

Chen, Omer Levy, Mike Lewis, Luke Zettlemoyer, Veselin Stoyanov

RoBERTa: A Robustly Optimized BERT Pretraining

ApproacharXiv:1907.11692

29. Yang Liu Fine-tune BERT for Extractive Summarization

arXiv:1903.10318

30. Sun, Chi et al. “Utilizing BERT for Aspect-Based Sentiment Analysis via

Constructing Auxiliary Sentence.” NAACL (2019).

31. Xu, Hu et al. “BERT Post-Training for Review Reading Comprehension

and Aspect-based Sentiment Analysis.” NAACL (2019).

32. Tianda Li , Jia-Chen Gu , Xiaodan Zhu , Quan Liu , Zhen-Hua Ling ,

Zhiming Su , Si Wei DialBERT: A Hierarchical Pre-Trained Model for

Conversation Disentanglement arXiv:2004.03760

33. Raphael Scheible, Fabian Thomczyk, Patric Tippmann, Victor Jaravine,

Martin Boeker GottBERT: a pure German Language Model

arXiv:2012.02110

34. Abdelali, Ahmed et al. “Pre-Training BERT on Arabic Tweets: Practical

Considerations.” ArXiv abs/2102.10684 (2021): n. pag.

35. Le, Hang & Vial, Loïc & Frej, Jibril & Segonne, Vincent & Coavoux,

Maximin & Lecouteux, Benjamin & Allauzen, Alexandre & Crabbé,

Benoît & Besacier, Laurent & Schwab, Didier. (2019). FlauBERT:

Unsupervised Language Model Pre-training for French.

36. Jose Canete, Gabriel Chaperon, Rodrigo Fuentes, Jou-Hui Ho, Hojin

Kang, Jorge Perez, SPANISH PRE-TRAINED BERT MODEL AND

EVALUATION DATA, PML4DC, ICLR 2020

37. Zheng, Xiaoqing et al. “Learning Context-Specific Word/Character

Embeddings.” AAAI (2017).

38. Feng, Jiangtao and Xiaoqing Zheng. “Geometric Relationship between

Word and Context Representations.” AAAI (2018).

39. Huang, Eric Hsin-Chun et al. “Improving Word Representations via

Global Context and Multiple Word Prototypes.” ACL (2012).

40. T Mikolov, K Chen, G Corrado, J Dean - Efficient Estimation of Word

Representations in Vector Space arXiv preprint arXiv:1301.3781, 2013

41. George A. Miller, Richard Beckwith, Christiane Fellbaum, Derek Gross,

and Katherine Miller - Introduction to WordNet: An On-line Lexical

Database 1995

77

42. Bojanowski, Piotr & Grave, Edouard & Joulin, Armand & Mikolov,

Tomas. (2016). Enriching Word Vectors with Subword Information.

Transactions of the Association for Computational Linguistics. 5.

10.1162/tacl_a_00051.

43. Vapnik, Vladimir N. The Nature of Statistical Learning Theory. New

York: Springer, 1995

44. Proxy. Crawl. Scale. https://proxycrawl.com/

45. Facebook Scraping Case Study | Scraping Facebook Groups (2017).

https://www.octoparse.com/tutorial/facebook-scraping-case-study-

scraping-facebook-groups/?qu

46. GNU Wget. https://www.gnu.org/software/wget/

47. Facepager. https://github.com/strohne/Facepager/releases

48. Graph API. https://developers.facebook.com/docs/graph-api/

49. Selenium with Python. https://selenium-python.readthedocs.io/

50. MongoDB. https://www.mongodb.com/

51. Davide Chicco, Giuseppe Jurman (2020), The advantages of the

Matthews correlation coefficient (MCC) over F1 score and accuracy in

binary classification evaluation, https://doi.org/10.1186/s12864-019-

6413-7

52. Scikit-learn. Machine Learning in Python. https://scikit-learn.org/stable/

53. Google Colab. https://colab.research.google.com

54. Zaghloul, W., Lee, S.M. and Trimi, S. (2009), "Text classification: neural

networks vs support vector machines", Industrial Management & Data

Systems, Vol. 109 No. 5, pp. 708-717.

https://doi.org/10.1108/02635570910957669

78

PHỤ LỤC

Mã nguồn dịch vụ kiểm duyệt bài viết, bình luận phản động trên Facebook

Mục 1: Trích xuất dữ liệu bình luận vào CSDL

Hinh 3.28: Code tách comment json bằng Python

Mục 2: Xây dựng vector đặc trưng

Hình 3.29: Mã nguồn đọc bộ dữ liệu bao gồm 20.000 bài viết, bình luận trên

Facebook từ nhiều user, fanpage, group khác nhau.

79

Hình 3.30: Mẫu dữ liệu sử dụng cho huấn luyện và kiểm tra mô hình

Hình 3.31: Mã nguồn tính toán độ phản động của các bài viết, bình luận

80

Hình 3.32: Hàm tính toán tỉ lệ ký tự viết hoa trong bình luận, bài viết

Hình 3.33: Hàm tính độ dài bài viết

Hình 3.34: Hàm tính tần suất sử dụng các ký tự không phải alphabet

81

Hình 3.35: Hàm tính tần suất sử dụng các ký tự đặc biệt

Hình 3.36: Hàm tính độ dài trung bình các từ

82

Hình 3.37: Hàm tính tần suất sử dụng các từ viết tắt

Hình 3.38: Sử dụng bigram và trigram mức ký tự cho bài viết, bình luận.

83

Hình 3.39: Đặc trưng về độ phản động

Hình 3.40: Đặc trưng về hình thái

Hình 3.41: Đặc trưng n-gram

Hình 3.42: Phân chia dữ liệu và tính toán vector đặc trưng

84

Hình 3.43: Thuật toán GridSearchCV tìm tham số C tối ưu

Hình 3.44: Load pretrained PhoBERT model và tiền xử lý văn bản

85

Hình 3.45: Tạo features từ PhoBert

Mục 3: Một số kết quả thực nghiệm

86

Hình 3.46: Kết quả huấn luyện SVM-3f

Hình 3.47: Kết quả huấn luyện SVM-2f

Hình 3.48: Kết quả huấn luyện MLP-2f

87

Hình 3.49: Kết quả huấn luyện MLP-3f

Hình 3.50: Kết quả huấn luyện SVM-BERT

Hình 3.51: Kết quả huấn luyện MLP-BERT

88

Mục 4: Kiểm duyệt nội dung phản động trên Facebook

Hình 3.52: Mã nguồn Server backend

89

Hình 3.53: Kiểm tra sự xuất hiện của các đường link URL đến website, blog

phản động trong nội dung bài viết, bình luận trên Facebook.

Hình 3.54: Một số thẻ div được sử dụng để lấy thông tin từ bài viết, bình luận