1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

72 11 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 6,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 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

Trang 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 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 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 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 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

Trang 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

Trang 8

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

Trang 9

DANH 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 10

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

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 12

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:

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 13

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

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 15

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 (-)

Trang 16

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𝑑𝑖𝑗)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 18

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ó

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 19

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

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 20

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

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 21

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

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 22

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

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 23

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

Trang 24

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

Trang 25

1.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 26

Bà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 27

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

Trang 28

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

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 29

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ừ

Trang 30

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

Trang 31

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

Trang 32

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

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 33

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

Trang 34

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

Trang 35

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

Trang 36

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

Ngày đăng: 25/04/2021, 13:32

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Bing Liu. Sentiment Analysis and Opinion Mining. 2012 Sách, tạp chí
Tiêu đề: Sentiment Analysis and Opinion Mining
[2]. Lee, Jeong, OR and Lee, SG. Opinion Mining of Customer Feedback Data on the Web. Proceedings of the 2 nd International Conference on Ubiquitous Information Management and Communication, Korea Sách, tạp chí
Tiêu đề: Opinion Mining of Customer Feedback Data on the Web
[3]. Li Baoli, Yu Shiwen, and Lu Qin, An Improved k-Nearest Neighbor Algorithm for Text Categorization. School of Informatics, Guangdong University of Foreign Studies, 510420 Guangzhou, China. 7 August 2011 Sách, tạp chí
Tiêu đề: An Improved k-Nearest Neighbor Algorithm for Text Categorization
[4]. Jason D.M Rennie, Improving Multi-class Text Classification with Nạve Bayes, 2001 Sách, tạp chí
Tiêu đề: Improving Multi-class Text Classification with Nạve Bayes
[5]. Mr. Nilesh M. Shelke. Approaches of Emotion Detection from Text. 2014 Sách, tạp chí
Tiêu đề: Approaches of Emotion Detection from Text
[6]. P. Ekman, An Argument for Basic Emotions, International Journal of Cognition and Emotion, Vol. 6(3), published by Lawrence Associates Ltd, US, Jan 1992 Sách, tạp chí
Tiêu đề: An Argument for Basic Emotions
[7]. Steven Bird, Ewan Klein and Edward Loper, Natural Language Processing with Python, 2009 Sách, tạp chí
Tiêu đề: Natural Language Processing with Python
[8]. Steven Loria, TextBlod documentation, Release 0.12.0, Mar 25, 2017 Sách, tạp chí
Tiêu đề: TextBlod documentation

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w