Chương 1: Giới thiệu tổng quan về đề tài. Nội dung chương một bao gồm: Đặt van dé và lý do chọn đề tài, và đưa ra nhận xét, đánh giá, mục tiêu và phạm vi nghiên cứu, công cụ xây dựng hệ thông và bô cục của báo cáo. Chương 2: Cơ sở lý thuyết, trong đó trình bày lý thuyết và phân tích các thuật toán sẽ sử dụng trong đề tài. Chương 3: Trình bày phương pháp và các bước thực hiện xử lí thực hiện của đề tài Chương 4: Thực nghiệm và đánh giá các phương pháp, chọn mô hình gom cụm tối ưu nhất cho dữ liệu dé sử dụng cho ứng dụng về sau.
Chương 5: Tóm tắt lại những kết quả mà nhóm đã đạt được khi thực hiện đề tài, những điểm mới của để tài và định hướng phát triển cho đề tài.6 Công cụ sử dụng Trong quá trình thực hiện đề tài, nhóm đã sử dụng ngôn ngữ lập trình Python ở môi trường phiên bản Python 3. Các thư viện sử dụng: e© Scikit-learn e Pandas e Wordninja GVHD: TS. Nguyễn Lưu Thùy Ngân 4 SVTH: Nguyễn Bá Minh Hoàng - 16520435 THS. Nguyên Thị Kim Phụng Nguyên Gia Huy - 16520517 Chương 2: Cơ sở lý thuyết 2.1 Giới thiệu ngôn ngữ Python Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo ra bởi Guido van Rossum.
Nó dé dàng dé tìm hiểu và đang nỗi lên như một trong những ngôn ngữ lập trình nhập môn tốt nhất cho người lần đầu tiếp xúc với ngôn ngữ lập trình. Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động. Python có cấu trúc dữ liệu cấp cao mạnh mẽ và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng. Cú pháp lệnh của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dé hiểu và cách gõ linh động làm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng dé viết script và phát trién ứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng.
Nhiều thư viện Khoa học dữ liệu / Phân tích dữ liệu như Pandas, StatsModels, NumPy, SciPy và Scikit-Learn, là một số thư viện nồi tiếng có sẵn cho những người tham gia trong cộng đồng Khoa học dữ liệu.2 Một số van đề trong xử lý ngôn ngữ tự nhiên Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) là một nhánh của trí tuệ nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người. Trong trí tuệ nhân tạo thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất vì nó liên quan đến việc phải hiểu ý nghĩa ngôn ngữ-công cụ hoàn hảo nhất của tư duy va giao tiếp. Khử nhiễu dữ liệu Mục đích bước này là loại bỏ noise trong data. Đa phần noise là các thẻ HTML, JavaScript, và đương nhiên nếu cứ dé noise đề tiến hành xử lý sẽ dẫn đến kết qua xử lý không tốt.
Nguyễn Lưu Thùy Ngân 5 SVTH: Nguyễn Bá Minh Hoàng - 16520435 THS. Nguyên Thị Kim Phụng Nguyên Gia Huy - 16520517 Thông thường chúng ta hay loại bỏ noise là các thẻ HTML và JS như trên tuy nhiên thực tế noise có thể không chỉ là HTML, JS, cũng có thé là những cum từ không cần thiết, hay ký tự không có ý nghĩa ($%&##"). Ví dụ: raw word cleaned word stemmed word 0. trouble troubl 1 trouble< trouble troubl 2 trouble! trouble troubl 3 <a>trouble</a> trouble troubl 4 1.trouble trouble troubl Hình 2.1: Khử nhiễu dữ liệu Tách từ Trên thực tế đôi khi các từ trong văn bản có thể sẽ được viết liền nhau (ví dụ như các hashtags) chính vì vậy đề xử lý ngôn ngữ một cách tốt nhất thì tách từ là một phần không thê thiếu.
Tách từ chính xác hay không là công việc rất quan trọng, nếu không chính xác rất có thé dẫn đến việc ý nghĩa của câu sai, ảnh hưởng đến tính chính xác của chương trình. Nguyễn Lưu Thùy Ngân 6 SVTH: Nguyễn Bá Minh Hoàng - 16520435 THS. Nguyên Thị Kim Phụng Nguyên Gia Huy - 16520517 Chuẩn hóa từ Mục đích của chuân hóa từ là đưa văn bản từ các dạng không đông nhât vê cùng một dạng. Dưới góc độ tối ưu bộ nhớ lưu trữ và tính chính xác cũng rất quan trọng.A =USA Vi dụ trong từ điển, training data của chúng ta không có U.A, chỉ có USA, thì việc chuyền đổi những từ như “U.A” trở thành “USA” là điều cần thiết dé các bước xử lý sau như phân lớp văn bản (text classification), xác định ý niệm văn ban (intent detection) được chính xác.
Có nhiều cách viết, mỗi cách viết khi lưu trữ sẽ tốn lượng memory khác nhau, như “half -size” chỉ tốn 1/2 dung lượng so với “full-size” nên tuỳ theo nhu cầu, tình hình thực tế, chúng ta sẽ đưa văn bản về một dạng đồng nhất. Ngoài ra trong một vài trường hợp, nếu ký tự số không mang lại lợi ích gì thì cũng sẽ tiến hành loại bỏ các ký tự số đó, nêu cứ dé nguyên rất có thé các ký tự số sẽ trở thành nhiều dữ liệu, ảnh hưởng dén tính chính xác của mô hình sau này. Một bước tiền xử lý rất dễ bị bỏ qua đó là quá trình chuyên đôi một văn bản thành một dạng chuẩn (chuẩn). Ví dụ: từ “gooood” và “gud” có thể được chuyên thành “good”, dạng chuẩn của nó, đây là bước cực kì quan trọng đặc biệt đối với các loại văn bản trên mạng xã hội GVHD: TS.
Nguyễn Lưu Thùy Ngân 7 SVTH: Nguyễn Bá Minh Hoàng - 16520435 THS. Nguyên Thị Kim Phụng Nguyên Gia Huy - 16520517 Ví dụ: Raw Normalized 2moro tomorrow 2mrrw 2morrow 2mrw tomrw b4 before otw on the way :) smile >) ) Hình 2.2: Chuẩn hoá từ Loại bố Stopwords Stopwords là những từ xuất hiện nhiều trong ngôn ngữ tự nhiên, tuy nhiên lại không mang nhiều ý nghĩa. Ở tiếng việt Stopwords là những từ như: dé, này, kia. Tiếng anh là những từ như: is, that, this.
Nhóm các từ biến dạng về một nhóm Trong quá trình xử lý ngôn ngữ tự nhiên, chúng ta sẽ có nhu cầu so sánh các từ (token) với nhau. Việc so sánh nay tưởng chừng như đơn giản là lay 2 chuỗi ký tự và dùng “phép so sánh băng” dé kiểm tra, nhưng thực tế thì không phải là như vậy. Đối với một số ngôn ngữ, tiêu biểu là tiếng Anh, mỗi từ có thé có nhiều biến thé khác nhau. Điều này làm cho việc so sánh giữa các từ là không thé mặc dù về mặc ý nghĩa cơ bản là như nhau.
Ví dụ các từ “walks“, “walking“, “walked” đều là các biến thé của từ “walk” và đều mang ý nghĩa là “đi bộ” Vậy làm sao để so sánh các từ như thế với nhau? Lemmatization va Stemming chính là 2 kỹ thuật thường được dùng cho việc này. Nguyễn Lưu Thùy Ngân § SVTH: Nguyễn Bá Minh Hoàng - 16520435 THS. Nguyên Thị Kim Phụng Nguyên Gia Huy - 16520517 Kỹ thuật Stemming Stemming là kỹ thuật dùng dé biến đổi 1 từ về dạng gốc (được gọi là stem hoặc root form) bằng cách cực kỳ đơn giản là loại bỏ 1 số ký tự nằm ở cuối từ mà nó nghĩ rằng là biến thể của từ. Ví dụ như chúng ta thấy các từ như walked, walking, walks chỉ khác nhau là ở những ký tự cuối cùng, bang cách bỏ đi các hậu tố —ed, —ing hoặc —s, chúng ta sẽ được từ nguyên gốc là walk.
Người ta gọi các bộ xử lý stemming là Stemmer. Bởi vì nguyên tắc hoạt động của stemmer rất là đơn giản như vậy cho nên tốc độ xử lý của nó rat là nhanh, và kết quả stem đôi khi không được như chúng ta mong muốn. Chang hạn như từ goes sẽ được stem thành từ goe (bỏ chữ s cuối từ) trong khi đó stem của từ go vẫn là go, kết quả là 2 từ “goes” và “go” sau khi được stem thì vẫn không giống nhau. Một nhược điểm khác là nếu các từ dạng bất quy tắt như went hay spoke thì stemmer sẽ không thé đưa các từ này về dạng sốc là go hay speak.
Kỹ thuật Lemmatization Khác với Stemming là xử lý bằng cách loại bỏ các ký tự cuối từ một cách rất heuristic, Lemmatization sẽ xử lý thông minh hon bằng một bộ từ điên hoặc một bộ ontology nào đó. Điều này sẽ đảm bảo rằng các từ như “goes“, “went” và “go” sẽ chắc chan có kết qua trả về là như nhau. Kể các từ danh từ như mouse, mice cũng đều được đưa về cùng một dạng như nhau. Người ta gọi bộ xử lý lemmatization là lemmatizer Nhược điểm của lemmatization là tốc độ xử lý khá chậm vì phải thực hiện tra cứu từ trong cơ sở dit liệu.
Trong các ứng dụng xử lý NLP mà cần độ chính xác cao hơn và thời gian không quan trọng, người ta có thé sử dụng Lemmatization. Nguyễn Lưu Thùy Ngân 9 SVTH: Nguyễn Bá Minh Hoàng - 16520435 THS. Nguyên Thị Kim Phụng Nguyên Gia Huy - 16520517 Vector hóa văn bản Vector hoá dữ liệu văn bản là một bước quan trọng của quy trình xử lý ngôn ngữ tự nhiên (natural language processing). Hầu hết các thuật toán gom cụm đều nhận đầu vào là các vector n chiều (n tuỳ vào kiểu dit liệu, quá trình tiền xử lý).
Do đó ngôn ngữ tự nhiên cần một phương pháp dé xử lý chuyển đổi chúng trở thành đầu vào phù hop cho các thuật toán máy học (machine learning) mà trước đó chỉ được sinh ra dé xử lý các dạng đữ liệu vector. Nguyễn Lưu Thùy Ngân 10 SVTH: Nguyễn Bá Minh Hoàng - 16520435 THS. Nguyên Thị Kim Phụng Nguyên Gia Huy - 16520517 2.1 Mô hình túi từ Mô hình túi từ là một phương pháp biéu diễn từ đơn giản được sử dụng trong xử lý ngôn ngữ tự nhiên và truy vấn thông tin (IR). Trong mô hình này, một văn bản sẽ được biểu diện như một túi các từ tạo nên văn bản đó, bỏ qua về mặt cú pháp và trật tự các từ nhưng van giữ lại được tính chất đa dạng Mô hình túi từ thường được sử dụng trong phân lớp văn bản khi mà tần suất xuất hiện của mỗi từ sẽ được sử dụng làm đặc trưng cho bộ phân lớp Ví dụ, ta có hai văn bản: (1) Phúc thích xem phim.
Đạt cũng thích xem phim. (2) Bích cũng thích xem các trận bóng đá. Dựa trên hai tài liệu văn bản này, một danh sách được xây dựng như sau cho mỗi tài liệu: (Vi dụ dưới đây coi mỗi tiếng là một từ, "bóng đá" là "bóng" và "đá". Cũng có thé xác định từ theo ngữ pháp, "bóng đá" là một từ.) "Phuc", "thích"; "xem", "phim", "Dat" "cũng", "thích", "xem", "phim" "Bich" "cũng" "thích" "xem" "các" "tran" "bóng" "da" Sau khi chuyền đổi văn bản thành một "túi từ", chúng ta có thé tìm các biện pháp khác nhau dé mô tả văn bản.