Do đĩ tơi chọn đề tài “Đánh giá sản phẩm trên các website thương mại điện tử dựa trên nhận xét của người dùng trên internet” đề tài nghiên cứu một số kỹ thuật phân lớp văn bản như K-mean
Trang 1ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
Trang 2ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
-NGUYỄN THỊ THOA
“PHÂN LỚP QUAN ĐIỂM KHÁCH HÀNG VÀ ỨNG DỤNG”
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH MÃ SỐ
CHUYÊN NGÀNH: 60.48.01.01
NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS ĐOÀN VĂN BAN
THÁI NGUYÊN - 2016
Trang 3MỤC LỤC
CHƯƠNG 1 – PHÂN LỚP DỮ LIỆU 3
1.1 Giới thiệu về phân lớp dữ liệu 3
1.2 Quá trình phân lớp dữ liệu 4
1.3 Các vấn đề liên quan đến phân lớp dữ liệu 8
1.3.1 Chuẩn bị dữ liệu cho việc phân lớp 8
1.3.2 So sánh các mô hình phân lớp 9
1.3.3 Các phương pháp đánh giá độ chính xác của mô hình phân lớp 10
1.4 Kết luận chương 1 11
CHƯƠNG 2 – MỘT SỐ KỸ THUẬT TRONG PHÂN LOẠI VĂN BẢN 12
2.1 Xử lý văn bản 12
2.1.1 Đặc điểm của từ trong tiếng việt 12
2.1.2 Tách từ 13
2.2 Biểu diễn văn bản 18
2.2.1 Mô hình logic 18
2.2.2 Mô hình phân tích cú pháp 19
2.2.3 Mô hình không gian vector 20
2.2.4 Mô hình Boolean 22
2.2.5 Mô hình tần suất 23
2.3 Độ tương đồng 25
2.3.1 Khái niệm độ tương đồng 25
2.3.2 Độ tương đồng 26
2.3.3 Các phương pháp tính độ tương đồng 26
2.4 Các phương pháp phân loại văn bản 29
Trang 42.4.1 Phương pháp pháp Nạve Bayes (NB) 29
2.4.2 Phương pháp Support Vector Machine (SVM) 31
2.4.3 Phương pháp K-Nearest Neighbor (K-NN) 35
2.4.4 Phương pháp Linear Least Square Fit (LLSF) 37
2.4.5 Phương pháp Centroid – based vector 38
2.4.6 Kết luận 38
2.5 Kết luận chương 2 40
CHƯƠNG 3 – CHƯƠNG TRÌNH THỬ NGHIỆM 41
3.1 Xây dựng mơ hình ứng dụng khai phá ý kiến phản hồi của khách hàng trên website dựa trên SVM 41
3.1.1 Phát biểu bài tốn 41
3.1.2 Mơ hình ứng dụng khai phá ý kiến phản hồi của khách hàng trên website dựa trên SVM 41
3.2 Yêu cầu phần cứng và phần mềm 44
3.2.1 Cấu hình máy thực nghiệm 44
3.2.2 Cơng cụ và phần mềm sử dụng 44
3.3 Một số kết quả và đánh giá 45
3.3.1 Kết quả thử nghiệm 45
3.3.2 Đánh giá kết quả 56
3.4 Kết luận chương 3 57
KẾT LUẬN VÀ ĐỀ NGHỊ 58
Trang 5DANH MỤC HÌNH ẢNH
Hình 1.1 Quy trình phân loại văn bản [3] 4
Hình 1.2 Bước xây dựng mô hình phân lớp - Training 5
Hình 1.3 Ước lượng độ chính xác của mô hình 6
Hình 1.4 Phân lớp dữ liệu mới 7
Hình 1.5 Ước lượng độ chính xác của mô hình phân lớp bằng phương pháp holdout 10
Hình 2.1 Biểu diễn vector văn bản trong không gian 2 chiều 21
Hình 2.2 Mô hình SVM [18] 32
Hình 2.3 Margin - khoảng cách của các điểm tới biên 32
Hình 2.4 Mô hình SVM trong không gian 33
Hình 2.5 Mô hình thuật toán K-NN 35
Hình 3.1 Sơ đồ xử lý dữ liệu 41
Hình 3.2 Giao diện Weka 45
Hình 3.3 Chuyển đổi dữ liệu sang arff 50
Hình 3.4 vector hóa dữ liệu 51
Hình 3.5 Giao diện huấn luyện 55
Hình 3.6 Kết quả huấn luyện 55
DANH MỤC BẢNG BIỂU Bảng 2.1 Biểu diễn văn bản trong mô hình Logic 18
Bảng 2.2 Biểu diễn văn bản mô hình Vector 21
Bảng 2.3 Biểu diễn văn bản mô hình Boolean 22
Bảng 3.1 kết quả huấn luyện và kiểm thử 56
Trang 6I ĐẶT VẤN ĐỀ
MỞ ĐẦU
Hầu hết các doanh nghiệp đều luơn muốn quan tâm đến ý kiến, phản hồi của kháchhàng về sản phẩm, dịch vụ của họ như thế nào Các đánh giá của khách hàng một mặt giúpcho những người dùng khác định hướng trong việc chọn lựa sản phẩm, mặt khác giúp chocác doanh nghiệp định hướng cải tiến chất lượng Số lượng đánh giá về một sản phẩm màchúng ta nhận được ngày càng tăng và cĩ thể đến từ nhiều nguồn khác nhau (web bánhàng, diễn đàn, blog, mạng xã hội .) Vì vậy, để cĩ thể tổng hợp ý kiến phản hồi củakhách hàng về chất lượng, thì phải tự động hĩa được cơng việc thu thập và phân tích đánhgiá
Cơng nghệ phân lớp dữ liệu đã, đang và sẽ phát triển mạnh mẽ trước những khaokhát tri thức của con người Trong những năm qua, phân lớp dữ liệu đã thu hút sự quantâm các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy (machine learning),
hệ chuyên gia (expert system), thống kê (statistics) Cơng nghệ này cũng ứng dụng trongnhiều lĩnh vực thực tế như: thương mại, nhà băng, maketing, nghiên cứu thị trường, bảohiểm, y tế, giáo
dục
Phân lớp văn bản là bài tốn cơ bản trong khai phá quan điểm Các hệ thống phânlớp văn bản là các hệ thống phải cĩ khả năng xác định, khai phá ra nội dung thơng tin Cĩthể coi phân lớp quan điểm là bài tốn phân lớp văn bản theo hai lớp tích cực và tiêu cực
Do đĩ tơi chọn đề tài “Đánh giá sản phẩm trên các website thương mại điện tử dựa trên nhận xét của người dùng trên internet” đề tài nghiên cứu một số kỹ thuật phân
lớp văn bản như K-means, Nạve Bayes, Maximum entropy và SVM để sử dụng trongphương pháp học máy phân lớp quan điểm khách hàng
6
Trang 7II ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Đối tượng nghiên cứu:
Các kỹ thuật phân lớp văn bản và ứng dụng để phân lớp quan điểm kháchhàng đưa vào các website TMĐT bán hàng trực tuyến với số lượng truy cập và giaodịch lớn
Phạm vi nghiên cứu
Nghiên cứu các tài liệu bài viết trong và ngoài nước về kỹ thuật phân lớp dữliệu để xây dựng phát triển bài toán “Phân lớp quan điểm khách hàng và ứng dụng”hiệu quả trong công việc phân tích, khai thác các nguồn ý kiến khách hàng
III HƯỚNG NGHIÊN CỨU CỦA ĐỀ TÀI
- Đề tài sẽ kết hợp phương pháp nghiên cứu lý thuyết với kết quả thực nghiệm
- Phân tích các tài liệu và thông tin liên quan
- Mô phỏng và thử nghiệm
IV PHƯƠNG PHÁP NGHIÊN CỨU
Nghiên cứu lý thuyết dựa trên các tài liệu về phân lớp dữ liệu, các thuật toán,phương pháp phân lớp … của các tác giả trong và ngoài nước Thực nghiệm dựa trên cácwebsite TMĐT để xây dựng, đánh giá phương pháp
Trang 8CHƯƠNG 1 – PHÂN LỚP DỮ LIỆU 1.1 Giới thiệu về phân lớp dữ liệu
Bài toán phân lớp quan điểm
Là quá trình phân lớp một đối tượng dữ liệu vào một hay nhiều lớp cho trước nhờmột mô hình phân lớp mà mô hình này được xây dựng dựa trên một tập hợp các đối tượng
dữ liệu đã được gán nhãn từ trước gọi là tập dữ liệu học (tập huấn luyện) Quá trình phânlớp còn được gọi là quá trình gán nhãn cho các đối tượng dữ liệu [5][3]
Như vậy, nhiệm vụ của bài toán phân lớp dữ liệu là cần xây dựng mô hình (bộ)phân lớp để khi có một dữ liệu mới vào thì mô hình phân lớp sẽ cho biết dữ liệu đó thuộclớp nào
Có nhiều bài toán phân lớp dữ liệu, như phân lớp nhị phân, phân lớp đa lớp, phân
lớp đa trị,….
Phân lớp nhị phân là quá trình tiến hành việc phân lớp dữ liệu vào một trong hailớp khác nhau dựa vào việc dữ liệu đó có hay không một số đặc tính theo quy định của bộphân lớp
Phân lớp đa lớp là quá trình phân lớp với số lượng lớp lớn hơn hai Như vậy, tậphợp dữ liệu trong miền xem xét được phân chia thành nhiều lớp chứ không đơn thuần chỉ
là hai lớp như trong bài toán phân lớp nhị phân Về bản chất, bài toán phân lớp nhị phân làtrường hợp riêng của bài toán phân lớp đa
Trang 9Trong những trường hợp như vậy, việc sắp xếp một tài liệu vào nhiều hơn một lớp là phù hợp với yêu cầu thực tế.
1.2 Quá trình phân lớp dữ liệu
Nhãn
Tệp đầu vào
Tập dữ liệu
Học máy
Tệp trích rút
Hình 1.1 Quy trình phân loại văn bản [3]
Quá trình phân lớp dữ liệu thường gồm hai bước: xây dựng mô hình (tạo bộ phânlớp) và sử dụng mô hình đó để phân lớp dữ liệu
Bước 1 Bước xây dựng mô hình phân lớp (Training)
Một mô hình sẽ được xây dựng dựa trên việc phân tích các đối tượng dữ liệu đã
được gán nhãn từ trước Tập các mẫu dữ liệu này còn được gọi là tập dữ liệu huấn luyện (training data set) Các nhãn lớp của tập dữ liệu huấn luyện được xác định bởi con người
trước khi xây dựng mô hình, vì vậy phương pháp này còn được gọi là học có giám sát (supervised learning) Trong bước này, chúng ta còn phải tính độ chính xác của mô hình,
mà cần phải sử dụng một tập dữ liệu kiểm tra (test data set) Nếu độ chính xác là chấp
nhận được (tức là cao), mô hình sẽ được sử dụng để xác định nhãn lớp cho các dữ liệu khácmới trong tương lai Trong việc test mô hình, sử dụng các độ đo để đánh giá chất
Trang 10lượng của tập phân lớp, đó là độ hồi tưởng, độ chính xác, độ đo F1 Nội dung chi tiết về các độ đo này được trình bày trong mục.
Tồn tại nhiều phương pháp phân lớp dữ liệu để giải quyết bài toán phân lớp tùythuộc vào cách thức xây dựng mô hình phân lớp như phương pháp Bayes, phương phápcây quyết định, phương pháp k-người láng giềng gần nhất, phương pháp máy hỗ trợ vector Các phương pháp phân lớp khác nhau chủ yếu về mô hình phân lớp Mô hình phân lớpcòn được gọi là thuật toán phân
lớp
Thuật toán phân lớp
Dữ liệu huấn luyện
Phân lớp
Nếu tuổi < 31 hoặc Xe = sportthì Giàu = cao
Hình 1.2 Bước xây dựng mô hình phân lớp - Training
Bước 2 Phân lớp (classification)
Bước thứ hai dùng mô hình đã xây dựng ở bước trước để phân lớp dữ liệu mới.Trước tiên độ chính xác mang tính chất dự đoán của mô hình phân lớp vừa tạo ra được ướclượng Holdout là một kỹ thuật đơn giản để ước lượng độ chính xác đó Kỹ thuật này sửdụng một tập dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp Các mẫu này được chọnngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào tạo Độ chính xác của mô hìnhtrên tập dữ liệu kiểm tra
Trang 11đã đưa là tỉ lệ phần trăm các các mẫu trong tập dữ liệu kiểm tra được mô hình phân lớpđúng (so với thực tế) Nếu độ chính xác của mô hình được ước lượng dựa trên tập dữ liệuđào tạo thì kết quả thu được là rất khả quan vì mô hình luôn có xu hướng “quá vừa” dữliệu Quá vừa dữ liệu là hiện tượng kết quả phân lớp trùng khít với dữ liệu thực tế vì quátrình xây dựng mô hình phân lớp từ tập dữ liệu đào tạo có thể đã kết hợp những đặc điểmriêng biệt của tập dữ liệu đó Do vậy cần sử dụng một tập dữ liệu kiểm tra độc lập với tập
dữ liệu đào tạo Nếu độ chính xác của mô hình là chấp nhận được, thì mô hình được sửdụng để phân lớp những dữ liệu tương lai, hoặc những dữ liệu mà giá trị của thuộc tínhphân
Hình 1.3 Ước lượng độ chính xác của mô hình
Trang 12Hình 1.4 Phân lớp dữ liệu mới
Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết định tới sựthành công của mô hình phân lớp Do vậy chìa khóa của vấn đề phân lớp dữ liệu là tìm rađược một thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao và có khả năng mởrộng được Trong đó khả năng mở rộng được của thuật toán được đặc biệt trú trọng và pháttriển
Có thể liệt kê ra đây các kỹ thuật phân lớp đã được sử dụng trong nhữngnăm qua:
Phân lớp cây quyết định (Decision tree classification)
Bộ phân lớp Bayesian (Bayesian classifier)
Mô hình phân lớp K-hàng xóm gần nhất (K-nearest neighbor classifier)
Mạng nơron
Phân tích thống kê
Các thuật toán di truyền
Phương pháp tập thô (Rough set Approach)
Trang 131.3 Các vấn đề liên quan đến phân lớp dữ liệu
1.3.1 Chuẩn bị dữ liệu cho việc phân lớp
Việc tiền xử lý dữ liệu cho quá trình phân lớp là một việc làm không thể thiếu và cóvai trò quan trọng quyết định tới sự áp dụng được hay không của mô hình phân lớp Quátrình tiền xử lý dữ liệu sẽ giúp cải thiện độ chính xác, tính hiệu quả và khả năng mở rộngđược của mô hình phân lớp
Quá trình tiền xử lý dữ liệu gồm có các công việc sau:
i Làm sạch dữ liệu
Làm sạch dữ liệu liên quan đến việc xử lý với lỗi (noise) và giá trị thiếu (missingvalue) trong tập dữ liệu ban đầu Noise là các lỗi ngẫu nhiên hay các giá trị không hợp lệcủa các biến trong tập dữ liệu Để xử lý với loại lỗi này có thể dùng kỹ thuật làm trơn.Missing value là những ô không có giá trị của các thuộc tính Giá trị thiếu có thể do lỗi chủquan trong quá trình nhập liệu, hoặc trong trường hợp cụ thể giá trị của thuộc tính đókhông có, hay không quan trọng Kỹ thuật xử lý ở đây có thể bằng cách thay giá trị thiếubằng giá trị phổ biến nhất của thuộc tính đó hoặc bằng giá trị có thể xảy ra nhất dựa trênthống kê Mặc dù phần lớn thuật toán phân lớp đều có cơ chế xử lý với những giá trị thiếu
và lỗi trong tập dữ liệu, nhưng bước tiền xử lý này có thể làm giảm sự hỗn độn trong quátrình học (xây dựng mô hình phân lớp)
ii Phân tích sự cần thiết của dữ liệu
Có rất nhiều thuộc tính trong tập dữ liệu có thể hoàn toàn không cần thiết hay liênquan đến một bài toán phân lớp cụ thể Ví dụ dữ liệu về ngày trong tuần hoàn toàn khôngcần thiết đối với ứng dụng phân tích độ rủi ro của các khoản tiền cho vay của ngân hàng,nên thuộc tính này là dư thừa Phân tích sự cần thiết của dữ liệu nhằm mục đích loại bỏnhững thuộc tính không cần thiết, dư thừa khỏi quá trình học vì những thuộc tính đó sẽlàm chậm, phức tạp và
Trang 14gây ra sự hiểu sai trong quá trình học dẫn tới một mô hình phân lớp không dùng
được
iii Chuyển đổi dữ liệu
Việc khái quát hóa dữ liệu lên mức khái niệm cao hơn đôi khi là cần thiết trong quátrình tiền xử lý Việc này đặc biệt hữu ích với những thuộc tính liên tục (continuousattribute hay numeric attribute) Ví dụ các giá trị số của thuộc tính thu nhập của kháchhàng có thể được khái quát hóa thành các dãy giá trị rời rạc: thấp, trung bình, cao Tương
tự với những thuộc tính rời rạc (categorical attribute) như địa chỉ phố có thể được khái quáthóa lên thành thành phố Việc khái quát hóa làm cô đọng dữ liệu học nguyên thủy, vì vậycác thao tác vào/ ra liên quan đến quá trình học sẽ giảm
1.3.2 So sánh các mô hình phân lớp
Trong từng ứng dụng cụ thể cần lựa chọn mô hình phân lớp phù hợp Việc lựa chọn
đó căn cứ vào sự so sánh các mô hình phân lớp với nhau, dựa trên các tiêu chuẩn sau:
1/ Độ chính xác dự đoán (predictive accuracy)
Độ chính xác là khả năng của mô hình để dự đoán chính xác nhãn lớp của dữ liệumới hay dữ liệu chưa biết
2/ Tốc độ (speed)
Tốc độ là những chi phí tính toán liên quan đến quá trình tạo ra và sử
dụng mô hình
3/ Sức mạnh (robustness)
Sức mạnh là khả năng mô hình tạo ta những dự đoán đúng từ những dữ
liệu noise hay dữ liệu với những giá trị thiếu
4/ Khả năng mở rộng (scalability)
Khả năng mở rộng là khả năng thực thi hiệu quả trên lượng lớn dữ liệu của mô hình
đã học
Trang 155/ Tính hiểu được (interpretability)
Tính hiểu được là mức độ hiểu và hiểu rõ những kết quả sinh ra bởi mô
hình đã học
6/ Tính đơn giản (simplicity)
Tính đơn giản liên quan đến kích thước của cây quyết định hay độ cô
đọng của các luật
1.3.3 Các phương pháp đánh giá độ chính xác của mô hình phân lớp
Ước lượng độ chính xác của bộ phân lớp là quan trọng ở chỗ nó cho phép dự đoánđược độ chính xác của các kết quả phân lớp những dữ liệu tương lai Độ chính xác còngiúp so sánh các mô hình phân lớp khác nhau Khóa luận này đề cập đến hai phương phápđánh giá phổ biến là holdout và k-fold kiểm tra chéo Cả hai kỹ thuật này đều dựa trên cácphân hoạch ngẫu nhiên tập dữ liệu ban đầu
Trong phương pháp holdout, dữ liệu dưa ra được phân chia ngẫu nhiên thành haiphần là: tập dữ liệu đào tạo và tập dữ liệu kiểm tra Thông thường 2/3
dữ liệu cấp cho tập dữ liệu đào tạo, phần còn lại cho tập dữ liệu kiểm tra
Tệp huấnluyện
Mô hìnhphân lớp
Tệp kiểm tra
Hình 1.5 Ước lượng độ chính xác của mô hình phân lớp bằng phương
pháp holdout
Trang 16Trong phương pháp k-fold xác nhận chéo tập dữ liệu ban đầu được chia ngẫu nhiênthành k tập con (fold) có kích thước xấp xỉ nhau S1, S2, …, Sk Quá trình học và test đượcthực hiện k lần Tại lần lặp thứ i, Si là tập dữ liệu kiểm tra, các tập còn lại hợp thành tập dữliệu đào tạo Có nghĩa là, đâu tiên việc dạy được thực hiện trên các tập S2, S3, …, sau đótest trên tập S1; tiếp tục quá trình dạy được thực hiện trên tập S1, S3, S4, …, sau đó testtrên tập S2; và cứ thế tiếp tục Độ chính xác là toàn bộ số phân lớp đúng từ k lần lặp chiacho tổng số mẫu của tập dữ liệu ban đầu.
1.4 Kết luận chương 1
Trong chương I đã trình bày về bài toán phân lớp quan điểm, mô hình phân lớp dữliệu và quá trình phân lớp dữ liệu Đồng thời cũng đưa ra các vấn đề trong phân lớp dữ liệunhư chuẩn bị dữ liệu trước khi phân lớp, giới thiệu một số tiêu chí so sánh và đánh giá độchính xác của các thuật toán phân lớp dữ liệu
Trang 17CHƯƠNG 2 – MỘT SỐ KỸ THUẬT TRONG PHÂN LOẠI VĂN BẢN
2.1 Xử lý văn bản
2.1.1 Đặc điểm của từ trong tiếng việt
Tiếng Việt là ngôn ngữ đơn lập [3][11] Đặc điểm này bao quát tiếng Việt cả vềmặt ngữ âm, ngữ nghĩa, ngữ pháp Khác với các ngôn ngữ châu Âu, mỗi từ là một nhómcác ký tự có nghĩa được cách nhau bởi một khoảng trắng Còn tiếng Việt, và các ngôn ngữđơn lập khác, thì khoảng trắng không phải là căn cứ để nhận diện từ
Tiếng:
Trong tiếng Việt trước hết cần chú ý đến đơn vị xưa nay vẫn quan gọi là tiếng
Về mặt ngữ nghĩa, ngữ âm, ngữ pháp, đều có giá trị quan trọng
Sử dụng tiếng để tạo từ có hai trường hợp:
Trường hợp một tiếng: đây là trường hợp một tiếng được dùng làm một từ,gọi là từ đơn Tuy nhiên không phải tiếng nào cũng tạo thành một từ
Trường hợp hai tiếng trở lên: đây là trường hợp hai hay nhiều tiếng kết hợpvới nhau, cả khối kết hợp với nhau gắn bó tương đối chặt chẽ, mới có tưcách ngữ pháp là một từ Đây là trường hợp từ ghép
hay từ phức
Từ:
Có rất nhiều quan niệm về từ trong tiếng Việt, từ nhiều quan niệm về từ tiếng Việtkhác nhau đó chúng ta có thể thấy đặc trưng cơ bản của "từ" là sự hoàn chỉnh về mặt nộidung, từ là đơn vị nhỏ nhất để đặt câu
Người ta dùng "từ" kết hợp thành câu chứ không phải dùng "tiếng", do đó quá trìnhtách câu thành các "từ" cho kết quả tốt hơn là tách câu bằng “tiếng”
Trang 182.1.2 Tách từ
2.1.2.1 Phương pháp Maximum Matching: Forward / Backward
Phương pháp so khớp tối đa (MMMaximum Matching) hay còn gọi là LRMM Left Right Maximum Matching Ở phương pháp này, chúng ta sẽ duyệt một ngữ hoặc câu
-từ trái sang phải và chọn -từ có nhiều âm tiết nhất có mặt trong -từ điển và cứ thực hiện lặplại như vậy cho đến hết câu
Dạng đơn giản của phương pháp dùng để giải quyết nhập nhằng từ đơn Giả sửchúng ta có một chuỗi ký tự C1, C2, …, Cn Chúng ta sẽ áp dụng phương pháp từ đầuchuỗi Đầu tiên kiểm tra xem C1 có phải là từ hay không, sau đó kiểm tra xem C1C2 cóphải là từ hay không Tiếp tục thực hiện như thế cho đến khi tìm được từ dài nhất
Dạng phức tạp: Quy tắc của dạng này là phân đoạn từ Thông thường người ta chọnphân đoạn ba từ có chiều dài tối đa Thuật toán bắt đầu từ dạng đơn giản, cụ thể là nếu pháthiện ra những cách tách từ gây nhập nhằng, như ở ví dụ trên, giả sử C1 là từ và C1C2 cũng
là một từ, khi đó chúng ta kiểm tra ký tự kế tiếp trong chuỗi C1, C2, , Cn để tìm tất cảcác đoạn ba từ có bắt đầu với C1 hoặc C1C2
Ví dụ : Giả sử chúng ta có được các đoạn sau:
- C1 C2 C3 C4
- C1C2 C3C4 C5
- C1C2 C3C4 C5C6
Khi đó chuỗi dài nhất sẽ là chuỗi thứ ba Do đó từ đầu tiên của chuỗi thứ ba (C1C2)
sẽ được chọn Thực hiện các bước cho đến khi được chuỗi từ hoàn chỉnh
Nhận xét :
Phương pháp này thực hiện tách từ đơn giản, nhanh và chỉ cần dựa vào từ điển để thực hiện Tuy nhiên, khuyết điểm của phương pháp này cũng chính
Trang 19là từ điển, nghĩa là độ chính xác khi thực hiện tách từ phụ thuộc hoàn toàn vào
tính đủ, tính chính xác của từ điển
2.1.2.2 Phương pháp Transformation – based Learning (TBL)
Phương pháp này tiếp cận dựa trên tập ngữ liệu đã đánh dấu Theo cách tiếp cậnnày để cho máy tính có thể nhận biết ranh giới giữa các từ để có thể tách từ chính xác,chúng ta sẽ cho máy học các câu mẫu trong tập ngữ liệu đã được đánh dấu ranh giới giữacác từ đúng Chúng ta thấy phương pháp rất đơn giản, vì chỉ cần cho máy học các tập câumẫu và sau đó máy sẽ tự rút ra qui luật của ngôn ngữ và để từ đó sẽ áp dụng chính xác khi
có những câu đúng theo luật mà máy đã rút ra Và để tách từ được hoàn toàn chính xáctrong mọi trường hợp thì đòi hỏi phải có một tập ngữ liệu tiếng Việt thật đầy đủ và phảiđược huấn luyện lâu để có thể rút ra các luật đầy đủ
2.1.2.3 Mô hình tách từ bằng WFST và mạng Neural
Mô hình mạng chuyển dịch trạng thái hữu hạn có trọng số Weighted Finit StateTransducer (WFST) đã được áp dụng trong tách từ từ năm 1996 [13] Ý tưởng cơ bản là ápdụng WFST với trọng số là xác suất xuất hiện của mỗi từ trong kho ngữ liệu Dùng WFST
để duyệt qua các câu cần xét, khi đó từ có trọng số lớn nhất là từ được chọn để tách.Phương pháp này cũng đã được sử dụng trong công trình đã được công bố của tác giả ĐìnhĐiền năm 2001, tác giả đã sử dụng WFST kèm với mạng Neural để khử nhập nhằng khitách từ, trong công trình tác giả đã xây dựng hệ thống tách từ gồm tầng WFST để tách từ
và xử lý các vấn đề liên quan đến một số đặc thù riêng của ngôn ngữ tiếng Việt như từ láy,tên riêng, và tầng mạng Neural dùng để khử nhập nhằng về ngữ nghĩa sau khi đã tách từ(nếu có)
Chi tiết về hai tầng này như sau:
a Tầng WFST gồm có 3 bước
Trang 20Bước 1: Xây dựng từ điển trọng số: theo mô hình WFST, thao tác phân
đoạn từ được xem như là một sự chuyển dịch trạng thái có xác suất
Chúng ta miêu tả từ điển D là một đồ thị biến đổi trạng thái hữu hạn có trọng số
Giả sử:
H là tập các từ chính tả tiếng Việt (còn gọi là “tiếng”)
- P là từ loại của từ
Mỗi cung của D có thể là:
- Từ một phần tử của H tới một hần tử của H
- Các nhãn trong D biểu diễn một chi phí được ước lượng theo công thức: Cost = -log(f/N)
Trong đó: f là tần số của từ, N là kích thước tập mẫu
Bước 2: Xây dựng các khả năng phân đoạn từ: Để giảm sự bùng nổ tổ hợp khi sinh
ra dãy các từ có thể từ một dãy các tiếng trong câu, tác giả đã đề xuất phương pháp kết hợpdùng thêm từ điển để hạn chế sinh ra các bùng nổ tổ hợp, cụ thể là nếu phát hiện thấy mộtcách phân đoạn từ nào đó không phù hợp (không có trong từ điển, không có phải là tứ láy,không phải là danh từ riêng,…) thì tác giả loại bỏ các nhánh xuất phát từ cách phân đoạnđoạn đó
Bước 3: Lựa chọn khả năng phân đoạn từ tối ưu: Sau khi có được danh sách các
cách phân đoạn từ có thể có của câu, tác giả đã chọn trường hợp phân đoạn từ có trọng số
Trang 21một câu và khi đó tầng mạng Neural sẽ loại bỏ đi các từ không phù hợp bằng cách kết hợpvới từ điển Bên cạnh đó, cũng tương tự như phương pháp TBL điểm quan trọng của môhình này cần tập ngữ liệu học đầy đủ.
2.1.2.4 Phương pháp tách tách từ tiếng Việt dựa trên thống kê từ Internet và thuật giải di
truyền
Phương pháp tách tách từ tiếng Việt dựa trên thống kê từ Internet và thuật giải ditruyền – IGATEC (Internet and Genetics Algorithm based Text Categorization forDocuments in Vietnamese) do H Nguyễn đề xuất năm 2005 như một hướng tiếp cận mớitrong tách từ với mục đích phân loại văn bản mà không cần dùng đến một từ điển hay tậpngữ liệu học nào Trong hướng tiếp cận này, tác giả kết hợp giữa thuật toán di truyền với
dữ liệu thống kê được lấy từ Internet
2.1.2.5 Loại bỏ từ dừng
Từ dừng (stop-words) dùng để chỉ các từ mà xuất hiện quá nhiều trong các câu vănbản của toàn tập kết quả, thường thì không giúp ích gì trong việc phân biệt nội dung củacác tài liệu văn bản Ví dụ, những từ “và”, “hoặc”, “cũng”, “là”, “mỗi”, “bởi”, …
2.1.2.6 Đặc trưng văn bản
Các phương pháp rút trích thông tin [6][11][16] cổ điển thì coi mỗi một văn bảnnhư là tập các từ khóa và gọi tập các từ khóa này là tập các term Một phần tử trong tậpterm thì đơn giản là một từ, mà ngữ nghĩa của từ này giúp tạo thành nên nội dung của vănbản Vì vậy, tập term được sử dụng để tạo các chỉ mục và tóm lược nội dung của văn bản
Giả sử cho một tập term của một văn bản nào đó, chúng ta có thể nhận thấy rằngkhông phải tất cả các từ trong tập term này đều có mức độ quan trọng như nhau trong việc
mô tả nội dung văn bản Ví dụ, bây giờ chúng ta xét một tập gồm một trăm ngàn văn bản,giả sử có một từ A nào đó xuất hiện trong một
Trang 22trăm ngàn văn bản này thì chúng ta có thể khẳng định rằng từ A này không quan trọng vàchúng ta sẽ không quan tâm đến nó, bởi vì chắc chắn là nó sẽ không cho chúng ta biết được
về nội dung của các văn bản này Vì vậy từ A sẽ bị loại ra khỏi tập các term, khi chúng taxây dựng tập term cho văn bản để miêu tả nội dung ngữ nghĩa của các văn bản này Kếtquả này có được thông qua thao tác xác định trọng số cho mỗi một từ trong tập term củamột văn bản
Đặt ki là từ thứ i trong tập term, dj là văn bản j, và wij >= 0 là trọng số của từ kitrong văn bản dj Giá trị của trọng số này thì rất là quan trọng trong việc miêu tả nội dungcủa văn bản
Đặt t là số luợng các từ trong tập term của hệ thống K = {k1, k2, k3, …, kt} là tậptất cả các từ trong tập term, trong đó ki là từ thứ i trong tập term Trọng số wij > 0 làtrọng số của từ ki trong văn bản dj Với mỗi một từ, nếu nó không xuất hiện trong văn bảnthì wij = 0 Do đó, văn bản dj thì được biểu diễn bằng vector dj, trong đó vector dj ={wj1,wj2,wj3, ….,wjt }
Các đặc trưng của văn bản khi biểu diễn dưới dạng vector:
- Số nhiều không gian đặc trưng thường lớn
- Các đặc trưng độc lập nhau
- Các đặc trưng rời rạc: vector đặc trưng di có thể có nhiều thành phần mang giá trị
0 do có nhiều đặc trưng không xuất hiện trong văn bản di (nếu chúng ta tiếp cận theo cách
sử dụng giá trị nhị phân 1, 0 để biểu diễn cho việc có xuất hiện hay không một đặc trưngnào đó trong văn bản đang được biểu diễn thành vector), tuy nhiên nếu đơn thuần cách tiếpcận sử dụng giá trị nhị phân 0, 1 này thì kết quả phân loại phần nào hạn chế là do có thểđặc trưng đó không có trong văn bản đang xét nhưng trong văn bản đang xét lại có từ khóakhác với từ đặc trưng nhưng có ngữ nghĩa giống với từ đặc trưng này, do đó một cách tiếpcận khác là không sử dụng số nhị phân 0, 1 mà sử dụng giá trị số thực để phần nào giảmbớt sự rời rạc trong vector văn bản
Trang 232.2 Biểu diễn văn bản
Có nhiều cách biểu diễn văn bản [1], luận văn trình bày các phương pháp
biểu diễn văn bản phổ biến
2.2.1 Mô hình logic
Theo mô hình này, các từ có nghĩa trong văn bản sẽ được đánh chỉ số và nội dungvăn bản được quản lý theo các chỉ số Index đó Mỗi văn bản được đánh chỉ số theo quy tắcliệt kê các từ có nghĩa trong các văn bản với vị trí xuất hiện của nó trong văn bản Từ cónghĩa là từ mang thông tin chính về các văn bản lưu trữ, khi nhìn vào nó, người ta có thểbiết chủ đề của văn bản cần biễu
diễn
Tiến hành Index các văn bản đưa vào theo danh sách các từ khóa nói trên Với mỗi
từ khóa người ta sẽ đánh số thứ tự vị trí xuất hiện của nó và lưu lại chỉ số đó cùng với mãvăn bản chứa nó Cách biểu diễn này cũng được các máy tìm kiếm ưa dùng
Ví dụ, có 2 văn bản với mã tương ứng là VB1, VB2:
- VB1 là: “Ngân hàng cổ phần thương mại”
- VB2 là: “Công ty thương mại hàng hóa” Khi
đó, ta có cách biểu diễn như sau:
Bảng 2.1: Biểu diễn văn bản trong mô hình Logic
Trang 24Mại VB1(6)VB2(4)
Một số ưu điểm, nhược điểm
- Ưu điểm
Việc tìm kiếm trở nên nhanh và đơn giản Thật vậy, giả sử cần tìm kiếm từ
“computer” Hệ thống sẽ duyệt trên bảng Index để trỏ đến chỉ số Index tương ứng nếu từ
“computer” tồn tại trên hệ thống Việc tìm kiếm này khá nhanh và đơn giản khi trước đó ta
đã sắp xếp bảng Index theo vẫn chữ cái Phép tìm kiếm
Việc Index các tài liệu rất phức tạp và làm tốn nhiều thời gian, đồng thời
cũng tốn không gian để lưu trữ các bảng Index
Các tài liệu tìm được không được sắp xếp theo độ chính xác của chúng Các bảng Index không linh hoạt vì khi các từ vựng thay đổi (thêm, sửa, xóa,
…) dẫn tới chỉ số Index cũng phải thay đổi theo
2.2.2 Mô hình phân tích cú pháp
Trang 25Trong mô hình này, mỗi văn bản đều phải được phân tích cú pháp và trả lại thôngtin chi tiết về chủ đề của văn bản đó Sau đó, người ta tiến hành Index các chủ đề của từngvăn bản Cách Index trên chủ đề cũng giống như Index trên văn bản nhưng chỉ Index trêncác từ xuất hiện trong chủ đề.
Các văn bản được quản lý thông qua các chủ đề này để có thể tìm kiếm
được khi có yêu cầu, câu hỏi tìm kiếm sẽ dựa trên các chủ đề trên
Một số ưu điểm, nhược điểm của phương pháp này
2.2.3 Mô hình không gian vector
Cách biểu diễn văn bản thông dụng nhất là thông qua vector biểu diễn theo mô hìnhkhông gian vector (Vector Space Model) Đây là một cách biểu diễn tương đối đơn giản vàhiệu quả
Trang 26Theo mô hình này, mỗi văn bản được biểu diễn thành một vector Mỗi thành phầncủa vector là một từ khóa riêng biệt trong tập văn bản gốc và được gán một giá trị là hàm fchỉ mật độ xuất hiện của từ khóa trong văn bản.
Hình 2.1 Biểu diễn vector văn bản trong không gian 2 chiều
Giả sử ta có một văn bản và nó được biểu diễn bởi vector V(v1,v2, …, vn) Trong
đó, vi là số lần xuất hiện của từ khóa thứ i trong văn bản Ta xét 2 văn bản sau:
- VB1: Life is not only life
- VB2: To life is to fight
Sau khi qua bước tiền xử lý văn bản, ta biểu diễn chúng như sau:
Bảng 2.2: Biểu diễn văn bản mô hình Vector
Trang 27Trong các cơ sở dữ liệu văn bản, mô hình vector là mô hình biểu diễn văn bản được
sử dụng phổ biến nhất hiện nay Mối quan hệ giữa các trang văn bản được thực hiện thôngqua việc tính toán trên các vector biểu diễn vì vậy được thi hành khá hiệu quả Đặc biệt,nhiều công trình nghiên cứu về mối quan hệ "tương tự nhau" giữa các trang web (một trongnhững quan hệ điển hình nhất giữa các trang web) dựa trên mô hình biểu diễn vector
2.2.4 Mô hình Boolean
Một mô hình biểu diễn vector với hàm f cho ra giá trị rời rạc với duy nhất hai giá trịđúng và sai (true và false, hoặc 0 và 1) gọi là mô hình Boolean Hàm f tương ứng với từkhóa ti sẽ cho ra giá trị đúng nếu và chỉ nếu từ khóa ti xuất hiện trong văn bản đó
Mô hình Boolean được xác định như sau:
Giả sử có một cơ sở dữ liệu gồm m văn bản, D = {d1, d2, … dm} Mỗi văn
bản được biểu diễn dưới dạng một vector gồm n từ khóa T = {t1, t2, …tn} Gọi
W = {⍵ij} là ma trận trọng số, trong đó ⍵ij là giá trị trọng số của từ khóa ti trong
văn bản dj.
1 ế ó ặ = { 0 ế ượ
⍵ạ
Trở lại với 2 văn bản trên, áp dụng mô hình Boolean ta có biểu diễn sau:
Bảng 2.3 Biểu diễn văn bản mô hình Boolean
Trang 28Only 1 0
2.2.5 Mô hình tần suất
Trong mô hình tần suất, ma trận W = {⍵ij} được xác định dựa trên tần
số xuất hiện của từ khóa ti trong văn bản dj hoặc tần số xuất hiện của từ khóa ti
trong toàn bộ cơ sở dữ liệu Sau đây là một số phương pháp phổ biến:
a Phương pháp dựa trên tần số từ khóa (TF – Term Frequency) [9][18]
Các giá trị wij được tính dựa trên tần số (hay số lần) xuất hiện của từ khóa trongvăn bản Gọi fij là số lần xuất hiện của từ khóa ti trong văn bản dj, khi đó wij được tínhbởi một trong ba công thức:
Trong phương pháp này, trọng số wij tỷ lệ thuận với số lần xuất hiện của
từ khóa ti trong văn bản dj Khi số lần xuất hiện từ khóa ti trong văn bản dj càng lớn thìđiều đó có nghĩa là văn bản dj càng phụ thuộc vào từ khóa ti, hay nói cách khác từ khóa timang nhiều thông tin trong văn bản dj
Ví dụ, khi văn bản xuất hiện nhiều từ khóa máy tính, điều đó có nghĩa là văn bảnđang xét chủ yếu liên quan đến lĩnh vực tin học
Nhưng suy luận trên không phải lúc nào cũng đúng Một ví dụ điển hình là từ “và”xuất hiện nhiều trong hầu hết các văn bản, nhưng trên thực tế từ này lại không mang nhiều
ý nghĩa như tần suất xuất hiện của nó Hoặc có những từ không xuất hiện trong văn bản nàynhưng lại xuất hiện trong văn bản khác, khi đó ta sẽ không tính được giá trị của log(fij).Một phương pháp khác ra đời khắc phục được nhược điểm của phương pháp TF, đó làphương pháp IDF
Trang 29b Phương pháp dựa trên nghịch đảo tần số văn bản (IDF – Inverse
để phân biệt văn bản dj với các văn bản khác và hàm lượng thông tin trong nó càng lớn
c Phương pháp TF × IDF
Phương pháp này là tổng hợp của hai phương pháp TF và IDF, giá trị
của ma trận trọng số được tính như sau:
⍵ = { [1 + log( )] log ℎ
0 ế ượ ạạ ) ế ≥ 1Đây là phương pháp kết hợp được ưu điểm của cả hai phương pháp trên Trọng sốwij được tính bằng tần số xuất hiện của từ khóa ti trong văn bản dj và độ hiếm của từ khóa
ti trong toàn bộ cơ sở dữ liệu
Một số ưu, nhược điểm của phương pháp biểu diễn này
Trang 30- Việc xử lý sẽ chậm khi hệ thống các từ vựng là lớn do phải tính toán trêntoàn bộ các vector của tài liệu.
- Khi biểu diễn các vector với các hệ số là số tự nhiên sẽ làm tăng mức độchính xác của việc tìm kiếm nhưng làm tốc độ tính toán giảm đi rẩt nhiều
do các phép nhân vector phải tiến hành trên các số tự nhiên hoặc số thực,hơn nữa việc lưu trữ các vector sẽ tốn kém và phức tạp
- Hệ thống không linh hoạt khi lưu trữ các từ khóa Chỉ cần một thay đổi rấtnhỏ trong bảng từ vựng sẽ kéo theo hoặc là vector hóa lại toàn bộ các tàiliệu lưu trữ, hoặc là sẽ bỏ qua các từ có nghĩa bổ sung trong các tài liệuđược mã hóa trước đó
- Một nhược điểm nữa, chiều của mỗi Vector theo cách biểu diễn này là rấtlớn, bởi vì chiều của nó được xác định bằng số lượng các từ khác nhautrong tập hợp văn bản Ví dụ số lượng các từ có thể có từ 103 đến 105 trongtập hợp các văn bản nhỏ, còn trong tập hợp các văn bản lớn thì số lượng sẽnhiều hơn, đặc biệt trong môi trường Web
2.3 Độ tương đồng
2.3.1 Khái niệm độ tương đồng
Trong toán học, một độ đo là một hàm số cho tương ứng với một "chiều dài", một
"thể tích" hoặc một "xác suất" với một phần nào đó của một tập hợp cho sẵn Nó là mộtkhái niệm quan trọng trong giải tích và trong lý thuyết xác suất
Ví dụ, độ đo đếm được định nghĩa bởi µ(S) = số phần tử của S
Rất khó để đo sự giống nhau, sự tương đồng Sự tương đồng là một đại lượng (consố) phản ánh cường độ của mối quan hệ giữa hai đối tượng hoặc hai đặc trưng Đại lượngnày thường ở trong phạm vi từ -1 đến 1 hoặc 0 đến 1 Như
Trang 31vậy, một độ đo tương đồng có thể coi là một loại Scoring Function (hàm tính
điểm)
Ví dụ, trong mô hình không gian vector, ta sử dụng độ đo Cosine để tính
độ tương đồng giữa hai văn bản, mỗi văn bản được biểu diễn bởi một vector
2.3.2 Độ tương đồng
Phát biểu bài toán độ tính tương đồng như sau: Xét 2 văn bản di và dj
Mục tiêu của bài toán là tìm ra một giá trị của hàm S(di,dj) với S ∈ (0,1) Hàm
S(di,dj) được gọi là độ đo sự tương đồng giữa 2 văn bản di và dj Giá trị càng
cao thì sự giống nhau về nghĩa của hai văn bản càng nhiều
Ví dụ: Xét hai câu sau: “Tôi là nam” và “Tôi là nữ”, bằng trực giác có thể thấy rằnghai câu trên có sự tương đồng khá cao
Độ tương đồng ngữ nghĩa là một giá trị tin cậy phản ánh mối quan hệ ngữ nghĩagiữa hai câu Trên thực tế, khó có thể lấy một giá trị có chính xác cao bởi vì ngữ nghĩa chỉđược hiểu đầy đủ trong một ngữ cảnh cụ thể
2.3.3 Các phương pháp tính độ tương đồng
Bài toán độ tương đồng ngữ nghĩa được sử dụng phổ biến trong lĩnh vực xử lý ngônngữ tự nhiên và có nhiều kết quả khả quan Một số phương pháp tính độ tương đồng được
sử dụng để tính độ đo này như sau:
Phương pháp sử dụng thống kê: độ đo Cosine, độ đo khoảng cách
Trang 32dụng phân tích chủ đề ẩn [13] hay sử dụng mạng ngữ nghĩa Wikipedia để thay thế Wordnetđược xem như là các phương án khả thi và hiệu quả Các phương pháp này tập trung vàoviệc bổ sung các thành phần ngữ nghĩa hỗ trợ cho độ đo tương đồng Cosine.
2.3.3.1 Phương pháp tính độ tương đồng sử dụng độ đo Cosine
Trong phương pháp tính độ này, các câu sẽ được biểu diễn theo một mô hình khônggian vector Mỗi thành phần trong vector chỉ đến một từ tương ứng trong danh sách mục từchính Danh sách mục từ chính thu được từ quá trình tiền xử lý văn bản đầu vào, các bướctiền xử lý gồm: tách câu, tách từ, gán nhãn từ loại, loại bỏ những câu không hợp lệ (khôngphải là câu thực sự) và biểu diễn câu trên không gian vectơ
Không gian vector có kích thước bằng số mục từ trong danh sách mục từ chính.Mỗi phần tử là độ quan trọng của mục từ tương ứng trong câu Độ quan trọng của từ j đượctính bằng TF như sau:
,
⍵, =
√∑ 2Trong đó, tfi,j là tần số xuất hiện của mục từ i trong câu j
Với không gian biểu diễn tài liệu được chọn là không gian vector và trọng số
TF, độ đo tương đồng được chọn là Cosine của góc giữa hai vector
tương ứng của hai văn bản là Si và Sk Vector biểu diễn hai câu lần lượt có dạng:
= < 1 , … , >, với là trọng số của từ thứ t trong không gian i
= < 1
, … ,
là trọng số của từ thứ t trong không gian
Độ tương tự giữa chúng được tính theo công thức:
Trang 33Trên các vector biểu diễn cho các câu lúc này chưa xét đến các quan hệ ngữ nghĩagiữa các mục từ, do đó các từ đồng nghĩa sẽ không được phát hiện, dẫn đến kết quả xét độtương tự có xét đến ngữ nghĩa chưa tốt.
2.3.3.2 Phương pháp tính độ tương đồng dựa vào độ đo khoảng cách Euclide
Khoảng cách Euclide là một phương pháp phổ biến để xác định mức độ tương đồnggiữa các vector đặc trưng của hai văn bản
Cho hai vector va và vb, khoảng cách Euclide được định nghĩa như sau:
nằm trong khoảng 0 và 1, do đó mức độ tương đồng
giữa hai vector này được xác định bằng công thức như sau:
(⃗ ⃗⃗⃗ ,⃗ ⃗⃗⃗⃗ ) 1
2(⃗
⃗⃗⃗ ,⃗⃗⃗⃗⃗ ) = 1 −
= 1 − √∑( − )