Mơ hình khơng gian vec-tơ (Vector Space Model)

Một phần của tài liệu Phân loại cảm xúc người dùng trong mạng xã hội (Trang 31 - 39)

Vector Space Model - VSM (Mơ hình khơng gian vec-tơ) là một mơ hình đại số (algebraic model) thể hiện thơng tin bình luận như một vec-tơ, mỗi chiều tương ứng với một từ trong tập hợp các từ. Phần tử thứ i cho biết số lần mà từ thứ i xuất hiện trong bình luận d. Sự tương đồng của hai bình luận được định nghĩa là khoảng cách giữa các điểm, hoặc là gĩc giữa những vec-tơ trong khơng gian.

Hình 2.6: Minh họa của Christian S. Perone

Mỗi từ trong khơng gian vec-tơ sẽ cĩ một trọng số để đánh giá. Ta sử dụng TF-IDF (Term Frequency–Inverse Document Frequency) để đánh giá và xếp hạng một từ trong một bình luận. TF-IDF là một kỹ thuật giúp chuyển đổi thơng tin dưới dạng văn bản thành một Vector Space Model thơng qua các trọng số. Vector Space Model và TF-IDF được phát triển bởi Gerard Salton vào đầu thập niên 1960.

Giá trị TF-IDF là thơng số thu được qua phương pháp thống kê, thể hiện mức độ quan trọng của một từ trong một bình luận thuộc một tập hợp các bình luận.

Để minh họa cụ thể hơn cho mơ hình này, ta xét một ví dụ cụ thể gồm tập các bình luận được đánh số thứ tự (1), (2), (3), (4) trong bản 2.8 dưới đây. Các bình luận này đã được cho biết trước nhãn là cảm xúc tiêu cực hay tích cực. Và ta cần xác định xem bình luận số (5) là cảm xúc tích cực hay tiêu cực?

Bảng 2.8: Các nội dung bình luận ví dụ cho VSM

STT Nội dung Cảm xúc

1 Nghe bài hát rất buồn Tiêu cực

2 Cảm thấy yêu đời khi nghe bài

hát

Tích cực

3 Bài hát buồn, nghe nhớ anh quá Tiêu cực

4 Bài hát vui quá, thấy yêu đời hơn Tích cực

5 Bài hát làm nhớ anh ???

Ta xây đựng được bảng 2.9 thể hiện tần xuất xuất hiện mỗi từ trong mỗi cảm xúc.

Cột (1) đầu tiên là danh sách túi từ cĩ thể xuất hiện trong tất cả các bình luận.

Cột (2) xác định xem từ đĩ xuất hiện trong bình luận nào. Ví dụ từ "nghe"

xuất hiện trong các bình luận số (2) và (1), (3).

Cột (3) thể hiện tần xuất xuất hiện hay khơng xuất hiện của các từ đĩ trong

mỗi cảm xúc. Ví dụ từ "nghe" xuất hiện ở cảm xúc tích cực 1 lần và xuất hiện ở

cảm xúc tiêu cực 2 lần.

Bảng 2.9: Cách tính TF mỗi từ vựng trong VSM

Cột (1) Cột (2)

Sự xuất hiện trong mỗi bình luận Cột (3)

Tần suất xuất hiện trong mỗi cảm xúc (TF)

Tích cực Tiêu cực Tích cực Tiêu cực Nghe (2) (1) (3) 1 lần 2 lần Bài (2)(4) (1) (3) 2 lần 2 lần Hát (2) (4) (1) (3) 2 lần 2 lần Rất (1) 0 lần 1 lần Buồn (1) (3) 0 lần 2 lần Cảm (2) 1 lần 0 lần Thấy (2) (4) 2 lần 0 lần Yêu (2) (4) 2 lần 0 lần Đời (2) (4) 2 lần 0 lần Hơn (4) 1 lần 0 lần Khi (2) 1 lần 0 lần Nhớ (3) 0 lần 1 lần Anh (3) 0 lần 1 lần Quá (4) (3) 1 lần 1 lần Vui (4) 1 lần 0 lần

Term frequency TF(t,d) xác định số lần từ t xuất hiện trong cảm xúc d.

tích cực 01 lần, trong khi nĩ xuất hiện ở cảm xúc tiêu cực 10 lần thì khơng cĩ nghĩa

là từ nghe phù hợp với cảm xúc tiêu cực gấp 10 lần cảm xúc tích cực (tỷ lệ thuận).

Do đĩ ta cĩ phương pháp tính trọng số tần suất logarit (log-frequency) Log-frequency của một từ t trong cảm xúc d được tính như sau:

w(t,d) = 1 + log(TF(t,d)) Với tf(t,d)>0. Ngược lại w(t,d) = 0 (adsbygoogle = window.adsbygoogle || []).push({});

Do đĩ, một từ xuất hiện trong tài liệu: 01 lần cĩ w = 1.

02 lần cĩ w = 1.3 10 lần w = 2 1000 lần w = 4 …..

Cách tính điểm q cho một bình luận được tính bằng tổng của các trọng số của

từ các từ ttrong cả cảm xúcd

q=∑ t∈q∩d( 1 + log ( tf(t,d)) )

Điểm này sẽ bằng 0 nếu như khơng cĩ từ nào xuất hiện trong các bình luận đã được phân loại cảm xúc trước đĩ. Cụ thể ở hình 2.10

Cột (1) đầu tiên là danh sách túi từ cĩ thể xuất hiện trong tất cả các bình luận. Cột (3) thể hiện tần xuất xuất hiện hay khơng xuất hiện của các từ đĩ trong

mỗi cảm xúc. Ví dụ từ "nghe" xuất hiện ở cảm xúc tích cực 1 lần và xuất hiện ở

cảm xúc tiêu cực 2 lần.

Cột (4) là trọng số của từ t đối với mỗi cảm xúc tích cực/tiêu cực.

Cột (5) xác định xem các từ trong bình luận số (5) cĩ xuất hiện trong tập từ mà ta học từ trước khơng.

Bảng 2.10: Bảng tính score của mỗi từ vựng trong VSM

Cột (1) Cột (3)

Tần suất xuất hiện trong mỗi cảm xúc Cột (4)

w(t,d)=1+log(tf(t,d)) Cột (5) Bài hát làm nhớ anh Tích cực Tiêu cực Tích cực Tiêu cực Nghe 1 lần 2 lần 1 1.3 Bài 2 lần 2 lần 1.3 1.3 x Hát 2 lần 2 lần 1.3 1.3 x Rất 0 lần 1 lần 0 1 Buồn 0 lần 2 lần 0 1.3 Cảm 1 lần 0 lần 1 0 Thấy 2 lần 0 lần 1.3 0 Yêu 2 lần 0 lần 1.3 0 Đời 2 lần 0 lần 1.3 0 Hơn 1 lần 0 lần 1 0

Khi 1 lần 0 lần 1 0

Nhớ 0 lần 1 lần 0 1 x

Anh 0 lần 1 lần 0 1 x

Quá 1 lần 1 lần 1 1

Vui 1 lần 0 lần 1 0

Như vậy, với bình luận (5) ta cĩ thể tính được điểm của nĩ với mỗi cảm xúc như sau :

q((5),tích cực) = 1.3 + 1.3 + 0 + 0 = 2.6 q((5], tiêu cực) = 1.3 + 1.3 + 1 + 1 = 4.6

Như vậy, ta cĩ thể xếp loại bình luận [5] vào nhĩm bình luận cĩ cảm xúc tiêu

cực vì q((5], tiêu cực) > q((5),tích cực).

Những từ hiếm thì quan trọng hơn những từ cĩ tần xuất xuất hiện cao. Trong mỗi ngơn ngữ cĩ những từ lặp đi lặp lại nhiều lần nhưng vơ nghĩa được gọi là stopwords. Những từ này khơng cĩ giá trị quyết định cảm xúc của bình luận được phân loại theo lớp nào. Đối với TF, thì những từ càng xuất hiện nhiều thì cĩ điểm càng cao, cịn những từ hiếm thì điểm xếp hạng lại thấp hơn. Do đĩ chúng ta cần một cách đánh giá khác với các từ hiếm, vì nĩ sẽ mang nhiều thơng tin hơn là những từ phổ biến trong văn bản.

Ví dụ khi craw dữ liệu từ các website âm nhạc về thì từ khĩa “bài”, “hát” sẽ cĩ khả năng cĩ mặt hầu hết trong tất cả các bình luận. Để hạn chế nhược điểm này, ta cần cĩ cơ chế để giảm thiểu sự ảnh hưởng của các từ này. Ý tưởng là giảm trọng số của từ nào cĩ TF cao, bằng cách lấy tổng số cảm xúc (N) chia cho số cảm xúc mà một từ xuất hiện.

Giá trị IDF: biểu diễn tần suất nghịch của một từ trong một tập các văn bản. Mục đích của giá trị IDF là để bỏ qua những từ khơng quan trọng trong văn bản nhưng tần suất xuất hiện của chúng khá cao (stopwords). Cơng thức tính giá trị IDF của từ t trong tập văn bản D như sau:

IDF(t)= log10(N / DF(t))

Trong đĩ N là tổng số cảm xúc cĩ thể cĩ. Trong trường hợp ta đang xét cụ thể N=2.

nhiều trong một lớp cảm xúc nhất định và xuất hiện ít trong các lớp cảm xúc cịn lại. Việc này giúp lọc ra những từ phổ biến và giữ lại những từ cĩ giá trị cao của văn bản đĩ. Ví dụ ở bảng 2.11 ta cĩ thể giữ lại các từ cĩ IDF lớn hơn 0.3. Và bỏ các từ khơng mấy ý nghĩa đi như “Nghe”, “Bài”, “Hát”, … cĩ IDF = 0. (adsbygoogle = window.adsbygoogle || []).push({});

Cột (1) là danh sách túi từ cĩ thể xuất hiện trong tất cả các bình luận.

Cột (3) thể hiện tần xuất xuất hiện hay khơng xuất hiện của các từ đĩ trong

mỗi cảm xúc. Ví dụ từ "nghe" xuất hiện ở cảm xúc tích cực 1 lần và xuất hiện ở

cảm xúc tiêu cực 2 lần.

Cột (6) là giá trị IDF của từ t. Nếu IDF > 0 nghĩa là từ t cĩ mang giá trị quyết định tới nhãn tích cực hay tiêu cực của cảm xúc

Như vậy, với bình luận số (5) ta cĩ thể tính lại được điểm của nĩ với mỗi cảm xúc như sau :

q((5),tốt) = 0 + 0 = 0 q((5), tiêu cực) =1 + 1 = 2

Và kết luận được đây là cảm xúc tiêu cực vì q((5], tiêu cực) > q((5),tích cực).

Bảng 2.11: Bảng tính IDF mỗi từ vụng trong VSM

Cột (1) Cột (3)

Tần suất xuất hiện trong mỗi cảm xúc

Cột (6) IDF(t)=log10(N/DF(t)) Tích cực Tiêu cực Nghe 1 2 0 Bài 2 2 0 Hát 2 2 0 Rất 0 1 0.3 Buồn 0 2 0.3 Cảm 1 0 0.3 Thấy 2 0 0.3 Yêu 2 0 0.3 Đời 2 0 0.3 Hơn 1 0 0.3 Khi 1 0 0.3 Nhớ 0 1 0.3 Anh 0 1 0.3 Quá 1 1 0 Vui 1 0 0.3 Áp dụng giải thuật:

Code chi tiết phần trích chọn đặc trưng theo mơ hình khơng gian vec-tơ (VSM) tại project EmotionClassifications đính kèm trong phụ lục 01, file TestVSMMain.java. Chương trình sẽ chạy gồm 2 bước:

• VSM_Caculate_TF_IDF

• VSM_MakeArffWithScore

Tại bước VSM_Caculate_TF_IDF, chương trình thực hiện liệt kê các từ xuất hiện trong tất cả các bình luận để tạo ta túi từ vựng. Với mỗi từ, chương trình sẽ thực hiện tính tốn

• TF_Positive: tần xuất xuất hiện của một từ trong các bình luận được phân

loại cĩ cảm xúc tích cực.

• TF_Negative: tần xuất xuất hiện của từ đĩ trong các bình luận được phân

loại cĩ cảm xúc tiêu cực.

• Score_Positive: Điểm của một từ trong phân loại cảm xúc tích cực. Điểm

càng cao chứng tỏ từ đĩ xuất hiện nhiều trong cảm xúc này, và cĩ vị trí quan trọng. Cách tính điểm đã trình bày trong mục 2.1.2 của luận văn.

• Score_Negative: Điểm của một từ trong phân loại cảm xúc tiêu cực.

• IDF: Một từ cĩ IDF > 0 thì Score của nĩ mới cĩ ý nghĩa quyết định tới

kết quả phân loại, ngược lại thì giá trị score vơ nghĩa.

Sau khi thực hiện bước này, ta được kết quả lưu vào database như hình 2.7

Hình 2.7. Kết quả tính tốn TF, IDF với mơ hình VSM

Tại bước VSM_MakeArffWithScore, ta xây dựng vec-tơ đặc trưng. Mỗi bình luận sẽ được tính score xem nĩ thuộc phân loại cảm xúc tích cực hay cảm xúc tiêu cực. Trong file miêu tả .arff, vec-tơ lúc này chỉ cịn một thuộc tính với 3 giá trị 1 –

cảm xúc tích cực, 2 – cảm xúc tiêu cực, 0 – chưa xác định. Các vec-tơ được xây dựng theo 3 nhĩm: nhạc trẻ, nhạc cách mạng và cả hai loại trên.

Hình 2.8. Kết quả trích chọn đặc trưng với mơ hình VSM (adsbygoogle = window.adsbygoogle || []).push({});

Kết quả của phần này ta được 3 file vsm_all.arff, vsm_nhactre.arff,

vsm_cachmang.arff trong phụ lục số 02.

Một phần của tài liệu Phân loại cảm xúc người dùng trong mạng xã hội (Trang 31 - 39)