Trong thời đại thương mại điện tử việc khai phá cảm xúc của khác hàng nhằm đưa ra chiến lược kinh doanh là nhu cầu tất yếu của tất cả mọi người và tổ chức tham gia bán hàng Tuy nhiên hiện nay chưa có sản phẩm nào chuyên về lĩnh vực này hoặc có thì cũng đang ở mức thu thập và phân tích dữ liệu một cách thủ công Vấn đề đặt ra là làm thế nào để có thể thu thập dữ liệu và phân loại dữ liệu cảm xúc một cách tự động từ lời bình của người dùng về thiết bị sản phẩm từ đó trích xuất ra thông tin có ích nhằm phục vụ nhu cầu phân tích và lên kế hoạch kinh doanh Nghiên cứu này nhằm mục đích đề xuất ra giải pháp tự động cho vấn đề Khai phá lời bình trên các trang thương mại điện tử để xác định cảm xúc của khách hàng và từ đó xây dựng nên các biểu đồ trực quan nhằm hỗ trợ tốt nhất cho quá trình lên kế hoạch kinh doanh Dựa trên định lý Bayes và mã nguồn mở về xử lý ngôn ngữ tự nhiên tác giả đã đề xuất được mô hình giải pháp và xây dựng thành chương trình thực tế đáp ứng được các nhu cầu cơ bản nhất đồng thời đưa ra được hướng phát triển tiếp theo
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA -
HOÀNG TIẾN SƠN
KHAI PHÁ LỜI BÌNH TRÊN CÁC TRANG THƯƠNG MẠI ĐIỆN TỬ ĐỂ XÁC ĐỊNH
CẢM XÚC CỦA KHÁCH HÀNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Đà Nẵng – Năm 2017
Trang 2
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA -
HOÀNG TIẾN SƠN
KHAI PHÁ LỜI BÌNH TRÊN CÁC TRANG THƯƠNG MẠI ĐIỆN TỬ ĐỂ XÁC ĐỊNH
CẢM XÚC CỦA KHÁCH HÀNG
Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS Trương Ngọc Châu
Đà Nẵng – Năm 2017
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan:
Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy TS.Trương Ngọc Châu
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm
Học viên
Hoàng Tiến Sơn
Trang 4MỤC LỤC
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Mục đích nghiên cứu 1
3 Đối tượng và phạm vi nghiên cứu 1
4 Phương pháp nghiên cứu 2
5 Bố cục đề tài 2
6 Tổng quan tài liệu tham khảo 2
Chương 1 - CƠ SỞ LÝ THUYẾT 3
1.1 Khái niệm lời bình 3
1.2 Khái niệm về cảm xúc 3
1.3 Tổng quan về xử lý ngơn ngữ tiếng Anh 3
1.3.1 Đặc điểm của tiếng Anh 3
1.3.2 Nhận xét về tiếng Anh 4
1.4 Các phương pháp tách từ tiếng Anh 4
1.4.1 Phương pháp So khớp từ dài nhất (Longest Matching) 4
1.4.2 Phương pháp Học cải tiến (Transformation-based Learning - TBL) 5
1.4.3 Phương pháp So khớp cực đại (Maximum Matching) 5
1.5 Các thuật tốn phân loại 6
1.5.1 K láng giềng gần nhất K-Nearest Neighbors (k-NN) 6
1.5.2 Linear Least Square Fit 8
1.5.3 Centroid – based vector 9
1.5.4 Cây quyết định 9
1.5.5 C4.5 12
1.5.6 Máy vector hỗ trợ Support Vector Machine 14
1.5.7 Thuật tốn phân lớp Nạve Bayes 16
1.6 Gán thẻ và phân loại văn bản 18
1.6.1 Gán thẻ từ 18
1.6.2 Phân loại từ 19
Chương 2 - PHÂN TÍCH HỆ THỐNG 21
2.1 Phân tích yêu cầu đề tài 21
2.2 Mơ hình đề xuất phân loại cảm xúc từ lời bình 21
Trang 52.3 Thu thập dữ liệu (Crawler) 22
2.3.1 Nguyên lí thu thập dữ liệu 22
2.3.2 Thu thập dữ liệu từ các trang web động 23
2.4 Bĩc tách dữ liệu (Extractor) 23
2.4.1 Các vấn đề liên quan đến phân tích HTML 23
2.4.2 Chuẩn hĩa dữ liệu 26
2.5 Đề xuất mơ hình phân loại lời bình 26
2.6 Phân tích cảm xúc 27
2.6.1 Xác định Holder 27
2.6.2 Xác định Target 28
2.6.3 Phân loại Polarity 28
2.7 Tại sao lựa chọn giải thuật Nạve Bayer để phân lớp 28
2.7.1 Bài tốn tổng quan 28
2.7.2 Bài tốn cụ thể 29
2.7.3 Ưu điểm 29
2.7.4 Nhược điểm 30
2.7.5 Đo lường hiệu năng của giải thuật 30
2.8 Máy học trong bài tốn phân loại lời bình 31
2.8.1 Các tập dữ liệu cần thiết và ý nghĩa trong phân lớp với máy học 31
2.8.2 Phân rã thơng tin từ văn bản 33
Chương 3 - THIẾT KẾ VÀ CÀI ĐẶT HỆ THỐNG 35
3.1 Xây dựng chương trình mơ phỏng 35
3.1.1 Phần cứng 35
3.1.2 Phần mềm 35
3.2 Mơi trường phát triển 36
3.3 Phân tích thiết kế hệ thống 36
3.3.1 Hoạt động của hệ thống 36
3.3.2 Mơ hình thiết kế hệ thống 37
3.3.3 Thiết kế 41
3.4 Kết quả đạt được 42
3.5 Đánh giá kết quả 48
Trang 6KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50
1 Kết luận 50
2.Kết quả đạt được 50
3 Hướng phát triển 50
TÀI LIỆU THAM KHẢO
PHỤ LỤC
Trang 7TÓM TẮT LUẬN VĂN
KHAI PHÁ LỜI BÌNH TRÊN CÁC TRANG THƯƠNG MẠI
ĐIỆN TỬ ĐỂ XÁC ĐỊNH CẢM XÚC CỦA KHÁCH HÀNG
Học viên: Hoàng Tiến Sơn Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01 Khóa: 31 Trường Đại học Bách khoa – ĐHĐN
Tóm tắt – Trong thời đại thương mại điện tử, việc khai phá cảm xúc của khác
hàng nhằm đưa ra chiến lược kinh doanh là nhu cầu tất yếu của tất cả mọi người
và tổ chức tham gia bán hàng Tuy nhiên hiện nay chưa có sản phẩm nào chuyên
về lĩnh vực này, hoặc có thì cũng đang ở mức thu thập và phân tích dữ liệu một cách thủ công Vấn đề đặt ra là làm thế nào để có thể thu thập dữ liệu và phân loại dữ liệu cảm xúc một cách tự động từ lời bình của người dùng về thiết bị, sản phẩm từ đó trích xuất ra thông tin có ích nhằm phục vụ nhu cầu phân tích và lên
kế hoạch kinh doanh Nghiên cứu này, nhằm mục đích đề xuất ra giải pháp tự
động cho vấn đề Khai phá lời bình trên các trang thương mại điện tử để xác
định cảm xúc của khách hàng và từ đó xây dựng nên các biểu đồ trực quan
nhằm hỗ trợ tốt nhất cho quá trình lên kế hoạch kinh doanh Dựa trên định lý Bayes và mã nguồn mở về xử lý ngôn ngữ tự nhiên, tác giả đã đề xuất được mô hình giải pháp và xây dựng thành chương trình thực tế đáp ứng được các nhu cầu cơ bản nhất, đồng thời đưa ra được hướng phát triển tiếp theo
Từ khóa – lời bình, khai phá lời bình, python, thương mại điện tử, cảm xúc
khách hàng
MINING THE COMMENTS ON E-COMMERCE TO IDENTIFY
CLIENTS' EMOTIONS Abstract – In the time of e-commerce, identify clients’ emotions to raise
business plan is the most needed of sellers and merchants Actually, it does not have any automation specific product for this field, or if have, they are in manual collection and analytic way This research for purpose giving an
automation method for Mining the comments on e-commerce to identify clients’
emotions and base on that, building visual diagram for the best support to
business plan Base on Bayes theorem and Natural Language Toolkit, an open source, author raised a solution model and built demo that can support basic require, also raised improving plan in the future
Key words – comment, comment mining, python, ecommerce, client sentiment
Trang 8DOM Document Object Model
HTML Hyper Text Markup Language
kNN k Nearest Neighbor
LLSF Linear Least Square Fit
NLTK Natural Language Toolkit
SVM Support Vector Machine
TBL Transformation – Based Learning
W3C World Wide Web Consortium
Trang 9DANH MỤC CÁC HÌNH VẼ
Số hiệu
2.2 Mô hình tự động bóc tách dữ liệu từ trang web 22 2.3 Mô hình bóc tách dữ liệu từ trang web động 23 2.4 Hình minh họa cấu trúc cây HTML DOM 24
2.6 Mô hình máy học trong phân loại lời bình 31 2.7 Các tập dữ liệu thường dùng trong máy học 32 2.8 Hệ thống phân rã thông tin đơn giản 33
3.3 Biểu đồ tuần tự xem thống kê theo tên nhãn hiệu 40 3.4 Biểu đồ tuần tự xem thống kê theo tên thiết bị 40
3.7 Lời bình đã được phân loại theo nhãn hiệu 42 3.8 Phân loại và thống kê theo thiết bị 43 3.9 Lời bình đã được phân loại theo thiết bị 43
3.17 Admin chỉnh sửa thông tin nhãn hiệu 47 3.18 Admin chỉnh sửa thông tin thiết bị 47
Trang 10MỞ ĐẦU
1 Tính cấp thiết của đề tài
Trong kỹ nguyên của thời đại công nghệ số thì việc khai phá thông tin có ích tiềm ẩn trong cơ sở dữ liệu là điều không thể thiếu
Hiện nay phần lớn các thông tin được khai phá chủ yếu lưu trữ trong các hệ quản trị cơ sở dữ liệu có cấu trúc Tuy nhiên, với sự phát triển nhanh chóng như ngày nay thì còn rất nhiều kiến thức quan trọng chưa được khai phá, tiềm ẩn trong thế giới của World Wide Web (các websites), các dữ liệu tiềm năng này được lưu trữ dưới dạng văn bản, là dạng dữ liệu phi cấu trúc hoặc bán cấu trúc Một trong số những kiến thức quan trọng, đóng vai trò giúp đỡ nghiên cứu thị trường trong lĩnh vực kinh doanh mặt hàng bán lẻ là khám phá cảm xúc, độ quan tâm của người dùng đối với mặt hàng, được thể hiện qua các comment (lời bình) của người dùng trên các trang thương mại điện tử, từ đó có chiến lược điều chỉnh kinh doanh hợp lý
Websites thương mại điện tử thường chứa nhiều lời bình
Hiện nay việc thống kê dữ liệu đánh giá độ quan tâm của khách hàng tới sản phẩm thường được tiến hành thủ công
Vấn đề đặt ra là làm thế nào để có thể thu thập dữ liệu và phân loại dữ liệu cảm xúc một cách tự động từ lời bình của người dùng về thiết bị, sản phẩm từ đó trích xuất ra thông tin có ích nhằm phục vụ nhu cầu phân tích và lên kế hoạch kinh doanh
Xuất phát từ lý do trên, tôi đã chọn đề tài: “Khai phá lời bình trên các trang thương mại điện tử để xác định cảm xúc của khách hàng” làm luận văn thạc sỹ
của mình
2 Mục đích nghiên cứu
Tìm hiểu cảm xúc của khách hàng thông qua lời bình trên các trang thương mại điện tử
3 Đối tượng và phạm vi nghiên cứu
a Đối tượng nghiên cứu
Cảm xúc trong lời bình trên các trang thương mại điện tử về các điện thoại di động thông minh
Các phương pháp phân loại cảm xúc văn bản bằng tiếng Anh
Phân loại cảm xúc văn bản tiếng Anh bằng phương pháp phân lớp Naive Bayes Classifiers
Trang 11 Ngôn ngữ lập trình Python ứng dụng trong lập trình hệ thống phân loại cảm xúc lời bình
b Phạm vi nghiên cứu
Trong khuôn khổ luận văn, tôi nghiên cứu các lời bình về điện thoại thông minh trên trang thương mại điện tử http://www.lazada.sg/ và xây dựng mô hình tự động thống kê, phân loại lời bình thành cảm xúc mang tính tích cực và cảm xúc mang tính tiêu cực
4 Phương pháp nghiên cứu
a Phương pháp lý thuyết
Tiến hành thu thập và nghiên cứu các tài liệu có liên quan đến đề tài
Nghiên cứu lý thuyết về khám phá cảm xúc, nhận dạng cảm xúc văn bản, đặc tính của văn bản, các thuật toán phân loại
b Phương pháp thực nghiệm
Xây dựng tập dữ liệu lời bình
Xây dựng mô hình nhận dạng cảm xúc từ lời bình
Kiểm tra, thử nghiệm và đánh giá kết quả
5 Bố cục đề tài
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
Chương này trình bày khái quát về khai phá lời bình, các phương pháp phân loại cảm xúc lời bình đối với tiếng Anh
CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG
Chương này trình bày khai phá lời bình để xác định cảm xúc lời bình tiếng Anh sử dụng phương pháp Naive bayes
CHƯƠNG 3: THIẾT KẾ VÀ CÀI ĐẶT HỆ THỐNG
Sử dụng ngôn ngữ lập trình Python để viết chương trình demo việc phân loại cảm xúc lời bình bằng tiếng Anh
6 Tổng quan tài liệu tham khảo
Tài liệu tham khảo được sử dụng trong luận văn gồm sách báo và các luận văn của các học viên các lớp cao học ở các trường
Một số tài liệu tham khảo về các phương pháp phân loại văn bản [3] [4]
Một số tài liệu tham khảo về phân tích cảm xúc [1] [2] [5] [6]
Tài liệu tham khảo về xử lý ngôn ngữ tự nhiên [7] [8]
Trang 12Chương 1 - CƠ SỞ LÝ THUYẾT
1.1 Khái niệm lời bình
Lời bình là lời nói hoặc viết nhằm xem xét, phân tích, đánh giá ưu điểm và khuyết điểm của sự vật hoặc sự việc
1.2 Khái niệm về cảm xúc
Cảm xúc hay xúc cảm là một hình thức trải nghiệm cơ bản của con người
về thái độ của chính mình đối với sự vật, hiện tượng của hiện thực khách quan, với người khác và với bản thân Sự hình thành cảm xúc là một điều kiện tất yếu của sự phát triển con người như là một nhân cách
Cảm xúc hay thái độ tiêu cực là những cảm xúc, thái độ thụ động, tránh đấu tranh, gồm:
1.3 Tổng quan về xử lý ngôn ngữ tiếng Anh
1.3.1 Đặc điểm của tiếng Anh
Trong tiếng Anh có những đặc điểm cơ bản sau:
- Từ là đơn vị cơ bản của tiếng Anh
- Từ là một nhóm các ký tự có nghĩa được tách biệt với nhau bởi khoảng trắng hoặc dấu câu
- Trong hoạt động ngôn ngữ, từ có biến đổi hình thái Ví dụ: see, saw, seen
- Ý nghĩa ngữ pháp nằm trong từ Ví dụ: I see him và he sees me
- Phương pháp ngữ pháp chủ yếu là phụ tố Ví dụ: learning và learned
- Nhiều từ được cấu tạo bằng cách ghép thêm phụ tố vào từ gốc
Ví dụ: Anticomputerizational
Trang 131.3.2 Nhận xét về tiếng Anh
- Là loại hình ngôn ngữ có biến đổi hình thái nên việc phân biệt loại từ
và ý nghĩa từ đơn giản
- Đơn vị cơ bản là từ, ranh giới từ được phân biệt bằng khoảng trắng
hoặc dấu câu nên tách từ trong tiếng Anh rất đơn giản
- Ý nghĩa ngữ pháp nằm ngay trong từ nên có thể thực hiện tính xác suất xuất hiện của từ trong văn bản để có thể rút trích đặc trưng của văn bản
1.4 Các phương pháp tách từ tiếng Anh
1.4.1 Phương pháp So khớp từ dài nhất (Longest Matching)
- Định nghĩa bài toán: Cho hai xâu S độ dài m và xâu T độ dài n, tìm xâu có
độ dài lớn nhất là xâu con của cả hai xâu S và T
- Tổng quát hóa bài toán này là bài toán tìm xâu con k-chung (k-common substring problem):
Cho một tập xâu S = {S1, , Sk} trong đó |Si| = ni với ∑ni = N Với mỗi giá trị k thỏa mãn 2 ≤ k ≤ K, tìm các xâu con chung dài nhất của ít nhất k xâu Bài toán thường được giải quyết bằng phương pháp quy hoạch động
Quy hoạch động:
Trong ngành khoa học máy tính, quy hoạch động là một phương pháp giảm thời gian chạy của các thuật toán thể hiện các tính chất của các bài toán con gối nhau và cấu trúc con tối ưu
Là kĩ thuật thiết kế thuật toán theo kiểu chia bài toán lớn thành các bài toán con, sử dụng lời giải của các bài toán con để tìm lời giải cho bài toán ban đầu Quy hoạch động, thay vì gọi đệ quy, sẽ tính trước lời giải của các bài toán con
và lưu vào bộ nhớ (thường là một mảng), và sau đó lấy lời giải của bài toán con
ở trong mảng đã tính trước để giải bài toán lớn
Tóm lại, quy hoạch động sử dụng:
Các bài toán con gối nhau
Cấu trúc con tối ưu
Memoization
Quy hoạch động thường dùng một trong hai cách tiếp cận:
top-down (từ trên xuống): Bài toán được chia thành các bài toán con, các bài toán con này được giải và lời giải được ghi nhớ để phòng trường hợp cần dùng lại chúng
Trang 14 bottom-up (từ dưới lên): Tất cả các bài toán con có thể cần đến đều được giải trước, sau đó được dùng để xây dựng lời giải cho các bài toán lớn hơn Cách tiếp cận này tốt hơn về không gian bộ nhớ dùng cho ngăn xếp và số lời gọi hàm
1.4.2 Phương pháp Học cải tiến (Transformation-based Learning - TBL)
Transformation-based Learning được Eric Brill giới thiệu lần đầu vào năm
1992 Ý tưởng chính của TBL là bắt đầu với một số giải pháp đơn giản cho vấn
đề này và áp dụng các phép biến đổi - ở mỗi bước chuyển đổi mang lại lợi ích lớn nhất được lựa chọn và áp dụng cho vấn đề Thuật toán ngừng khi chuyển đổi được lựa chọn không sửa đổi dữ liệu ở những nơi đủ, hoặc không có nhiều chuyển đổi hơn để được chọn
Đầu tiên văn bản chưa được tách từ T1 được phân tích thông qua chương trình khởi tạo tách từ ban đầu P1 Sau khi qua chương trình P1, ta được văn bản T2 đã được tách từ Văn bản T2 được so sánh với văn bản đã được tách từ trước một cách chính xác là T3 Chương trình P2 sẽ thực hiện học từng phép chuyển đổi (transformation) để khi áp dụng thì T2 sẽ giống với văn bản chuẩn T3 hơn Quá trình học được lặp đi lặp lại đến khi không còn phép chuyển đổi nào khi áp dụng làm cho T2 tốt hơn nữa Kết quả ta thu được bộ luật R dùng cho công việc tách từ
Phương pháp TBL có nhược điểm là mất rất nhiều thời gian học và tốn nhiều không gian nhớ do nó phải sinh ra các luật trung gian trong quá trình học
Vì để học được một bộ luật thì TBL chạy rất lâu và dùng tới nhiều bộ nhớ, nên việc xây dựng được một bộ luật đầy đủ dùng cho việc tách từ là rất khó khăn Vì thế khi áp dụng phương pháp này, sẽ có khá nhiều nhập nhằng
Tuy nhiên sau khi có bộ luật thì TBL lại tiến hành việc tách từ khá nhanh Hơn nữa, ý tưởng của phương pháp rút ra các quy luật từ ngôn ngữ và liên tục sửa sai cho luật thông qua quá trình lặp là phù hợp với bài toán xử lý ngôn ngữ
tự nhiên
1.4.3 Phương pháp So khớp cực đại (Maximum Matching)
Phương pháp này còn được gọi là phương pháp khớp tối đa Tư tưởng của phương pháp này là duyệt một câu từ trái qua phải và chọn từ có nhiều tiếng nhất mà có mặt trong từ điển
Thuật toán có 2 dạng sau:
Dạng đơn giản:
Giả sử có một chuỗi các tiếng trong câu là t1, t2, tN
Thuật toán sẽ kiểm tra xem t1 có mặt trong từ điển hay không, sau đó kiểm tra tiếp t1-t2 có trong từ điển hay không Tiếp tục như vậy cho đến khi tìm được
Trang 15từ có nhiều tiếng nhất có mặt trong từ điển, và đánh dấu từ đó Sau đó tiếp tục quá trình trên với tất các các tiếng còn lại trong câu và trong toàn bộ văn bản Dạng phức tạp:
Dạng này có thể tránh được một số nhập nhằng gặp phải trong dạng đơn giản Đầu tiên thuật toán kiểm tra xem t1 có mặt trong từ điển không, sau đó kiểm tra tiếp t1 – t2 có mặt trong từ điển không Nếu t1 và t1 - t2 đều có mặt trong
từ điển thì thuật toán thực hiện chiến thuật chọn 3 - từ tốt nhất
Tiêu chuẩn 3 - từ tốt nhất được Chen & Liu đưa ra như sau:
- Độ dài trung bình của 3 từ là lớn nhất
- Sự chênh lệch độ dài của 3 từ là ít nhất
Ưu điểm của phương pháp trên có thể thấy rõ là đơn giản, dễ hiểu và chạy nhanh Hơn nữa chúng ta chỉ cần một tập từ điển đầy đủ là có thể tiến hành tách
từ cho các văn bản, hoàn toàn không phải trải qua huấn luyện
1.5 Các thuật toán phân loại
1.5.1 K láng giềng gần nhất K-Nearest Neighbors (k-NN)
k-NN được sử dụng rất phổ biến trong lĩnh vực Data Mining, là phương pháp để phân lớp các đối tượng dựa vào khoảng cách gần nhất giữa đối tượng cần xếp lớp (Query point) và tất cả các đối tượng trong Training Data
Một đối tượng được phân lớp dựa vào k láng giềng của nó k là số nguyên dương được xác định trước khi thực hiện thuật toán Người ta thường dùng khoảng cách Euclidean để tính khoảng cách giữa các đối tượng
Thuật toán k-NN được mô tả như sau:
Xác định giá trị tham số k (số láng giềng gần nhất)
Tính khoảng cách giữa đối tượng cần phân lớp (Query Point) với tất cả các đối tượng trong training data (thường sử dụng khoảng các Euclidean)
Sắp xếp khoảng cách theo thứ tự tăng dần và xác định k láng giềng gần nhất với Query Point
Lấy tất cả các lớp của k láng giềng gần nhất đã xác định
Dựa vào phần lớn lớp của láng giềng gần nhất để xác định lớp cho Query Point
Ví dụ minh họa:
Trong hình dưới đây, training Data được mô tả bởi dấu (+) và dấu (-), đối tượng cần được xác định lớp cho nó (Query point) là hình tròn đỏ Nhiệm vụ của chúng ta là ước lượng (hay dự đoán) lớp của Query point dựa vào việc lựa chọn
số láng giềng gần nhất với nó Nói cách khác chúng ta muốn biết liệu Query Point sẽ được phân vào lớp (+) hay lớp (-)
Trang 16Ta thấy rằng:
1-Nearest neighbor: kết quả là + (Query Point được xếp vào lớp dấu +) 2-Nearest neighbors: không xác định lớp cho Query Point vì số láng giềng gần nhất với nó là 2 trong đó 1 là lớp + và 1 là lớp – (không có lớp nào có số đối tượng nhiều hơn lớp kia)
5-Nearest neighbors: kết quả là - (Query Point được xếp vào lớp dấu - vì trong 5 láng giềng gần nhất với nó thì có 3 đối tượng thuộc lớp - nhiều hơn lớp + chỉ có 2 đối tượng)
Thuật toán phân loại văn bản k Nearest Neighbor:
Giả sử có loại văn bản huấn luyện C1, C2, …, Cj và tổng các mẫu huấn luyện là N Sau khi tiền xử lý cho mỗi văn bản, tất cả chúng đều trở thành vector
m chiều đặc trưng
Xử lý văn bản X thành dạng vector đặc trưng như các mẫu huấn luyện Tính sự tương đồng giữa các mẫu huấn luyện và văn bản X Lấy văn bản thứ i làm mẫu di (di1, di2, …, dim), sự giống nhau 𝑆𝐼𝑀(𝑋, 𝑑𝑖) được tính theo công thức sau:
𝑆𝐼𝑀(𝑋, 𝑑𝑖) = ∑ 𝑑𝑖𝑗 𝑋𝑗
𝑚 𝑗−1
√(∑𝑚𝑗−1𝑋𝑗)2 √(∑𝑚𝑗−1𝑑𝑖𝑗)2Chọn k mẫu lớn hơn từ N tương đồng của SIM(X, di), (i = 1, 2, …, N), và xem chúng như một bộ k láng giềng gần nhất của X Sau đó, tính toán xác suất của X thuộc về mỗi loại tương ứng với công thức sau đây:
𝑃(𝑋, 𝐶𝑗) = ∑ 𝑆𝐼𝑀(𝑋, 𝑑𝑗) 𝑦(𝑑𝑖, 𝐶𝑗)
𝑑𝑗𝜖 𝑘𝑁𝑁Trong đó 𝑦(𝑑𝑖, 𝐶𝑗) nhận một trong 2 giá trị 0 hoặc 1:
Trang 17𝑦(𝑑𝑖, 𝐶𝑗) = {0, 𝑑1, 𝑑𝑖 𝜖 𝐶𝑗
𝑖 ∉ 𝐶𝑗Khi y = 1 thì văn bản X thuộc loại Cj, khi y = 0 thì văn b không thuộc loại
Cj Sau đó kết luận, văn bản X thuộc loại có giá trị P(X,Cj) lớn nhất Để chọn được tham số k tốt nhất cho việc phân loại, thuật toán phải được chạy thử nghiệm trên nhiều giá trị k khác nhau, giá trị k càng lớn thì thuật toán càng ổn định và sai sót càng thấp
1.5.2 Linear Least Square Fit
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 Đầu tiên, LLSF được Yang và Chute thử nghiệm trong lĩnh vực xác định từ đồng nghĩa sau đó sử dụng trong phân loại vào năm 1994 Các thử nghiệm của Yang 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 k-NN kinh điển
LLSF 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 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
Giải phương trình các cặp vector đầu vào đầu ra, ta sẽ được ma trận đồng hiện của hệ số hồi quy của từ và chủ đề (matrix of word-category regression coefficients)
𝐹𝐿𝑆 = 𝑎𝑟𝑔𝑚𝑖𝑛𝐹 = ‖𝐹𝐴 − 𝐵‖2Trong đó A, B là ma trận đại diện tập dữ liệu huấn luyện (các cột trong ma trận tương ứng là các vector đầu vào và đầu ra)
FLS là ma trận kết quả chỉ ra một ánh xạ từ một văn bản bất kỳ vào vector của chủ đề đã gán trọng số
Nhờ vào việc sắp xếp trọng số của các chủ đề, ta được một danh sách chủ
đề có thể gán cho văn bản cần phân loại Nhờ đặt ngưỡng lên trọng số của các chủ đề mà ta tìm được chủ đề thích hợp cho văn bản đầu vào Hệ thống tự động học các ngưỡng tối ưu cho từng chủ đề, giống với kNN Mặc dù LLSF và k-NN khác nhau về mặt thống kê, nhưng ta vẫn tìm thấy điểm chung ở hoạt động của hai phương pháp là việc học ngưỡng tối ưu
Trang 181.5.3 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ó
Chúng ta có công thức tính vector trọng tâm của lớp i:
Độ đo khoảng cácg giữa vector x và vector Ci:
Trong đó :
- x là vector văn bản cần phân loại
- {i} là tập hợp các văn bản thuộc chủ đề Ci
Chủ đề của vector x là Cx thỏa mãn cos(x, Cx)= arg max (cos(x,Ci))
1.5.4 Cây quyết định
Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc được dùng
để phân lớp các đối tượng dựa vào dãy các luật (series of rules) Các thuộc tính của đối tượng (ngoại trừ thuộc tính phân lớp – Category attribute) có thể thuộc các kiểu dữ liệu khác nhau (Binary, Nominal, ordinal, quantitative values) trong khi đó thuộc tính phân lớp phải có kiểu dữ liệu là Binary hoặc Ordinal
Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các đối tượng chưa biết (unseen data)
Ví dụ minh họa:
Ta có dữ liệu (training data) về 10 đối tượng (người) Mỗi đối tượng được
mô tả bởi 4 thuộc tính là Gender, Car Ownership, Travel Cost/Km, Income Level và 1 thuộc tính phân loại (category attribute) là Transportation mode
Trong đó thuộc tính Gender có kiểu binary, thuộc tính Car Ownership có kiểu
Trang 19Quantitative integer (0,1), Travel Cost/Km và Income Level có kiểu dữ liệu Ordinal
Tranining data cho biết sự lựa chọn về loại phương tiện vận chuyển (car, bus, train) của khách dựa vào 4 thuộc tính đã cho
Gender Car ownership Travel Cost
($)/km
Income Level
Transportation mode
Dựa vào Training Data ở trên, chúng ta có thể tạo ra cây quyết định như sau
Chú ý rằng trong cây quyết định trên, thuộc tính “Income Level” không xuất hiện trong cây bởi vì dựa vào training data đã cho, thuộc tính “Travel Cost/Km” sẽ sinh ra cây quyết định tốt dùng để phân loại tốt hơn “Income Level”
Trang 20Làm sao để sử dụng cây quyết định trong dự đoán lớp của các dữ liệu chưa biết
Mục đích chính của cây quyết định là dùng để dự đoán lớp (xác định lớp) của các đối tượng chưa biết (unseen data) Giả sử rằng ta có dữ liệu về 3 người với các giá trị dữ liệu đã biết về các thuộc tính Gender, Car Ownership, Travel Cost/Km, Income Level Tuy nhiên ta chưa biết họ sẽ chọn phương tiện vận chuyển nào (Car, Bus, Train) Nhiệm vụ của chúng ta là sử dụng cây quyết định
đã tạo ra để dự đoán (predict) Alex, Buddy và Cherry sẽ chọn phương tiện vận chuyển nào dựa vào 4 thuộc tính của họ Dữ liệu dưới đây còn được gọi là Testing Data
Person
name Gender
Car ownership
Travel Cost ($)/km
Income Level
Transportation Mode
Chúng ta bắt đầu từ node gốc của cây (root node) từ thuộc tính Travel
Cost/Km, ta thấy rằng nếu Travel Cost/Km là Expensive thì người đó sẽ chọn phương tiện là Car Nếu Travel Cost/Km là standard thì họ sẽ chọn phương tiện vận chuyển là Train Nếu Travel Cost/Km là Cheap thì cây quyết định cần tới giá trị của trường Gender của người đó, nếu Gender là Male thì chọn Bus, nếu giới tính là Female thì cây quyết định cần kiểm tra xem người đó có sử
hữu bao nhiêu xe hơi (Car Ownership) Nếu số xe hơi sở hữu là 0 thì người đó
sẽ chọn xe Bus, nếu số xe hơi sở hữu là 1 thì người đó sẽ chọn Train
Theo cây quyết định trên, các luật (Series of Rules) được sinh ra từ cây quyết định dùng để dự đoán như sau:
Rule 1: If Travel cost/km is expensive then mode = car
Rule 2: If Travel cost/km is standard then mode = train
Rule 3: If Travel cost/km is cheap and gender is male then mode = bus Rule 4: If Travel cost/km is cheap and gender is female and she owns no
car then mode = bus
Rule 5: If Travel cost/km is cheap and gender is female and she owns 1 car
then mode = train
Dựa vào các luật này, việc dự đoán lớp cho các dữ liệu chưa biết (unseen data hay Testing data) rất đơn giản
Trang 21Trong ví dụ này, Alex có giá trị của thuộc tính Travel Cost/Km là Standard nên sẽ chọn phương tiện là Train (Rule 2) mà không cần quan tâm đến các thuộc tính khác của Alex Buddy có giá trị của thuộc tính Travel Cost/Km là Cheap và Gender của anh ta là Male nên anh ta sẽ chọn Bus (Rule 3) Cheery cũng có giá trị thuộc tính Travel Cost/Km là Cheap nhưng Gender là Female và sở hữu 1 xe hơi cho nên theo cây quyết định trên (Rule 5) cô ta sẽ chọn phương tiện là Train
Kết quả phân lớp bằng cây quyết định như sau:
Person name Travel Cost
($)/km Gender Car ownership
Transportation Mode
Cây quyết định là một phương pháp phân lớp rất hiệu quả và dễ hiểu Tuy nhiên có một số chú ý khi sử dụng cây quyết định trong xây dựng các mô hình phân lớp như sau:
Hiệu qủa phân lớp của cây quyết định (Series of Rules) phụ thuộc rất lớn vào training data Chẳn hạn cây quyết định được tạo ra bởi chỉ giới hạn 10 samples training data trong ví dụ trên thì hiệu quả ứng dụng cây quyết định để
dự đoán các trường hợp khác là không cao (thường training data phải đủ lớn và tin cậy) và vì vậy ta không thể nói rằng tập các luật (Series of Rules) được sinh
ra bởi cây quyết định trên là tập luật tốt nhất
Có rất nhiều thuật toán phân lớp như ID3, J48, C4.5, CART (Classification and Regression Tree),… Việc chọn thuật toán nào để có hiệu quả phân lớp cao tuy thuộc vào rất nhiều yếu tố, trong đó cấu trúc dữ liệu ảnh hưởng rất lớn đến kết quả của các thuật toán Chẳn hạn như thuật toán ID3 và CART cho hiệu quả phân lớp rất cao đối với các trường dữ liệu số (quantitative value) trong khi đó các thuật toán như J48, C4.5 có hiệu quả hơn đối với các dữ liệu Qualititive value (ordinal, Binary, nominal)
1.5.5 C4.5
C4.5 là thuật toán phân lớp dữ liệu dựa trên cây quyết định hiệu quả và phổ biến trong những ứng dụng khai phá cơ sở dữ liệu có kích thước nhỏ C4.5 sử dụng cơ chế lưu trữ dữ liệu thường trú trong bộ nhớ, chính đặc điểm này làm C4.5 chỉ thích hợp với những cơ sở dữ liệu nhỏ, và cơ chế sắp xếp lại dữ liệu tại mỗi node trong quá trình phát triển cây quyết định C4.5 còn chứa một kỹ thuật cho phép biểu diễn lại cây quyết định dưới dạng một danh sách sắp thứ tự các
Trang 22luật if-then (một dạng quy tắc phân lớp dễ hiểu) Kỹ thuật này cho phép làm
giảm bớt kích thước tập luật và đơn giản hóa các luật mà độ chính xác so với nhánh tương ứng cây quyết định là tương đương
Tư tưởng phát triển cây quyết định của C4.5 là phương pháp Hunt đã nghiên cứu ở trên Chiến lược phát triển theo độ sâu (depth-first strategy) được
C4.5 dùng Gain-entropy làm độ đo lựa chọn thuộc tính “tốt nhất”
Phần lớn các hệ thống đều cố gắng để tạo ra một cây càng nhỏ càng tốt, vì những cây nhỏ hơn thì dễ hiểu hơn và dễ đạt được độ chính xác dự đoán co hơn
Do không thể đảm bảo được sự cực tiểu của cây quyết định, C4.5 dựa vào nghiên cứu tối ưu hóa, và sự lựa chọn cách phân chia mà có độ đo lựa chọn thuộc tính đạt giá trị cực đại
Hai độ đo được sử dụng trong C4.5 là information gain và gain ratio
RF(Cj, S) biểu diễn tần xuất (Relative Frequency) các case trong S thuộc về lớp Cj
Trang 23thì information gain được tính bằng:
𝐺(𝑆, 𝐵) = 𝐼(𝑆) − ∑|𝑆|𝑆|𝑖|𝐼(𝑆𝑖) Test B sẽ được chọn nếu có G(S,B) đạt giá trị lớn nhất Tuy nhiên có một vấn đề khi sử dụng G(S,B) ưu tiên test có số lượng lớn kết quả, ví dụ G(S,B) đạt cực đại với test mà từng Si chỉ chứa một case đơn Tiêu chuẩn gain ratio giải quyết được vấn đề này bằng việc đưa vào thông tin tiềm năng (potential information) của bản thân mỗi phân hoạch
𝑃(𝑆, 𝐵) = − ∑|𝑆𝑖|
|𝑆| log(
|𝑆𝑖|
|𝑆|) Test B sẽ được chọn nếu có tỉ số giá trị 𝑔𝑎𝑖𝑛 𝑟𝑎𝑡𝑖𝑜𝑛 = 𝐺(𝑆,𝐵)
𝑃(𝑆,𝐵) lớn nhất Trong mô hình phân lớp C4.5, có thể dùng một trong hai loại chỉ số Information Gain hay Gain ratio để xác định thuộc tính tốt nhất Trong đó Gain ratio là lựa chọn mặc định
C4.5 là một thuật toán hiệu quả cho những tập dữ liệu vừa và nhỏ
C4.5 có cơ chế sinh cây quyết định hiệu quả và chặt chẽ bằng việc sử dụng
độ đo lựa chọn thuộc tính tốt nhất là information gain Các cơ chế xử lý với giá
trị lỗi, thiếu và chống “quá vừa” dữ liệu của C4.5 cùng với cơ chế cắt tỉa cây đã tạo nên sức mạnh của C4.5 Thêm vào đó, mô hình phân lớp C4.5 còn có phần
chuyển đổi từ cây quyết định sang luật if- then, làm tăng độ chính xác và tính dễ
hiểu của kết quả phân lớp Đây là tiện ích rất có ý nghĩa đối với người sử dụng
1.5.6 Máy vector hỗ trợ Support Vector Machine
Máy vectơ hỗ trợ (SVM - viết tắt tên tiếng Anh support vector machine) là một khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phương pháp học có giám sát liên quan đến nhau để phân loại và phân tích hồi quy SVM dạng chuẩn nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau
Trang 24Do đó SVM là một thuật toán phân loại nhị phân Với một bộ các ví dụ luyện tập thuộc hai thể loại cho trước, thuật toán luyện tập SVM xây dựng một mô hình SVM để phân loại các ví dụ khác vào hai thể loại đó Một mô hình SVM là một cách biểu diễn các điểm trong không gian và lựa chọn ranh giới giữa hai thể loại sao cho khoảng cách từ các ví dụ luyện tập tới ranh giới là xa nhất có thể Các ví dụ mới cũng được biểu diễn trong cùng một không gian và được thuật toán dự đoán thuộc một trong hai thể loại tùy vào ví dụ đó nằm ở phía nào của ranh giới
Tổng quan về máy vectơ hỗ trợ Một máy vectơ hỗ trợ xây dựng một siêu phẳng hoặc một tập hợp các siêu phẳng trong một không gian nhiều chiều hoặc
vô hạn chiều, có thể được sử dụng cho phân loại, hồi quy, hoặc các nhiệm vụ khác Một cách trực giác, để phân loại tốt nhất thì các siêu phẳng nằm ở càng xa các điểm dữ liệu của tất cả các lớp (gọi là hàm lề) càng tốt, vì nói chung lề càng lớn thì sai số tổng quát hóa của thuật toán phân loại càng bé Trong nhiều trường hợp, không thể phân chia các lớp dữ liệu một cách tuyến tính trong một không gian ban đầu được dùng để mô tả một vấn đề Vì vậy, nhiều khi cần phải ánh xạ các điểm dữ liệu trong không gian ban đầu vào một không gian mới nhiều chiều hơn, để việc phân tách chúng trở nên dễ dàng hơn trong không gian mới Để việc tính toán được hiệu quả, ánh xạ sử dụng trong thuật toán SVM chỉ đòi hỏi tích vô hướng của các vectơ dữ liệu trong không gian mới có thể được tính dễ dàng từ các tọa độ trong không gian cũ Tích vô hướng này được xác định bằng một hàm hạt nhân K(x,y) phù hợp.[5] Một siêu phẳng trong không gian mới được định nghĩa là tập hợp các điểm có tích vô hướng với một vectơ cố định trong không gian đó là một hằng số Vectơ xác định một siêu phẳng sử dụng trong SVM là một tổ hợp tuyến tính của các vectơ dữ liệu luyện tập trong không gian mới với các hệ số αi Với siêu phẳng lựa chọn như trên, các điểm x trong không gian đặc trưng được ánh xạ vào một siêu mặt phẳng là các điểm thỏa mãn:
Σi αi K(xi,x) = hằng số
Ghi chú rằng nếu K(x,y) nhận giá trị ngày càng nhỏ khi y xa dần khỏi x thì mỗi số hạng của tổng trên được dùng để đo độ tương tự giữa x với điểm xi tương ứng trong dữ liệu luyện tập Như vậy, tác dụng của tổng trên chính là so sánh khoảng cách giữa điểm cần dự đoán với các điểm dữ liệu đã biết Lưu ý là tập hợp các điểm x được ánh xạ vào một siêu phẳng có thể có độ phức tạp tùy ý trong không gian ban đầu, nên có thể phân tách các tập hợp thậm chí không lồi trong không gian ban đầu
Trang 251.5.7 Thuật tốn phân lớp Nạve Bayes
Nạve Bayes là một tập các thuật tốn phân loại dựa trên Bayes’ theorem,
nĩ khơng phải là một thuật tốn riêng lẽ mà là các thuật tốn cĩ họ hàng với nhau cùng chia sẻ một nguyên tắc chung
Nạve Bayes là phương pháp phân loại dựa trên xác suất được sử dụng rộng rãi trong lĩnh vực máy học (Mitchell trình bày năm 1996, Joachims trình bày năm 1997 và Jason năm 2001) được sử dụng lần đầu tiên trong lĩnh vực phân loại bởi Maron vào năm 1961, sau đĩ trở nên phổ biến dùng trong nhiều lĩnh vực như trong các cơng cụ tìm kiếm được mơ tả bởi Ri sbergen năm 1970, các bộ lọc mail được mơ tả bởi Sahami năm 1998, …
Ý tưởng cơ bản của cách tiếp cận Nạve Bayes là sử dụng xác suất cĩ điều kiện giữa từ và chủ đề để dự đốn xác suất chủ đề của một văn bản cần phân loại Điểm quan trọng của phương pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ trong văn bản đều độc lập với nhau Với giả định này phương pháp Nạve Bayes khơng sử dụng sự phụ thuộc của nhiều từ vào một chủ đề, khơng sử dụng việc kết hợp các từ để đưa ra phán đốn chủ đề
Định lý Bayes
Cho X, C là các biến bất kỳ (rời rạc, liên tục, cấu trúc) Mục tiêu của ta là
dự đốn C từ X Từ mơ hình Bayes ta cĩ thể lượng giá các tham số của P(X|C), P(C) trực tiếp từ tập huấn luyện Sau đĩ, ta sử dụng định lý Bayes để tính P(C|X=x)
Độc lập điều kiện (conditional independence): X độc lập điều kiện với Y khi cho Z nếu phân bố xác suất trên X độc lập với các giá trị của Y khi cho các giá trị của Z Ta thường viết P(X|Y,Z) = P(X|Z)
Ví dụ: P(Sấm sét|Mưa,Chớp) = P(Sấm sét|Chớp)
Nạve Bayes
Giả sử D là tập huấn luyện gồm các mẫu biểu diễn dưới dạng X = <x1, …,
xn>.Ci,D là tập các mẫu của D thuộc lớp Ci(i = {1, …, m}) Các thuộc tính x1, …,
xn độc lập điều kiện đơi một với nhau khi cho lớp C
Trang 26Bài tốn cụ thể
Cĩ Training Data và Unseen data như sau
Sử dụng Nạve Bayes Classifier để phân lớp cho Unseen data (X)
Class: C1:buys_computer =”yes”, C2:buys_computer =”no”
Tính P(X|Ci) cho mỗi class
X=(age<=30, income =”medium”, student=”yes”,credit_rating=”fair”)
Trang 27vi văn bản đó, tức là phân loại các từ thành các lớp từ loại dựa trên thực tiễn hoạt động ngôn ngữ
Trong nhiều tác vụ của Xử lý ngôn ngữ tự nhiên (XLNNTN), ta mong muốn xây dựng được một mô hình mà chuỗi các quan sát đầu vào (từ, ngữ, câu,
…) đi kèm với chuỗi các nhãn đầu ra (từ loại, ranh giới ngữ nghĩa, tên thực thể,
…) gọi là pairs of sequences
Gán nhãn từ loại (Part-of-speech tagging – POS) có lẽ là bài toán sớm nhất được nghiên cứu và được mọi người biết đến khi nhập môn chuyên ngành XLNNTN
Trong gán nhãn từ loại, mục tiêu của chúng ta khi đưa chuỗi đầu vào là một
câu, ví dụ: “And now for something completely different” chuỗi đầu ra sẽ là
nhãn (tag sequence) tương ứng:
[('And', 'CC'), ('now', 'RB'), ('for', 'IN'), ('something', 'NN'), ('completely', 'RB'), ('different', 'JJ')]
Tập nhãn được sử dụng cho mục đích gán nhãn từ loại (part-Of-Speech tagging):
ADJ adjective new, good, high, special, big, local
Trang 28ADV adverb really, already, still, early, now
CNJ conjunction and, or, but, if, while, although
DET determiner the, a, some, most, every, no
EX existential there, there’s
FW foreign word dolce, ersatz, esprit, quo, maitre
MOD modal verb will, can, would, may, must, should
N noun year, home, costs, time, education
NP proper noun Alison, Africa, April, Washington
NUM number twenty-four, fourth, 1991, 14:24
PRO pronoun he, their, her, its, my, I, us
P preposition on, of, at, with, by, into, under
UH interjection ah, bang, ha, whee, hmpf, oops
V verb is, has, get, do, make, see, run
VD past tense said, took, told, made, asked
VG present participle making, going, playing, working
VN past participle given, taken, begun, sung
Noun: danh từ, thường nói đến người, địa điểm, sự vật hoặc khái niệm, ví
dụ: phụ nữ, Scotland, sách, trí tuệ Danh từ có thể xuất hiện sau các từ xác định (determiner) và tính từ (adjective), và có thể là chủ ngữ hoặc vị ngữ của động từ
Verbs: động từ, là các từ dùng để miêu tả sự kiện hoặc hành động Trong
ngữ cảnh của một câu, động từ thường thể hiện một mối quan hệ liên quan đến
sự tham chiếu của một hoặc nhiều cụm từ danh từ
Adjectives, Adverbs: tính từ và trạng từ, hai lớp từ khác quan trọng là tính
từ và trạng từ Tính từ thường dùng để miêu tả cho danh từ hoặc bổ sung cho danh từ Tính từ trong tiếng anh có thể cấu thành bằng cách thêm đuôi –ing cho danh từ và thường được xếp vào nhóm nội động từ Trạng từ thường được dùng
để bổ sung cho động từ, để xác định thời gian, cách thức, nơi chốn Trạng từ cũng có thế dùng để bổ sung cho tính từ
Trang 29Bản thân cấu thành của từ loại có thể được sử dụng để làm căn cứ phân loại cho từ đó Ví dụ: -ness là một hậu tố, được kết hợp với tính từ để tạo nên một danh từ (happy: happiness, ill: illness)
b) Phân cụm dựa trên cú pháp
Một nguồn thông tin khác để phân cụm là ngữ cảnh trong đó một từ có thể xuất hiện Ví dụ: giả sử rằng chúng ta đã phân loại được danh từ, thì chúng ta có thể nói rằng tính từ trong tiếng anh có thể xuất hiện ngay trước một danh từ,
hoặc ngay sau các từ be (động từ tobe) hoặc very
c) Phân cụm dựa trên ngữ nghĩa
Cuối cùng, ngữ nghĩa của một từ có thể được sử dụng để phân cụm từ loại
Ví dụ, chúng ta đã được biết: tên của người, địa danh hoặc tên đồ vật phải là danh từ
Trang 30Chương 2 - PHÂN TÍCH HỆ THỐNG
2.1 Phân tích yêu cầu đề tài
Đề tài: “Khai phá lời bình trên các trang thương mại điện tử để xác định cảm xúc của khách hàng”
Từ lý thuyết tổng quan chương 1 có được:
Quy về bản chất lời bình trên các trang thương mại là ngôn ngữ tự nhiên dưới dạng văn bản chữ viết
Cảm xúc được chia thành hai lớp cơ bản là cảm xúc tích cực và cảm xúc tiêu cực Ký hiệu là pos và neg
Vậy có thể phát biểu đề tài dưới dạng bài toán:
Tự động tìm kiếm các lời bình trên các trang thương mại điện tử và phân nhãn cho các lời bình này vào hai nhóm nhãn chính là tích cực (positive) và tiêu cực (negative)
Phân rã bài toán thấy được hai phần chính của đề tài:
Phần 1: tự động tìm kiếm lời bình trên các trang thương mại điện tử Quy
về bài toán thu thập và bóc tách dữ liệu tự động từ trang web
Phần 2: phân loại lời bình (ngôn ngữ tự nhiên dưới dạng văn bản) vào hai nhóm nhãn tích cực và tiêu cực
Từ những phân tích trên tôi đề nghị mô hình giải pháp sau:
2.2 Mô hình đề xuất phân loại cảm xúc từ lời bình
Hình 2.1 Mô hình tự động lấy lời bình
Trang 312.3 Thu thập dữ liệu (Crawler)
2.3.1 Nguyên lí thu thập dữ liệu
Bộ thu thập dữ liệu Web còn được biết đến với các tên như: Web Spider, Web
Robot Chúng là một chương trình hoặc script tự động duyệt qua tất cả các URL thỏa mãn một yêu cầu nào đó Quá trình này được gọi là Web crawling hoặc Web spidering Vận dụng khả năng trên, các crawler được dùng phổ biến trong các ứng dụng như lấy toàn bộ một trang Web, đồng nhất dữ liệu trực tuyến
và gián tuyến, cập nhật liên kết, kiểm tra liên kết hỏng định kì Các máy tìm kiếm cũng sử dụng crawler trong các tác vụ cập nhật CSDL phục vụ cho tìm kiếm, crawler trả ra kết quả là một chỉ mục của các site mà đã đăng kí với nó, chỉ mục này được sử dụng mỗi khi người dùng nhập một vài thông tin và thực hiện tìm kiếm Hệ thống đang xây dựng cũng cần đến một crawler trong quá trình thu thập và cập nhật thông tin tự động Chúng ta có thể mô tả khả năng của crawler trong bài toán này như sau:
(1) Cung cấp cho crawler vài thông tin về nơi có nguồn dữ liệu
(2) Crawler sẽ tự động tìm kiếm toàn bộ nguồn dữ liệu này và cập nhật về CSDL
của chương trình
Một crawler có điểm bắt đầu từ một địa chỉ URL Theo thứ tự để thao tác với các tài nguyên WWW, crawler sử dụng giao thức HTTP, nó cho phép crawler giao tiếp với máy chủ Web để lấy dữ liệu và gửi các yêu cầu xử lí cho máy chủ Kết quả trả về là một trang Web, crawler sẽ thực hiện phân tích trang Web và tìm kiếm trong nội dung các siêu liên kết Crawler tiếp tục thao tác với các liên kết này theo một cách hoàn toàn tương tự hình minh họa ở dưới
Hình 2.2 Mô hình tự động bóc tách dữ liệu từ trang web
Trang 322.3.2 Thu thập dữ liệu từ các trang web động
Web động là các website có phần hiển thị dữ liệu được tự động triển khai dựa trên javascript, ajax vì vậy với cách thu thập và bóc tách thông thường chỉ thu được mã html và javascript không có giá trị
Giải pháp đề xuất:
Hình 2.3 Mô hình bóc tách dữ liệu từ trang web động
- Selenium: là một trong những công cụ kiểm thử phần mềm tự động mã nguồn mở (open source test automation tool) mạnh mẽ nhất hiện nay cho việc kiểm thử ứng dụng Web Hỗ trợ các tác vụ thao tác tự động trên nền web và trả
về mã html được sinh ra sau tác vụ, vì vậy chúng ta có thể kết hợp selenium nhằm lập các tác vụ tự động để lấy mã nguồn html được sinh ra từ javascript, ajax Selenium yêu cầu phải có một trình duyệt web hỗ trợ
- Phantom: là trình duyệt web chạy ngầm trong hệ thống, không yêu cầu phải có giao diện để tương tác, vì vậy chúng ta kết hợp với Selenium ở trên để giảm thiểu tài nguyên và tạo các tác vụ tự động
Các thẻ của HTML được định nghĩa sẵn và thường tuân theo chuẩn của W3C Mỗi thẻ HTML gồm một thẻ mở và một thẻ đóng dùng để bao một vùng
Trang 33nội dung muốn định dạng Nó tạo thành một phân tử gọi là HTML Element Một
số thẻ còn có các tham số đi kèm được gọi là thuộc tính của thẻ
b) HTML DOM
HTML DOM là một mô hình mô tả các tài liệu HTML dưới dạng các đối tượng Mô hình DOM được hiểu như một giao diện được sử dụng cho nhiều nền tảng Thông qua đó người lập trình có thể truy xuất và thực hiện các thao tác trên tài liệu HTML dễ dàng và tuân thủ một nguyên tắc chung
Khi biểu diễn trong mô hình DOM, các tài liệu HTML được thể hiện dưới dạng một cấu trúc cây Mọi thao tác truy xuất đều thực hiện trên các nút của cây Các nút này tương ứng với các HTML Element hoặc các vùng nội dung tự do
Hình 2.4 Hình minh họa cấu trúc cây HTML DOM
Mọi nút trong mô hình này (trừ nút đầu tiên) đều có nút cha (parent node)
và các nút con (children node) của nó Đặc điểm này xuất phát từ cấu trúc tài liệu HTML có các HTML Element được tổ chức lồng nhau Các nút văn bản do không có các nút con nên luôn nằm ở vị trí các nút lá (leaf node) Nút nằm ở vị trí gốc (root node) của cây DOM thường là Document node – tương ứng với một tài liệu HTML
Các đối tượng của mô hình DOM thường được sử dụng trong các ứng dụng phân tích tài liệu HTML như:
Document: Là đối tượng bao bọc một tài liệu HTML bên trong Các nút Document luôn là nút gốc trong mô hình DOM của các tài liệu HTML Bên dưới
Trang 34Document có các nút là các Element, nút văn bản hay các loại nút khác tương ứng với các yếu tố khác nhau trong chuẩn HTML
Element: Là các nút nằm trên cây DOM, thường không phải là các nút lá, bên dưới chúng có các nút con như nút văn bản Mỗi một nút Element trên cây DOM bao bọc một HTML Element bên trong
Từ một đối tượng Element chúng ta có thể xác định được kiểu nút tương ứng như hình ảnh, liên kết và các thuộc tính của nút
Text: Là các phần nội dung văn bản hiển thị trên Web Các nút loại này phải nằm dưới ít nhất một nút element
c) Các vấn đề khi phân tích mã HTML
Biểu thức chính qui
Việc phát hiện các thẻ hoặc các siêu liên kết được thực hiện dựa trên mẫu nhận dạng Cách tiếp cận phân tích HTML bằng các kĩ thuật phân tích xâu kí tự như trên sẽ bị hạn chế trong nhiều trường hợp Chẳng hạn, khi sử dụng biểu thức chính qui không cho thấy các quan hệ giữa nút cha, nút con Khi cần xác định ví trị của một thông tin nào đó trên các trang Web có cấu trúc, thông thường cần xác định được nó nằm ở nút nào theo qui tắc truy vết từ nút trên cùng đến nút chứa thông tin
DOM
Vì các thông tin hiển thị trên Web là các thông tin được sắp xếp một cách
có cấu trúc, nên để phân tích cú pháp HTML, trước tiên các bộ phân tích HTML thường đưa chúng về dạng cây theo mô hình biểu diễn DOM Mỗi Element trong tài liệu HTML sẽ được xác định kiểu, các thuộc tính như InnerHtml, InnerText và tạo thành một nút Bộ phân tích HTML cũng cung cấp các phương thức quan trọng cho phép chúng ta thêm, sửa, xóa nút và thao tác đầy đủ trên cây
Ngoài ra, bộ phân tích HTML còn có khả năng sửa lỗi các tài liệu HTML Chúng ta biết các tài liệu Web được tạo ra không thể tránh khỏi những lỗi chung chung, chúng được xếp vào loại định dạng không tốt, như thiếu thẻ đóng, dùng các thẻ không theo chuẩn, các thẻ chưa được định nghĩa sẵn Ví dụ, một thẻ đóng được tìm thấy nhưng nó không tương ứng với thẻ mở cuối cùng, nên các thao tác sẽ không thực hiện được Để khắc phục vấn đề này, bộ phân tích sử dụng các thẻ tự động đóng (auto-closing) Tức là thẻ mở cuối cùng sẽ tự động đóng, sau đó thẻ đóng sẽ được so sánh với các thẻ mở cho đến khi thẻ tương ứng được tìm thấy
Trang 352.4.2 Chuẩn hóa dữ liệu
Khi làm việc với các bài toán Machine Learning thực tế, nhìn chung chúng
ta chỉ có được dữ liệu thô chưa qua chỉnh sửa, chọn lọc Chúng ta cần phải tìm một phép biến đổi để loại ra những dữ liệu nhiễu (noise), và để đưa dữ liệu thô với số chiều khác nhau về cùng một chuẩn (cùng là các vector hoặc ma trận) Dữ liệu chuẩn mới này phải đảm bảo giữ được những thông tin đặc trưng (features) cho dữ liệu thô ban đầu Không những thế, tùy vào từng bài toán, ta cần thiết kế những phép biến đổi để có những features phù hợp Quá trình quan trọng này được gọi là Feature Extraction, hoặc Feature Engineering, một số tài liệu tiếng Việt gọi nó là trích chọn đặc trưng
Áp dụng cho bài toán phân loại lời bình, các bước cơ bản dưới đây cần được phát triển:
Chuyển đổi tất cả lời bình về dạng chữ thường (lower case) trước khi phân loại
Xóa các tập tin lời bình bị trùng lắp
Xóa lời bình không có nội dung
Xóa lời bình gây nhiễu, ví dụ như lời bình chỉ có dấu ‘.’, … nhằm mục đích spam hoặc đánh dấu
Xóa bỏ các khoảng cách thừa trong câu
2.5 Đề xuất mô hình phân loại lời bình
Bài toán phân loại là việc lựa chọn chính xác nhãn của lớp cho một dữ liệu đầu vào Trong các việc phân loại cơ bản, mỗi dữ liệu đầu vào được cân nhắc trong một vùng cô lập các dữ liệu đầu vào và tập các nhãn đã được định nghĩa trước
Trang 36Hình 2.5 Mô hình nhận diện cảm xúc
2.6 Phân tích cảm xúc
Công thức xác định cảm xúc:
Sentiment = Holder + Polarity + Target
Holder: Đối tượng bình luận