3.2.1. Tổng quan về dữ liệu
Dữ liệu huấn luyện giữ một vai trò quan trọng trong ảnh và chi phối đến quá trình và kết quả của các bước chuẩn hóa dữ liệu hay xây dựng mô hình học máy. Trong lĩnh vực học máy ta thường thấy khái niệm “Trash in – Trash out” chỉ tầm quan trọng của dữ liệu trong xây dựng các mô hình. Dữ liệu đầu
vào tốt, bao quát, có giá trị cao và mật độ phân phối mẫu tốt sẽ cải thiện kết quả đầu ra của mô hình.
Quá trình tìm hiểu để nghiên cứu ứng dụng cho luận văn, nhận thấy được hiện nay chư có bộ dữ liệu tiếng Việt công khai nào mang tính đặc thù liên quan đến phạm trù về quan điểm chính trị phù hợp để triển khai bài toán phân tích quan điểm này. Vì vậy, việc thu thập dữ liệu thuộc phạm trù liên quan để xây dựng nên bộ dữ liệu huấn luyện là rất cấp thiết.
Các dữ liệu cần được thu thập phải có ý nghĩa nội dung bao hàm phạm trù ý nghĩa mà luận văn này quan tâm (Quan điểm chính trị), có nguồn gốc từ các nguồn là các trang mạng xã hội phù hợp, đảm bảo với các tiêu chí mà bộ dữ liệu yêu cầu.
Đối với những yêu cầu trên, dễ nhận thấy nguồn dữ liệu này có thể được khoanh vùng thu thập tại các trang fanpage, các trang viết về chính trị tại các nền tảng mạng xã hội và website. Nguồn các dữ liệu từ các diễn đàn nội bộ liên quan và các diễn đàn công khai trên mạng Internet cũng có thể được cân nhắc khai thác. Dữ liệu có thể được sử dụng bao gồm những bài viết, những bài đăng trên các kênh mạng xã hội; là phản hồi của cộng đồng về các các bài viết, bài đăng trên; là các bài đánh giá, phản hồi về các quan điểm chính trị của các bài viết chia sẻ thông tin từ các diễn đàn, các mạng xã hội.
3.2.2. Quá trình thu thập dữ liệu
Quá trình thu thập dữ liệu là quá trình lấy dữ liệu (các bài đăng, bình luận,...) từ các kênh, trang thông tin, mạng xã hội. Ví dụ như fanpage các trang chính trị trên Facebook, Forum,... hay các trang website về viết về đề tài chính trị hay các diễn đàn công khai trên Internet.
Trong phạm vi của bài luận này, dữ liệu thu thập sẽ được giới hạn trong phạm vi liên quan đến hai khía cạnh là Chính trị trong các bài viết liên quan trên mạng xã hội.
3.2.3. Giới thiệu về Selenium
Selenium là một framework miễn phí và mã nguồn mở dành cho các ứng dụng web trên các trình duyệt và nền tảng khác nhau, hỗ trợ cho việc tự động hóa các thao tác trên trình duyệt. Selenium gồm 4 thành phần:
- Selenium Integrated Development Environment (IDE): là một phần mở rộng của Firefox. Nó có thể tự động hóa trình duyệt bằng các tính năng ghi lại và phát lại.
- Selenium Remote Control (RC): giống như một máy chủ sẽ hoạt động như một proxy HTTP nhằm để trình duyệt tin rằng Selenium Core và ứng dụng web được thử nghiệm đến từ cùng một tên miền.
- WebDriver: giúp việc thực thi các hành động lên trang web một cách tự động và có thể điều khiển trình duyệt từ cấp hệ điều hành.
- Selenium Grid: Ra đời nhằm giảm thiểu thời gian thực hiện thử nghiệm càng nhiều càng tốt. Nó có khả năng chụp ảnh màn hình của trình duyệt trong các giai đoạn và cũng có thể gửi ra các lệnh Selenium cho các máy khác nhau cùng một lúc.
Selenium hỗ trợ cho việc tự động hóa các thao tác trên trình duyệt, đặc biệt là kiểm thử tự động. Bên cạnh đó, Selenium tương thích với nhiều browser (ví dụ: Chrome, Firefox, IE, Safari, …) và nhiều platform (ví dụ: mac OS, Windows, Linux, ...), ngoài ra Selenium còn hỗ trợ nhiều ngôn ngữ lập trình (ví dụ: Java, C#, Ruby, …). Bằng cách sử dụng Selenium sẽ giúp chúng
ta tiết kiệm được thời gian, nhân lực khi thực hiện các bước lặp đi lặp lại có quy tắc.
3.2.4. Sử dụng Selenium để thu thập dữ liệu
Để sử dụng Selenium IDE phục vụ cho việc thu thập dữ liệu trước hết cần cài đặt Selenium trên trình duyệt Firefox. Sau đó, mở extension trên trình duyệt Firefox và tiến hành tái hiện hành động phù hợp với mong muốn.
Với một số website yêu cầu đăng nhập, hoặc có kiến trúc HTML tương đối phức tạp hơn (Ví dụ: Facebook.com - yêu cầu đăng nhập tài khoản, hay
Google Map Review on Location), việc áp dụng Selenium IDE đơn thuần không đơn giản, nên đã sử dụng thư viện Selenium WebDriver kết hợp với ngôn ngữ Java, tạo nên một ứng dụng đơn giản giúp thu thập dữ liệu từ các website này về từ đường dẫn url. Ứng dụng này có thể tìm thấy trên Google.
Tuy nhiên, dữ liệu thu thập được ở bước này chỉ mới là dữ liệu thô và còn lộn xộn. Để có được một tập dữ liệu hoàn chỉnh phục vụ cho việc huấn luyện chúng ta cần phải tiến hành gán nhãn dữ liệu. Quá trình này sẽ được trình bày chi tiết ở mục sau.
3.3. Gán nhãn dữ liệu
3.3.1. Tổng quan về các khía cạnh của dữ liệu
Dữ liệu được gán nhãn “Chính trị” khi nội dung có đề cập đến các từ ngữ mang tính chính trị như: “Thông tin Chính phủ”, hoặc mặc định chúng ta tìm kiếm trên các trang xã hội có liên quan.
Phân loại về khía cạnh dữ liệu chính trị trong phạm trù của luận văn này sẽ được mặc định từ các trang, bài viết trên mạng xã hội có nguồn gốc từ các cơ quan, tổ chức thuộc Nhà nước hoặc liên quan đến các chuyên mục chuyên về chính trị.
Đều quan tâm ở đây chính là các phản hồi, bình luận từ người đọc qua dó thể hiện các quan điểm cho các bài viết đó.
- Dữ liệu được gán nhẵn “Tích cực” khi nội dung thể hiện cách nhìn, quan điểm mang tính đồng ý, tích cực, những cảm xúc mang tính tốt đẹp, hàm ẩn sự khen thưởng, ngưỡng mộ…
Ví dụ: “đồng ý với dự Luật”; “Nội dung, chủ trương góp phần đẩy
mạnh phát triển xã hội, nhận thức người dân”….
- Dữ liệu gán nhãn “Tiêu cực” khi nội dung thể hiện cách nhìn, quan điểm mang tính tiêu cực, bất đồng quan điểm, không ủng hộ, những cảm xúc mang tính bóc đồng, hàm ý mang tính chê bai, chỉ trích…
Ví dụ: “Chưa đọc qua nhưng thấy không phù hợp”; “Không ủng hộ”; “nhà nước chưa quan tâm đến người dân”…
- Dữ liệu gán nhãn “Trung lập” khi nội dung thể hiện cách nhìn, quan điểm mang tính chung chung, không có ý nghĩa, nội dung không cụ thể rõ ràng hoặc các ký tự biểu tượng không mang rõ cảm xúc về các vấn đề chính trị.
3.3.2. Các bước gán nhãn dữ liệu
Đây là quá trình gán nhãn dữ liệu đã thu thập được thành các tập đặc trưng theo từng khía cạnh, quan điểm
- Phân loại theo chủ đề: Ở bước này dữ liệu được phân loại thành các tập theo từng khía cạnh, cụ thể trong phạm vi luận văn này dữ liệu sẽ được phân loại tập dữ liệu là “Chính trị”. Dữ liệu được phân loại dựa trên mức độ liên quan và nội dung - ngữ nghĩa của câu liên quan đến hai khía cạnh “Chính trị” hoặc đã được chỉ định từ trước.
- Phân loại dữ liệu theo quan điểm: chủ đề về “Chính trị” ở trên sẽ được chia nhỏ thành những tập chủ đề con gồm: Tích cực, Trung tính/Trung lập hay Tiêu cực.
3.3.3. Một số nguyên tắc để gán nhãn dữ liệu
Với chủ đề chính trị đã được chỉ định ra, việc cần thực hiện là gán nhãn dữ liệu cho quan điểm của chủ đề chính trị:
- Quan điểm được gán nhãn Tích cực khi:
+ Nội dung thể hiện cái nhìn, cảm xúc tích cực của người bình luận về một vấn đề. Những cảm xúc, sắc thái tích cực bao gồm sự hàm ẩn về sự yêu thương, tình cảm tốt đẹp, sự bổ ích, sự đồng thuận…
+ Nội dung thể hiện quan điểm của người bình luận khi so sánh với nhiều đối tượng, phạm trù khác và kết quả cao hơn ở khía cạnh tích cực.
- Quan điểm được gán nhãn Tiêu cực khi:
+ Nội dung thể hiện cái nhìn, cảm xúc tiêu cực của người bình luận về một vấn đề, những sắc thái tiêu cực thường bao gồm sự hàm ý về sự thù ghét, thù địch, bất công bằng, bất mãn, sự giã dối, phủ định chê bai v.v…
+ Nội dung thường xuất hiện các từ mang sắc thái, cảm xúc tích cực nhưng lại đi kèm với một từ phủ định như: không, chẳng, không có, không thể v.v…thường để thể hiện sự đối lập.
- Quan điểm được gán nhãn Trung lập khi:
Nội dung không thể hiện cái nhìn, cảm xúc của người bình luận về một nội dung, bình luận không thể hiện quan điểm hoặc không liên quan đến chủ đề.
Ví dụ 1: chủ đề chính trị về phát biểu của Thủ tướng về “Chống suy thoái như chống giặc”
Bình luận Tích cực 1: “Chính xác. Giờ thấy suy thoái nhiều quá.”
Bình luận Tích cực 2: “Chống lợi ích nhóm triệt để.. hết suy thoái mọi cái..”
Bình luận Tích cực 3: “Cả nước chung tay cùng chính phủ Việt Nam phát triển kinh tế mở rộng quan hệ quốc tế”.
Bình luận Tiêu cực 1: “Việc này rất mâu thuẫn và nghiên cứu thực tế mà
nhanh nhẹn hơn”
Ví dụ 2: chủ đề chính trị về tình hình phòng chống dịch Covid 19: “tình
hình covid 19 đến ngày thứ 67 không còn cá mắc mới trong cộng đồng, Chính phủ xem xét mở lại đường bay thương mại, nhưng không được chủ quan”
Bình luận Tích cực 1: “Chúng cháu rất mong chính phủ sớm mở đường
bay thương mại ạ!”
Bình luận Tích cực 2: “Chẳng kẻ thù nào ngăn nổi bước ta đi , chúng ta
đã chiến thắng covid”
Bình luận Tiêu cực 1: “Việc này rất mâu thuẫn”
Bình luận mang tính Trung lập: “Chúc bạn một ngày bình an”
3.4. Tiền xử lý
3.4.1. Tổng quan về quá trình tiền xử lý
Tiền xử lý sẽ thực hiện thu thập thông tin về bài viết, chuyên mục từ các mạng xã hội trên môi trường Internet thông qua Crawler, sau quá trình biến đối các dữ liệu được thống nhất theo một quy chuẩn cụ thể. Dữ liệu sau khi được tiền xử lý sẽ đảm bảo một số ràng buộc nhất định như không tồn các ký
tự đặc biệt, dữ liệu rác, các thẻ html lẫn vào, đặc biệt là đã được tách thành các cụm từ ghép,… việc này sẽ đảm bảo các bước tiếp theo diễn ra chính xác hơn.
Hình 3-2 Các bước xử lý ngôn ngữ tự nhiên
Quá trình tiền xử lý đối với bài toán này, các công đoạn và các phương pháp như sau:
- Loại bỏ các thẻ html. Ví dụ: <div></div>, <span></span>, ... Phương pháp thực hiện: sử dụng bộ từ điển Social Language.
- Loại bỏ các icon, sticker. Ví dụ: :v, :D, :), ... Phương pháp thực hiện: sử dụng bộ từ điển hư từ.
- Tách từ: gom nhóm các từ đơn liền kề thành cụm từ có ý nghĩa, nhằm khử sự nhập nhằng về ngữ nghĩa. Phương pháp thực hiện: sử dụng công cụ Underthesea.
- Loại bỏ hư từ: nhằm loại bỏ stop word để tránh các thông tin nhiễu trong quá trình phân tích, ví dụ: “bấy nhiêu”, “nhé”, … Phương pháp thực hiện: sử dụng bộ từ điển hư từ.
- Chuẩn hóa dữ liệu: chuẩn hóa các từ viết tắt, sai chính tả, tiếng lóng, v.v… Phương pháp thực hiện: sử dụng bộ từ điển Social Language.
Tại mỗi công đoạn của các bước tiền xử lý dữ liệu có nhiều phương pháp được thực vận dụng như sử dụng từ điển, sử dụng công cụ lập trình, v.v… sẽ được giới thiệu tổng quát qua các phần tiếp theo.
3.4.2. Giới thiệu về các bộ từ điển
Phương pháp sử dụng từ điển là một phương pháp tương đối đơn giản về cách triển khai. Bằng cách này, chúng ta sử dụng một hay nhiều tập các từ điển làm căn cứ để đối chiếu tham khảo với các đối tượng cần kiểm tra. Nếu đối tượng cần kiểm tra có xuất hiện trong từ điển, hệ thống có thể triển khai các hành động tiếp theo một cách phù hợp. Việc sử dụng từ điển cũng góp phần giới hạn sự xuất hiện của các đối tượng đặc biệt hoặc xuất hiện quá ít, đưa chúng về các trường hợp phổ biến và cụ thể hơn.
Trong giai đoạn xây dựng tiền xử lý dữ liệu, khía cạnh chính trị hiện nay quan tâm xác định các từ từ môi trường mạng xã hội (Social Language) và hư từ (Stopwords). Trong quá trình thực hiện bài luận văn đã tiến hành tổng hợp các bộ từ điển này qua các dự án khác nhau có sử dụng và bổ sung thêm từ vựng để tạo nên bộ từ điển phù hợp.
- Giới thiệu từ điển Social Language
Từ điển Social Language là danh sách bao gồm các từ teen code, tiếng lóng, tiếng địa phương, từ viết tắt, v.v… Tương ứng với mỗi từ trong từ điển là từ viết đúng chính tả, ngữ ngáp tiếng Việt.
Từ điển Vietnamese Social Language: được lưu dưới dạng tập tin .json, mỗi dòng là một từ có dạng: {"incorrect": <incorrect word>, "correct": <correct word>}
- Giới thiệu từ điển hư từ:
Từ điển hư từ: được lưu dưới dạng tập tin .txt. Ngoài những hư từ dưới dạng văn bản thuần, từ điển còn có cả các emoji với mục đích làm sạch dữ liệu để quá trình xử lý ở các bước sau hiệu quả hơn. Mỗi dòng của từ điển chứa một hư từ. Từ điển hư từ được nhóm sử dụng là một công trình mã nguồn mở.
3.5. Mã hóa dữ liệu
3.5.1. Tổng quan về quá trình mã hóa dữ liệu
Mã hóa dữ liệu là chuyển văn bản được biểu diễn dạng chuỗi các từ thành dạng vector. Các tài liệu được sắp xếp theo mức độ liên quan đến câu truy vấn. Mục đích của việc mã hóa thành vector này là có thể biểu diễn tập tập từ của một ngôn ngữ tự nhiên vào một không gian vector. Sử dụng không gian vector này ta có thể tìm hiểu được mối liên hệ của các từ vựng thông qua độ tương đồng của chúng. Có nhiều cách để tính độ tương đồng của câu truy vấn nhưng phổ biến là cách tính độ tương đồng cosin. Trong cách này chúng ta tính cos của góc giữa vector câu truy vấn và vector văn bản. Việc mã hóa dữ liệu là quan trọng bởi vì máy có thể dễ dàng xử lý dữ liệu dạng vector hơn là dạng văn bản thô. Hệ thống lúc này sẽ không tiếp nhận dữ liệu là những dữ liệu văn bản, mà là không gian vector và các quy chiếu vào không gian vectơ đó sẽ thể hiện như một tham chiếu của từ vựng trong ngôn ngữ tự nhiên. Để mã hóa dữ liệu văn bản sử dụng cho các bước tiếp theo, chương trình đã sử dụng mô hình Word2Vec [6][7].
3.5.2. Tổng quan về Word2Vec
Trong xử lý ngôn ngữ tự nhiên, việc biểu diễn một từ thành một vector đóng một vai trò cực kỳ quan trọng. Nó lợi ích rất nhiều trong việc thể hiện sự tương đồng, đối lập về ngữ nghĩa giữa các từ, giúp mô hình hóa vector cho 1 câu hay đoạn văn, tìm các câu có nghĩa tương đồng, v.v...
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 một văn bản mới hoặc thêm vào từ vựng. Word2vec là một mạng neural 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 vectors đượ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