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, nhiều thông tin quan trọng vẫn chưa được khai thác từ World Wide Web, nơi chứa đựng dữ liệu phi cấu trúc và bán cấu trúc Một lĩnh vực quan trọng trong nghiên cứu thị trường bán lẻ là khám phá cảm xúc và độ quan tâm của người tiêu dùng thông qua các bình luận trên trang thương mại điện tử Việc phân tích những thông tin này sẽ giúp doanh nghiệp điều chỉnh chiến lược kinh doanh một cách 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
Để thu thập và phân loại dữ liệu cảm xúc tự động từ lời bình của người dùng về thiết bị và sản phẩm, cần áp dụng các phương pháp phân tích tiên tiến Việc này giúp trích xuất thông tin hữu ích, phục vụ cho nhu cầu phân tích và lập kế hoạch kinh doanh hiệu quả.
Với mục đích nghiên cứu cảm xúc của khách hàng, tôi đã quyết định chọn đề tài: “Khai phá lời bình trên các trang thương mại điện tử” cho luận văn thạc sỹ của mình.
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ử.
Phương pháp nghiên cứu
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ả
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.
CƠ SỞ LÝ THUYẾT
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.
Khái niệm về cảm xúc
Cảm xúc là trải nghiệm cơ bản của con người, phản ánh thái độ của chúng ta đối với thế giới xung quanh, với người khác và chính bản thân Sự hình thành cảm xúc đóng vai trò quan trọng trong sự phát triển nhân cách của mỗi người.
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:
Tức giận, kích động, quá khích
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:
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
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 của từ có thể được xác định thông qua tần suất xuất hiện của chúng trong văn bản, từ đó giúp rút trích đặc trưng của nội dung.
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 tập xâu S = {S1, , Sk} với độ dài |Si| = ni và tổng độ dài ∑ni = N Đối với mỗi giá trị k thỏa mãn 2 ≤ k ≤ K, nhiệm vụ là tìm các xâu con chung dài nhất của ít nhất k xâu Bài toán này thường được giải quyết bằng phương pháp quy hoạch động.
Trong lĩnh vực khoa học máy tính, quy hoạch động là một kỹ thuật quan trọng giúp tối ưu hóa thời gian chạy của các thuật toán Phương pháp này dựa trên việc nhận diện các bài toán con chồng chéo và khai thác cấu trúc con tối ưu để cải thiện hiệu suất xử lý.
Quy hoạch động là một kỹ thuật thiết kế thuật toán hiệu quả, cho phép chia nhỏ bài toán lớn thành các bài toán con Thay vì sử dụng đệ quy, quy hoạch động tính toán trước lời giải của các bài toán con và lưu trữ chúng trong bộ nhớ, thường là một mảng Sau đó, thuật toán sẽ sử dụng các lời giải đã được tính toán trước đó để tìm ra lời giải cho 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
Quy hoạch động thường dùng một trong hai cách tiếp cận:
Phương pháp top-down (từ trên xuống) là một kỹ thuật giải quyết vấn đề, trong đó bài toán lớn được phân chia thành các bài toán con Các bài toán con này sẽ được giải quyết và lưu trữ lời giải để có thể sử dụng lại khi cần thiết.
Cách tiếp cận bottom-up, hay còn gọi là từ dưới lên, giải quyết tất cả các bài toán con trước, sau đó sử dụng chúng để xây dựng giải pháp cho các bài toán lớn hơn Phương pháp này tối ưu hóa không gian bộ nhớ cho ngăn xếp và giảm số lượng lời gọi hàm, mang lại hiệu quả cao hơn trong quá trình xử lý.
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
Vào năm 1992, TBL đã phát triển một phương pháp giải quyết vấn đề tách từ bằng cách bắt đầu với các giải pháp đơn giản và áp dụng các phép biến đổi để tối ưu hóa kết quả Thuật toán dừng lại khi không còn phép biến đổi nào có thể cải thiện dữ liệu Đầu tiên, văn bản chưa được tách từ (T1) được phân tích qua chương trình P1, tạo ra văn bản T2 đã được tách từ Văn bản T2 sau đó được so sánh với văn bản chuẩn T3 đã được tách từ chính xác Chương trình P2 học từng phép biến đổi để cải thiện sự tương đồng giữa T2 và T3 Quá trình này lặp đi lặp lại cho đến khi không còn phép chuyển đổi nào có thể nâng cao chất lượng của T2, từ đó cho ra bộ luật R phục vụ cho công việc tách từ.
Phương pháp TBL gặp phải nhược điểm lớn là tiêu tốn nhiều thời gian học tập và yêu cầu không gian lưu trữ lớn, vì cần tạo ra các quy tắc trung gian trong quá trình học.
Việc xây dựng một bộ luật đầy đủ cho việc tách từ là rất khó khăn do TBL yêu cầu thời gian chạy lâu và tiêu tốn nhiều bộ nhớ Do đó, khi áp dụng phương pháp này, sẽ xuất hiện nhiều nhầm lẫn.
Sau khi bộ luật được ban hành, TBL đã nhanh chóng tiến hành tách từ Ý tưởng rút ra quy luật từ ngôn ngữ và liên tục điều chỉnh luật qua quá trình lặp lại rất 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 khớp tối đa, hay còn gọi là phương pháp này, tập trung vào việc duyệt câu từ trái sang phải và lựa chọn từ có nhiều âm tiết nhất có trong từ điển.
Thuật toán có 2 dạng sau:
Giả sử có một chuỗi các tiếng trong câu là t1, t2, tN
Thuật toán kiểm tra sự hiện diện của t1 trong từ điển, sau đó tiếp tục xác minh t1-t2 Quá trình này lặp lại cho đến khi tìm được từ có nhiều tiếng nhất trong từ điển và đánh dấu từ đó Tiếp theo, thuật toán sẽ áp dụng quy trình tương tự cho tất cả các tiếng còn lại trong câu và toàn bộ văn bản.
Dạng này giúp tránh những nhầm lẫn thường gặp trong dạng đơn giản Thuật toán đầu tiên kiểm tra sự hiện diện của t1 trong từ điển, sau đó tiếp tục xác minh t1 - t2 có trong từ điển hay không Nếu cả t1 và t1 - t2 đều có mặt, thuật toán sẽ áp dụng 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
Phương pháp tách từ này có ưu điểm nổi bật là đơn giản, dễ hiểu và nhanh chóng Đặc biệt, chỉ cần một tập từ điển đầy đủ, chúng ta có thể thực hiện tách từ cho các văn bản mà không cần trải qua quá trình huấn luyện Sự chênh lệch độ dài của ba từ là tối thiểu, giúp tăng tính hiệu quả trong việc xử lý ngôn ngữ.
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 loại dựa vào k láng giềng gần nhất, với k là số nguyên dương được xác định trước khi thực hiện thuật toán Khoảng cách giữa các đối tượng thường được tính bằng khoảng cách Euclidean.
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
Trong hình ảnh dưới đây, dữ liệu huấn luyện được biểu thị bằng dấu (+) và dấu (-), trong khi đối tượng cần xác định lớp, gọi là Query point, được thể hiện bằng hình tròn đỏ Nhiệm vụ của chúng ta là dự đoán lớp của Query point bằng cách lựa chọn số láng giềng gần nhất với nó Mục tiêu là xác định xem Query point sẽ thuộc vào lớp (+) hay lớp (-).
Khi áp dụng phương pháp hàng xóm gần nhất, nếu Query Point được phân loại vào lớp dấu +, kết quả sẽ là lớp + Tuy nhiên, trong trường hợp có hai hàng xóm gần nhất, một thuộc lớp + và một thuộc lớp -, lớp của Query Point sẽ không được xác định do không có lớp nào chiếm ưu thế hơn.
Trong thuật toán 5-Nearest Neighbors, điểm truy vấn được phân loại vào lớp dấu "-" vì trong số 5 láng giềng gần nhất, có 3 đối tượng thuộc lớp "-" và chỉ 2 đối tượng thuộc lớp "+".
Thuật toán phân loại văn bản k Nearest Neighbor:
Giả sử có các văn bản huấn luyện C1, C2, …, Cj với tổng số mẫu huấn luyện là N Sau khi thực hiện tiền xử lý, tất cả các văn bản này được chuyển đổi thành vector đặc trưng có m chiều.
Xử lý văn bản X để chuyển đổi thành vector đặc trưng tương tự như các mẫu huấn luyện Tiến hành tính toán sự tương đồng giữa văn bản X và các mẫu huấn luyện Đối với văn bản thứ i, ký hiệu là di (di1, di2, …, dim), mức độ giống nhau 𝑆𝐼𝑀(𝑋, 𝑑 𝑖 ) được xác định theo công thức đã quy định.
Chọn k mẫu lớn hơn từ N mẫu tương đồng của SIM(X, di) (với i = 1, 2, …, N) và coi chúng là bộ k láng giềng gần nhất của X Tiếp theo, tính xác suất của X thuộc về mỗi loại theo công thức dưới đây.
Trong đó 𝑦(𝑑 𝑖 , 𝐶 𝑗 ) nhận một trong 2 giá trị 0 hoặc 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
Để xác định văn bản X thuộc loại nào, cần tính giá trị P(X,Cj) và chọn loại có giá trị lớn nhất Để tìm tham số k tối ưu cho phân loại, thuật toán cần được thử nghiệm với nhiều giá trị k khác nhau; giá trị k lớn hơn sẽ giúp thuật toán trở nên ổn định hơn và giảm thiểu sai sót.
LLSF, một phương pháp ánh xạ được phát triển bởi Yang và Chute vào năm 1992, ban đầu được thử nghiệm trong lĩnh vực xác định từ đồng nghĩa Đến năm 1994, LLSF đã được áp dụng trong phân loại Các nghiên cứu của Yang chứng minh rằng hiệu suất phân loại của LLSF có thể đạt được kết quả tương đương với phương pháp k-NN truyền thống.
LLSF áp dụng phương pháp hồi quy để học từ tập huấn luyện và các chủ đề hiện có Tập huấn luyện được thể hiện dưới dạng cặp vector đầu vào và đầu ra.
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
Solving the equation for input-output vector pairs yields the 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ố
Việc sắp xếp trọng số của các chủ đề cho phép tạo ra danh sách chủ đề phù hợp để phân loại văn bản Bằng cách đặt ngưỡng trọng số, chúng ta có thể xác định 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ủ đề, tương tự như phương pháp k-NN Mặc dù LLSF và k-NN khác nhau về mặt thống kê, nhưng cả hai phương pháp đều có điểm chung trong việc học ngưỡng tối ưu.
Phương pháp phân loại này đơn giản, dễ cài đặt và có tốc độ nhanh với độ phức tạp tuyến tính O(n) Mỗi lớp trong dữ liệu huấn luyện được biểu diễn bằng một vector trọng tâm Để xác định lớp của một văn bản, ta tìm vector trọng tâm gần nhất với vector biểu diễn của văn bản đó Lớp của văn bản sẽ tương ứng với lớp mà vector trọng tâm đại diện, và khoảng cách giữa các vector được đo bằng độ đ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:
- 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))
Cây quyết định (Decision Tree) là một cấu trúc phân cấp được sử dụng để phân loại các đối tượng dựa trên chuỗi quy tắc Các thuộc tính của đối tượng, trừ thuộc tính phân lớp, có thể thuộc nhiều kiểu dữ liệu khác nhau như nhị phân, danh nghĩa, thứ tự và giá trị định lượng Tuy nhiên, thuộc tính phân lớp cần phải có kiểu dữ liệu nhị phân hoặc thứ tự.
PHÂN TÍCH HỆ THỐNG
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 thu thập và phân loại các đánh giá trên các trang thương mại điện tử thành hai nhóm chính: tích cực và tiêu cực.
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:
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
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, hay còn gọi là crawler, là chương trình tự động duyệt qua các URL theo yêu cầu Quá trình này được gọi là Web crawling hoặc Web spidering Crawler thường được sử dụng để thu thập dữ liệu từ toàn bộ trang Web, đồng nhất dữ liệu trực tuyến và ngoại tuyến, cập nhật liên kết, cũng như kiểm tra các liên kết hỏng định kỳ Các máy tìm kiếm cũng áp dụng crawler để cập nhật cơ sở dữ liệu phục vụ cho tìm kiếm, với kết quả là một chỉ mục các trang đã đăng ký Chỉ mục này được sử dụng khi người dùng thực hiện tìm kiếm thông tin Hệ thống xây dựng cũng cần crawler để thu thập và cập nhật thông tin tự động.
(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 bắt đầu từ một địa chỉ URL và sử dụng giao thức HTTP để giao tiếp với máy chủ Web nhằm lấy dữ liệu và gửi yêu cầu xử lý Khi nhận được kết quả, crawler phân tích trang Web để tìm kiếm các siêu liên kết và tiếp tục thao tác với những liên kết này theo cách tương tự.
Hình 2.2 Mô hình tự động bóc tách dữ liệu từ trang web
2.3.2 Thu thập dữ liệu từ các trang web động
Web động là những trang web có khả năng hiển thị dữ liệu tự động thông qua việc sử dụng JavaScript và AJAX Do đó, việc thu thập và bóc tách thông tin theo cách thông thường chỉ cho phép thu được mã HTML và JavaScript mà không mang lại giá trị thực sự.
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ở mạnh mẽ nhất hiện nay, chuyên dành cho kiểm thử ứng dụng web Công cụ này hỗ trợ các tác vụ thao tác tự động trên nền web và cung cấp mã HTML được sinh ra sau các tác vụ, cho phép lập trình viên tự động lấy mã nguồn HTML từ JavaScript và AJAX Để sử dụng Selenium, cần có một trình duyệt web hỗ trợ.
Phantom là một trình duyệt web hoạt động ngầm trong hệ thống mà không cần giao diện tương tác, giúp tiết kiệm tài nguyên Khi kết hợp với Selenium, Phantom cho phép thực hiện các tác vụ tự động một cách hiệu quả.
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à tiêu chuẩn cho việc hiển thị thông tin trên web, được cấu trúc dưới dạng tệp văn bản chứa các thẻ định dạng Các trình duyệt web sử dụng những thẻ này để hiển thị thông tin theo định dạng quy ước.
Các thẻ HTML được xác định theo tiêu chuẩn W3C, bao gồm thẻ mở và thẻ đóng để định dạng nội dung Chúng tạo thành một phần tử HTML, với một số thẻ có thể kèm theo các thuộc tính bổ sung.
HTML DOM là mô hình mô tả tài liệu HTML dưới dạng các đối tượng, cung cấp một giao diện đa nền tảng Nhờ vào mô hình này, lập trình viên có thể dễ dàng truy xuất và thao tác trên tài liệu HTML theo một nguyên tắc chung.
Trong mô hình DOM, tài liệu HTML được biểu diễn dưới dạng cấu trúc cây, trong đó mọi thao tác truy xuất đều diễn ra trên các nút của cây Các nút này đại diện cho các phần tử HTML 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ô hình cây DOM được tổ chức với mỗi nút (trừ nút gốc) có nút cha và các nút con, phản ánh cấu trúc lồng ghép của các phần tử HTML Các nút văn bản không có nút con, do đó chúng luôn nằm ở vị trí các nút lá Nút gốc của cây DOM thường là Document node, đại diện cho 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à phần tử bao bọc tài liệu HTML, đóng vai trò là nút gốc trong mô hình DOM của các tài liệu này.
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 trong cây DOM, thường không phải là các nút lá, vì chúng có các nút con như nút văn bản Mỗi nút Element trong cây DOM bao bọc một phần tử HTML 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
Các phần nội dung văn bản hiển thị trên Web là các nút loại cần phải nằm dưới ít nhất một nút element Việc phân tích mã HTML có thể gặp phải một số vấn đề nhất định.
Việc phát hiện thẻ và siêu liên kết dựa trên mẫu nhận dạng có thể gặp hạn chế khi sử dụng các kỹ thuật phân tích HTML như phân tích xâu ký tự Cụ thể, biểu thức chính quy không thể hiện được mối quan hệ giữa các nút cha và con Để xác định vị trí thông tin trên các trang web có cấu trúc, cần phải truy vết từ nút trên cùng đến nút chứa thông tin.
Thông tin trên Web được tổ chức theo cấu trúc, vì vậy để phân tích cú pháp HTML, các bộ phân tích HTML chuyển đổi chúng thành cây theo mô hình DOM Mỗi phần tử trong tài liệu HTML sẽ được xác định kiểu và các thuộc tính như InnerHtml, InnerText, tạo thành các 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 thêm, sửa, xóa nút và thao tác toàn diện trên cây.
Bộ phân tích HTML không chỉ giúp phát hiện mà còn sửa lỗi trong các tài liệu HTML, giúp cải thiện định dạng của chúng Các tài liệu web thường gặp phải những lỗi như thiếu thẻ đóng, sử dụng thẻ không chuẩn hoặc thẻ chưa được định nghĩa, dẫn đến việc không thực hiện được các thao tác Để khắc phục, bộ phân tích áp dụng cơ chế tự động đóng thẻ, trong đó thẻ mở cuối cùng sẽ tự động được đóng, và thẻ đóng sẽ được so sánh với các thẻ mở cho đến khi tìm thấy thẻ tương ứng.
Khi làm việc với bài toán Machine Learning, dữ liệu thô thường chưa được chỉnh sửa và cần phải loại bỏ nhiễu để chuẩn hóa về cùng một định dạng Quá trình này, được gọi là Feature Extraction hoặc Feature Engineering, giúp giữ lại các thông tin đặc trưng của dữ liệu gốc Tùy thuộc vào từng bài toán cụ thể, các phép biến đổi cần được thiết kế để tạo ra các đặc trưng phù hợp Đối với bài toán phân loại lời bình, cần phát triển các bước cơ bản để thực hiện hiệu quả quá trình này.
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
Đề xuất mô hình phân loại lời bình
Bài toán phân loại liên quan đến việc xác định nhãn chính xác cho dữ liệu đầu vào Trong các phương pháp phân loại cơ bản, mỗi dữ liệu đầu vào được xem xét trong bối cảnh riêng biệt, dựa trên một tập hợp các nhãn đã được xác định trước.
Hình 2.5 Mô hình nhận diện cảm xúc
Phân tích cảm xúc
Công thức xác định cảm xúc:
Holder: Đối tượng bình luận
Target: Đối tượng nhận ảnh hưởng
Holder: người dùng hoặc là người đánh giá
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
Nhận dạng nguồn được xem như một nhiệm vụ khai thác thông tin, giải quyết vấn đề thông qua việc sử dụng gắn thẻ theo chuỗi và các kỹ thuật kết hợp mẫu đồng thời.
International officers said US officials want the EU to prevail
Dựa trên lý thuyết về gán nhãn và phân loại từ loại, chúng ta có thể xác định được Holder là "International officers" dựa vào ngữ nghĩa và từ loại.
- 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
The pictures are very clear
Để xác định target trong việc phân tích đánh giá sản phẩm, cần đưa vào tên và các đánh giá của sản phẩm, từ đó tìm ra các đặc trưng được chỉ ra rõ ràng dưới dạng danh từ hoặc cụm danh từ trong những đánh giá đó Việc này giúp giải quyết vấn đề một cách hiệu quả.
Phát hiện các đặc trưng thường xuyên là quá trình tìm ra những đặc điểm xuất hiện với 3 từ hoặc ít hơn, đồng thời có mặt trong hơn 1% các câu đánh giá, đây là ngưỡng hỗ trợ tối thiểu cần thiết.
Phát hiện các đặc trưng không thường xuyên là một quá trình quan trọng, trong đó con người thường sử dụng một số tính từ nhất định để mô tả nhiều đối tượng khác nhau Để xác định từ là ý kiến, cần phân tích từng câu trong dữ liệu đánh giá; nếu câu chứa đặc trưng không thường xuyên mà chưa có từ ý kiến, cần tìm danh từ hoặc cụm danh từ gần nhất với từ ý kiến đó để xác định đặ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
Tại sao lựa chọn giải thuật Nạve Bayer để phân lớp
Bài toán tổng quan được phát biểu như sau:
𝑖=1 n: số câu trong comment cần gán nhãn positive/negative
Output: comment được gán nhãn
- Training NaiveBayesAnalyzer với dữ liệu training_data
- Chuyển comment nhập vào về dạng chữ viết thường
- Nhận diện các đặc trưng
- Phân loại các đặc trưng nhận diện được từ comment về 2 bộ từ điển: neg_feats và pos_feats
Neg_feats và pos_feats được sử dụng làm đầu vào để gán nhãn và đánh giá điểm polarity cho từng đặc trưng NaiveBayesAnalyzer đã được huấn luyện dựa trên các bộ dữ liệu này.
- Kết quả trả về là danh sách tuple dưới dạng (feat, polarity_point) Trong đó polatity_point nằm trong miền từ -1 đến 1
- Nếu polarity_point >=0 kết luận comment là pos, ngược lại comment là neg
Người dùng comment về điện thoại Xiaomi Redmi 4A 2GB/16GB Dual SIM
So far so good after 1 week of usage Easy to setup and works like a charm as it is only used for calls and msgs
The comments exhibit positive features such as "far," "good," "easy," and "like a charm," indicating an overall positive sentiment The evaluation of these features shows an average polarity point greater than zero, confirming that the comments are favorable The accuracy of each feature's sentiment is contingent upon the training dataset used.
- Dễ dàng phát triển mã nguồn
Trong bối cảnh giả định về tính độc lập có điều kiện của Nạve Bayes, phương pháp phân loại này hội tụ nhanh hơn so với các thuật toán hồi quy logistic, do đó yêu cầu ít dữ liệu huấn luyện hơn.
- Dễ dàng tái sử dụng mô hình phân loại khi tập dữ liệu huấn luyện thay đổi
Sự phụ thuộc cục bộ của một nút phân phối trong mỗi lớp, dù đồng đều hay không, cùng với sự phụ thuộc địa phương của tất cả các nút làm việc cùng nhau, đóng vai trò quan trọng trong việc hỗ trợ hoặc hủy bỏ sự phân loại Điều này cho thấy rằng, mặc dù sự phụ thuộc giữa các thuộc tính Nạve Bayes có thể chặt chẽ, nhưng nó vẫn có thể hoạt động hiệu quả nếu các phụ thuộc phân phối đều trong các lớp hoặc nếu chúng hủy bỏ lẫn nhau.
- Dễ dàng và nhanh chóng để dự đoán lớp của bộ dữ liệu thử nghiệm
- Hoạt động tốt trong trường hợp các biến đầu vào phân loại so với các biến số Đối với biến số, phân bố chuẩn là giả
Nếu trong tập dữ liệu thử nghiệm xuất hiện một biến thể phân loại mà không có trong tập dữ liệu huấn luyện, mô hình sẽ chỉ định một xác suất cho loại biến thể đó.
Tần số Zero đề cập đến khả năng không thể đưa ra dự đoán Để khắc phục vấn đề này, kỹ thuật làm mịn có thể được áp dụng.
- Nạve Bayes giả thiết của các dự đốn độc lập Trong cuộc sống thực, hầu như không thể có được một bộ dự đoán hoàn toàn độc lập
Phân loại kém hiệu quả có thể xảy ra khi người dùng có những sở thích mâu thuẫn, chẳng hạn như thích phim của Brad Pitt và Tom Cruise nhưng lại ghét những bộ phim có sự tham gia của cả hai diễn viên này Điều này cho thấy sự phức tạp trong việc xác định sở thích của người xem dựa trên các điều kiện kết hợp.
2.7.5 Đo lường hiệu năng của giải thuật
Có nhiều phương pháp để đánh giá hiệu suất của thuật toán phân loại, đặc biệt là đối với Naive Bayes, một phương pháp học có giám sát Việc đo lường hiệu năng dựa trên bốn thông số quan trọng thu được từ việc áp dụng tập dữ liệu kiểm thử phân loại, bao gồm true positive (tp), false positive (fp), true negative (tn) và false negative (fn).
Trong phân loại, tp đại diện cho số lượng ví dụ thuộc lớp Ci được phân loại chính xác, trong khi fp là số lượng ví dụ không thuộc lớp Ci nhưng lại bị phân loại nhầm vào lớp này Bên cạnh đó, tn là số lượng ví dụ không thuộc lớp Ci được phân loại đúng, và fn là số lượng ví dụ thuộc lớp Ci nhưng bị phân loại sai vào các lớp khác.
Chúng ta tính toán dựa trên bảng ma trận 2x2 như sau:
Lớp Ci Được phân lớp bởi hệ thống
Phân lớp thực sự đúng Thuộc tp fn
Dữ liệu đầu vào cần phải có khả năng đếm được, với tổng số liệu gồm tp, tn, fp và fn bằng n, tương ứng với số lượng mẫu kiểm thử Việc này phụ thuộc vào cách áp dụng và dựa trên nhiều dữ liệu thống kê khác nhau được tính toán từ các bộ dữ liệu khác nhau Thực tế cho thấy điều này là rất quan trọng.
Tính chính xác: accuracy a = (tp + tn)/n
Độ tin cậy: precision p = tp / (tp + fp)
Độ bao phủ: recall r = tp / (tp + fn)
Khi n đã được xác định, ba thông số độc lập còn lại trong ma trận không thể đại diện hoàn toàn cho hiệu suất của một phân lớp Do đó, trong báo cáo hiệu suất, cần trình bày đầy đủ các thông số của ma trận để người đọc có thể tự đánh giá hiệu suất một cách chính xác nhất.
Ma trận này sẽ được sử dụng lại trong phần 3 của luận văn để đánh giá kết quả đạt được của hệ thống.
THIẾT KẾ VÀ CÀI ĐẶT HỆ THỐNG
Xây dựng chương trình mô phỏng
Hệ điều hành Ubuntu, CentOS
Hệ quản trị cơ sở dữ liệu PostgreSQL
Các thư viện sử dụng mã nguồn mở sử dụng trong luận văn o Django==1.10.3 o Markdown==2.6.8 o argparse==1.2.1 o beautifulsoup4==4.5.1 o bootstrap-admin==0.3.7.1 o django-filter==1.0.1 o djangorestframework==3.5.4 o nltk==3.2.2 o psycopg2==2.6.2 o requests==2.11.1 o selenium==3.0.1 o six==1.10.0 o textblob==0.11.1 o wsgiref==0.1.2
Tập dữ liệu huấn luyện Movie Reviews Corpus được NLTK cung cấp tại địa chỉ http://www.nltk.org/ Tập dữ liệu này được xây dựng từ sự đóng góp của cộng đồng xử lý ngôn ngữ tự nhiên, với mục đích phân loại các lời bình phim thành hai loại: tích cực và tiêu cực.
• http://www.cs.cornell.edu/people/pabo/movie-reviewdata/
• http://reviews.imdb.com/Reviews/
• Trong đó có chứa: 700 positive / 700 negative o Được phổ biến bởi nltk Version 0.9.1 released: January 2008
Môi trường phát triển
Phân tích thiết kế hệ thống
3.3.1 Hoạt động của hệ thống a) Đối tượng sử dụng và phạm vi hoạt động
Người dùng cần thu thập dữ liệu bình luận của khách hàng về sản phẩm trên các trang thương mại điện tử để đánh giá mức độ quan tâm và xây dựng kế hoạch kinh doanh hiệu quả.
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/ b) Xác định yêu cầu
Hệ thống thu thập thông tin chi tiết về điện thoại thông minh trên trang thương mại điện tử Lazada Singapore Các thông tin bao gồm nhãn hiệu sản phẩm, tên sản phẩm, URI của sản phẩm và tất cả các đánh giá từ khách hàng về sản phẩm đó.
Phân loại lời bình về sản phẩm vào hai nhãn pos (tích cực) và neg (tiêu cực)
Giao diện quản trị được thiết kế để hỗ trợ admin thực hiện các chức năng như đăng nhập và đăng xuất, quản lý root_url (ví dụ: http://www.lazada.sg/), cũng như thêm, sửa, xóa thiết bị, lời bình, nhãn hiệu và uri.
Cung cấp biểu đồ tổng quan về các bình luận tích cực và tiêu cực cho các nhãn hiệu, cho phép người dùng tùy chọn nhãn hiệu và thời gian so sánh Tất cả các lời bình trên nhãn hiệu đã chọn sẽ được phân loại thành hai nhóm: tích cực và tiêu cực, dựa trên khoảng thời gian đã xác định.
Cung cấp biểu đồ tổng quan về các bình luận tích cực và tiêu cực cho các thiết bị Người dùng có thể tìm kiếm thiết bị đã thu thập để so sánh, lựa chọn thiết bị và khoảng thời gian so sánh Tất cả các lời bình trên các thiết bị đã chọn sẽ được phân loại thành hai nhóm: tích cực và tiêu cực, theo khoảng thời gian đã được chỉ định.
Yêu cầu phi chức năng
Tốc độ tải trang nhanh
Giao diện đẹp, thân thiện với người sử dụng
Có hướng dẫn cài đặt và sử dụng một cách cụ thể
3.3.2 Mô hình thiết kế hệ thống a) Use-Case module phân loại lời bình
STT Tên Actor Ý nghĩa/ Ghi chú
1 Admin Người dùng có quyền cao nhất trong hệ thống
2 User Người dùng sử dụng trang web thông thường
Danh sách các Use-Case
STT Ca sử dụng Ý nghĩa/ Ghi chú
User xem thống kê theo nhãn hiệu
User truy cập trang web biểu đồ thống kê theo nhãn hiệu, tùy chọn nhãn hiệu và thời gian để cập nhật biểu đồ và lời bình
User xem thống kê theo thiết bị
User truy cập trang web thống kê theo tên thiết bị, tùy chọn thiết bị và khoảng thời gian để cập nhật biểu đồ và lời bình
3 Admin đăng nhập Đăng nhập hệ thống
4 Admin đăng xuất Thoát khỏi hệ thống
Admin thêm mới một root_url gắn với bộ bóc tách dữ liệu đã được phát triển
6 Admin chỉnh sửa root_url
Admin chỉnh sửa một root_url gắn với bộ bóc tách dữ liệu đã được phát triển
Admin xóa một root_url để loại nó ra khỏi bộ bóc tách dữ liệu
STT Ca sử dụng Ý nghĩa/ Ghi chú
8 Admin thêm uri Admin thêm mới một uri, gắn liền với một thiết bị
Admin chỉnh sửa một uri, gắn liền với một thiết bị
10 Admin xóa uri Admin xóa một uri, gắn liền với một thiết bị
11 Admin thêm mới thiết bị
Admin thêm mới thông tin về thiết bị
12 Admin chỉnh sửa thiết bị
Admin chỉnh sửa thông tin về nhãn hiệu, tên thiết bị, root_url, uri và dạng thiết bị
13 Admin xóa thiết bị Admin xóa thông tin về thiết bị
14 Admin thêm mới nhãn hiệu
Admin thêm mới một nhãn hiệu
15 Admin chỉnh sửa nhãn hiệu
Admin chỉnh sửa thông tin một nhãn hiệu
Admin xóa một nhãn hiệu
Admin thêm mới một lời bình
Admin chỉnh sửa lời bình
Quản trị viên có thể chỉnh sửa thông tin của lời bình, vì thường thì lời bình này được tự động trích xuất từ các trang thương mại điện tử, dẫn đến khả năng bị sai lệch thông tin.
19 Admin xóa lời bình Admin xóa bỏ lời bình ra khỏi hệ thống
Hình 3.1 Mô hình usecase của Admin
Hình 3.2 Mô hình usecase của user b) Biểu đồ tuần tự
Hình 3.3 Biểu đồ tuần tự xem thống kê theo tên nhãn hiệu
Hình 3.4 Biểu đồ tuần tự xem thống kê theo tên thiết bị
Xây dựng theo kiến trúc client-server
- Server: Nhận request và truy vấn xử lý dữ liệu, tương tác với client
- Client: Trung gian tương tác giữa người dùng và server, bao gồm các giao diện để người dùng sử dụng b) Quan hệ giữa các bảng dữ liệu
Hình 3.5 Quan hệ giữa các bảng dữ liệu
Kết quả đạt được
Hình 3.6 Phân loại theo nhãn hiệu sản phẩm
Hình 3.7 Lời bình đã được phân loại theo nhãn hiệu
Hình 3.8 Phân loại và thống kê theo thiết bị
Hình 3.9 Lời bình đã được phân loại theo thiết bị
Hình 3.10 Quá trình lấy dữ liệu tự động
Hình 3.11 Giao diện trang quản lý của admin
Hình 3.12 Admin quản lý nhãn hiệu
Hình 3.13 Admin quản lý lời bình
Hình 3.14 Admin quản lý thiết bị
Hình 3.15 Admin quản lý root url
Hình 3.16 Admin quản lý uris
Hình 3.17 Admin chỉnh sửa thông tin nhãn hiệu
Hình 3.18 Admin chỉnh sửa thông tin thiết bị
Hình 3.19 Admin chỉnh sửa thông tin uri
Hình 3.20 Admin thêm mới root url
Đánh giá kết quả
Như đã trình bày tại mục 2.8.5 đánh giá hiệu năng và kết quả ta có ma trận đánh giá hiệu năng như sau:
Lớp lời bình tích cực Được phân lớp bởi hệ thống
Phân lớp thực sự (đúng) Thuộc tp = 228 fn = 43
Tính chính xác: accuracy a = (tp + tn)/n = (228 + 187) / 460 = 90.2%
Độ tin cậy: precision p = tp / (tp + fp) = 228 / (228 + 2) = 99%
Độ bao phủ: recall r = tp / (tp + fn) = 228 / (228 + 43) = 84%
Trong đó bộ dữ liệu kiểm thử được trích xuất 1/3 từ bộ dữ liệu huấn luyện
Movie Reviews Corpus được cung cấp bởi NLTK at address http://www.nltk.org/ chứa 230 lời bình tích cực và 230 lời bình tiêu cực
Bộ dữ liệu Movie Reviews được phân loại thành hai nhóm: tích cực và tiêu cực, giúp xác định các đặc trưng trong lời bình Những đặc trưng này hoàn toàn phù hợp để áp dụng cho việc phân loại lời bình trên các thiết bị điện thoại thông minh.
Dựa trên các kết quả trên cho thấy:
Hệ thống hiện tại đáp ứng yêu cầu cơ bản của đề tài bằng cách tự động thu thập dữ liệu từ root_url và phân loại cảm xúc của khách hàng Tuy nhiên, hệ thống vẫn phụ thuộc vào dữ liệu huấn luyện miễn phí từ cộng đồng và chưa tự tạo ra dữ liệu huấn luyện riêng, dựa trên các dữ liệu đã được phân loại và tích lũy trong quá trình hoạt động.
Cần mở rộng các phép so sánh và phát triển thêm bộ trích xuất thông tin từ nhiều trang thương mại điện tử khác nhau để tạo ra các phép so sánh và trích xuất dữ liệu có giá trị cao, từ đó giúp xác định xu hướng kinh doanh một cách chính xác hơn.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Kết luận
Sau thời gian nghiên cứu và hoàn thiện luận văn, tôi đã thực hiện được các mục tiêu đề ra trong đề cương.
Kết quả đạt được
Đề 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" đã được tác giả hoàn thành, đáp ứng đầy đủ các yêu cầu đề ra và đạt được những kết quả đáng chú ý.
Tự động bóc tách và lấy được đúng dữ liệu cần thiết từ website thương mại điện tử
Tự động xác định đúng cảm xúc (pos/neg) của lời bình trên nhãn hiệu hoặc thiết bị đang hiển thị trên website
Việc trực quan hóa kết quả thống kê qua biểu đồ giúp người dùng có cái nhìn tổng thể và dễ dàng rút ra thông tin quan trọng.
Hướng phát triển 50 TÀI LIỆU THAM KHẢO
Phát triển module tự tạo tập dữ liệu huấn luyện cho hệ thống dựa trên dữ liệu đã được phân loại và đánh giá, đồng thời tích lũy thông tin trong quá trình vận hành.
Phát triển thêm các module tự động bóc tách dự liệu từ nhiều nguồn website thương mại điện tử khác
Bổ sung thêm các phép so sánh và trực quan hóa bằng biểu đồ Thực hiện các phép so sánh chéo giữa các root_url khác nhau
Phát triển module giúp cập nhật hệ thống khi thêm mới script bóc tách dữ liệu cho root_url mới
Phát triển một module lập lịch tự động chạy riêng cho hệ thống sẽ mang lại tính tùy biến cao hơn so với việc sử dụng crontab trên Ubuntu, đồng thời giúp cải thiện khả năng gỡ lỗi Nghiên cứu việc áp dụng hệ thống này cho các website thương mại trong nước là cần thiết để tối ưu hóa quy trình hoạt động.
[1] Bing Liu Sentiment Analysis and Opinion Mining 2012
[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
[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
[4] Jason D.M Rennie, Improving Multi-class Text Classification with Nạve Bayes, 2001
[5] Mr Nilesh M Shelke Approaches of Emotion Detection from Text 2014
[6] P Ekman, An Argument for Basic Emotions, International Journal of
Cognition and Emotion, Vol 6(3), published by Lawrence Associates Ltd,
[7] Steven Bird, Ewan Klein and Edward Loper, Natural Language Processing with Python, 2009
[8] Steven Loria, TextBlod documentation, Release 0.12.0, Mar 25, 2017.