Nhận dạng cảm xúc từ văn bản

Một phần của tài liệu Nhận diện cảm xúc kết hợp tiếng nói và văn bản (Trang 34 - 39)

Chương 2: NHẬN DẠNG CẢM XÚC KẾT HỢP TIẾNG NÓI VÀ VĂN BẢN

2.5 Nhận dạng cảm xúc từ văn bản

2.5.1 Vector hóa văn bản là gì ?

Vector hóa văn bản (tokenize) là quá trình rất cần thiết cho việc huấn luyện mô hình, vậy vector hóa văn bản là gì? Vector hóa văn bản (tokenize) là quá trình mã hóa 1 văn bản thành các index dạng số mang thông tin để máy tính có thể huấn luyện được. Khi đó mỗi một từ hoặc 1 kí tự sẽ được đại diện bởi 1 index. Trong NLP có nhiều kiểu vector hóa văn bản ví dụ như các phương pháp dưới đây:

Tokenize theo word level: Đây là phương pháp truyền thống như GloVe, word2vec. Phân tách 1 câu thành các token ngăn cách với nhau bởi khoảng trống hoặc dấu câu.

Tokenize theo multi-word level: Áp dụng trong Tiếng Việt có các model hổ trợ tokenize như: VnCoreNLP, pyvivn, underthesea. Bởi vì trong Tiếng Việt có từ đơn âm tiết và từ đa âm tiết, nếu tách token theo kiểu từ đơn âm tiết sẽ làm sai

có thể biểu diễn đc từ. Tuy nhiên có nhược điểm là không có nghĩa nếu tokenize đứng độc lập.

Trong đồ án thì em chọn vector hóa văn bản dùng phương pháp Mã hóa BPE (Byte Pair Encoding) [8] [9] . Đây là phương pháp mới giải quyết được tất cả nhược điểm của các phương pháp trên, hoạt động bằng một kỹ thuật nén từ cơ bản giúp chúng ta index được toàn bộ các từ kể cả trường hợp từ mở (không xuất hiện trong từ điển) nhờ mã hóa các từ bằng chuỗi các từ phụ (subwords). Nguyên lý hoạt động của BPE [8] [9]

dựa trên phân tích trực quan rằng hầu hết các từ đều có thể phân tích thành các thành phần con. Chẳng hạn như từ: low, lower, lowest đều là hợp thành bởi low và những đuôi phụ er, est. Những đuôi này rất thường xuyên xuất hiện ở các từ. Như vậy khi biểu diễn từ lower chúng ta có thể mã hóa chúng thành hai thành phần từ phụ (subwords) tách biệt là low và er. Theo cách biểu diễn này sẽ không phát sinh thêm một index mới cho từ lower và đồng thời tìm được mối liên hệ giữa lower, lowest và low nhờ có chung thành phần từ phụ là low.

Phương pháp BPE sẽ thống kê tần suất xuất hiện của các từ phụ cùng nhau và tìm cách gộp chúng lại nếu tần suất xuất hiện của chúng là lớn nhất. Cứ tiếp tục quá trình gộp từ phụ cho tới khi không tồn tại các subword để gộp nữa, ta sẽ thu được tập subwords cho toàn bộ bộ văn bản mà mọi từ đều có thể biểu diễn được thông qua subwords.

2.5.2 Xây dựng mô hình

Kiến trúc mô hình ở đây sử dụng mô hình BERT [8] [2] (Bert-Bidirectional Encoder Representation from Transformer) là mô hình biểu diễn ngôn ngữ được google giới thiệu vào năm 2018. Tại thời điểm công bố, BERT đã tạo ra một sự rung động trong cộng đồng NLP bởi những cải tiến chưa từng có ở những model trước đó. BERT [2] [8]

cơ bản bao gồm 12 transformer layer thực hiện các tác vụ trích xuất các đặc trưng của data.

Hình 2.20. Kiến trúc mô hình BERT dùng để phân loại văn bản

Vậy transformer là gì? Transformer [10] là mô hình được áp dụng khá nhiều gần đây, sử dụng cơ chế attention [7] để chú trọng các đặc trưng, gồm 2 phase:

 Encoder: Bao gồm 6 layers liên tiếp nhau. Mỗi một layer sẽ bao gồm một sub-

sung thêm sub-layer đầu tiên là Masked Multi-Head Attention [7] [10] có tác dụng loại bỏ các từ trong tương lai khỏi quá trình attention [7].

Hình 2.21. Kiến trúc transformer sử dụng cơ chế attention 2.5.3 Các tham số huấn luyện và kiểm thử mô hình

Chúng ta sẽ tiền xử lí dữ liệu dataset IEMOCAP [3]: chỉ lấy 4 cảm xúc: trung tính, vui, buồn, giận dữ từ 9 cảm xúc (bởi vì các cảm xúc còn lại dữ liệu khá ít và các thuộc tính không rõ ràng). Sau đó chia dataset đã tiền xử lí thành 80% data cho tập training, 20% data còn lại cho tập kiểm thử. Sau đó ta mã hóa BPE [9] [8] các văn bản đại diện cho tiếng nói thành các index dạng số rồi đưa vào fine-tuning model BERT [8]

[2] để phân loại cảm xúc. Từ đó đánh giá độ chính xác của model, rút ra kết luận thông qua các tham số như: độ chính xác (accuracy-ACC), độ chính xác cho từng lớp, …

Các tham số của việc training:

 Bach_size = 32 (ta không thể đưa tất cả các điểm dữ liệu vào model cùng 1 lúc được, phải chia thành các batch có kích thước nhỏ hơn gọi là batch_size)

 Learning_rate = 2e-5 (learning_rate: gọi là tốc độ học, dùng để cập nhật trọng số)

2.6 Nhận dạng cảm xúc kết hợp tiếng nói và văn bản

Sau khi có 2 cảm xúc được nhận dạng từ 2 phần trên, em tổng hợp lại để đưa ra cảm xúc cuối cùng theo công thức:

F(x) = w1.p1(x) + w2.p2(x) Trong đó:

 p1(x): xác suất cảm xúc được nhận dạng từ tín hiệu tiếng nói

 p2(x): xác suất cảm xúc được nhận dạng từ văn bản

 w1, w2: lần lượt là trọng số của tiếng nói và trọng số của văn bản (w1= 0.6, w2= 0.4)

Bởi vì theo quan sát và thực nghiệm của em thì tiếng nói đóng vai trò quan trọng và quyết định hơn đến nhận dạng cảm xúc nên em chọn w1 =0.6 (trọng số của tiếng nói) và w2 = 0.4 (trọng số của văn bản)

Một phần của tài liệu Nhận diện cảm xúc kết hợp tiếng nói và văn bản (Trang 34 - 39)

Tải bản đầy đủ (PDF)

(50 trang)