Tính cấp thiết của đề tài
Thực tế hiện nay, việc lựa chọn và mua hàng trực tuyến thường bắt gặp một số cách thức mà người mua sử dụng trong quá trình mua hàng đó là: dựa theo cảm tính, dựa vào hình ảnh và những lời quảng cáo về món hàng, ưu tiên chọn mua những mặt hàng của các cửa hàng trực tuyến mà có những đánh giá, nhận xét (comments) tích cực từ những khách hàng đã mua trước đây để hạn chế tối đa việc mua phải hàng nhái, hàng kém chất lượng, Dựa vào những phản hồi đánh giá của người mua hàng trước đó là một kênh chứa thông tin hết sức quan trọng trong việc lựa chọn được những mặt hàng có chất lượng sản phẩm tốt
Việc nhiều người mua hàng trực tuyến để lại những phản hồi tốt hoặc xấu về món hàng đã mua, cùng một mặt hàng có thể có nhiều người để lại phản hồi đánh giá là cơ sở quan trọng để chúng ta xây dựng công cụ có khả năng đánh giá sản phẩm Công cụ tự động này dựa trên những kỹ thuật máy học sẽ hỗ trợ người dùng có thêm cơ sở trong việc lựa chọn và mua hàng trực tuyến
Vì vậy, việc xây dựng công cụ đánh giá sản phẩm trên website thương mại điện tử có tính thiết thực và tính khả thi cao Từ kết quả của đề tài này sẽ đề xuất hướng ứng dụng và phát triển công cụ áp dụng vào điều kiện thực tế hiện nay.
Mục tiêu của đề tài
- Mục tiêu tổng quát: Xây dựng công cụ đánh giá sản phẩm trên website thương mại điện https://www.lazada.vn/ dựa trên các phản hồi về các sản phẩm của người dùng trên website
Vận dụng được các thư viện sẵn có của ngôn ngữ lập trình Python trong việc bóc tách được các phản hồi về các sản phẩm trên website https://www.lazada.vn; Áp dụng thuật tốn Nạve Bayes, SVM trong việc xây dựng mơ hình cho phép máy tính có khả năng đánh giá được sản phẩm dựa trên các phản hồi của người dùng
Xây dựng công cụ có khả năng tự động đánh giá sản phẩm dựa vào phản hồi của người dùng trên website https://www.lazada.vn trong thời gian thực.
Phương pháp luận và phương pháp nghiên cứu
Tìm hiểu về kỹ thuật thu thập dữ liệu (crawl) trên website, kỹ thuật về xử lý ngôn ngữ tự nhiên, gán nhãn văn bản, tiền xử lý văn bản (loại bỏ stopword), các phương pháp biểu diễn văn bản (chẳng hạn như mô hình túi từ-Bag of N-grams, mô hình TF-IDF, mô hình chủ đề hay các cách cải tiến như các mô hình Word2Vec, GloVe, FastTex (Sarkar, 2019)) Trong đề tài này sử dụng mô hình túi từ-Bag of N- grams, mô hình TF-IDF để thực nghiệm
Nghiên cứu và áp dụng giải thuật máy học Nạve Bayes, SVM
Phương pháp nghiên cứu bằng thực nghiệm
Xây dựng chương trình áp dụng giải thuật Nạve Bayes, SVM trong việc đánh giá sản phẩm trên website thương mại điện tử Sau đó thực hiện đánh giá kết quả thực nghiệm, tính hiệu quả chương trình bằng tập dữ liệu thu thập và được gán nhãn trực tiếp từ website: https://www.lazada.vn.
Cấu trúc luận văn
Tổng quan về khai phá văn bản
Một số khái niệm liên quan đến khai phá văn bản
Khái niệm khai phá dữ liệu:
Khai phá dữ liệu (data mining) là quá trình tính toán để tìm ra các mẫu trong các bộ dữ liệu lớn liên quan đến các phương pháp tại giao điểm của máy học, thống kê và các hệ thống cơ sở dữ liệu Đây là một lĩnh vực liên ngành của khoa học máy tính [3]
Khái niệm khai phá dữ liệu văn bản:
Khai phá văn bản (hay còn gọi là khai thác văn bản, tiếng Anh: text mining hoặc text data mining) là một quá trình xử lý và trích xuất thông tin nằm trong văn bản, quá trình này là một phần của việc phân tích văn bản trong khai phá dữ liệu [4]
Học máy không có giám sát:
Học không có giám sát (tiếng Anh: unsupervised learning) là một phương pháp của ngành học máy nhằm tìm ra một mô hình mà phù hợp với các quan sát Nó khác biệt với học có giám sát ở chỗ là đầu ra đúng tương ứng cho mỗi đầu vào là không biết trước Trong học không có giám sát, một tập dữ liệu đầu vào được thu thập Học không có giám sát thường xem các đối tượng đầu vào như là một tập các biến ngẫu nhiên Sau đó, một mô hình mật độ kết hợp sẽ được xây dựng cho tập dữ liệu đó [5]
Học máy có giám sát:
Học có giám sát là một kĩ thuật của ngành học máy để xây dựng một hàm (function) từ dữ liệu huấn luyện Dữ liệu huấn luyện bao gồm các cặp đối tượng đầu vào (thường dạng vector), và đầu ra mong muốn Đầu ra của một hàm có thể là một giá trị liên tục (gọi là hồi qui), hay có thể là dự đoán một nhãn phân loại cho một đối tượng đầu vào (gọi là phân loại) Nhiệm vụ của chương trình học có giám sát là dự đoán giá trị của hàm cho một đối tượng bất kì là đầu vào hợp lệ, sau khi đã xem xét một số ví dụ huấn luyện (nghĩa là, các cặp đầu vào và đầu ra tương ứng) Để đạt được điều này, chương trình học phải tổng quát hóa từ các dữ liệu sẵn có để dự đoán được những tình huống chưa gặp phải theo một cách "hợp lý" [6].
Tổng quan về bài toán phân lớp văn bản
Bài toán phân lớp văn bản có giám sát
Phát biểu bài toán phân lớp văn bản:
Trong phân loại văn bản, chúng ta được cung cấp một không gian tài liệu 𝕏 và tập hợp cố định của các nhãn (danh mục) ℂ = {𝑐 1 , 𝑐 2 , … 𝑐 𝑘 } Với tài liệu 𝑑 ∈ 𝕏 sẽ được gán nhãn 𝑐 ∈ ℂ
Cho trước một tập huấn luyện (training) 𝕋 ⊂ 𝕏 gồm 𝑁 tài liệu,
𝕋 = {𝑑 1 , 𝑑 2 , … , 𝑑 𝑁 }, với tài liệu 𝑑 𝑖 ∈ 𝕋 được gán nhãn 𝑐 𝑖 , hay nói cách khác: < 𝑑 𝑖 , 𝑐 𝑖 >∈ 𝕋 × ℂ
Ví dụ: < “Sản phẩm rất ok”, “tốt”>
Quá trình sử dụng các giải thuật của học máy để tìm ra được ánh xạ 𝛾: 𝕏 ↦ ℂ được gọi là huấn luyện (training)
Quá trình tìm giá trị của hàm 𝛾(𝑑) ∈ ℂ được gọi là quá trình phân lớp (classifier) [7]
Phát biểu bài toán đánh giá sản phẩm dựa trên các phản hồi của đề tài:
Bài toán này thực chất là một bài toán phân lớp văn bản
Dữ kiện của bài toán:
Không gian tài liệu 𝕏 là tập hợp tất cả các phản hồi trên sàn thương mại điện tử https://www.lazada.vn;
Tập hợp nhãn ℂ = {0, 1} trong đó 0, 1 tương ứng với lớp “tốt”, “xấu”
Tập huấn luyện 𝕋 ⊂ 𝕏 thu thập được 𝑁 = 3037 phản hồi gồm cả phản hồi “tốt” và “xấu”;
Yêu cầu: Cho trước một sản phẩm 𝑆𝑃 có 𝑘 phản hồi {𝑝 1 , 𝑝 2 , … , 𝑝 𝑘 }, sử dụng các giải thuật học máy để xây dựng một ánh xạ 𝛾: 𝕏 ↦ ℂ từ đó tìm ra giá trị 𝛾(𝑝 𝑖 ) ∈ ℂ={0,1} Với tập phản hồi {𝑝 1 , 𝑝 2 , … , 𝑝 𝑘 } ta sẽ thu được tập phân lớp tương ứng là 𝑅 = {𝛾(𝑝 1 ), 𝛾(𝑝 2 ), … , 𝛾(𝑝 𝑘 )} Gọi 𝑘1, 𝑘2 (𝑘1 + 𝑘2 = 𝑘) tương ứng với số lượng phản hồi có giá của hàm 𝛾(𝑝 𝑖 ) có giá trị bằng
0, 1 Kết luận của bài toán là sẽ đưa ra lời khuyên cho người dùng có nên mua sản phẩm 𝑆𝑃 này hay không dựa vào tỉ lệ của hai giá trị 𝑘1, 𝑘2
Tổng quan về các nghiên cứu của bài toán phân lớp văn bản có liên quan đến đề tài
1.2.2.1 Các nghiên cứu trong nước
Trần Thị Lan Hương, 2012, Luận văn thạc sĩ “Nghiên cứu phân lớp tự động văn bản báo chí tiếng Việt về tài nguyên và môi trường” sử dụng giải thuật K-Nearest Neighbors (KNN) để giải quyết bài toán phân lớp văn bản báo chí tiếng Việt về tài nguyên và môi trường với tỉ lệ chính xác về phân lớp là 94% [8]
Nguyễn Thị Lan, 2013, Luận văn thạc sĩ “Nghiên cứu thuật toán học máy SVM và ứng dụng trong bài toán khai phá ý kiến phản hồi của khách hàng trên website”, Học Viện Bưu Chính Viễn Thông, với độ chính xác 92% [9] Đỗ Hoàng Đạt, 2015, Luận văn thạc sĩ “Phân loại cảm xúc người dùng trong mạng xã hội”, Học viện công nghệ bưu chính viễn thông, dùng hai cách trích chọn đặc trưng n-grams, mô hình không gian Vector (Vector Space Model) và hai bộ phân loại SVM và Nạve Bayes của cơng cụ Weka để tiến hành thực nghiệm Dữ liệu thực nghiệm: 1034 bình luận dùng để huấn luyện
(512 bình luận cảm xúc tích cực và 512 bình luận với cảm xúc tiêu cực) với độ chính xác 95% Hạn chế của đề tài này là chưa sử dụng kỹ thuật tách từ đơn/từ ghép trong Tiếng Việt, mới chỉ tách từ bằng phân cách bằng kí tự trắng [10]
Nguyễn Đặng Lập Bằng, Nguyễn Văn Hồ, Hồ Trung Thành, 2020 trong bài báo “Mô hình khai phá ý kiến và phân tích cảm xúc khách hàng trực tuyến trong ngành thực phẩm” đăng tại tạp chí Khoa học Đại học Mở Thành phố Hồ Chí Minh đã công bố mô hình với độ chính xác đạt 90% [11]
1.2.2.2 Các nghiên cứu trên thế giới
Moazzam Ali1, Vol 12, No 5, 2021, (IJACSA) International Journal of Advanced Computer Science and Applications, trong bài báo “Customer Opinion Mining by Comments Classification using Machine Learning” có thể dịch là “Phân loại ý kiến khách hàng bằng nhận xét sử dụng máy học” tác giả đã huấn luyện (training) với tập dữ liệu là 2400 comments và kiểm tra (testing) với tập dữ liệu 1600 comments sử dụng kỹ thuật tách nội dung của một comment thành các nhóm K từ (trong đó thực nghiệm với K=1, 2,
3, 4) và so sánh kết quả phân lớp của 3 giải thuật: SVM, Nạve Bayes, KNN Kết quả thu được như sau: phân lớp SVM tốt nhất với độ chính xác 71.11% (K=1) và 82.32% (K=2), Nạve Bayes cho kết quả với độ chính xác tốt thứ
2 trong đó tốt nhất là 73.68% với K=2, còn KNN kết quả phân lớp kém nhất [12]
Abinash Tripathy, 2015, bài báo “Classification of Sentimental
Reviews Using Machine Learning Techniques” có thể dịch “Phân loại đánh giá tình cảm dựa trên công nghệ máy học” tác giả sử dụng giải thuật SVM và Nạve Bayes để phân loại với tập dữ liệu huấn luyện là gồm 1000 mẫu gán nhãn tích cực và 1000 gán nhãn tiêu cực Kết quả thu được là trên giải thuật Nạve Bayes với độ chính xác là 89.53% trong khi đĩ độ chính xác của giải thuật SVM là 94.06% [13]
R.Murugeswari; G.Ramasakth, 2021, bài báo “Conceptual Analysis of Product Evaluations Using Deep Learning” có thể dịch “Phân tích khái niệm đánh giá sản phẩm bằng cách sử dụng Deep Learning”, tác giả đã sử dụng một tập dữ liệu thương mại điện tử cụ thể có tên là Flipkart và phân loại các nhận xét bằng cách sử dụng một số bộ phân loại cụ thể là SVM, Guassian Nạve Bayes, Neural Network Classifier, Multilayer Perceptron (MLP) Trong đó phân loại Multilayer Perceptron (MLP) cho thấy độ chính xác tốt nhất so với các loại khác và độ chính xác là 99.94% [14]
1.2.2.3 Những ứng dụng thực tế của bài toán phân lớp văn bản
Dự đoán hành vi của khách hàng (Customer behavior prediction):
Khách hàng có thể được phân loại thành các danh mục khác nhau dựa trên mô hình mua hàng của họ, mô hình duyệt cửa hàng web, v.v Ví dụ, các mô hình phân loại có thể được sử dụng để xác định xem khách hàng có khả năng mua nhiều mặt hàng hơn hay không Nếu mô hình phân loại dự đoán khả năng họ sắp mua nhiều hơn, thì người bán hàng có thể muốn gửi cho họ các khuyến mại và giảm giá tương ứng Hoặc nếu đã xác định được rằng họ có thể sẽ sớm bỏ thói quen mua hàng, có thể lưu lại thói quen mua sắm sau này bằng cách cung cấp thông tin của họ [15]
Phân loại tài liệu (Document classification): Một mô hình phân loại tài liệu theo các danh mục khác nhau Trong trường hợp này, mô hình phân loại có thể được coi như một chức năng ánh xạ từ tài liệu sang nhãn danh mục Các thuật toán khác nhau có thể được sử dụng để phân loại tài liệu như: bộ phân loại Nạve Bayes, Máy vector hỗ trợ (SVM) hoặc các mơ hình Mạng thần kinh Các thuật toán học sâu như Deep Boltzmann Machines (DBM),
Deep Belief Networks (DBN) và Stacked Autoencoders (SAE) cung cấp kết quả phân loại hiện đại trên các bộ dữ liệu phân loại tài liệu khác nhau
Lọc thư rác (Spam filtering): Phân loại email spam bằng cách tìm hiểu các đặc điểm cấu thành email spam và email không spam Mô hình phân loại có thể là một chức năng ánh xạ từ văn bản email sang phân loại thư rác (hoặc phân loại khơng phải thư rác) Các thuật tốn như Nạve Bayes và Support Vector Machine có thể được sử dụng để phân loại Sau khi mô hình phân loại được huấn luyện, mô hình phân loại sau đó có thể được sử dụng để lọc các email mới đến là thư rác hoặc không phải thư rác
Phân loại văn bản web (Web text classification): Phân loại các trang web/tài liệu thành các chủ đề khác nhau là một vấn đề phân loại khác Nhiệm vụ phân loại này có thể được thực hiện bằng cách ánh xạ một tài liệu văn bản đến danh mục chủ đề tương ứng của nó Chẳng hạn, phân loại văn bản theo chủ đề: thể thao, giải trí, công nghệ,…
Tổng quan về các phương pháp biểu diễn văn bản
Một số khái niệm dùng trong luận văn
Từ khóa (Key word): là các từ xuất hiện trong một văn bản có nghĩa trong từ điển
Từ dừng (Stop word): nhiều từ được dùng để biểu diễn cấu trúc câu, xuất hiện thường xuyên trong các văn bản, nhưng hầu như không mang ý nghĩa về mặt nội dung, chẳng hạn các giới từ, liên từ,… những từ đó được gọi là từ dừng Ví dụ: có thể, nếu, vì vậy, sau khi, thì, một số, với lại, quả thật, hầu như,…
Trọng số của từ: là độ quan trọng hay hàm lượng thông tin mà từ đó mang lại cho văn bản Trọng số của từ là đại lượng dùng để đo sự khác biệt giữa văn bản chứa nó với các văn bản khác.
Một số phương pháp đánh trọng số từ khóa
Giả sử có một tập gồm 𝑛 văn bản 𝔻 = {𝑑 1 , 𝑑 2 , … , 𝑑 𝑛 }, 𝕋 là một tập từ vựng gồm 𝑚 từ khóa 𝕋 = {𝑣 1 , 𝑣 2 , … , 𝑣 𝑚 }, 𝑤 𝑖,𝑗 là trọng số của từ khóa 𝑣 𝑗 trong văn bản 𝑑 𝑖
Phương pháp Boolean là phương pháp đánh trọng số đơn giản nhất, giá trị trọng số 𝑤 𝑖,𝑗 được xác định như sau:
1.3.2.2 Phương pháp dựa trên tần suất
Phương pháp dựa trên tần số TF (Term Frequency): Gọi
𝒕𝒇(𝒗 𝒋 , 𝒅 𝒊 ) là tần suất xuất hiện của từ khóa 𝒗 𝒋 có trong tài liệu 𝒅 𝑖 , khi đó các giá trị trọng số 𝒘 𝒊,𝒋 được xác định như sau:
Phương pháp tần suất nghịch đảo IDF (Inverse Document Frequency): phép đo này cho biết mức độ hiếm hoặc phổ biến của một từ/cụm từ có trong toàn bộ của tập tài liệu (tiếng Anh gọi copus) Về mặt trực quan, một thuật ngữ càng phổ biến thì càng ít quan trọng, trong trường hợp này giá trị IDF gần bằng 0.
Ví dụ các từ chẳng hạn như: “là”, “bởi”, “của”,… thường xuất hiện phổ biến trong các tài liệu nhưng có rất ít tầm quan trọng trong việc quyết định nội dung văn bản Điều này không được phản ánh đúng trong thước đo TF, trong phương pháp này, giá trị 𝑤 (𝑖,𝑗) được xác định như sau:
Phương pháp TF*IDF: Phương pháp này tổng hợp của hai phương pháp TF và IDF, được xác định như sau:
Một số phương pháp biểu diễn văn bản
Cho trước: tập 𝔻 gồm n văn bản 𝔻 = {𝑑 1 , 𝑑 2 , … , 𝑑 𝑛 }, tập từ vựng 𝕋 gồm m từ từ khóa 𝕋 = {𝑡 1 , 𝑡 2 , … , 𝑡 𝑚 }
Gọi 𝑉 𝑖 = {𝑣 𝑖,1 , 𝑣 𝑖,2 , … , 𝑣 𝑖,𝑗 , … , 𝑣 𝑖,𝑚 } là véc tơ biểu diễn của văn bản d i (trong đó 𝑣 𝑖,𝑗 = 𝑤 𝑖,𝑗 (𝑖 = 1, 2, … , 𝑛; 𝑗 = 1, 2, … , 𝑚 ) Khi đó 𝕎 {V 1 , 𝑉 2 , … , 𝑉 𝑛 } được gọi là ma trận trọng số của tập văn bản 𝔻
Trong phương pháp này, mỗi văn bản 𝑑 𝑖 ∈ 𝔻 sẽ được mã hóa thành véc tơ
𝑉 𝑖 = {𝑣 𝑖,1 , 𝑣 𝑖,2 , … , 𝑣 𝑖,𝑗 , … , 𝑣 𝑖,𝑚 , 𝑣 𝑖,𝑚+1 }, trong đó 𝑣 𝑖,𝑗 = 𝑤 𝑖,𝑗 (𝑤 𝑖,𝑗 được xác định bởi công thức (1))
Bag-of-words là một kỹ thuật trong xử lý ngôn ngữ tự nhiên của mô hình văn bản Về mặt kỹ thuật, chúng ta có thể nói rằng đó là một phương pháp trích xuất đối tượng địa lý bằng dữ liệu văn bản Cách tiếp cận này là một cách đơn giản và linh hoạt để trích xuất các tính năng từ tài liệu [16] Tập hợp các từ xuất hiện trong một văn bản được gọi là một “túi từ”, túi từ chỉ theo dõi số lượng từ và bỏ qua các chi tiết ngữ pháp và thứ tự từ
Mô hình chỉ quan tâm đến việc các từ đã biết có xuất hiện trong tài liệu hay không, chứ không phải ở vị trí nào trong tài liệu
Tập hợp tất cả các từ xuất hiện trong tất cả các “túi từ” tạo thành danh sách từ vựng 𝕋 Khi đó văn bản thứ 𝑖 trong tập tài liệu 𝔻 được mã hóa thành một véc tơ 𝑉 𝑖 = (𝑣 𝑖,1 , 𝑣 𝑖,2 , … , 𝑣 𝑖,𝑚 ) có độ dài |𝕋|, trong đó 𝑣 𝑖,𝑗 = 𝑤 𝑖,𝑗 , 𝑤 𝑖,𝑗 được xác định bằng công thức (2)
Ví dụ về mã hóa túi từ:
Câu 1: “Đời sống có hạn mà sự học thì vô hạn.” Trang Tử
Câu 2: “Học thầy, học bạn, vô vạn phong lưu.” Tục ngữ dân tộc Thái
Bước 1: Chuyển câu thành chữ thường và tách thành các từ riêng biệt:
Câu 1: {'đời', 'sống', 'có', 'hạn', 'mà', 'sự', 'học', 'thì', 'vô', 'hạn'}
Câu 2: {'học', 'thầy', 'học', 'bạn', 'vô', 'vạn', 'phong', 'lưu'}
Bước 2: Lập túi từ cho mỗi câu:
BoW1={'đời':1, 'sống':1, 'có':1, 'hạn':2, 'mà':1, 'sự':1, 'học':1, 'thì':1, 'vô':1}
BoW2={'học':2, 'thầy':1, 'bạn':1, 'vô':1, 'vạn':1, 'phong':1, 'lưu':1}
Bước 3: Lập danh sách từ vựng 𝕋 = 𝐵𝑜𝑊1 ⋃ 𝐵𝑜𝑊2
𝕋 ={'đời', 'sống', 'có', 'hạn', 'mà', 'sự', 'học', 'thì', 'vô', 'thầy', 'bạn,', 'vạn', 'phong', 'lưu'}
Bước 4: Mã hóa văn bản thứ 𝑖 thành véc tơ 𝑉 𝑖
Câu 1 mã hóa thành véc tơ 𝑉 1 = [1, 1, 1, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0] Câu 2 mã hóa thành véc tơ 𝑉 2 = [0, 0, 0, 0, 0, 0, 2, 0, 1, 1, 1, 1, 1, 1]
Kỹ thuật mã hóa một tài liệu thành một véc tơ như ví dụ trên được gọi là kỹ thuật Bag-of-Words
Mô hình N-grams: N-grams được hiểu đơn giản là tần suất xuất hiện của 𝑁 kí tự hoặc từ liên tiếp trong dữ liệu
Một số mô hình N-gram phổ biến:
Mô hình với 𝑁=1 gọi là unigram;
Mô hình với 𝑁=2 gọi là bigrams;
Mô hình với 𝑁=3 gọi là trigrams
Ví dụ: Câu “Đời sống có hạn mà sự học thì vô hạn” ứng với mỗi mô hình n-gram ta có thể tách n-gram như sau:
Bảng 1: Kết quả tách từ ứng với các mô hình N-gram
𝑵-gram Kết quả tách từ
Unigram(𝑁=1) {'đời', 'sống', 'có', 'hạn', 'mà', 'sự', 'học', 'thì', 'vô', 'hạn'}
Bigrams(𝑁 =2) {'đời sống', 'sống có', 'có hạn', 'hạn mà', 'mà sự', 'sự học',
'học thì', 'thì vô', 'vô hạn'}
Trigrams(𝑁 =3) {'đời sống có', 'sống có hạn', 'có hạn mà', 'hạn mà sự', 'mà sự học', 'sự học thì', 'học thì vô', 'thì vô hạn'}
Trong mô hình này, trường hợp 𝑁 = 1 (1_𝑔𝑟𝑎𝑚) ứng với mô hình BoW Còn các trường hợp 𝑁 ≥ 2 các mã hóa cũng tương tự mô hình BoW chỉ khác ở chỗ trong mô hình BoW mỗi từ khóa là một từ đơn còn trong mô hình 𝑁_𝑔𝑟𝑎𝑚 mỗi từ khóa là một cụm gồm 𝑁 từ đơn ghép lại
Tần suất (Term Frequency-TF): trong phương pháp này, mỗi văn bản
𝑑 𝑖 ∈ 𝔻 sẽ được mã hóa thành véc tơ 𝑉 𝑖 = {𝑣 𝑖,1 , 𝑣 𝑖,2 , … , 𝑣 𝑖,𝑗 , … , 𝑣 𝑖,𝑚 , 𝑣 𝑖,𝑚+1 }, với 𝑣 𝑖,𝑗 = 𝑤 𝑖,𝑗 (𝑤 𝑖,𝑗 được xác định bởi công thức (2))
Tần suất nghịch đảo (Inverse Document Frequency-IDF): trong phương pháp này, mỗi văn bản 𝑑 𝑖 ∈ 𝔻 sẽ được mã hóa thành véc tơ
𝑉 𝑖 = {𝑣 𝑖,1 , 𝑣 𝑖,2 , … , 𝑣 𝑖,𝑗 , … , 𝑣 𝑖,𝑚 , 𝑣 𝑖,𝑚+1 }, với 𝑣 𝑖,𝑗 = 𝑤 𝑖,𝑗 (𝑤 𝑖,𝑗 được xác định bởi công thức (3)).
TF-IDF (Term Frequency- Inverse Document Frequency): trong phương pháp này, mỗi văn bản 𝑑 𝑖 ∈ 𝔻 sẽ được mã hóa thành véc tơ
𝑉 𝑖 = {𝑣 𝑖,1 , 𝑣 𝑖,2 , … , 𝑣 𝑖,𝑗 , … , 𝑣 𝑖,𝑚 , 𝑣 𝑖,𝑚+1 }, trong đó 𝑣 𝑖,𝑗 = 𝑤 𝑖,𝑗 (𝑤 𝑖,𝑗 được xác định bởi công thức (4)) [16].
Cách tính TF, IDF, TF-IDF:
Xét ví dụ có 2 văn bản sau:
Câu 1: “Đời sống có hạn mà sự học thì vô hạn.” Trang Tử
Câu 2: “Học thầy, học bạn, vô vạn phong lưu.” Tục ngữ dân tộc Thái
Số lượng từ trong câu 1 là: 10, số lượng từ trong câu 2 là: 8, ta có bảng tính các giá trị TF, IDF, TF*IDF như sau:
Bảng 2: Cách tính TF, IDF, TF-IDF
TF*IDF Câu 1 Câu 2 Câu 1 Câu 2 Câu 1 Câu 2 đời 1 0 0.1 0 0.301 0.03 0 sống 1 0 0.1 0 0.301 0.03 0 có 1 0 0.1 0 0.301 0.03 0 hạn 2 0 0.2 0 0.301 0.06 0 mà 1 0 0.1 0 0.301 0.03 0 sự 1 0 0.1 0 0.301 0.03 0 học 1 2 0.1 0.25 0 0 0 thì 1 0 0.1 0 0.301 0.03 0 vô 1 1 0.1 0.125 0 0 0 thầy 0 1 0 0.125 0.301 0 0.038 bạn 0 1 0 0.125 0.301 0 0.038 vạn 0 1 0 0.125 0.301 0 0.038 phong 0 1 0 0.125 0.301 0 0.038 lưu 0 1 0 0.125 0.301 0 0.038
Kỹ thuật tiền xử lý dữ liệu dạng văn bản tiếng việt và thuật toán máy học để xây dựng mô hình đánh giá sản phẩm
Kỹ thuật tiền xử lý dữ liệu dạng văn bản tiếng Việt
Các đơn vị chủ yếu trong xử lý văn bản
Âm vị: được sử dụng để chỉ các đơn vị âm thanh nhỏ nhất, tạo nên hệ thống âm thanh trong ngôn ngữ Âm vị là thành phần cơ bản để tạo thành các từ Âm vị không biểu thị ý nghĩa nào cả nhưng nó lại có tác dụng phân biệt ý nghĩa
Hình vị: Hình vị là một hoặc chuỗi kết hợp một vài âm vị, biểu thị một khái niệm Nó là đơn vị nhỏ nhất có ý nghĩa Chức năng của hình vị là chức năng ngữ nghĩa
Từ : Là đơn vị nhỏ nhất trong văn bản, được tạo thành từ các ký tự liên tiếp và được phân tách bằng dấu cách
Câu (Sentence): Là một nhóm từ được xếp chồng lên nhau và kết thúc bằng dấu chấm câu (., ?, !)
Đoạn (Paragraph): Là một nhóm các câu liên kết với nhau và thường chứa một ý chính hoặc thông tin liên quan
Văn bản (Document): Là một tài liệu hoặc một bài viết đầy đủ Văn bản có thể bao gồm nhiều trang và các phân đoạn khác nhau
Những kiểu quan hệ chủ yếu trong ngôn ngữ
Khi ngôn ngữ được hiện thực hoá thì những yếu tố của nó hiện ra lần lượt cái này tiếp theo cái kia làm thành một chuỗi Khi biểu hiện bằng chữ viết, người ta đã thay thế sự kế tiếp trong thời gian của các yếu tố ngôn ngữ bằng tuyến không gian của các con chữ Đặc điểm này của ngôn ngữ được gọi là tính hình tuyến của các biểu hiện và mối quan hệ giữa các yếu tố trong hình tuyến được gọi là quan hệ tuyến tính hay quan hệ ngang
Là quan hệ giữa các yếu tố không cùng hiện diện với nhau, nhưng có những thuộc tính nào đó giống nhau, do đó dễ gợi ra những sự liên tưởng đối với nhau, về nguyên tắc chúng có thể thay thế cho nhau được ở cùng một vị trí trong chuỗi hình tuyến của ngôn ngữ Nghĩa là quan hệ hình là quan hệ giữa các yếu tố có thể thay thế cho nhau được trong cùng vị trí của chuỗi lời nói
Một số đặc điểm của văn bản tiếng Việt
Từ không biến đổi hình thái
Một từ luôn có hình thức không biến đổi trong mọi trường hợp, chúng đứng trong câu tương tự như đứng độc lập
Ví dụ, trong tiếng Việt:
Từ “đi” chỉ một hình thái duy nhất là đi
Hay: Tôi nhìn anh ấy Anh ấy nhìn tôi thì các từ ngữ tôi và anh có hình thức hoàn toàn giống nhau dù chúng có đảm nhiệm vai trò hoàn toàn khác nhau: chủ ngữ hay bổ ngữ
Trong khi đó, trong tiếng Anh, đòi hỏi các từ phải có sự biến đổi cho phù hợp với nghĩa ngữ pháp của chúng trong câu: I-me, he-him,…
Quan hệ ngữ pháp và ý nghĩa ngữ pháp được biểu thị chủ yếu bằng hư từ và trật từ
Dùng hư từ để biểu thị các các ý nghĩa quá khứ, hiện tại, tương lai: Đọc: đã đọc, vừa đọc, đọc xong, đọc rồi (ý nghĩa quá khứ); đang đọc (ý nghĩa hiện tại); sẽ đọc, sắp đọc (ý nghĩa tương lai)
Ví dụ: cửa trước-trước cửa, nhà nước-nước nhà, đi học-học đi, tôi nhìn nó-nó nhìn tôi
Trong những ngôn ngữ đơn lập, các từ đơn tiết làm thành hạt nhân cơ bản của từ vựng Phần lớn những đơn vị được gọi là ghép, từ phát sinh đều được cấu tạo từ các từ các đơn tiết này Chính vì thế, ranh giới giữa các âm tiết thường trùng với ranh giới các hình vị, các hình vị không biệt với từ, và do đó ranh giới giữa từ ghép và cụm từ cũng khó phân biệt
Ví dụ từ ghép: Xe đạp, cá vàng,…
Những từ có ý nghĩa đối tượng, hành động, tính chất thường không phân biệt nhau về mặt cấu trúc
Cưa (dụng cụ dùng để xẻ gỗ)- cưa (hoạt động xẻ gỗ)
Ca (dụng cụ chứa đựng)- ca (hoạt động ca hát)
Các bước tiền xử lý dữ liệu văn bản tiếng Việt
Chuyển văn bản thành chữ thường: Việc chuyển tất các kí tự trong văn bản về chữ thường phục vụ vấn đề so khớp nhằm hỗ trợ tính toán trọng số cho các từ
Xóa bỏ các kí tự đặc biệt: Có tổng cộng 32 kí tự chính cần được xử lý loại bỏ khỏi văn trước khi thực hiện công đoạn tách từ Danh sách các kí tự cần loại bỏ là: '! "# $% &' () * +, - / :; ? @ [\] ^ _`
Loại bỏ các chữ số
Phương pháp tách từ trong tiếng Việt
Trong tiếng Việt có 2 loại từ gồm: từ đơn (một âm tiết) và từ ghép (từ
2 âm tiết trở lên) Nếu chỉ dựa vào khoảng trắng thì chưa thể giải quyết được bài toán tách từ tiếng Việt Vì vậy bài toán tách từ trong tiếng Việt trở nên khó khăn hơn nhiều so với một số ngôn ngữ khác chẳng hạn như tiếng Anh, tiếng Đức, tiếng Pháp tách từ chỉ dựa vào khoảng trắng phân cách giữa các từ
Trong tiếng Việt và số ngôn ngữ châu Á khác (ví dụ: Tiếng Trung, tiếng Nhật, ) khoảng trắng dùng để phân cách các từ và phân cách các âm tiết của một từ ghép
Dựa trên đặc điểm của từ kết hợp với cách tiếp cận khác nhau, hiện nay các phương pháp chia thành ba nhóm chính: dựa trên từ điển, dựa trên thống kê và phương pháp lai [18]
2.1.5.2 Các phương pháp tiếp cận trong việc tách từ tiếng Việt Tiếp cận dựa trên từ điển: Phương pháp này có ý tưởng chính là dựa trên một từ điển có sẵn, thực hiện so khớp từng âm tiết trong văn bản với các từ có trong từ điển Độ chính xác và tốc độ xử lý của phương pháp này phụ thuộc vào kích thước của từ điển Do không cần đến quá trình huấn luyện nên phương pháp này tương đối đơn giản, nhanh và dễ hiểu Cách tiếp cận này gặp hạn chế khi gặp tình huống các từ không tồn tại trong từ điển
Tiếp cận dựa trên thống kê: Cách giải pháp tách từ trong cách tiếp cận này thường dựa trên một mô hình ngôn ngữ (Language Model - LM) Trong đó, LM được xây dựng dựa trên các số liệu thống kê về số lần xuất hiện hoặc đồng thời xuất hiện của các từ xuất hiện trong một tập văn bản
Phương pháp tách từ sử dụng mô hình trường xác suất có điều kiện và độ hỗn loạn cực đại: Với phương pháp tách từ sử dụng mô hình trường xác suất có điều kiện (CRFs-Conditional Random Fields) và độ hỗn loạn cực đại (MaxEnt-Maximum Entropy), bài toán tách từ được xem như là công việc gán nhãn cho một dãy các từ
Quy trình tạo lập tập dữ liệu từ sàn thương mại điện tử Lazada phục vụ việc xây dựng mô hình đánh giá sản phẩm
vụ việc xây dựng mô hình đánh giá sản phẩm
Thu thập dữ liệu phản hồi:
Lập danh sách S gồm các chủ đề sản phẩm trên Lazada dùng để thu thập link sản phẩm;
Tạo lập danh sách link L sản phẩm bằng cách crawl từ danh sách S;
Tạo lập tập dữ liệu phản hồi P bằng cách crawl phản hồi từ danh sách L;
Gán nhãn và tiền xử lý văn bản:
Tiến hành gán nhãn (phân lớp) cho tất cả các phản hồi có trong tập P;
Đánh giá danh sách các phản hồi của nhà bán hàng có trong tập P nếu không ảnh hưởng đến kết quả phân lớp thì loại bỏ khỏi tập P;
Tiền xử lý văn bản bằng cách loại bỏ các kí tự đặc biệt, emoji, loại bỏ stopwords, chuyển chữ hoa thành chữ thường
Tạo lập danh sách từ vựng: Xây dựng danh sách từ vựng V0, V1, V2 bằng cách sử dụng các kỹ thuật tách từ tương ứng: từ đơn/từ ghép, 1-gram, 2-gram;
Thu thập dữ liệu từ website https://www.lazada.vn
Danh sách các chủ đề trên Lazada đã thu thập dữ liệu dùng để huấn luyện và kiểm tra mô hình:
Bảng 5: Các chủ đề dùng thu thập dữ liệu
TT Tên chủ đề TT Tên chủ đề
1 Tai nghe nhét tai không dây 24 Nước Hoa Nam
2 Camera IP Kết nối Internet 25 Tã giấy
3 SmartPhone 26 Sữa tăng trưởng (3 tuổi trở lên)
TT Tên chủ đề TT Tên chủ đề
4 Laptop 27 Dụng cụ hút sữa
5 Màn hình vi tính 28 Lắp ráp xe đẩy
6 Máy quay phim 29 Xếp hình kích thích trí não
7 Máy tính bảng 30 Kem dưỡng da cho trẻ
8 Máy tính để bàn 31 Nhà banh & Phụ kiện
9 Phụ kiện máy tính bảng 32 Dụng cụ nhà bếp đặc biệt
10 Phụ kiện thiết bị theo dõi vận động 33 Sữa Uht, Sữa Tiệt Trùng Và Sữa
11 Tay cầm chơi game 34 Trà Trái cây
12 Dung dịch vệ sinh ống kính 35 Máy cầm tay đa năng
13 Điều khiển và phụ kiện
Drones 36 Bộ đồ ăn dùng một lần
14 Đồng hồ thông minh và phụ kiện 37 Nệm ngủ, thảm và chuồng
15 Mặt nạ lột và hạt tẩy tế bào 38 Giày Ballet & Vũ
16 Nhíp và dao cạo 39 Đồ chơi điện tử
18 Dụng cụ chăm sóc da mặt 41 Chăm sóc cơ thể
19 Thuốc nhuộm tóc 42 Trang phục bé trai
20 Xà phòng thanh 43 Trang phục bé gái
21 Tạo kiểu tóc 44 Giày nữ
22 Chăm sóc tóc 45 Túi xách nữ
23 Dưỡng da 46 Giày thể thao nam
Với 46 chủ đề trên, tác giả luận văn đã thu thập được 1506 link sản phẩm khác nhau Số phản hồi thu thập được từ 1506 link sản phẩm là 5548 phản hồi, bao gồm: 4311 phản hồi của khách hàng + 1237 phản hồi từ các nhà bán hàng (trong đó: phân biệt phản hồi của khách hàng và người bán hàng một cách tự động bằng code).
Gán nhãn văn bản từ tập dữ liệu thu thập được và tiền xử lý
Sau quá trình phân tích 1237 phản hồi của các nhà bán hàng đã thu thập được trước đó, tác giả nhận thấy có 1171
1237 = 94.665% là lời cảm ơn, còn lại
1237 = 5.335% lời hướng dẫn sử dụng sản phẩm Từ đó kết qủa phân tích được tác giả quyết định loại bỏ tập dữ liệu này ra khỏi tập dữ liệu huấn luyện mà chỉ dùng 4311 phản hồi còn lại từ khách hàng để gán nhãn bằng tay, mỗi phản hồi được gán thuộc một trong hai nhãn tích cực hoặc tiêu cực Kết quả sau khi gán nhãn là: 3939 phản hồi tích cực và 402 phản hồi tiêu cực Từ tập dữ liệu này chia thành 2 phần: phần 1 gồm 3017 phản hồi (tích cực: 2742, tiêu cực: 275) chiếm tỉ lệ 70% tập dữ liệu dùng để huấn luyện (training) và phần thứ 2 gồm 1294 phản hồi (tích cực: 1202 và tiêu cực: 92) chiếm tỉ lệ
30% dùng để đánh giá mô hình đã huấn luyện
Ví dụ về phản hồi được gán nhãn tiêu cực:
+ “giao hàng thùng bị bể nát đổi lại thùng khác dùm”
+ “tệ so với giá tiền”
+ “sạc bị hư hỏng pin chỉ có vỏ nhựa k có ruột”
Ví dụ về phản hồi được gán nhãn tích cực:
+ “ok hàng nguên seal rẻ hơn nên mua về xem thế nào hàng ngon bổ rẻ chất lượng thì để test kỹ hơn”
+ “ok hàng đã nhận sản phẩm đẹp chất lượng mình đã mua thêmxin cảm ơn sop”
+ “sản phẩm ok sài rất hiệu quả hết sẽ ủng hộ shop tiếp”
+ “giao hàng nhanh shop tư vấn nhiệt tình hàng ok”
+ “đầy đủ y hình rất hài long cả 2 may đều rất okla cẳt tỉa xong cho bà mèo nó sạch mướt hài lòng mn nên mua”
Tiền xử lý văn bản
Trong quá trình thực nghiệm thu thập dữ liệu phản hồi trên sàn thương mại điện tử Lazada, dữ liệu phản hồi của khách hàng thường viết tắt, viết không đúng tiếng Việt có dấu, ngoài ra còn chứa các ký hiệu đặc biệt, các emoji cho nên việc tiền xử lý các phản hồi này gặp nhiều khó khăn
Hình 8: Phản hồi của sản phẩm
Xóa kí tự đặc biệt
Danh sách các kí tự đặc biệt cần loại bỏ khỏi các phản hồi trong quá trình tiền xử lý là: '!"#$%&\'()*+,-./:;?@[\\]^_`{|}~'
Emoji là các biểu cảm khuôn mặt, hình ảnh con vật, hoạt động… ngộ nghĩnh, đáng yêu Cụm từ Emoji xuất phát từ chữ romaji trong tiếng Nhật được ghép từ chữ e (絵) nghĩa là hội (hội trong hội họa, bức tranh) và chữ moji (文字) nghĩa là ký tự Trong tiếng Anh, từ “emotion” và
“emoticon” cũng nói về Emoji nhưng đây đều là sự tương đồng ngẫu nhiên
Emoji hay biểu tượng cảm xúc được coi là một dạng “ngôn ngữ” mới Hiện nay, Emoji được sử dụng phổ biến trong giới trẻ trong các môi trường mạng xã hội
Hình 9: Phản hồi chứa emoji Để loại bỏ các emoji trong văn bản tác giả sử dụng thư viện emoji trong đề tài
Chuyển văn bản thành chữ thường
Do việc so sánh xâu trong ngôn ngữ lập trình là phân biệt chữ viết hoa và chữ viết thường nên tránh trong trường hợp cùng một từ nhưng viết ở hai kiểu khác nhau nên trong quá trình tiền xử lý cần chuyển đổi tất cả các phản hồi về dạng chữ thường
Xóa bỏ stopwords Để loại bỏ Stopword tiếng Việt trong quá trình tiền xử lý, đề tài sử dụng file stopwords vietnamese-stopwords.txt của tác giả Van Duyet Le tại địa chỉ: https://github.com/stopwords/vietnamese-stopwords
Tách từ Đề tài sử dụng 3 kiểu tách từ:
Tách từ đơn/từ ghép trong tiếng Việt sử dụng thư viện underthesea (https://github.com/undertheseanlp/underthesea)
Tách từ theo kiểu 1-gram và 2-gram sử dụng thư viện advertools (https://advertools.readthedocs.io/en/master/)
Loại bỏ từ quá ngắn (1 kí tự), từ quá dài (>7 kí tự).
Tạo danh sách từ vựng
Với tập dữ liệu 4311 phản hồi thu thập được tiến hành tách từ theo một trong 3 kiểu tách từ: từ đơn/từ ghép, 1-gram, 2-gram thu được kết quả danh sách từ vựng như sau:
Bảng 6: Bảng kết quả danh sách từ vựng
TT Kiểu tách từ Số từ vựng thu được
1 Từ đơn/từ ghép 4844 từ vựng
Xây dựng mô hình đánh giá sản phẩm tự động dựa trên các phản hồi
Lazada một cách tự động dựa vào các phản hồi của người dùng đã để lại trên website
Input: Tập hợp các phản hồi của người dùng để lại trên sàn thương mại điện tử Lazada;
Output: Đưa ra đánh lời khuyên cho người dùng có nên mua sản phẩm hay không?
Trên cơ sở của bài toán, tác giả luận văn đã nghiên cứu và vận dụng 4 mô hình biểu diễn văn bản, 3 kiểu tách từ và 2 giải thuật máy học để xây dựng mô hình giải thuật để giải quyết bài toán của đề tài Cụ thể:
4 mô hình biểu diễn văn bản: Boolean, BoW, TF, TF*IDF;
3 kiểu tách từ: 0_gram, 1_gram, 2_gram;
2 giải thuật máy học: SVM (4 kernel), Nạve Bayes (3 kernel)
Dựa trên mô hình biểu diễn văn bản, kiểu tách từ và giải thuật máy học tác giả đã đưa ra mô hình giải quyết bài toán đặt ra được mô tả bằng hình ảnh dưới đây:
Hình 10: Xây dựng mô hình đánh giá sản phẩm tự động
Ghi chú: Trong mô hình giải quyết bài toán đặt ra, tác giả đề xuất thử nghiệm với bộ quyết định như sau:
K1/K