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
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
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
3. LỜ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
4. MỤ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 toá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 toán phân lớp Naï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
5. 2.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 Naïve Bayer để phân lớp ........................................28
2.7.1. Bài toán tổng quan ......................................................................................28
2.7.2. Bài toá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 toá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
6. KẾ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
7. TÓ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
8. DANH MỤC CÁC CHỮ VIẾT TẮT
CÁC CHỮ VIẾT TẮT
Tiếng Việt
CSDL Cơ sở dữ liệu
k-NN K láng giềng gần nhất
Tiếng Anh
DOM 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
9. DANH MỤC CÁC HÌNH VẼ
Số hiệu
hình vẽ
Tên hình vẽ Trang
2.1 Mô hình tự động lấy lời bình 21
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.5 Mô hình nhận diện cảm xúc 27
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.1 Mô hình usecase của Admin 39
3.2 Mô hình usecase của user 39
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.5 Quan hệ giữa các bảng dữ liệu 41
3.6 Phân loại theo nhãn hiệu sản phẩm 42
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.10 Quá trình lấy dữ liệu tự động 44
3.11 Giao diện trang quản lý của admin 44
3.12 Admin quản lý nhãn hiệu 45
3.13 Admin quản lý lời bình 45
3.14 Admin quản lý thiết bị 46
3.15 Admin quản lý root url 46
3.16 Admin quản lý uris 46
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
3.19 Admin chỉnh sửa thông tin uri 48
3.20 Admin thêm mới root url 48
10. 1
MỞ ĐẦ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.
11. 2
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].
12. 3
Chươ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:
Chán
Ghét, hận
Tức giận, kích động, quá khích
Sợ hãi, nhút nhát
Cảm xúc hay thái độ tích cực là những cảm xúc, thái độ khẳng định, dấn thân,
gồm:
Thích
Yêu
Hưng phấn, phấn khích
Tự tin
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.
13. 4
1.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.
14. 5
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
15. 6
từ 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 (-).
16. 7
Ta 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 )
2
Chọ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:
17. 8
𝑦(𝑑𝑖, 𝐶𝑗) = {
1, 𝑑𝑖 𝜖 𝐶𝑗
0, 𝑑𝑖 ∉ 𝐶𝑗
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)
𝐹𝐿𝑆 = 𝑎𝑟𝑔𝑚𝑖𝑛𝐹 = ‖𝐹𝐴 − 𝐵‖2
Trong đó 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.
18. 9
1.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ó
độ phức tạp tuyến tính O(n).
Ý tưởng của cách tiếp cận này là mỗi lớp trong dữ liệu huấn luyện sẽ được
biểu diễn bằng một vector trọng tâm. Việc xác định lớp của một văn bản bất kỳ
sẽ thông qua việc tìm vector trọng tâm nào gần với vector biểu diễn văn bản thứ
nhất. Lớp của văn bản chính là lớp mà vector trọng tâm đại diện và khoảng cách
được xác định theo độ đo Cosine.
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
19. 10
Quantitative 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.
Attributes Classes
Gender Car ownership
Travel Cost
($)/km
Income
Level
Transportation
mode
Male 0 Cheap Low Bus
Male 1 Cheap Medium Bus
Female 1 Cheap Medium Train
Female 0 Cheap Low Bus
Male 1 Cheap Medium Bus
Male 0 Standard Medium Train
Female 1 Standard Medium Train
Female 1 Expensive High Car
Male 2 Expensive Medium Car
Female 2 Expensive High Car
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”.
20. 11
Là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
Alex Male 1 Standard High ?
Buddy Male 0 Cheap Medium ?
Cherry Female 1 Cheap High ?
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.
21. 12
Trong 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
Alex Standard Male 1 Train
Buddy Cheap Male 0 Bus
Cherry Cheap Female 1 Train
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
22. 13
luậ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
áp dụng cho C4.5.
Mã giả của thuật toán C4.5:
(1) ComputerClassFrequency(T);
(2) if OneClass or FewCases
return a leaf;
Create a decision node N;
(3) ForEach Attribute A
ComputeGain(A);
(4) N.test=AttributeWithBestGain;
(5) if (N.test is continuous)
find Threshold;
(6) ForEach T' in the splitting of T
(7) If (T' is Empty)
Child of N is a leaf
else
(8) Child of N=FormTree(T');
(9) ComputeErrors of N;
return N
C4.5 có những đăc điểm khác với các thuật toán khác, đó là: cơ chế chọn
thuộc tính để kiểm tra tại mỗi node, cơ chế xử lý với những giá trị thiếu, việc
tránh “quá vừa” dữ liệu, ước lượng độ chính xác và cơ chế cắt tỉa cây.
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.
23. 14
𝑅𝐹(𝐶𝑗, 𝑆) =
|𝑆𝑗|
|𝑆|
Với |Sj| là kích thước tập các case có giá trị phân lớp là Cj. |S| là kích thước
tập dữ liệu đào tạo.
Chỉ số thông tin cần thiết cho sự phân lớp: I(S) với S là tập cần xét sự phân
phối lớp được tính bằng:
𝐼(𝑆) = − ∑ 𝑅𝐹(𝐶𝑗, 𝑆) log(𝑅𝐹(𝐶𝑗, 𝑆))
𝑥
𝑗=1
Sau khi S được phân chia thành các tập con S1, S2, …, St bởi test B
thì 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.
24. 15
Do đó 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.
25. 16
1.5.7. Thuật toán phân lớp Naïve Bayes
Naïve Bayes là một tập các thuật toán phân loại dựa trên Bayes’ theorem,
nó không phải là một thuật toán riêng lẽ mà là các thuật toán có họ hàng với
nhau cùng chia sẻ một nguyên tắc chung.
Naï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 Naïve Bayes là sử dụng xác suất có điều
kiện giữa từ và chủ đề để dự đoá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 Naï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 đoá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ự đoá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).
Naï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.
Thuật toán
Bước 1: Huấn luyện Naive Bayes trên tập dữ liệu huấn luyện. Lượng giá
P(Ci) và P(Xk|Ci).
Bước 2: X_new được gán vào lớp cho giá trị công thức lớn nhất:
𝑎𝑟𝑔𝑚𝑎𝑥𝐶𝑘
P(Ci) ∏ 𝑃(𝑥𝑘 |𝐶𝑖)
𝑛
𝑘=1
26. 17
Bài toán cụ thể
Có Training Data và Unseen data như sau
Sử dụng Naï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”)
P(age=“<=30” | buys_computer=“yes”) = 2/9=0.222
P(age=“<=30” | buys_computer=“no”) = 3/5 =0.6
P(income=“medium” | buys_computer=“yes”)= 4/9 =0.444
P(income=“medium” | buys_computer=“no”) = 2/5 = 0.4
P(student=“yes” | buys_computer=“yes”)= 6/9 =0.667
P(student=“yes” | buys_computer=“no”)= 1/5=0.2
P(credit_rating=“fair” | buys_computer=“yes”)=6/9=0.667
P(credit_rating=“fair” | buys_computer=“no”)=2/5=0.4
27. 18
Tính P(X|Ci) :
P(X|buys_computer=“yes”)= 0.222 x 0.444 x 0.667 x 0.667 =0.044
P(X|buys_computer=“no”)= 0.6 x 0.4 x 0.2 x 0.4 =0.019
P(X|Ci)*P(Ci ):
P(X|buys_computer=“yes”) * P(buys_computer=“yes”)=0.044*9/14= 0.028
P(X|buys_computer=“no”) * P(buys_computer=“no”)=0.019*5/14 = 0.007
Do đó ta có X thuộc lớp buys_computer=“yes”
1.6. Gán thẻ và phân loại văn bản
1.6.1. Gán thẻ từ
Part-Of-Speech tagging hay còn gọi là gán nhãn từ loại là một công việc
quan trọng và bắt buộc phải có đối với mọi hệ xử lý ngôn ngữ tự nhiên. Công
việc gán nhãn từ loại cho một văn bản là xác định từ loại của mỗi từ trong phạm
vi 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
28. 19
ADV 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
TO the word to to
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
WH wh determiner who, which, when, what, where, how
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ừ.
1.6.2. Phân loại từ
Làm thế nào để quyết định loại của một từ? Thông thường, các nhà ngôn
ngữ học căn cứ vào hình thái, cú pháp và ngữ nghĩa để xác định loại của một từ.
a) Phân cụm dựa trên hình thái
29. 20
Bả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ừ.
30. 21
Chươ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
31. 22
2.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
32. 23
2.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.
2.4. Bóc tách dữ liệu (Extractor)
2.4.1. Các vấn đề liên quan đến phân tích HTML
a) HTML
HTML là một chuẩn cho việc hiển thị các thông tin trên Web. Bản chất của
HTML là một tệp văn bản trong đó chứa các thông tin hiển thị theo các thẻ định
dạng. Các trình duyệt Web sử dụng các thẻ này để hiển thị các thông tin theo
định dạng qui ước.
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
33. 24
nộ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
34. 25
Document 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.
35. 26
2.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.
Tải bản FULL (72trang): https://bit.ly/3zGA3Lg
Dự phòng: fb.com/TaiHo123doc.net
36. 27
Hì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
Polariry: Ảnh hưởng
Target: Đối tượng nhận ảnh hưởng
Ví dụ:
Holder: người dùng hoặc là người đánh giá
2.6.1. Xác định Holder
Xác định nguồn của các ý kiến với điều kiện là các trường ngẫu nhiên và
các bộ bóc tách mẫu
Xem nhận dạng nguồn như là một nhiệm vụ khai thác thông tin và giải
quyết vấn đề bằng cách sử dụng việc gắn thẻ theo chuỗi và các kỹ thuật kết hợp
mẫu đồng thời
Tải bản FULL (72trang): https://bit.ly/3zGA3Lg
Dự phòng: fb.com/TaiHo123doc.net
37. 28
Ví dụ:
International officers said US officials want the EU to prevail.
Dựa theo lý thuyết đã trình bày về gán nhãn và phân loại từ loại, theo ngữ
nghĩa và từ loại có thể xác định được Holder: International officers vì:
- Danh từ
- Bắt đầu bằng chữ cái viết hoa
- Liền sau nó là một động từ ở thì quá khứ
2.6.2. Xác định Target
Đánh giá đặc trưng trong nhận xét của khách hàng
Ví dụ:
The pictures are very clear
Từ ví dụ trên có thể phát biểu thành vấn đề cần giải quyết khi xác định
target:
Đưa vào tên và các đánh giá của một sản phẩm, tìm ra các đặc trưng đã
được chỉ ra một cách rõ ràng là danh từ hoặc cụm danh từ trong các đánh giá
đó.
Để giải quyết vấn đề cần:
Phát hiện các đặc trưng thường xuyên
o Tìm ra các đặc trưng xuất hiện thường xuyên với 3 từ hoặc ít hơn
o Xuất hiện trong hơn 1% các câu đánh giá (ngưỡng hỗ trợ nhỏ nhất)
Phát hiện các đặc trưng không thường xuyên
o Con người thường sử dụng cùng một vài tính từ để mô tả vài đối
tượng khác nhau
o Xác định từ là ý kiến: với mỗi câu trong dữ liệu đánh giá, nếu nó
chứa đặc trưng không thường xuyên nhưng chưa một hoặc nhiều từ
ý kiến, tìm ra danh từ hoặc cụm danh từ gần nhất của từ ý kiến như
là một đặc trưng không thường xuyên
2.6.3. Phân loại Polarity
Ý tưởng cơ bản:
Sử dụng miền định hướng của các từ ý kiến trong một câu để xác định
miền của câu đó
Nếu từ ý kiến là tích cực hoặc tiêu cực chiếm ưu thế thì xem như câu đó
có ý kiến tương ứng tích cực hoặc tiêu cực
2.7. Tại sao lựa chọn giải thuật Naïve Bayer để phân lớp
2.7.1. Bài toán tổng quan
Bài toán tổng quan được phát biểu như sau:
7761835