1. Trang chủ
  2. » Công Nghệ Thông Tin

NGHIÊN CỨU XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI VĂN BẢN DÙNG GIẢI THUẬT KNEAREST NEIGHBORS BẰNG NGÔN NGỮ PYTHON

13 43 1

Đ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 13
Dung lượng 415,98 KB

Nội dung

NGHIÊN CỨU XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI VĂN BẢN DÙNG GIẢI THUẬT KNEAREST KNEIGHBORS BẰNG NGÔN NGỮ PYTHON PHÂN LOẠI VĂN BẢN DÙNG NGÔN NGỮ PYTHON GIẢI THUẬT KNEAREST NEIGHBORS PHÂN LOẠI VĂN BẢN DÙNG GIẢI THUẬT KNEAREST NEIGHBORS

BÀI TIỂU LUẬN ĐỀ TÀI: NGHIÊN CỨU XÂY DỰNG CHƯƠNG TRÌNH PHÂN LOẠI VĂN BẢN DÙNG GIẢI THUẬT K-NEAREST NEIGHBORS BẰNG NGƠN NGỮ PYTHON Hồ Chí Minh, tháng năm 2021 Mục lục CHƯƠNG 1: TỔNG QUAN BÀI TOÁN PHÂN LOẠI VĂN BẢN 1.1 Khái niệm phân lớp văn 1.1.1 Khái niệm Phân lớp văn (Text classification) trình gán nhãn (tên lớp / nhãn lớp) văn ngôn ngữ tự nhiên cách tự động vào nhiều lớp cho truớc Phân lớp văn toán khai phá liệu văn Bài toán phân lớp văn việc gán tên chủ đề (tên lớp/nhãn lớp) xác định trước, vào văn dựa nội dung chúng Phân lớp văn công việc sử dụng để hỗ trợ trình tìm kiếm thơng tin, chiết lọc thơng tin, lọc văn tự động dẫn đường cho văn tới chủ đề xác định trước Phân lớp văn thực thủ cơng tự động sử dụng kỹ thuật học máy có giám sát Các hệ thống phân lớp ứng dụng việc phân loại tài liệu thư viện điện tử, phân loại văn báo chí trang tin điện tử… hệ thống tốt, cho kết khả quan, giúp ích nhiều cho người 1.1.2 Phân loại toán phân lớp văn - Phân lớp văn nhị phân / đa lớp: Bài toán phân lớp văn gọi nhị phân số lớp 2, gọi đa lớp số lớp lớn -Phân lớp văn đơn nhãn / đa nhãn: Bài toán phân lớp văn gọi đơn nhãn tài liệu gán vào xác mộtlớp Bài tốn phân lớp văn gọi đa nhãn tài liệu gán nhiều nhãn 1.2 Mục tiêu Mục tiêu hệ thống phân loại văn tự động phân loại văn cho trước, để xác định xem văn thuộc thể loại Một số ứng dụng hệ thống phân loại như: • • • • Hiểu ý nghĩa, đánh giá, bình luận người dùng từ mạng xã hội Phân loại emails spam hay không spam Tự động gắn thẻ cho truy vấn, tìm kiếm người dùng Phân loại báo điện tử 1.3 Mơ hình phân lớp văn dùng tiếp cận học máy Hình mơ tả quy trình xây dựng mơ hình phân loại văn sử dụng thuật tốn học máy, gồm hai q trình: huấn luyện dự đốn Hình Quy trình xây dựng mơ hình phân loại văn sử dụng thuật tốn máy học Phân lớp văn nhà nghiên cứu định nghĩa thống việc gán tên chủ đề (tên lớp / nhãn lớp) xác định cho trước vào văn text dựa nội dung Để phân loại văn bản, người ta sử dụng phương pháp học máy có giám sát Tập liệu chia làm hai tập tập huấn luyện tập kiểm tra, trước hết phải xây dựng mơ hình thơng qua mẫu học tập huấn luyện, sau kiểm tra xác tập liệu kiểm tra Đầu vào trình huấn luyện liệu văn nhãn tương ứng với chủ đề cần phân loại Quá trình gồm bước: tiền xử lý văn bản, trích xuất đặc trưng huấn luyện sử dụng thuật toán học máy Đầu q trình huấn luyện mơ hình xây dựng tham số tối ưu tương ứng cho mô hình 1.3 Các bước thực Bài tốn phân loại văn toán học giám sát (supervised learning) học máy (machine learning), nội dung văn gán nhãn, sử dụng để thực phân loại Để giải toán phân loại văn bản, ta thực bước: • • • • Chuẩn bị liệu (Dataset Preparation) Xử lý thuộc tính liệu (Feature Engineering) Xây dựng mơ hình (Build Model) Tinh chỉnh mơ hình cải thiện hiệu (Improve Performance) 1.4 Tiền xử lý văn Bước thiếu việc xử lý ngôn ngữ tự nhiên tiền xử lý Vì văn liệt kê mà khơng có cấu trúc, để ngun để xử lý khó khăn Đặc biệt loại văn web có lẫn HTML tag, code JS, noise Vì vậy, ta phải biến đổi tài liệu sang khuôn dạng phù hợp với giải thuật phân loại Phép xử ý gọi tiền xử lý văn (text preprocessing) Bước tiền xử lý văn gồm công đoạn: Thực làm liệu để loại bỏ tạp nhiễu nhằm có kết xử lý liệu tốt Đa phần tạp nhiễu thẻ HTML, JavaScript Thực tách từ - công đoạn quan trọng bậc xử lý ngôn ngữ tự nhiên, Tiếng Việt có độ phức tạp ngơn ngữ khác (bởi có từ ghép) Việc tách từ theo nhiều cách khác gây hiểu nhầm mặt ngữ nghĩa Tuy nhiên, có số công cụ hỗ trợ thực việc này, phổ biến VnTokenizer Chuẩn hóa từ để đưa văn từ dạng không đồng dạng (ví dụ tất chuẩn chữ thường) Việc tối ưu nhớ lưu trữ tính xác quan trọng Có nhiều cách viết, cách viết lưu trữ tốn dung lượng nhớ khác (như half size tốn 1/2 dung lượng so với full size) Do đó, tuỳ theo nhu cầu, tình hình thực tế để đưa văn dạng đồng Loại bỏ từ ý nghĩa (stop words) mà xuất nhiều ngơn ngữ tự nhiên Có cách để loại bỏ stop words, dùng từ điển dựa theo tần suất xuất Bài báo sử dụng phương pháp từ điển phương pháp đơn giản tạo từ điển gồm từ khơng có ý nghĩa tiến hành lọc tệp tin văn để loại bỏ từ xuất từ điển stop words 1.5 Thuận toán phân loại văn Dưới số thuật toán phổ biến dùng khai phá liệu: • • • • • • Naive Bayes Cây định: Decision tree Láng giềng gần nhất: Nearest Neighbor Mạng Neural: Neural Network Luật quy nạp: Rule Induction Thuật toán K-Means: K-Means CHƯƠNG 2: THUẬT TOÁN K-NEAREST NEIGHBORS 2.1 Giới thiệu chung KNN thuật tốn học có giám sát đơn giản mà hiệu vài trường hợp học máy Khi huấn luyện, thuật tốn khơng học điều từ liệu huấn luyện (đây lý thuật toán xếp vào loại lazy learning), tính tốn thực cần dự đoán kết liệu KNN áp dụng vào hai loại tốn học có giám sát phân lớp hồi quy KNN cịn gọi thuật tốn instance-based hay memory-based learning Một cách ngắn gọn, KNN thuật tốn tìm đầu điểm liệu cách dựa thông tin K điểm liệu gần tập huấn luyện 2.2 Nội dung thuật tốn Mơ tả thuật tốn: Xác định giá trị tham số K (số láng giềng gần nhất) Tính khoảng cách điểm truy vấn phân lớp với tất đối tượng tập liệu huấn luyện • Sắp xếp khoảng cách theo thứ tự tăng dần xác định K-nearest neighbors với điểm truy vấn phân lớp • Lấy tất lớp K-nearest neighbors xác định • Dựa vào phần lớn lớp láng giềng gần để xác định lớp cho điểm truy vấn phân lớp, lớp điểm truy vấn phân lớp định nghĩa lớp chiếm đa số K-nearest neighbors • • 2.3 Ý tưởng thuật toán KNN Thuật toán KNN cho liệu tương tự tồn gần khơng gian, từ cơng việc tìm k điểm gần với liệu cần kiểm tra Việc tìm khoảng cách điểm củng có nhiều cơng thức sử dụng, tùy trường hợp mà lựa chọn cho phù hợp Đây cách để tính khoảng cách điểm liệu x, y có k thuộc tính: Việc tính khoảng cách đối tượng cần phân lớp với tất đối tượng tập liệu huấn luyện thường sử dụng với công thức tính khoảng cách Euclidean Cho điểm P1(x1, y1) P2(x2, y2) khoảng cách Euclidean distance tính theo cơng thức: 2.4 Ví dụ Ví dụ đơn giản Bài tốn đặt ra: Bạn có điểm môn học bạn thuộc loại (Giỏi, khá, trung bình, yếu) Giả sử bạn khơng biết quy tắc để phân loại Có cách giải bạn phải khảo sát người xung quanh Để biết điểm thuộc loại bạn phải hỏi đứa có điểm gần số điểm Giả sử lớp 50 đứa, khảo sát đứa gần điểm liệu sau: Điểm tôi: Điểm bạn tôi: 7.1 => Khá 7.2 => Khá 6.7 => Khá 6.6 => Khá 6.4 => Trung bình Qua kết ta dễ đốn điểm loại Khá? Với cách phân loại liệu chiều (1 feature) cách làm đơn giản Và nhận thấy liệu khảo sát nhiều, rộng dự đốn đưa xác (Giả sử lớp bạn khơng có loại ngồi bạn cho dù bạn lấy người gần điểm bạn củng kết sai) Với KNN, toán Classification, label điểm liệu (hay kết câu hỏi thi) suy trực tiếp từ K điểm liệu gần training set Label test data định major voting (bầu chọn theo số phiếu) điểm gần nhất, suy cách đánh trọng số khác cho điểm gần suy label Trong toán Regresssion, đầu điểm liệu đầu điểm liệu biết gần (trong trường hợp K=1), trung bình có trọng số đầu điểm gần nhất, mối quan hệ dựa khoảng cách tới điểm gần Một cách ngắn gọn, KNN thuật tốn tìm đầu điểm liệu cách dựa thông tin K điểm liệu training set gần (K-lân cận), khơng quan tâm đến việc có vài điểm liệu điểm gần nhiễu Ví dụ tốn Classification với classes: Đỏ, Lam, Lục Mỗi điểm liệu (test data point) gán label theo màu điểm mà thuộc Trong hình này, có vài vùng nhỏ xem lẫn vào vùng lớn khác màu Ví dụ có điểm màu Lục gần góc 11 nằm hai vùng lớn với nhiều liệu màu Đỏ Lam Điểm nhiễu Dẫn đến liệu test rơi vào vùng có nhiều khả cho kết khơng xác Hình ví dụ KNN classification với K = 2.5 Ưu điểm nhược điểm KNN - Ưu điểm Độ phức tạp tính tốn q trình huấn luyện Việc dự đoán kết liệu đơn giản (sau xác định điểm lân cận) • Khơng cần giả sử phân phối lớp • • - Nhược điểm • KNN nhạy cảm với nhiễu K nhỏ • Như nói, KNN thuật tốn mà tính tốn nằm khâu kiểm thử, việc tính khoảng cách tới điểm liệu tập huấn luyện tốn nhiều thời gian, đặc biệt với sở liệu có số chiều lớn có nhiều điểm liệu Với K lớn độ phức tạp tăng lên Ngoài ra, việc lưu toàn liệu nhớ ảnh hưởng tới hiệu KNN 2.6 Các tham số quan trọng thuật toán KNN Các tham số quan trọng thuật toán KNN: - Giá trị K: K lớn thuật tốn nhạy cảm với nhiễu, K lớn q ngưỡng độ xác thuật tốn giảm K-nearest neighbors thuộc nhiều lớp khác nhau, dẫn đến độ tin cậy việc phân lớp giảm - Hàm khoảng cách: để tính khoảng cách điểm cần phân loại điểm tập liệu huấn luyện Có nhiều hàm khoảng cách em chọn hàm khoảng cách Euclidean đơn giản phổ biến - Cách đánh trọng số điểm lân cận: có nhiều cách đánh trọng số cho điểm lân cận em chọn phương pháp đồng (uniform) tính đơn giản Ngồi tham số thuật tốn KNN độ xác thuật tốn cịn phụ thuộc vào số chiều vectơ đặc trưng biểu diễn điểm liệu (trong trường hợp văn bản) 2.7 Làm để chọn giá trị K Giá trị K cho biết số lượng hàng xóm gần Ta phải tính tốn khoảng cách điểm kiểm tra điểm nhãn đào tạo Việc cập nhật số liệu khoảng cách với lần lặp lại tốn mặt tính tốn lý KNN thuật tốn lười học Ta xác minh từ hình trên, tiếp tục với K = 3, dự đốn đầu vào kiểm tra thuộc Class B tiếp tục với K = 7, dự đốn đầu vào kiểm tra thuộc Class A Cho nên giá trị K có ảnh hưởng mạnh mẽ đến hiệu suất KNN Khi làm để chọn giá trị K tối ưu? Khơng có phương pháp thống kê xác định trước để tìm giá trị thuận lợi K • Khởi tạo giá trị K ngẫu nhiên bắt đầu tính tốn • Việc chọn giá trị nhỏ K dẫn đến ranh giới định khơng ổn định • Giá trị K đáng kể tốt cho việc phân loại dẫn đến việc làm dịu ranh giới định • Bài học rút là: • • • • • Các giá trị K nhỏ không phù hợp để phân loại Giá trị K tối ưu thường tìm thấy bậc hai N, N tổng số mẫu Sử dụng biểu đồ sai số biểu đồ độ xác để tìm giá trị K có lợi KNN hoạt động tốt với lớp đa nhãn, ta phải lưu ý điểm khác biệt KNN sử dụng rộng rãi lĩnh vực nhận dạng mẫu đánh giá phân tích CHƯƠNG 3: GIỚI THIỆU NGƠN NGỮ LẬP TRÌNH PYTHON 3.1 Python Python ngơn ngữ lập trình bậc cao cho mục đích lập trình đa năng, Guido van Rossum tạo lần đầu mắt vào năm 1991 Python thiết kế với ưu điểm mạnh dễ đọc, dễ học dễ nhớ Python ngơn ngữ có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người học lập trình ngơn ngữ lập trình dễ học dùng rộng rãi phát triển trí tuệ nhân tạo AI 3.2 Cài đặt Python Tải python đây: https://www.python.org/downloads/ Khi cài xong, mở IDLE chạy thử Như hoàn thành xong việc cài đặt Python, việc lại cài đặt thư viện cần thiết để hỗ trợ toán Việc hỗ trợ xử lý văn Python mạnh, nhiều thư viện thuật toán cho phân loại văn bản, Machine learning Ở đây, toàn cần thư viện sau: numpy, sklearn, nltk, … Sử dụng cmd để cài đặt: - Nếu pip chưa có sẵn gói ta phải cài đặt cho nó, ta thực sau: - Sau cài đặt thành cơng gói pip ta tiếp tục cài đặt thư viện numpy: - Tương tự ta cài đặt thư viện sklearn thư viện cần thiết: Như hoàn thành việc cài đặt thư viện hỗ trợ cho python toán Tìm hiểu chút thư viện Sklearn: Sklearn thư viện phổ biến python Nó viết sẵn thuật toán phức tạp, ta cần nhét liệu vào chờ tính tốn lấy kết CHƯƠNG 3: TRIỂN KHAI THUẬT TOÁN K-NEAREST NEIGHBOR TRÊN NGÔN NGỮ PYTHON 3.1 Chuẩn bị liệu Dưới file văn theo 05 chủ đề dùng thực nghiệm: 3.2 Triển khai thử nghiệm Một quy trình bước đơn giản để xây dựng đường ống để đào tạo mơ hình học máy cho ứng dụng phân tích văn tuân theo này: Texts ==> Stop words removal ==> Punctuation free ==> Word Lemmatization ==> Digit removal ==> Feature Extraction (Tf-Idf) ==> Model training Em sử dụng kỹ thuật TF-IDF để biến văn thành vector sử dụng thuật toán KNN thư viện sklearn để tiến hành phân lớp 3.2.1 Khai báo thư viện cần thiết 3.2.2 Tiền xử lý văn Đây bước quan trọng Mục đích loại bỏ từ ký tự không mong muốn viết cho khả đọc người Nói chung, chủ yếu có bước vệ sinh cần thực câu văn bản: Loại bỏ Stop words: Những Stop words “and”, “if”, “the”, etc phổ biến tất câu tiếng Anh khơng có nhiều ý nghĩa việc định chủ đề viết, từ bị loại bỏ khỏi viết • Loại bỏ ký tự dấu chấm câu: Loại trừ tất dấu câu khỏi tập hợp (['!', '#', '"', '%', '$'," '",' & ',') ',' (',' + ',' * ',' - ',', ',' / ',' ','; ',': ',' = ',' ',' @ ',' [' , ']', '\\', '_', '^', '' ',' {','} ',' | ',' ~ ']) • Bổ sung: Đây q trình nhóm dạng từ hiểu khác lại với để chúng phân tích thành mục Ví dụ: “include”, “includes,” “included” tất biểu thị “include” Ngữ cảnh câu trì theo cách bổ ngữ thay từ gốc • Loại bỏ chữ số khỏi câu văn • 3.2.3 Trích xuất thuộc tính đặc trưng với TF-IDF TF-IDF (Term Frequency – Inverse Document Frequency) kĩ thuật sử dụng khai phá liệu văn Trọng số sử dụng để đánh giá tầm quan trọng từ văn Giá trị cao thể độ quan trọng cao phụ thuộc vào số lần từ xuất văn bù lại tần suất từ tập liệu Một vài biến thể tf-idf thường sử dụng hệ thống tìm kiếm cơng cụ để đánh giá xếp văn dựa vào truy vấn người dùng Tf-idf sử dụng để lọc từ stopwords toán phân loại văn Đây sở quan trọng để tạo đặc trưng đầu vào cho việc train mơ hình phân loại văn bảo sau 3.2.4 Đào tạo Phân loại (K-NN) Ở giá trị K thử nghiệm K=5 3.2.5 Kết ... mơ hình phân loại văn sử dụng thuật tốn học máy, gồm hai q trình: huấn luyện dự đốn Hình Quy trình xây dựng mơ hình phân loại văn sử dụng thuật toán máy học Phân lớp văn nhà nghiên cứu định nghĩa...Mục lục CHƯƠNG 1: TỔNG QUAN BÀI TOÁN PHÂN LOẠI VĂN BẢN 1.1 Khái niệm phân lớp văn 1.1.1 Khái niệm Phân lớp văn (Text classification) trình gán nhãn (tên lớp / nhãn lớp) văn ngôn ngữ tự nhiên... phân loại văn tự động phân loại văn cho trước, để xác định xem văn thuộc thể loại Một số ứng dụng hệ thống phân loại như: • • • • Hiểu ý nghĩa, đánh giá, bình luận người dùng từ mạng xã hội Phân

Ngày đăng: 16/10/2021, 16:54

TỪ KHÓA LIÊN QUAN

w