Chương I: Tổng quan dé tài e Giới thiệu tổng quan nhất về nội dung đề tài, đặt vấn dé và lý do chọn đề tài, khảo sát hiện trạng, mục tiêu, đối tượng, phạm vi nghiên cứu, công cụ xây dựng hệ thống và bố cục báo cáo. Chương II: Cơ sở lý thuyết © Giới thiệu cơ sở lý thuyết về các vấn dé trong dữ lý văn bản và các thuật toán phân loại sử dụng trong đề tài. Chương III: Phân tích và thiết kế hệ thống ¢ M6 tả cách làm sạch, tiền xử lý dữ liệu và 3 phương pháp phân loại bình luận tiêu cực. Chương IV: Triển khai thực nghiệm e Thực hiện đánh giá các thuật toán phân loại bình luận tiêu cực, chọn ra phương pháp tối ưu với dữ liệu.
Áp dụng phương pháp vào phân loại bình luận tiêu cực. 17 SVTH: Nguyên Thanh Quang — 16521524 Phạm Tuân Nghĩa — 16520817 Khóa luận tốt nghiệp. Xây dựng công cụ phân loại các bình luận tiêu cực trên Wikipedia. Chương V: Kết luận và hướng phát triển e Kết luận và đề ra hướng phát triển phân loại bình luận tiêu cực.TS Đỗ Phúc 18 SVTH: Nguyễn Thanh Quang — 16521524 ThS.
Do Thị Kim Phụng Phạm Tuân Nghĩa — 16520817 Khóa luận tốt nghiệp. Xây dựng công cụ phân loại các bình luận tiêu cực trên Wikipedia. Chuong2 Cơ sở lý thuyết 2.1 Các van đề liên quan đên xử lý dữ liệu văn ban 2.1 Tokenization Token hóa (Tokenization) là quá trình tách một chuỗi, văn bản thành danh sách các token. Có thé hiểu các token sau quá trình token hoá là một từ trong một câu văn hoặc có thé là câu văn trong một đoạn van [1].
Vi dụ với câu: “this is a sample sentence”. Ta sẽ được két qua: “this” “is” “a” “sample 99 66,99 66 99 66 sentences”. Vi dụ về Tokenization với python: from nltk.tokenize import word_tokenize text = "this is a sample" tokens = word_tokenize(text) print(tokens) Bang 2. 1 Ví dụ Tokenization với Python Két qua: ['this', ‘is', 'a', 'sample', ‘sentence’] 2.2 Stop words Stop words là các từ thường xuất hiện trong van bản (ví dụ như “the”, “this”,“1s”, “a”, “an”, 99 665.) mà không mang ý nghĩa quan trọng trong các thuật toán phân loại.
Kỹ thuật phổ biên nhât đê xử lý với những từ này là xóa chúng khỏi các văn bản và tài liệu.TS Đỗ Phúc 19 SVTH: Nguyễn Thanh Quang — 16521524 ThS. Do Thị Kim Phụng Phạm Tuân Nghĩa — 16520817 Vi dụ xoá các stop words với python: from nltk.corpus import stopwords from nltk.tokenize import word_tokenize example_sent = "this is a sample sentence" stop_words = set(stopwords.words( 'english')) word_tokens = word_tokenize(example_sent) filtered_sentence = [] for w in word_tokens: if w not in stop_words: filtered_sentence. 2 Ví du xoá các stop words trong văn ban với Python Két qua: Before: ['this', 'is', 'a', ‘sample’, 'sentence'] After: ['sample', 'sentence'] 2.3 Mô hình túi từ (Bag of Words model) Mô hình túi từ (hay bag-of-words model) là một biểu diễn đơn giản hóa được sử dụng trong xử lý ngôn ngữ tự nhiên và truy van thông tin (IR). Trong mô hình này, một văn ban (chẳng hạn như một câu hoặc một tài liệu) được thể hiện dưới dạng túi (multiset) chứa các từ của nó, không quan tâm đến ngữ pháp và thậm chí trật tự từ nhưng vẫn giữ tính đa dạng.
Mô GVHD: PGS.TS Đỗ Phúc 20 SVTH: Nguyễn Thanh Quang — 16521524 ThS. Đỗ Thị Kim Phụng Phạm Tuân Nghĩa — 16520817 Mô hình túi từ thường được sử dụng trong các phương pháp phân loại tài liệu trong đó sự xuất hiện (tần suất) của mỗi từ được sử dụng như một đặc trưng để đào tạo máy phân loại. Một tài liệu tham khảo đầu tiên về "túi từ" trong ngữ cảnh ngôn ngữ có thể được tìm thấy trong bài viết năm 1954 của Zellect Harris về Câu trúc phân phối. Ví dụ, chúng ta có hai văn bản: (d1) this is a sample (d2) this is another example Dựa vào hai văn bản trên, một túi (danh sách) từ được xây dựng như sau: ay; "another", "example", is", "sample", "this" ] Mô hình túi từ được sử dụng nhiều trong việc tạo ra các thuộc tính (feature generation).
Sau khi chuyển văn bản thành "túi từ", chúng ta có thé tính toán bằng nhiều cách khác nhau, hầu hết cách để biểu diễn một văn bản từ túi từ là tần số xuất hiện (term frequency) - số lần xuất hiện của một từ trong văn bản. Tw ví dụ trên, có thé biểu diễn lại thành hai vector văn bản như sau: (đ1) [1, 9, 9, 1, 1, 1] (d2) [@, 1, 1, 1, 9, 1] GVHD: PGS.TS Đỗ Phúc 21 SVTH: Nguyễn Thanh Quang — 16521524 ThS. Đỗ Thị Kim Phụng Phạm Tuân Nghĩa — 16520817 Xây dựng công cụ phân loại các bình luận tiêu cực trên Wikipedia. một con số thu được qua thông kê thé hiện mức độ quan trọng của một từ trong một văn bản, mà bản thân văn bản đang xét nằm trong một tập hợp các văn bản.
TF- term frequency là tần số xuất hiện của 1 từ trong 1 văn bản được tính với công thức: f(t, d) tŒ,4) = max[fdw,d): € đ) > Thương của số lần xuất hiện l từ trong văn ban và số lần xuất hiện nhiều nhất của một từ bất kỳ trong văn bản đó (giá trị sẽ thuộc khoảng [0, 1]). >_f(,d): số lần xuất hiện từ t trong văn bản d. > max{f(w,d):w€d}: số lần xuất hiện nhiều nhất của một từ bất kỳ trong văn bản. IDF - inverse document frequency là tan số nghịch của 1 từ trong tập van bản (corpus).
Tinh IDF dé giảm giá trị của những từ phô biến. Mỗi từ chi có 1 giá tri IDF duy nhất trong tập văn bản. |D| IdfŒ,Đ) = los repre dl > |D|: tổng số văn bản trong tập D. > |{d € D:t € đ)|: số văn bản chứa từ nhất định, với điều kiện r xuất hiện trong văn bản d (ŒfŒ, đ) # 0).
Nếu từ đó không xuất hiện ở bat cứ một văn bản nào trong tập thi mẫu số sẽ bằng 0 dẫn đến phép chia cho không không hợp lệ, vì thế người ta thường thay bang mẫu thức 1 + |{d € D:t € đ|. Cơ số logarit trong công thức này không thay đổi giá trị của 1 từ mà chỉ thu hẹp khoảng giá trị của từ đó. Vì thay đổi cơ số sẽ dẫn đến việc giá trị của các từ thay đổi bởi một số nhất định và tỷ lệ giữa các trọng lượng với nhau sẽ không thay đổi (nói cách khác, thay đổi cơ số sẽ không ảnh hưởng đến tỷ lệ giữa các giá trị IDF). Tuy nhiên việc thay đổi khoảng giá trị sẽ giúp tỷ lệ giữa IDF và 2 SVTH: Nguyên Thanh Quang — 16521524 Phạm Tuân Nghĩa — 16520817 Xây dựng công cụ phân loại các bình luận tiêu cực trên Wikipedia.
tf — idfŒ, d, D) = tf(t, đ) x idf(t, D) > Những từ có giá trị TF-IDF cao là những từ xuất hiện nhiều trong văn bản này, và xuất hiện ít trong các văn bản khác. Việc này giúp lọc ra những từ phổ biến và giữ lại những từ có giá trị cao (từ khoá của văn bản đó). Ví dụ: Với 2 văn bản có tần số xuất hiện như sau: Van ban 1: Tir Số lần xuất hiện this 1 1s 1 a 2 sample 1 Van ban 2: Từ Số lần xuất hiện this 1 is 1 another 2 example 3 Việc tính toán tf-idf cho từ "this" được thực hiện như sau: aMiIeR e tf(this”,dị)= = 0.14 * idf(this",D) = log (2) = 0 Vậy tf-idf cho từ "this" có giá tri: © tÍ— idf(this”,dị,D) = 02x0=0 SVTH: : Nguyên anh Quang — 16521524 Phạm Tuân Nghĩa — 16520817 Khóa luận tốt nghiệp. Xây dựng công cụ phân loại các bình luận tiêu cực trên Wikipedia.301 Vậy tf-idf cho từ "example" có giá tri: e tÝ— idf(“example”, d,,D) = tf(“example”, d,) x idf(“example”,D) = 0 x 0.5 Gan nhãn từ loại (Part of Speech Tagging) Part of Speech Tagging (hay POST) là việc gan nhãn từ loại các từ trong một câu (danh từ, trạng từ, tính từ hay động từ, v.
Việc phân loại từ như thế này sẽ góp phần giúp cho các chương trình xử lý ngôn ngữ tự nhiên nắm được thêm ý nghĩa của câu thay vì chỉ xem nó như là tập hợp của các ký tự. Ví dụ: I fish a fish. Câu này sẽ được gắn nhãn POS như sau: U/PRP fish/VBP a/DT fish/NN. Trong đó: e PRP - Personal pronoun (dai từ).
e VBP - Verb, non-3rd person singular present (động từ ngôi thứ nhất, thứ hai).TS Do Phúc 24 SVTH: Nguyễn Thanh Quang — 16521524 ThS. D6 Thi Kim Phung Pham Tuan Nghĩa — 16520817 Khóa luận tốt nghiệp. Xây dựng công cụ phân loại các bình luận tiêu cực trên Wikipedia. e NN- Noun, singular or mass (danh từ).
Ngoài ra còn nhiều loại POS Tag khác”. Trong ví dụ trên, từ fish đầu tiên là động từ, còn từ fish thứ hai là danh từ, vì thế chúng ta có thé dịch chính xác hơn từ fish đầu tiên bằng cách tra từ điển theo từ loại động từ và từ fish thứ hai theo dạng danh từ. Khi đó kết quả dịch sẽ là: “Tôi câu một con cá Ví dụ với python: from nltk import pos_tag from nltk.tokenize import word_tokenize text = "I fish a fish" tokens = word_tokenize(text) pos_tag(tokens) Bang 2. 3 Part of Speech Tagging Két qua: [('I', 'PRP'), ('fish', 'VBP'), ('a', 'DT'), ('fish', "NN°)] 2.6 Stemming/Lemmatization Stemming e Stemming là quá trình tạo ra các biến thé của từ về dạng gốc bằng cách cực kỳ đơn giản là loại bỏ một số ký tự nằm ở cuối từ mà nó nghĩ rằng là biến thé của từ.
Ví dụ như các từ walked, walking, walks chỉ khác nhau ở các hậu tố, bằng cách bỏ đi các hậu tố -ed, 2 https://www.edu/courses/Fall_2003/ling001/penn_treebank_pos.html GVHD: PGS.TS Đỗ Phúc 25 SVTH: Nguyễn Thanh Quang — 16521524 ThS. Đỗ Thị Kim Phụng Phạm Tuân Nghĩa — 16520817 Khóa luận tốt nghiệp. Xây dựng công cụ phân loại các bình luận tiêu cực trên Wikipedia. -ing hoặc -s, chúng ta sẽ được từ nguyên gốc là walk.
Các bộ xử lý stemming thường được gọi là Stemmer. Các bộ xử lý stemming thường được sử dụng hiện nay: Porter Stemmer: Đây là một trong những thuật toán stemming phổ biến nhất được phát triển vào năm 1980. Nó dựa trên ý tưởng rằng các hậu tố trong ngôn ngữ tiếng Anh được tạo thành từ sự kết hợp của các hậu tố có độ đài ngắn hơn và đơn giản hơn. Thuật toán stemming này được biết đến với tốc độ xử lý nhanh và đơn giản.
Các ứng dụng chính của Porter Stemmer bao gồm Khai thác dữ liệu (Data mining) và Truy xuất thông tin (IR). Tuy nhiên, các ứng dụng của nó chỉ giới hạn trong các từ tiếng Anh và gốc đầu ra không nhất thiết phải là một từ có nghĩa. Snowball Stemmer: Khi so sánh với Porter Stemmer, Snowball Stemmer có thé tạo ra các biến thể của từ về dạng gốc với những từ không phải tiếng Anh.