Tĩm tắt đồ án Ph ần này trình bày sơ lược về bài tốn “Phân loại văn bản” được đề cập đến trong cuốn sách “Foundations Of Statistical Natural Language Processing ” và các phương pháp đ
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN
KHOA CÔNG NGHỆ THÔNG TIN
Dựa trên tài liệu:
Foundations Of Statistical Natural Language
Processing
Christopher D.Manning, Hinrich Schutze
TP.HCM – 01/2011
Trang 21 Tĩm tắt đồ án 1
2 Bài tốn phân loại văn bản 2
2.1 Giới thiệu 2
2.2 Phát biểu bài tốn 2
2.3 Mơ hình tổng quát 3
2.3.1 Giai đoạn huấn luyện 4
2.3.2 Giai đoạn phân lớp 5
2.4 Tiền xử lý văn bản 6
2.5 Phương pháp biểu diễn văn bản 7
2.5.1 Mơ hình khơng gian vector 7
2.5.2 Khái niệm trọng số 7
2.6 Đánh giá bộ phân lớp 9
2.6.1 Macro-Averaging 11
2.6.2 Micro-Averaging 11
3 Các phương pháp phân loại văn bản 12
3.1 Thuật tốn Nạve Bayes 12
3.1.1 Định lý 12
3.1.2 Thuật tốn 13
3.1.3 Áp dụng trong phân loại văn bản 15
3.2 Cây quyết định (Decision Tree) 18
3.2.1 Khái niệm 18
3.2.2 Thuật tốn xây dựng cây 19
3.2.2.1 Thuật tốn ID3 19
3.2.2.2 Các độ đo trong thuật tốn : 20
Trang 33.2.3.1 Biểu diễn văn bản 23
3.2.3.2 Giai đoạn huấn luyện 24
3.2.3.3 Cross-validation 28
3.2.3.4 Giai đoạn phân lớp 29
3.3 Mô hình xác xuất Entropy tối đại (Maximum Entropy Modeling) 29
3.3.1 Entropy 29
3.3.1.1 Khái niệm 29
3.3.1.2 Entropy của biến ngẫu nhiên 30
3.3.2 Áp dụng vào phân loại văn bản 30
3.3.2.1 Biểu diễn văn bản 30
3.3.2.2 Hàm đặc trưng và ràng buộc 31
3.3.2.3 Một số kí hiệu : 31
3.3.2.4 Mô hình 31
3.3.2.5 Thủ tục huấn luyện Generalized iterative scaling 32
3.3.2.6 Giai đoạn phân lớp 34
5 Tài liệu tham khảo 35
Trang 41 Tĩm tắt đồ án
Ph ần này trình bày sơ lược về bài tốn “Phân loại văn bản” được đề
cập đến trong cuốn sách “Foundations Of Statistical Natural
Language Processing ” và các phương pháp để thực thi bài tốn phân loại văn bản theo phương pháp thống kê
Phân loại văn bản là một vấn đề quan trọng trong lĩnh vực xử lý ngơn ngữ Nhiệm vụ của bài tốn này là gán các tài liệu văn bản vào nhĩm các chủ đề cho trước Đây là một bài tốn rất thường gặp trong thực tế điển hình như : một nhà chuyên phân tích thị thường chứng khốn, anh ta cần phải tổng hợp rất nhiều tài liệu, bài viết về thị trường chứng khốn để đọc và đưa ra phán đốn của mình Tuy nhiên, anh ta khơng thể đọc tất cả các bài viết, bài báo hay các tài liệu để rồi phân loại chúng đâu là tài liệu chứng khốn sau đĩ anh ta mới đọc kỹ chúng cho mục đích của anh ta Lý do của vấn đề này là bởi ví số lượng bào viết, bài báo hiện nay rất nhiều, đặc biệt là trên internet, nếu để đọc hết được tất cả tài liệu đĩ thì sẽ mất rất nhiều thời gian Một ví dụ khác trong thực tế là việc phân loại spam mail Khi một mail được gửi đến hộp thư, nếu để người dùng phải đọc tất cả các mail thì sẽ tốn rất nhiều thời gian vì spam mail rất nhiều Vì vậy, cần cĩ một hệ thống phân loại đâu là spam mail và đâu là mail tốt
Để giải bài tốn này đã cĩ rất nhiều phương pháp được đưa ra như : thuật tốn Nạve Bayes, K-NN (K-Nearest-Neighbor), Cây quyết định (Decision Tree), Mạng Neuron nhân tạo (Artificial Neural Network) và SVM (Support Vector Machine) Mỗi phương pháp đều cho kết quả khá tốt cho bài tốn này, tuy nhiên
để cĩ được sự so sánh đầy đủ, ở các phân sau chúng ta sẽ đi vào chi tiết từng phương pháp
Đồ án nêu ra chi tiết các bước thực hiện bài tốn “Phân Loại Văn Bản” trong
lĩnh vực xử lý ngơn ngữ tự nhiên và một số cách tiếp cận để giải quyết bài tốn cũng những kết quả đã đạt được dựa trên một số những ví dụ thử nghiệm của tác giả trong cuốn sách này
Trang 52 Bài toán phân loại văn bản
Phần này trình bày về chi tiết các bước thực hiện bài toán phân loại văn bản như mô hình biểu diễn, các độ đo cũng như các phương pháp đánh giá kết quả thực hiện bài toán phân loại văn bản
2.1 Giới thiệu
Như đã trình bày ở trên, bài toán phân loại văn bản là một bài toán quan trọng trong xử lý ngôn ngữ Có khá nhiều bài toán phân loại trong lĩnh vực xử lý ngôn ngữ tự nhiên như : gán nhãn từ loại (POS tagging), khử nhập nhằng nghĩa từ vựng (Word Sense Disambiguation) và gán nhãn ngữ tính từ (Prepositional Phrase Attachment)…
Mỗi bài toán phân loại đều có các đối tượng thao tác khác nhau và mục tiêu phân loại khác nhau Trong bài toán gán nhãn từ loại (POS tagging) và khử nhập nhằng nghĩa từ vựng (Word Sense Disambiguation), thì từ được xem là đối tượng nội dung cần thao tác (mức độ từ) Trong gán nhãn ngữ tính từ (Prepositional Phrase Attachment) thì một ngữ là đối tượng nội dung cần thao tác Còn trong bài toán phân loại văn bản thì một văn bản (document hay text) là đối tượng nội dung cần thao tác
Hình 2.1: Các bài toán phân loại trong xử lý ngôn ngữ tự nhiên
2.2 Phát biểu bài toán
Bài toán phân loại văn bản có thể được phát biểu như sau : Cho trước một tập văn bản D={d1,d2,…,dn} và tập chủ đề được định nghĩa C={c1,c2,…,cn}
Nhiệm vụ của bài toán là gán lớp di thuộc về cj đã được định nghĩa Hay nói cách khác, mục tiêu của bài toán là đi tìm hàm :
Trang 6 : DxC Boolean
( ) nếu d thuộc về lớp c ( ) nếu d không thuộc về lớp c
Trong các thử nghiệm của tác giả, ông đã sử dụng các bài viết tin tức của hãng tin Reuters, cũng như danh sách các chủ đề tin tức của hãng này
Hình 2.2: Ví dụ về một bản tin tức của Reuters
Các chủ đề tin tức của Hãng Reuters với hơn 100 chủ đề và số lượng bài viết (văn bản) tác giả sử dụng trong các thử nghiệm này là 12,902 bài viết
2.3 Mô hình tổng quát
Có rất nhiều hướng tiếp cận bài toán phân loại văn bản đã được nghiên cứu như: tiếp cận bài toán phân loại dựa trên lý thuyết đồ thị, cách tiếp cận sử dụng lý thuyết tập thô, cách tiếp cận thống kê… Tuy nhiên, tất cả các phương pháp trên đều dựa vào các phương pháp chung là máy học đó là : học có giám sát, học không giám sát và học tăng cường
Trang 7Vấn đề phân loại văn bản theo phương pháp thống kê dựa trên kiểu học có giám sát được đặc tả bao gồm 2 giai đoạn : giai đoạn huấn luyện và giai đoạn phân lớp
2.3.1 Giai đoạn huấn luyện
Chúng ta có một tập huấn luyện, mỗi phần tử trong tập huấn luyện được gán vào một hoặc nhiều lớp mà chúng ta sẽ thể hiện chúng bằng một mô hình mã hoá (được trình bày chi tiết ở Phương pháp biểu diễn văn bản) Thông thường, mỗi phần tử trong tập huấn luyện được thể hiện theo dạng ( ⃗⃗⃗ ) Trong đó, là vector biểu diễn cho văn bản trong tập huấn luyện
Sau đó, chúng ta định nghĩa một lớp mô hình và một thủ tục huấn luyện Lớp
mô hình là họ các tham số của bộ phân loại, thủ tục huấn luyện là một giải thuật (hay thuật toán) để chọn ra một họ các tham số tối ưu cho bộ phân loại Nhưng làm thế nào để đánh giá được họ các tham số là tối ưu ? Câu hỏi này sẽ được trình bày trong phần Đánh giá bộ phân lớp
Hình 2.3: Mô hình giai đoạn huấn luyện
Đầu vào : ngữ liệu huấn luyện và thuật toán huấn luyện
Đầu ra : mô hình phân lớp (bộ phân lớp – classifier)
Một ví dụ về một họ các tham số cho bộ phân loại nhị phân : ( ) ⃗⃗
Ở đây, bộ phân loại nhị phân chỉ phân loại cho 2 lớp Chúng ta gọi lớp c1 là lớp với các văn bản có ( ) và lớp c2 là lớp với các văn bản có ( ) .Họ các tham số cần xác định là vector ⃗⃗ và ngưỡng
Chi tiết giai đoạn huấn luyện bộ phân lớp
Trang 8Hình 2.4: Chi tiết giai đoạn huấn luyện
Vector hoá : mã hoá văn bản bởi một mô hình trọng số (chi tiết ở phần
Phương pháp biểu diễn văn bản)
Trích ch ọn đặc trưng : loại bỏ những từ (đặc trưng) không mang
thông tin khỏi tài liệu nhằm nâng cao hiệu suất phân loại và giảm độ phức tạp của thuật toán huấn luyện
Thu ật toán huấn luyện : Thủ tục huấn luyện bộ phân lớp để tìm ra họ
các tham số tối ưu
Đánh giá : bước đánh giá hiệu suất (chất lượng) của bộ phân lớp (chi
tiết trong phần Đánh giá bộ phân lớp)
Thủ tục huấn luyện sẽ được thực thi lặp nhiều lần để tìm họ các tham số tối
ưu sau mỗi lần lặp Tuy nhiên, do ban đầu họ các tham số được gán với một giá trị khởi tạo, do đó nếu giá trị khởi tạo ban đầu được gán sai thì kết quả tối ưu của
họ các tham số có thể chỉ là tối ưu cục bộ
2.3.2 Giai đoạn phân lớp
Sau khi đã hoàn thành giai đoạn huấn luyện, mô hình phân lớp sẽ được áp dụng cho các văn bản mới cần phân loại
Trang 9Hình 2.5: Mô hình giai đoạn phân lớp
Chi tiết giai đoạn phân lớp
Hình 2.6: Mô hình giai đoạn phân lớp
2.4 Tiền xử lý văn bản
Văn bản trước khi được vector hoá, tức là trước khi sử dụng, cần phải được tiền xử lý Quá trình tiền xử lý sẽ giúp nâng cao hiệu suất phân loại và giảm độ phức tạp của thuật toán huấn luyện
Tuỳ vào mục đích bộ phân loại mà chúng ta sẽ có những phương pháp tiền
xử lý văn bản khác nhau, như :
Chuyển vẳn bản về chữ thường
Loại bỏ dấu câu (nếu không thực hiện tách câu)
Loại bỏ các kí tự đặc biệt biệt([ ],[.], [,], [:], [“], [”], [;], [/], [[]], [~], [`], [!], [@], [#], [$],[%],[^],[&],[*],[(],[)]), các chữ số, phép tính toán số học
Loại bỏ các stopword (những từ xuất hiện hầu hết trong các văn bản) không có ý nghĩa khi tham gia vào phân loại văn bản
Trang 102.5 Phương pháp biểu diễn văn bản
Một trong những nhiệm vụ đầu tiền trong việc xử lý phân loại văn bản là chọn được một mô hình biểu diễn văn bản thích hợp Một văn bản ở dạng thô (dạng chuỗi) cần được chuyển sang một mô hình khác để tạo thuận lợi cho việc biểu diễn và tính toán Tuỳ thuộc vào từng thuật toán phân loại khác nhau mà chúng ta
có mô hình biểu diễn riêng Một trong những mô hình đơn giản và thường được
sử dụng trong nhiệm vụ này là mô hình không gian vector Một văn bản trong nhiệm vụ này được biểu diễn theo dạng , với là một vector n chiều để đo lường giá trị của phần tử văn bản
2.5.1 Mô hình không gian vector
Mô hình không gian vector là một trong những mô hình được sử dụng rộng rãi nhất cho việc tìm kiếm (truy hồi) thông tin Nguyên nhân chính là bởi vì sự đơn giản của nó
Trong mô hình này, các văn bản được thể hiện trong một không gian có số chiều lớn, trong đó mỗi chiều của không gian tương ứng với một từ trong văn bản Phương pháp này có thể biểu diễn một cách hình tượng như sau : mỗi văn bản D được biểu diễn dưới dạng (vector đặc trưng cho văn bản D) Trong đó, ( ), và n là số lượng đặc trưng hay số chiều của vector văn bản, là trọng số của đặc trưng thứ i (với 1 i n)
Như vậy, nếu trong kho ngữ liệu của quá trình huấn luyện nhiều văn bản, ta kí hiệu Dj, là văn bản thứ j trong tập ngữ liệu, và vector ⃗⃗⃗ ( ) là
vector đặc trưng cho văn bản Dj, và xij là trọng số thứ i của vector văn bản
2.5.2 Khái niệm trọng số
Một vấn đề quan trọng nữa trong việc biểu diễn một văn bản đó là tính trọng
số cho vector đặc trưng của văn bản Có nhiều cách khác nhau để tính trọng số này như :
Word frequency weighting
Boolean weighting
tf*idf weighting
Trang 11 Entropy weighting
Tuy nhiên, để đơn giản cho vấn đề này, chúng ta sẽ chỉ xem xét cách tính
Word frequency weighting (tr ọng số tần suất từ) và tf*idf, một cách đơn giản đó là
đếm số từ đó trong văn bản Tuy nhiên vẫn có nhiều cách khác nhau để tính trọng
số dạng này
Hình 2.7: Ba giá trị trong cách tính trọng số thuật ngữ (từ) thường dùng
Có ba thông tin được sử dụng trong cách tính trọng số bằng tần suất từ là : term frequency (tfij số lần suất hiện của từ wi trong văn bản dj), document frequency (dfi số văn bản có chứa từ wi), collection frequency (cfi số lần suất hiện của từ wi trong cả tập ngữ liệu) Trong đó, và ∑
Thông tin được nắm bắt bởi term frequency là sự nổi bật của thông tin (hay
từ) trong một văn bản Term frequency càng cao (số lần xuất hiện càng nhiều trong văn bản) thì đó là từ miêu tả tốt cho nội dung văn bản Giá trị thứ hai,
document frequency, có thể giải thích như là một bộ chỉ định nội dung thông tin Một từ được tập trung ngữ nghĩa thường xảy ra nhiều lần trong một văn bản nếu
nó cũng xuất hiện trong tất cả các văn bản khác Nhưng từ không được tập trung ngữ nghĩa trải đều đồng nhất trong tất cả các văn bản
Hãy xem xét một ví dụ sau, kho ngữ liệu của báo New York Times, và hai từ try và insurance được thống kế như sau :
Hai từ try và insurance có giá trị gần như nhau Nhưng ngược lại, với giá trị , từ insurance chỉ xuất hiện trong hẫu như chỉ một nửa kho ngữ liệu Điều này giải thích là bởi vì, từ try có thể được sử dụng trong hầu hết các chủ đề, nhưng từ insurance chỉ được dùng để ám chỉ đến một khái niệm nhỏ mà chỉ liên quan đến một số lượng nhỏ các chủ đề Một tính chất nữa của từ được tập trung ngữ nghĩa
đó là, nếu chúng xuất hiện trong một văn bản thì chúng sẽ xuất hiện vài lần
Trang 12Để thể hiện trọng số phản ánh hết thông tin của từ, thường ta sẽ kết hợp cả hai loại trọng số là và trong một đơn vị chung Dạng biểu diễn trọng số này được gọi là Công thức kết hợp hai giá trị trọng số :
( ) {( ( )) ( )
Trong đó, N là tổng số văn bản Biểu thức thứ nhất áp dụng cho các từ có xuất hiện trong văn bản, còn biểu thức thứ hai cho các từ không xuất hiện trong văn bản
2.6 Đánh giá bộ phân lớp
Sau khi đã tìm được họ các tham số tối ưu cho bộ phân lớp (hay có thể nói là
bộ phân lớp đã được huấn luyện xong), nhiệm vụ tiếp theo là cần phải đánh giá (kiểm tra) bộ phân lớp đó cho kết quả như thế nào? Tuy nhiên, quá trình kiểm tra phải được thực hiện trên một tập ngữ liệu khác với tập ngữ liệu huấn luyện, còn được gọi với cái tên là tập ngữ liệu kiểm tra (a test set) Việc kiểm tra bộ phân lớp
là một sự đánh giá trên một tập ngữ liệu chưa được biết vì thế đó là sự đo lường, đánh giá duy nhất cho biết khả năng thực sự của một bộ phân lớp
Để đơn giản, ta sẽ xem xét một bộ phân lớp nhị phân (phân hai lớp) Những
bộ phân lớp thường được đánh giá bằng cách lập một bảng thống kê sau :
Trang 13 d : là số lượng đối tượng không thuộc về lớp đang xét và được bộ phân lớp loại khỏi lớp
Để đánh giá chất lượng bộ phân lớp, hai đơn vị đo lường quan trọng đó là độ đúng đắn (accuracy) được đo bằng công thức và độ sai lỗi (Error) được tính bằng công thức Độ đo này phản ánh đầy đủ chất lượng của bộ phân lớp Tuy nhiên, khi đánh giá bộ phân lớp, thường người ta chỉ xem xét những đối tượng thuộc về lớp và được phân lớp đúng, còn những đối tượng không thuộc về lớp thường sẽ ít được quan tâm Do đó, một số độ đo khác đã được định nghĩa Các độ đo bao gồm :
P là độ chính xác Precision
R là độ bao phủ Recall
là một hệ số xác định sự cân bằng của độ quyết định và độ bao phủ Giá trị =5 thường được chọn cho sự cân bằng giữa P và R Với giá trị này độ đo được tính đơn giản là ( )
Những độ đo trên được dùng để đánh giá cho những bộ phân lớp nhị phân (phân hai lớp) Tuy nhiên, trong thực tế, thường các bộ phân lớp phải phân chia nhiều lớp, chính vì vậy để đánh giá tổng thể toàn bộ các lớp phân loại, sau khi lập
Trang 14bảng thống kê cho từng lớp, hai phương pháp nữa đã được áp dụng để đánh giá
đó là micro-averaging và macro-averaging
2.6.1 Macro-Averaging
Đây là phương pháp tính trung bình các độ đo precious và recall của từng lớp Các lớp sau khi đã lập bảng thống kê và tính các độ đo precious và recall cho từng lớp Các độ đo này sẽ được tính trung bình lại
2.6.2 Micro-Averaging
Đây là phương pháp tính trung bình các kết quả thống kê của từng lớp Các lớp sau khi đã lập bảng thống kê Các bảng này sẽ được cộng này lại tương ứng theo từng ô Sau đó, sẽ tính độ đo Precision và Recall cho bảng thống kê lớn đó Công thức micro-averaging :
Trang 153 Các phương pháp phân loại văn bản
Phần này trình bày một số phương pháp phân loại văn bản phổ biến hiện nay theo phương pháp thống kê : thuật tốn Nạve Bayes, Cây quyết định, Maximun Entropy Modeling và KNN Phần này cũng trình bày một số ví dụ về cách thực hiện các phương pháp phân loại
3.1 Thuật tốn Nạve Bayes
3.1.1 Định lý
Đây là thuật tốn được xem là đơn giản nhất trong các phương pháp Bộ phân lớp Bayes cĩ thể dự báo các xác suất là thành viên của lớp, chẳng hạn xác suất mẫu cho trước thuộc về một lớp xác định Chúng giả định các thuộc tính là độc lập nhau (độc lập điều kiện lớp)
Thuật tốn Nạve Bayes dựa trên định lý Bayes được phát biểu như sau :
( | ) ( | ) ( )
( )Trong đĩ:
Y đại diện một giả thuyết, giả thuyết này được suy luận khi cĩ được chứng cứ mới X
P(X) : xác xuất X xảy ra (Xác suất biên duyên của X)
P(Y) : xác xuất Y xảy ra (Điều kiện tiên nghiệm của Y)
P(X|Y) : xác xuất X xảy ra khi Y xảy ra (xác suất cĩ điều kiện, khả năng của X khi Y đúng)
P(Y|X) : xác suất hậu nghiệm của Y nếu biết X
Áp dụng trong bài tốn phân loại, các dữ kiện cần cĩ :
D: tập dữ liệu huấn luyện đã được vector hố dưới dạng ( )
Ci : tập các tài liệu của D thuộc lớp Ci với i={1,2,3,…}
Các thuộc tính x1,x2,…xn độc lập xác suất đơi một với nhau
Theo định lý Bayes :
Trang 16( | ) ( | ) ( )
( )Theo tính chất độc lập điều kiện :
Xnew được gán vào lớp có giá trị lớn nhất theo công thức
Trang 17 Với thuộc tính Temp : có các giá trị Hot, Cold, Mild
P(hot|yes) = 2/9
Trang 18P(hot|no) = 2/5 P(cold|yes) = 3/9 P(cold|no) = 1/5 P(mild|yes) = 4/9 P(mild|no) = 2/5
Với thuộc tính Humidity : cĩ các giá trị Normal,High
P(normal|yes) = 6/9 P(normal|no) = 1/5 P(high|yes) = 3/9 P(high|no) = 4/5
Với thuộc tính Wind : cĩ các giá trị Weak, Strong
P(weak|yes) = 6/9 P(weak|no) = 2/5 P(strong|yes) = 3/9 P(strong|no) = 3/5
Bước 2 : Phân lớp X new
= {sunny, cool, high, strong}
Tính các xác suất
P(yes)*P(Xnew|yes) = 0.005
P(no)* P(Xnew|no) = 0.021
Xnew thuộc vào lớp No
3.1.3 Áp dụng trong phân loại văn bản
Để áp dụng thuật tốn Nạve Bayes vào phân loại văn bản, ta cần thực hiện các bước tiền xử lý và vector hố các văn bản trong tập huấn luyện Các phương pháp tiền xử lý và vector hố đã được trình bày ở những phần trước Tuy nhiên,
do thuật tốn Nạve Bayes dựa trên xác suất văn bản và xác suất đặc trưng, do
đĩ ở phương pháp này, chúng ta sẽ sử dụng phương pháp vector hố bằng cách
đếm tần suất từ (Word frequency weighting)
Trang 19Sau khi đã vector hoá các văn bản, ta cần thực hiện rút chọn các đặc trưng cho các văn bản huấn luyện Ta cũng có rất nhiều cách để thực hiện rút chọn đặc trưng như sử dụng các độ đo (xem thêm trong sách [1]), sử dụng Heuristic, sử dụng từ điển…
Sau khi đã rút chọn đặc trưng, ta sẽ thực hiện thuật toán huấn luyện Ta có thể tóm tắt các bước như sau :
Bước 1 : Huấn luyện
Từ tập huấn luyện, ta rút trích tập từ vựng (các đặc trưng)
Tính xác suất P(Ci) và P(xk|Ci)
( ) | |
| |
docsi : số tài liệu của tập huấn luyện thuộc lớp ci
: số tài liệu có trong tập huấn luyện
( | )
| |hoặc
( | )
| |(làm mịn với luật Laplace)
n : tổng số từ đôi một khác nhau của lớp ci
nk : tổng số từ xk trong tập từ vựng trong lớp Ci
|Texti|: tổng số từ vựng (không phân biệt đôi một) trong lớp Ci Bước 2 : Phân lớp
| |( ( ) ∏ ( ( | ) | | )
)
positions : tập từ vựng trong bộ huấn luyện
Xét ví dụ : ta có tập tài liệu để huấn luyện sau khi đã vector hoá (sử dụng phương pháp đơn giản đếm sô lần xuất hiện) và rút trích đặc trưng như sau :
Bộ từ vựng (đặc trưng) : var, bit, chip, log