Các phương pháp phân loại văn bản

Một phần của tài liệu NGHIÊN CỨU MÔ HÌNH WORD2VEC ĐỂ PHÂN TÍCH CẢM XÚCTài liệu (Trang 34 - 47)

CHƯƠNG 1 CƠ SỞ LÝ THUYẾT

1.4. Phương pháp phân loại văn bản

1.4.2. Các phương pháp phân loại văn bản

1.4.2.1. Phương pháp Support Vector Machine (SVM)

SVM là phương pháp phân loại rất hiệu quả được Vapnik giới thiệu năm 1995. Ý tưởng của phương pháp là cho trước một tập huấn luyện được biểu diễn trong khơng gian vector, trong đĩ mỗi một văn bản được xem như một điểm trong khơng gian này. Phương pháp này tìm ra một siêu mặt phẳng h quyết định tốt nhất cĩ thể chia các điểm trên khơng gian này thành hai lớp riêng biệt tương ứng, tạm gọi là lớp + (cộng) và lớp – (trừ). Chất lượng của siêu mặt phẳng này được quyết định bởi một khoảng cách (được gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng này. Khoảng cách biên càng lớn thì càng cĩ sự phân chia tốt các điểm ra thành hai lớp, nghĩa là sẽ đạt được kết quả phân loại tốt. Mục tiêu của thuật tốn SVM là tìm được khoảng cách biên lớn nhất để tạo kết quả phân loại tốt.

@tag acronyms

emotions #hashtag URL

ThS. Nguyễn Thị Thúy Hồi Trang 25

Hình 0-7: Phân tích bài tốn SVM

Giả sử rằng các cặp dữ liệu của training set là (x1,y1), (x2,y2), …, (xN,yN) với vector xi∈Rd thể hiện đầu vào của một điểm dữ liệu và yiyi là nhãn của điểm dữ liệu đĩ. dd là số chiều của dữ liệu và N là số điểm dữ liệu. Giả sử rằng nhãn của mỗi điểm dữ liệu được xác định bởi yi = 1 (class 1) hoặc yi = −1 (class 2) giống như trong PLA.

Để giúp các bạn dễ hình dung, chúng ta cùng xét trường hợp trong khơng gian hai chiều dưới đây. Khơng gian hai chiều để các bạn dễ hình dung, các phép tốn

hồn tồn cĩ thể được tổng quát lên khơng gian nhiều chiều.

Giả sử rằng các điểm vuơng xanh thuộc class 1, các điểm trịn đỏ thuộc class - 1 và mặt wTx + b = w1x1 + w2x2 + b = 0 là mặt phân chia giữa hai classes. Hơn nữa, class 1 nằm về phía dương, class -1 nằm về phía âm của mặt phân chia. Nếu ngược lại, ta chỉ cần đổi dấu của w và b. Chú ý rằng chúng ta cần đi tìm các hệ số w và b.

Ta quan sát thấy một điểm quan trọng sau đây: với cặp dữ liệu (xn,yn) bất kỳ, khoảng cách từ điểm đĩ tới mặt phân chia là:

(2.1) Điều này cĩ thể dễ nhận thấy vì theo giả sử ở trên, yn luơn cùng dấu với phía của xn. Từ đĩ suy ra yn cùng dấu với (wTxn+b), và tử số luơn là 1 số khơng âm.

ThS. Nguyễn Thị Thúy Hồi Trang 26 Với mặt phần chia như trên, margin được tính là khoảng cách gần nhất từ 1 điểm tới mặt đĩ (bất kể điểm nào trong hai classes):

(2.2) Bài tốn tối ưu trong SVM chính là bài tốn tìm w và b sao cho margin này đạt giá trị lớn nhất:

(2.3) Việc giải trực tiếp bài tốn này sẽ rất phức tạp, nhưng sẽ thấy cĩ cách để đưa nĩ về bài tốn đơn giản hơn.

Nhận xét quan trọng nhất là nếu ta thay vector hệ số w bởi kw và b bởi kb trong đĩ k là một hằng số dương thì mặt phân chia khơng thay đổi, tức khoảng cách từ từng điểm đến mặt phân chia khơng đổi, tức margin khơng đổi. Dựa trên tính chất này, ta cĩ thể giả sử:

(2.4) với những điểm nằm gần mặt phân chia nhất

Như vậy, với mọi n, ta cĩ:

(2.5) Vậy bài tốn tối ưu cĩ thể đưa về bài tốn tối ưu cĩ ràng buộc sau đây:

(2.6)

Bằng 1 biến đổi đơn giản, ta cĩ thể đưa bài tốn này về bài tốn dưới đây:

ThS. Nguyễn Thị Thúy Hồi Trang 27 Ở đây, chúng ta đã lấy nghịch đảo hàm mục tiêu, bình phương nĩ để được một hàm khả vi, và nhân với ½ để biểu thức đạo hàm đẹp hơn.

1.4.2.2. Phương pháp K-Nearest Neighbor (KNN)

K-Nearest Neighbor là phương pháp truyền thống khá nổi tiếng theo hướng tiếp cận thống kê đã được nghiên cứu trong nhiều năm qua. KNN được đánh giá là một trong những phương pháp tốt nhất được sử dụng từ những thời kỳ đầu trong nghiên cứu về phân loại văn bản. Ý tưởng của phương pháp này đĩ là khi cần phân loại một văn bản mới, thuật tốn sẽ xác định khoảng cách (cĩ thể áp dụng các cơng thức về khoảng cách như Euclide, Cosine, Manhattan, …) của tất cả các văn bản trong tập huấn luyện đến văn bản này để tìm ra K văn bản gần nhất, gọi là K Nearest Neighbor – K láng giềng gần nhất, sau đĩ dùng các khoảng cách này đánh trọng số cho tất cả các chủ đề. Khi đĩ, trọng số của một chủ đề chính là tổng tất cả các khoảng cách ở trên của các văn bản trong K láng giềng cĩ cùng chủ đề, chủ đề nào khơng xuất hiện trong K láng giềng sẽ cĩ trọng số bằng 0. Sau đĩ các chủ đề sẽ được sắp xếp theo giá trị trọng số giảm dần và các chủ đề cĩ trọng số cao sẽ được chọn làm chủ đề của văn bản cần phân loại.

K-nearest neighbor là một trong những thuật tốn supervised-learning đơn giản nhất (mà hiệu quả trong một vài trường hợp) trong Machine Learning. Khi training, thuật tốn này khơng học một điều gì từ dữ liệu training (đây cũng là lý do thuật tốn này được xếp vào loại lazy learning), mọi tính tốn được thực hiện khi nĩ cần dự đốn kết quả của dữ liệu mới. K-nearest neighbor cĩ thể áp dụng được vào cả hai loại của bài tốn Supervised learning là Classification và Regression. KNN cịn được gọi là một thuật tốn Instance-based hay Memory-based learning.

Cĩ một vài khái niệm tương ứng người-máy như sau: Bảng 2-1 Bảng khái niệm tương ứng giữa người và máy

Ngơn ngữ người Ngơn ngữ Máy Học Trong máy học

Câu hỏi Điểm dữ liệu Data point

Đáp án Đầu ra, nhãn Output, Label

Ơn thi Huấn luyện Training

ThS. Nguyễn Thị Thúy Hồi Trang 28

Ngơn ngữ người Ngơn ngữ Máy Học Trong máy học

phịng thi

Đề thi Tập dữ liểu kiểm thử Test set

Câu hỏi trong dề thi Dữ liệu kiểm thử Test data point

Câu hỏi cĩ đáp án sai Nhiễu Noise, Outlier

Câu hỏi gần giống Điểm dữ liệu gần nhất Nearest Neighbor

Với KNN, trong bài tốn Classification, label của một điểm dữ liệu mới (hay kết quả của câu hỏi trong bài thi) được suy ra trực tiếp từ K điểm dữ liệu gần nhất trong training set. Label của một test data cĩ thể được quyết định bằng major voting (bầu chọn theo số phiếu) giữa các điểm gần nhất, hoặc nĩ cĩ thể được suy ra bằng cách đánh trọng số khác nhau cho mỗi trong các điểm gần nhất đĩ rồi suy ra label. Chi tiết sẽ được nêu trong phần tiếp theo.

Trong bài tốn Regresssion, đầu ra của một điểm dữ liệu sẽ bằng chính đầu ra của điểm dữ liệu đã biết gần nhất (trong trường hợp K=1), hoặc là trung bình cĩ trọng số của đầu ra của những điểm gần nhất, hoặc bằng một mối quan hệ dựa trên khoảng cách tới các điểm gần nhất đĩ.

Một cách ngắn gọn, KNN là thuật tốn đi tìm đầu ra của một điểm dữ liệu mới bằng cách chỉ dựa trên thơng tin của K điểm dữ liệu trong training set gần nĩ nhất (K-lân cận), khơng quan tâm đến việc cĩ một vài điểm dữ liệu trong những điểm gần nhất này là nhiễu. Hình dưới đây là một ví dụ về KNN trong classification với K = 1.

ThS. Nguyễn Thị Thúy Hồi Trang 29

Hình 0-8: Bản đồ của 1NN

Ví dụ trên đây là bài tốn Classification với 3 classes: Đỏ, Lam, Lục. Mỗi điểm dữ liệu mới (test data point) sẽ được gán label theo màu của điểm mà nĩ thuộc về. Trong hình này, cĩ một vài vùng nhỏ xem lẫn vào các vùng lớn hơn khác màu. Ví dụ cĩ một điểm màu Lục ở gần gĩc 11 giờ nằm giữa hai vùng lớn với nhiều dữ liệu màu Đỏ và Lam. Điểm này rất cĩ thể là nhiễu. Dẫn đến nếu dữ liệu test rơi vào vùng này sẽ cĩ nhiều khả năng cho kết quả khơng chính xác.

Trong khơng gian một chiều, khoảng cách giữa hai điểm là trị tuyệt đối giữa hiệu giá trị của hai điểm đĩ. Trong khơng gian nhiều chiều, khoảng cách giữa hai điểm cĩ thể được định nghĩa bằng nhiều hàm số khác nhau, trong đĩ độ dài đường thằng nổi hai điểm chỉ là một trường hợp đặc biệt trong đĩ. Nhiều thơng tin bổ ích (cho Machine Learning) cĩ thể được tìm thấy tại Norms (chuẩn) của vector trong tab Math.

1.4.2.3. Phương pháp Linear Least Square Fit (LLSF)

LLSF là một cách tiếp cận ánh xạ được phát triển bởi Yang và Chute vào năm 1992. Ban đầu LLSF được thử nghiệm trong lĩnh vực xác định từ đồng nghĩa sau đĩ

ThS. Nguyễn Thị Thúy Hồi Trang 30 sử dụng trong phân loại vào năm 1994. Các thử nghiệm cho thấy hiệu suất phân loại của LLSF cĩ thể ngang bằng với phương pháp KNN kinh điển.

Ý tưởng của LLSF là sử dụng phương pháp hồi quy để học từ tập huấn luyện và các chủ đề cĩ sẵn.

Tập huấn luyện được biểu diễn dưới dạng một cặp vector đầu vào và đầu ra như sau:

- Vector đầu vào là một văn bản bao gồm các từ và trọng số.

- Vector đầu ra gồm các chủ đề cùng với trọng số nhị phân của văn bản ứng với vector đầu vào .

1.4.2.4. Phương pháp Centroid – based vector

Là một phương pháp phân loại đơn giản, dễ cài đặt và tốc độ nhanh do cĩ độ phức tạp tuyến tính O(n).

Ý tưởng của cách tiếp cận này là mỗi lớp trong dữ liệu huấn luyện sẽ được biểu diễn bằng một vector trọng tâm. Việc xác định lớp của một văn bản bất kỳ sẽ thơng qua việc tìm vector trọng tâm nào gần với vector biểu diễn văn bản thứ nhất. Lớp của văn bản chính là lớp mà vector trọng tâm đại diện và khoảng cách được xác định theo độ đo Cosine.

1.4.2.5. Phân loại Nạve Bayes

Nạve Bayes là giải thuật dựa trên xác suất cĩ điều kiện và được ứng dụng rất rộng rãi bởi tính dễ hiểu và dễ triển khai, do đĩ đề tài này sẽ áp dụng giải thuật để xây dựng chương trình phân loại văn bản. Ý tưởng của chương trình là sẽ tính xác suất cĩ điều kiện các từ xuất hiện trong văn bản cần xác định thuộc về loại văn bản nào đã được học trước đĩ. Nếu xác suất thuộc về lớp nào lớn hơn thì văn bản đĩ thuộc về lớp đĩ.

ThS. Nguyễn Thị Thúy Hồi Trang 31

Hình 0-9: Biểu đồ cách làm việc của Naive Bayes

Để phân loại được văn bản thì chúng ta phải cho máy tính học thế nào là văn bản mang tính tích cực - thế nào là văn bản mang tính tiêu cực (gọi tắt là lớp khơng mang tính tích cực). Bước cho máy tính học được gọi là bước huấn luyện (train). Bước phân loại văn bản thuộc lớp nào được gọi là bước phân lớp( test).

Thuật tốn

Dựa trên định lý Bayes (Bayes theorem)

(2.8) Áp dụng trong bài tốn phân loại, các dữ kiện gồm cĩ:

▪ D: tập dữ liệu huấn luyện đã được vector hĩa dưới dạng ▪ Ci: phân lớp i, với i = {1,2,…,m}.

▪ Các thuộc tính độc lập điều kiện đơi một với nhau. Theo định lý Bayes:

(2.9) Theo tính chất độc lập điều kiện:

(2.10) Trong đĩ:

ThS. Nguyễn Thị Thúy Hồi Trang 32 là xác suất thuộc phân lớp i khi biết trước mẫu X.

xác suất là phân lớp i.

xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc phân lớp i.

Các bước thực hiện thuật tốn

Bước 1: Huấn luyện Naïve Bayes (dựa vào tập dữ liệu), tính và

Ở bước huấn luyện này chủ yếu là tính và

Đầu vào của chương trình là đoạn văn bản được gán nhãn thuộc về một chủ đề đã được lựa chọn. Trong báo cáo này thì chủ để được lựa chọn là cơng nghệ. Do đĩ những đoạn văn bản thuộc về chủ đề cơng nghệ thì được gán nhãn là 1, những đoạn văn bản khơng thuộc chủ đề cơng nghệ được gán nhãn là 0.

Đầu ra của chương trình là các trị xác suất và .

Bước 2: Phân lớp , ta cần tính xác suất thuộc từng phân lớp khi đã biết trước Xnew. Xnew được gán vào lớp cĩ xác suất lớn nhất theo cơng thức

Đầu vào của chương trình là đoạn văn bản cần phân loại. Đầu ra là nhãn / lớp của văn bản cần phân loại.

Đánh giá

Sau khi phân lớp cho các văn bản, chúng ta phải xem xét xem chương trình áp dụng giải thuật này phân lớp văn bản đúng được bao nhiêu phần trăm. Để đánh giá độ chính xác, thường thì lập bản thống kê sau:

ThS. Nguyễn Thị Thúy Hồi Trang 33 Lớp thực thi (Giám sát) Lớp dự đốn (mong đợi) tp (Đúng của tính tích cực) Kết quả mong muốn

fp

(Sai của tính tích cực) Kết quả khơng mong muốn

fn

(Sai của tính tiêu cực) Kết quả thiếu

tn

(Đúng của tính tiêu cực) Kết quả thiếu chính xác Trong đĩ:

a: số đối tượng thuộc về lớp đang xét được phân đúng vào lớp.

b: số đối tượng khơng thuộc về lớp đang xét nhưng được phân vào lớp đĩ. c: số đối tượng thuộc về lớp đang xét nhưng được bộ phân lớp loại khỏi lớp đĩ.

d: số đối tượng khơng thuộc vào lớp đang xét và được bộ phân lớn loại khỏi lớp đĩ.

Để đánh giá chất lượng độ phân lớp. Trong bài báo cáo này sử dụng 2 độ đo là độ chính xác (Precision) và độ phủ (Recall)

ThS. Nguyễn Thị Thúy Hồi Trang 34

Ví dụ về bài tốn Lọc thư rác

Mơ tả dữ liệu:

Tập dữ liệu này bao gồm tổng cộng 960 emails tiếng Anh, được tách thành tập training và test theo tỉ lệ 700:260, 50% trong mỗi tập là các spam emails.

Dữ liệu trong cơ sở dữ liệu này đã được xử lý khá đẹp. Các quy tắc xử lý như sau:

Loại bỏ stop words: Những từ xuất hiện thường xuyên như ‘and’, ‘the’, ‘of’, … được loại bỏ.

Lemmatization: Những từ cĩ cùng ‘gốc’ được đưa về cùng loại. Ví dụ, ‘include’, ‘includes’, ‘included’ đều được đưa chung về ‘include’. Tất cả các từ cũng đã được đưa về dạng ký tự thường (khơng phải HOA).

Loại bỏ non-words: Số, dấu câu, ký tự ‘tabs’, ký tự ‘xuống dịng’ đã được loại bỏ.

Dưới đây là một ví dụ của 1 email khơng phải spam, trước khi được xử lý: Subject: Re: 5.1344 Native speaker intuitions

The discussion on native speaker intuitions has been extremely interesting, but I worry that my brief intervention may have muddied the waters. I take it that there are a number of separable issues. The first is the extent to

ThS. Nguyễn Thị Thúy Hồi Trang 35 which a native speaker is likely to judge a lexical string as grammatical

or ungrammatical per se. The second is concerned with the relationships between syntax and interpretation (although even here the distinction may not be entirely clear cut).

và sau khi được xử lý:

re native speaker intuition discussion native speaker intuition extremely interest worry brief intervention muddy waters number separable issue first extent native speaker likely judge lexical string grammatical ungrammatical per se second concern relationship between syntax interpretation although even here distinction entirely clear cut

Và đây là một ví dụ về spam email sau khi được xử lý:

financial freedom follow financial freedom work ethic extraordinary desire earn least per month work home special skills experience required train personal support need ensure success legitimate homebased income opportunity put back control finance life ve try opportunity past fail live promise

Chúng ta thấy rằng trong đoạn này cĩ các từ như: financial, extraordinary, earn, opportunity, … là những từ thường thấy trong các email spam.

Trong ví dụ này, chúng ta sẽ sử dụng Naive Bayes.

Để cho bài tốn được đơn giản hơn, tiếp tục sử dụng dữ liệu đã được xử lý, cĩ thể được download ở đây: ex6DataPrepared.zip. Trong folder sau khi giải nén, chúng ta sẽ thấy các files: test-features.txt test-labels.txt train-features-50.txt train-features-100.txt train-features-400.txt train-features.txt train-labels-50.txt train-labels-100.txt

ThS. Nguyễn Thị Thúy Hồi Trang 36 train-labels-400.txt

train-labels.txt

tương ứng với các file chứa dữ liệu của tập training và tập test. File train- features-50.txt chứa dữ liệu của tập training thu gọn với chỉ cĩ tổng cộng 50 training emails.

Mỗi file *labels*.txt chứa nhiều dịng, mỗi dịng là một ký tự 0 hoặc 1 thể hiện email là non-spam hoặc spam.

Mỗi file *features*.txt chứa nhiều dịng, mỗi dịng cĩ 3 số, ví dụ: 1 564 1

1 19 2

trong đĩ số đầu tiên là chỉ số của email, bắt đầu từ 1; số thứ hai là thứ tự của từ trong từ điển (tổng cộng 2500 từ); số thứ ba là số lượng của từ đĩ trong email đang

Một phần của tài liệu NGHIÊN CỨU MÔ HÌNH WORD2VEC ĐỂ PHÂN TÍCH CẢM XÚCTài liệu (Trang 34 - 47)

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

(62 trang)