1. Trang chủ
  2. » Tất cả

PHÂN LOẠI TIẾNG VIỆT SỬ DỤNG MACHINE LEARNING

25 4 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 25
Dung lượng 446,09 KB

Nội dung

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ============ BÁO CÁO THỰC NGHIỆM HỌC PHẦN: MỘT SỐ CÔNG NGHỆ PHẦN MỀM Đề tài: PHÂN LOẠI TIẾNG VIỆT SỬ DỤNG MACHINE LEARNING GVHD : TS. Hà Mạnh Đào Lớp : 20221IT6024003 Nhóm : 5 Thành viên : Vũ Trọng Tuấn – 2019601439 Nguyễn Minh Vũ – 2019601491 Nguyễn Văn Thành 2019600414 Hà Nội, 2022 MỤC LỤC MỤC LỤC 1 LỜI NÓI ĐẦU 2 CHƯƠNG 1. TỔNG QUAN 4 1.1. Mục đích nghiên cứu. 4 1.2. Đối tượng hướng tới. 4 1.3. Ứng dụng 4 CHƯƠNG 2: CÁC CÔNG NGHỆ ĐƯỢC SỬ DỤNG 5 2.1. Python 5 2.2. Thư viện Python 5 2.3. Thuật toán Naive Bayes 6 2.5. Google Collab 7 CHƯƠNG 3: DỮ LIỆU VÀ QUY TRÌNH XỬ LÝ. 8 3.1. Dữ liệu. 8 3.2. Quy trình xử lý 8 3.2.1. Download và xử lý dữ liệu dành cho traintest Model 9 3.2.2. Xử lý dữ liệu cần phân loại gắn nhãn 16 CHƯƠNG IV: ĐÁNH GIÁ 21 4.1. Python. 21 4.2. Thư viện Underthesea. 21 4.3. Thuật toán Naive Bayes. 21 TÀI LIỆU THAM KHẢO 22   LỜI NÓI ĐẦU Trong thời đại công nghệ thông tin hiện nay, thông tin có tầm quan trọng đặc biệt trong việc giải quyết các vấn đề của cuộc sống, công việc. V.I.Lênin khẳng định: Không có thông tin thì không có thắng lợi trong bất cứ lĩnh vực nào, cả khoa học kỹ thuật và sản xuất. Muốn ra được quyết định đúng, hay thông tin chính xác nhất thiết phải có đủ thông tin cần thiết, chính xác, khách quan, công việc mới có thể giải quyết được đúng quy định, hợp lý và hiệu quả Nhận thấy điều quan trọng đó nhóm 5 tụi em và sự hướng dẫn nhiệt tình tới từ thầy giáo hướng dẫn Hà Mạnh Đào đã đi vào phân loại các loại gắn nhãn văn bản Tiếng Việt nhằm mục đích gắn nhãn cho chúng đề chúng phù hợp với các thông tin trong bài viết đã được đưa ra. Nhóm em xin chân trọng cảm ơn PHÂN CÔNG CÔNG VIỆCKẾ HOẠCH DỰ KIẾN STT Thành viên Công việc Thời gian Ghi chú 1 Vũ Trọng Tuấn Nguyễn Minh Vũ Nguyễn Văn Thành Kết nối sử dụng GG Collab Tìm hiểu về đề tài Đối tượng và lợi ích có thể đạt được Phân tích và lên kế hoạch 2 Vũ Trọng Tuấn Nguyễn Minh Vũ Nguyễn Văn Thành Xử lý dữ liệu 3 Vũ Trọng Tuấn Xây dựng mô hình 4 Vũ Trọng Tuấn Nguyễn Minh Vũ Nguyễn Văn Thành Nhận nhận xét từ thầy cô và sửa đổi 5 Vũ Trọng Tuấn Nguyễn Minh Vũ Nguyễn Văn Thành Chạy và đánh giá chương trình CHƯƠNG 1. TỔNG QUAN 1.1. Mục đích nghiên cứu. Trong quá trình viết bài của các nhà báo, blogger, nhà sáng tạo nội dung hay đơn giản chỉ là các quản trị viên upload các bài viết lên một trang web hoặc một mạng xã hội nào đó thì việc gắn nhãn cho bài viết đó như thế nào để hướng tới người đọc trong khi có nhiều nội dung được đan xen với nhau trong bài viết được tạo ra. Chính vì thế mà mục đích của đề tài này ra đời nhằm giải quyết việc phân loại dán nhãn cho bài viết trước khi chúng được xuất bản đăng tải. 1.2. Đối tượng hướng tới. Tất cả các loại văn bản được viết sử dụng ngôn ngữ tiếng Việt của chúng ta hiện nay: kinh tế, xã hội, thể thao, ..... Khi đó ứng với mỗi bài viết chúng ta cần gắn nhãn cho chúng với chủ đề nào đó mà đôi khi ta tưởng chừng như đơn giản mà lại khó khăn. 1.3. Ứng dụng Gắn thẻ nội dung hoặc sản phẩm: bằng cách sử dụng danh mục như cách để cải thiện trình duyệt hoặc để xác định nội dung liên quan trên các trang web của bạn. Các nền tảng như thương mại điện tử, cơ quan tin tức, người quản lý nội dung, blog hay thư mục có thể sử dụng công nghệ tự động này để phân loại và gắn thẻ nội dung sản phẩm. Sử dụng trong tự động hóa các tác vụ CRM (Customer relationship management). Trình phân loại văn bản có khả năng tùy biến cao và có thể được đào tạo phù hợp. Các nhiệm vụ CRM có thể được chỉ định và phân tích trực tiếp dựa trên tầm quan trọng và mức độ phù hợp. Giúp giảm thiểu công việc thủ công hiệu quả về thời gian. Tối ưu hóa SEO. Tự động hóa gắn thẻ nội dung trên các trang web và giúp người dùng tốt hơn, giúp các nhà tiếp thị nghiên cứu phân tích thẻ nhãn dán giúp tiếp cận người dùng hay nâng cao khả năng cạnh tranh cho các sản phẩm của họ.   CHƯƠNG 2: CÁC CÔNG NGHỆ ĐƯỢC SỬ DỤNG 2.1. Python Python là ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do GuiDo và Rossum tạo ra lần đầu vào năm 1991. Python được thiết kế với các ưu điểm mạnh mẽ, dễ học, dễ nhớ. Python là ngôn ngữ lập trình có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới bắt đầu học lập trình được dùng rộng rãi trong năm 2018 và tới bây giờ. Python hoàn toàn tạo kiểu tự động và dùng cơ chế cấp phát bộ nhớ tự động, do đó nó tương tự như Perl, Ruby, Scheme, Smalltalk và TCl. Hiện nay Python được hoạt động trên đa nền tảng từ MSDOS đến MAC OS, Windows, Linux và các hệ điều hành khác thuộc nền tảng Unix. 2.2. Thư viện Python Thư viện được sử dụng trong bài toán: underthesea , regex Thư viện Regex (regular expression) là một chuỗi ký tự đặc biệt dùng để mô tả một mẫu tìm kiếm search pattern. Nó rất hữu dụng không chỉ trong việc tìm kiếm xâu mà còn trong xử lý văn bản. Một regex là một hoặc nhiều nhánh không rỗng được phân cách bởi các kí tự |. Regex sẽ khớp với bất kì một trong các nhánh của nó. Thư viện Underthesea: là thư viện và hướng dẫn mã nguồn mở trong xử lý ngôn ngữ tự nhiên tiếng Việt đo chính chuyên gia trong lĩnh vực Python Việt Nam sáng tạo. Underthesea hỗ trợ người dùng trong việc phân tách từ chuỗi xâu kí tự thành các từ ngữ tự nhiên đúng hoàn cảnh mà không làm mất đi tính đúng đắn của chuỗi xâu đó. 2.3. Thuật toán Naive Bayes Thuật toán Naive Bayes(NBC) là thuật toán dựa trên định lý Bayes về lý thuyết xác suất để đưa ra các phán đoán cũng như phân loại dữ liệu dựa trên các dự liệu được quan sát và thống kê, được ứng dụng rất nhiều trong các lĩnh vực Machine Learning dùng để đưa ra các dự đoán có độ chính xác cao, dựa trên dữ liệu được thu nhập. NBC thuộc nhóm học máy có giám sát. Định lý Bayes. Định lý Bayes cho phép tính xác suất xảy ra của sự kiện ngẫu nhiên A khi biết được sự kiện liên quan B đã xảy ra. Xác suất này được kí hiệu là P(A|B), được hiểu là xác suất của A nếu có B. Đại lượng này được gọi xác suất có điều kiện hay xác suất hậu nghiệm vì nó được rút ra từ các giá trị được cho của B hoặc phụ thuộc vào giá trị nào đó. Theo định lý Bayes, P(A|B) sẽ phụ thuộc vào 3 yếu tố: Xác suất xảy ra A của riêng nó, không quan tâm tới B. Kí hiệu P(A). Xác suất xảy ra B của riêng nó, không quan tâm tới A. Kí hiệu P(B). Xác suất xảy ra B khi biết A xảy ra. Kí hiệu P(B|A). Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A xảy ra. Chính vì vậy ta có định lý Bayes mở rộng: Trên thực tế thì ít khi tìm được dữ liệu mà các thành phần của nó độc lập với nhau. Tuy nhiên giả thiết này giúp cách tính toán trở nên đơn giản, train data nhanh. 2.4. Ứng dụng thuật toán Bayes. Thuật toán được sử dụng các ứng dụng sau Text classification Spam Filtering Sentiment Analysis: Phân loại văn bản hay ngôn ngữ tự nhiên. Ngoài ra thì hệ thống chống thư rác cũng rất hay được sử dụng. Recommendation System: Xây dựng hệ thống gợi ý. Real time Prediction: Hệ thống cảnh báo sự cố theo thời gian thực. Multi class Prediction: ứng dụng đa dự đoán dựa trên nhiều giải thiết mục tiêu. 2.5. Google Collab Google Collab là sản phẩm từ Google Research, nó cho phép chạy các dòng code python thông qua trình duyệt, phù hợp với Data analysis, machine learning và giáo dục. Collab không yêu cầu cài đặt cấu hình máy tính mọi thứ đều chạy qua trình duyệt, bạn có thể sử dụng tài nguyên từ CPU, GPU tốc độ cao đều được Google cung cấp cho bạn. Collab cung cấp nhiều loại GPU thường dùng Nvidia K80s, T4s, P4s,.... Tuy có nhiều GPU những người dùng không được lựa chọn sử dụng mà nó thay đổi theo thời gian thực thi. Vì là dịch vụ miễn phí nên Colab sẽ có thứ tự ưu tiên trong việc sử dụng tài nguyên hệ thống hay thời hạn sử dụng tối đa 12hngày.   CHƯƠNG 3: DỮ LIỆU VÀ QUY TRÌNH XỬ LÝ. 3.1. Dữ liệu. Dữ liệu là yếu tố quan trọng nhất và cũng là các vấn đề mà chúng ta cần quan tâm tới. Trong bất kỳ xây dựng một mô hình dữ liệu nào bước chuẩn bị dữ liệu đề quan trọng dẫn tới thành bại của quá trình xây dựng. Với bài toán phân loại dán nhãn văn bản tiếng Việt, dữ liệu mà chúng ta cần chuẩn bị là các dữ liệu bài báo tiếng việt kèm theo các chủ đề của nó. Loại dữ liệu này dễ tìm kiếm thông qua việc truy cập các website tin tức của báo chí chính thống sẽ có rất rất nhiều. Trong bài toán này ta sử dụng nguồn dữ liệu từ: Vương Quốc Bình Giảng Viên Đại học Công Nghiệp Hà Nội Github: https:github.combinhvq Cong Duy Vu Hoang Nhà nghiên cứu ứng dụng tại Oracle Github: https:github.comduyvuleo Dữ liệu đã qua xử lý đồng bộ từ thu nhập cá nhân Link: Google Drive. Đây là nguồn dữ liệu có thể dược dùng trong bài toán này. 3.2. Quy trình xử lý ● Download dữ liệu đầu vào ● Xử lý dữ liệu cần được phân loại gắn nhãn ● TrainTest Model bằng thuật toán Naive Bayes ● Xử lý dữ liệu mà người dùng muốn gắn nhãn.   3.2.1. Download và xử lý dữ liệu dành cho traintest Model Bước 1: Giải nén Google Drive trên Colab. Hình 3: Giải nén Google Drive vào Google Colab Bước 2: Tìm kiếm link của dữ liệu trên Colab. Hình 4: Lấy link dữ liệu cần train từ Google Colab.   Bước 3: Giải nén dữ liệu Hình 5: Giải nén dữ liệu từ link Google Colab. Bước 4: Xác định xem giải nén thành công và dữ liệu tồn tại trong trường trình Hình 6: Xác định tồn tại dữ liệu.   Bước 5: Thống kê số lượng dữ liệu data theo Hình7: Thống kế data theo nhãn.   Bước 6: Thống kê các từ (word) tồn tại tất cả các nhãn. Hình 8: Thống kê các từ tổn tại trong tất cả các nhãn Bước 7: Loại bỏ các từ stopword và lưu file. Stopword: là các từ ngữ bị một số công cụ tìm kiếm bỏ qua một phần hoặc hoàn toàn. VD: a, of, many, ... chiếm khoảng 25% trong các bài viết. Bởi vì các từ ngữ này không liên quan gì tới nội dung và ý nghĩa của các bài viết. Hình 9: Loại bỏ các StopWord   Bước 8: Chia các tập để TrainTest dữ liệu Hình 10: Chia tập traintest Bước 9: Lưu traintest thành các file traintest Hình 11: Lưu các file TrainTest   Bước 10: Khởi tạo đường dẫn Model vào chương trình Hình 12: Khởi tạo đường dẫn Model Bước 11: Khai thác thuật toán Naive Bayes Link hỗ trợ: sklearn.naive_bayes.MultinomialNB — scikitlearn 1.0.1 documentation Hình 13: Thuật toán Naive Bayes   Bước 12: Hiển thị kết quả sau khi áp dụng thuật toán vào các tập traintest Hình 14: Kết quả của quá trình TrainTest.   3.2.2. Xử lý dữ liệu cần phân loại gắn nhãn Là dữ liệu mà người dùng muốn phân loại gắn nhãn cho bài viết. Bước 1: Cài đặt thư viện Hình 16: Các thư viện. Bước 2: Khai báo và sử dụng các class. Hình 17: Khai báo class cần được sử dụng. Bước 3: Khai báo các từ ngữ tiếng việt chứa dấu Hình 18: Khai báo các âm tiếng việt có dấu.   Bước 4: Hàm Unicode dựng sẵn về Unicode tổ hợp phù hợp tiếng Việt Hình 19: Chuyển về Unicode chuẩn. Bước 5: Khai báo nguyên ấm trong tiếng Việt và chuẩn dấu. Hình 20: Nguyên và dấu của chúng tiếng Việt. Bước 6: Kiểm tra xem có phải tiếng Việt. Hình 21: Check tiếng Việt.   Bước 7: Chuẩn hóa dấu câu tiếng Việt Hình 22: Chuẩn hóa dấu câu trong tiếng Việt. Bước 8: Xác định các hàm xử lý chuỗi nhập vào. Hình 23: Hàm Main xử lý chuỗi   Bước 9: Xây dựng sự lựa chọn nhập dữ liệu từ bàn phím Hình 24: Nhập dữ liệu từ bàn phím Bước 10: Xây dựng upload dữ liệu Hình 25: Upload dữ liệu Bước 11: Tạo sự lựa chọn giữa việc nhập và upload dữ liệu cần được phân loại Hình 26: Lựa chọn cách phân loại văn bản Insign   Bước 12: Nhập dữ liệu cần phân loại gắn nhãn văn bản. Hình 27: Phân loại văn bản   CHƯƠNG IV: ĐÁNH GIÁ 4.1. Python. Là một ngôn ngữ lập trình đơn giản, dễ học. Nó giúp việc lập trình trở nên thú vụ và cho phép bạn tập trung nhiều vào giải pháp chứ không phải cú pháp Một mã nguồn mở đáng tin cậy cùng với cộng đồng rộng lớn không ngừng cải thiện và cập nhật Khả năng di động linh hoạt, có thể mở rộng. Chính vì vậy mà Python là một ngôn ngữ thu hút được vô số sự chú ý của các lập trình viên và trở thành con cưng của các lập trình viên hiện tại và tương lai. 4.2. Thư viện Underthesea. Là một thư viện mở rộng và đang phát triển của những lập trình viên Việt Nam giúp ích cho các lập trình viên hiện tại và tương lai có các xử lý dữ liệu, huấn luyện và đánh giá mô hình tiếng Việt một cách hiệu quả và dễ dàng. 4.3. Thuật toán Naive Bayes. Mô hình phân lớp đơn giản dễ cài đặt, có tốc độ xử lý nhanh. Song vẫn có nhược điểm lớn là yêu cầu các đặc trưng phải độc lập mà điều này rất khó xảy ra trong thực tế để giảm chất lượng của mô hình. Dù có điểm rất hạn chế sóng vẫn thích hợp cho mọi người bắt đầu hướng về ngành AI, Machine Learning. Thuật toán này cũng rất hay được sử dụng để phân tích sắc thái học, lọc thư rác, hệ thống gợi ý,..   TÀI LIỆU THAM KHẢO Vương Quốc Bình Giảng Viên Đại học Công Nghiệp Hà Nội Github: https:github.combinhvq Cong Duy Vu Hoang nhà nghiên cứu ứng dụng tải Oracle Github: https:github.comduyvuleo Website Python. Website: Python Tutorial (w3schools.com) Thư viện Underthesea Link: http:undertheseanlp.com Thuật toán Naive Bayes Wiki: Định lý Bayes – Wikipedia tiếng Việt Model học máy Naive Bayes Link: sklearn.naive_bayes.MultinomialNB — scikitlearn 1.0.1 documentation TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ============ BÁO CÁO THỰC NGHIỆM HỌC PHẦN: MỘT SỐ CÔNG NGHỆ PHẦN MỀM Đề tài: PHÂN LOẠI TIẾNG VIỆT SỬ DỤNG MACHINE LEARNING GVHD : TS. Hà Mạnh Đào Lớp : 20221IT6024003 Nhóm : 5 Thành viên : Vũ Trọng Tuấn – 2019601439 Nguyễn Minh Vũ – 2019601491 Nguyễn Văn Thành 2019600414 Hà Nội, 2022 MỤC LỤC MỤC LỤC 1 LỜI NÓI ĐẦU 2 CHƯƠNG 1. TỔNG QUAN 4 1.1. Mục đích nghiên cứu. 4 1.2. Đối tượng hướng tới. 4 1.3. Ứng dụng 4 CHƯƠNG 2: CÁC CÔNG NGHỆ ĐƯỢC SỬ DỤNG 5 2.1. Python 5 2.2. Thư viện Python 5 2.3. Thuật toán Naive Bayes 6 2.5. Google Collab 7 CHƯƠNG 3: DỮ LIỆU VÀ QUY TRÌNH XỬ LÝ. 8 3.1. Dữ liệu. 8 3.2. Quy trình xử lý 8 3.2.1. Download và xử lý dữ liệu dành cho traintest Model 9 3.2.2. Xử lý dữ liệu cần phân loại gắn nhãn 16 CHƯƠNG IV: ĐÁNH GIÁ 21 4.1. Python. 21 4.2. Thư viện Underthesea. 21 4.3. Thuật toán Naive Bayes. 21 TÀI LIỆU THAM KHẢO 22   LỜI NÓI ĐẦU Trong thời đại công nghệ thông tin hiện nay, thông tin có tầm quan trọng đặc biệt trong việc giải quyết các vấn đề của cuộc sống, công việc. V.I.Lênin khẳng định: Không có thông tin thì không có thắng lợi trong bất cứ lĩnh vực nào, cả khoa học kỹ thuật và sản xuất. Muốn ra được quyết định đúng, hay thông tin chính xác nhất thiết phải có đủ thông tin cần thiết, chính xác, khách quan, công việc mới có thể giải quyết được đúng quy định, hợp lý và hiệu quả Nhận thấy điều quan trọng đó nhóm 5 tụi em và sự hướng dẫn nhiệt tình tới từ thầy giáo hướng dẫn Hà Mạnh Đào đã đi vào phân loại các loại gắn nhãn văn bản Tiếng Việt nhằm mục đích gắn nhãn cho chúng đề chúng phù hợp với các thông tin trong bài viết đã được đưa ra. Nhóm em xin chân trọng cảm ơn PHÂN CÔNG CÔNG VIỆCKẾ HOẠCH DỰ KIẾN STT Thành viên Công việc Thời gian Ghi chú 1 Vũ Trọng Tuấn Nguyễn Minh Vũ Nguyễn Văn Thành Kết nối sử dụng GG Collab Tìm hiểu về đề tài Đối tượng và lợi ích có thể đạt được Phân tích và lên kế hoạch 2 Vũ Trọng Tuấn Nguyễn Minh Vũ Nguyễn Văn Thành Xử lý dữ liệu 3 Vũ Trọng Tuấn Xây dựng mô hình 4 Vũ Trọng Tuấn Nguyễn Minh Vũ Nguyễn Văn Thành Nhận nhận xét từ thầy cô và sửa đổi 5 Vũ Trọng Tuấn Nguyễn Minh Vũ Nguyễn Văn Thành Chạy và đánh giá chương trình CHƯƠNG 1. TỔNG QUAN 1.1. Mục đích nghiên cứu. Trong quá trình viết bài của các nhà báo, blogger, nhà sáng tạo nội dung hay đơn giản chỉ là các quản trị viên upload các bài viết lên một trang web hoặc một mạng xã hội nào đó thì việc gắn nhãn cho bài viết đó như thế nào để hướng tới người đọc trong khi có nhiều nội dung được đan xen với nhau trong bài viết được tạo ra. Chính vì thế mà mục đích của đề tài này ra đời nhằm giải quyết việc phân loại dán nhãn cho bài viết trước khi chúng được xuất bản đăng tải. 1.2. Đối tượng hướng tới. Tất cả các loại văn bản được viết sử dụng ngôn ngữ tiếng Việt của chúng ta hiện nay: kinh tế, xã hội, thể thao, ..... Khi đó ứng với mỗi bài viết chúng ta cần gắn nhãn cho chúng với chủ đề nào đó mà đôi khi ta tưởng chừng như đơn giản mà lại khó khăn. 1.3. Ứng dụng Gắn thẻ nội dung hoặc sản phẩm: bằng cách sử dụng danh mục như cách để cải thiện trình duyệt hoặc để xác định nội dung liên quan trên các trang web của bạn. Các nền tảng như thương mại điện tử, cơ quan tin tức, người quản lý nội dung, blog hay thư mục có thể sử dụng công nghệ tự động này để phân loại và gắn thẻ nội dung sản phẩm. Sử dụng trong tự động hóa các tác vụ CRM (Customer relationship management). Trình phân loại văn bản có khả năng tùy biến cao và có thể được đào tạo phù hợp. Các nhiệm vụ CRM có thể được chỉ định và phân tích trực tiếp dựa trên tầm quan trọng và mức độ phù hợp. Giúp giảm thiểu công việc thủ công hiệu quả về thời gian. Tối ưu hóa SEO. Tự động hóa gắn thẻ nội dung trên các trang web và giúp người dùng tốt hơn, giúp các nhà tiếp thị nghiên cứu phân tích thẻ nhãn dán giúp tiếp cận người dùng hay nâng cao khả năng cạnh tranh cho các sản phẩm của họ.   CHƯƠNG 2: CÁC CÔNG NGHỆ ĐƯỢC SỬ DỤNG 2.1. Python Python là ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do GuiDo và Rossum tạo ra lần đầu vào năm 1991. Python được thiết kế với các ưu điểm mạnh mẽ, dễ học, dễ nhớ. Python là ngôn ngữ lập trình có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới bắt đầu học lập trình được dùng rộng rãi trong năm 2018 và tới bây giờ. Python hoàn toàn tạo kiểu tự động và dùng cơ chế cấp phát bộ nhớ tự động, do đó nó tương tự như Perl, Ruby, Scheme, Smalltalk và TCl. Hiện nay Python được hoạt động trên đa nền tảng từ MSDOS đến MAC OS, Windows, Linux và các hệ điều hành khác thuộc nền tảng Unix. 2.2. Thư viện Python Thư viện được sử dụng trong bài toán: underthesea , regex Thư viện Regex (regular expression) là một chuỗi ký tự đặc biệt dùng để mô tả một mẫu tìm kiếm search pattern. Nó rất hữu dụng không chỉ trong việc tìm kiếm xâu mà còn trong xử lý văn bản. Một regex là một hoặc nhiều nhánh không rỗng được phân cách bởi các kí tự |. Regex sẽ khớp với bất kì một trong các nhánh của nó. Thư viện Underthesea: là thư viện và hướng dẫn mã nguồn mở trong xử lý ngôn ngữ tự nhiên tiếng Việt đo chính chuyên gia trong lĩnh vực Python Việt Nam sáng tạo. Underthesea hỗ trợ người dùng trong việc phân tách từ chuỗi xâu kí tự thành các từ ngữ tự nhiên đúng hoàn cảnh mà không làm mất đi tính đúng đắn của chuỗi xâu đó. 2.3. Thuật toán Naive Bayes Thuật toán Naive Bayes(NBC) là thuật toán dựa trên định lý Bayes về lý thuyết xác suất để đưa ra các phán đoán cũng như phân loại dữ liệu dựa trên các dự liệu được quan sát và thống kê, được ứng dụng rất nhiều trong các lĩnh vực Machine Learning dùng để đưa ra các dự đoán có độ chính xác cao, dựa trên dữ liệu được thu nhập. NBC thuộc nhóm học máy có giám sát. Định lý Bayes. Định lý Bayes cho phép tính xác suất xảy ra của sự kiện ngẫu nhiên A khi biết được sự kiện liên quan B đã xảy ra. Xác suất này được kí hiệu là P(A|B), được hiểu là xác suất của A nếu có B. Đại lượng này được gọi xác suất có điều kiện hay xác suất hậu nghiệm vì nó được rút ra từ các giá trị được cho của B hoặc phụ thuộc vào giá trị nào đó. Theo định lý Bayes, P(A|B) sẽ phụ thuộc vào 3 yếu tố: Xác suất xảy ra A của riêng nó, không quan tâm tới B. Kí hiệu P(A). Xác suất xảy ra B của riêng nó, không quan tâm tới A. Kí hiệu P(B). Xác suất xảy ra B khi biết A xảy ra. Kí hiệu P(B|A). Đại lượng này gọi là khả năng (likelihood) xảy ra B khi biết A xảy ra. Chính vì vậy ta có định lý Bayes mở rộng: Trên thực tế thì ít khi tìm được dữ liệu mà các thành phần của nó độc lập với nhau. Tuy nhiên giả thiết này giúp cách tính toán trở nên đơn giản, train data nhanh. 2.4. Ứng dụng thuật toán Bayes. Thuật toán được sử dụng các ứng dụng sau Text classification Spam Filtering Sentiment Analysis: Phân loại văn bản hay ngôn ngữ tự nhiên. Ngoài ra thì hệ thống chống thư rác cũng rất hay được sử dụng. Recommendation System: Xây dựng hệ thống gợi ý. Real time Prediction: Hệ thống cảnh báo sự cố theo thời gian thực. Multi class Prediction: ứng dụng đa dự đoán dựa trên nhiều giải thiết mục tiêu. 2.5. Google Collab Google Collab là sản phẩm từ Google Research, nó cho phép chạy các dòng code python thông qua trình duyệt, phù hợp với Data analysis, machine learning và giáo dục. Collab không yêu cầu cài đặt cấu hình máy tính mọi thứ đều chạy qua trình duyệt, bạn có thể sử dụng tài nguyên từ CPU, GPU tốc độ cao đều được Google cung cấp cho bạn.

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ======***====== BÁO CÁO THỰC NGHIỆM HỌC PHẦN: MỘT SỐ CÔNG NGHỆ PHẦN MỀM Đề tài: PHÂN LOẠI TIẾNG VIỆT SỬ DỤNG MACHINE LEARNING GVHD Lớp Nhóm Thành viên : : : : TS Hà Mạnh Đào 20221IT6024003 Vũ Trọng Tuấn – 2019601439 Nguyễn Minh Vũ – 2019601491 Nguyễn Văn Thành - 2019600414 Hà Nội, 2022 MỤC LỤC LỜI NĨI ĐẦU Trong thời đại cơng nghệ thơng tin nay, thơng tin có tầm quan trọng đặc biệt việc giải vấn đề sống, cơng việc V.I.Lênin khẳng định: "Khơng có thơng tin khơng có thắng lợi lĩnh vực nào, khoa học kỹ thuật sản xuất" Muốn định đúng, hay thơng tin xác thiết phải có đủ thơng tin cần thiết, xác, khách quan, cơng việc giải quy định, hợp lý hiệu Nhận thấy điều quan trọng nhóm tụi em hướng dẫn nhiệt tình tới từ thầy giáo hướng dẫn Hà Mạnh Đào vào phân loại loại gắn nhãn văn Tiếng Việt nhằm mục đích gắn nhãn cho chúng đề chúng phù hợp với thơng tin viết đưa Nhóm em xin chân trọng cảm ơn! PHÂN CÔNG CÔNG VIỆC/KẾ HOẠCH DỰ KIẾN ST T Thành viên Công việc Vũ Trọng Tuấn Kết nối sử dụng GG Collab Nguyễn Minh Vũ Tìm hiểu đề tài Nguyễn Văn Thành Đối tượng lợi ích đạt Phân tích lên kế hoạch Vũ Trọng Tuấn Xử lý liệu Nguyễn Minh Vũ Nguyễn Văn Thành Vũ Trọng Tuấn Xây dựng mơ hình Vũ Trọng Tuấn Nhận nhận xét từ thầy cô sửa đổi Nguyễn Minh Vũ Nguyễn Văn Thành Vũ Trọng Tuấn Chạy đánh giá chương trình Nguyễn Minh Vũ Nguyễn Văn Thành Thời gian Ghi CHƯƠNG TỔNG QUAN 1.1 Mục đích nghiên cứu Trong q trình viết nhà báo, blogger, nhà sáng tạo nội dung hay đơn giản quản trị viên upload viết lên trang web mạng xã hội việc gắn nhãn cho viết để hướng tới người đọc có nhiều nội dung đan xen với viết tạo Chính mà mục đích đề tài đời nhằm giải việc phân loại dán nhãn cho viết trước chúng xuất đăng tải 1.2 Đối tượng hướng tới Tất loại văn viết sử dụng ngôn ngữ tiếng Việt nay: kinh tế, xã hội, thể thao, Khi ứng với viết cần gắn nhãn cho chúng với chủ đề mà ta tưởng chừng đơn giản mà lại khó khăn 1.3 Ứng dụng Gắn thẻ nội dung sản phẩm: cách sử dụng danh mục cách để cải thiện trình duyệt để xác định nội dung liên quan trang web bạn Các tảng thương mại điện tử, quan tin tức, người quản lý nội dung, blog hay thư mục sử dụng cơng nghệ tự động để phân loại gắn thẻ nội dung sản phẩm Sử dụng tự động hóa tác vụ CRM (Customer relationship management) Trình phân loại văn có khả tùy biến cao đào tạo phù hợp Các nhiệm vụ CRM định phân tích trực tiếp dựa tầm quan trọng mức độ phù hợp Giúp giảm thiểu công việc thủ công hiệu thời gian Tối ưu hóa SEO Tự động hóa gắn thẻ nội dung trang web giúp người dùng tốt hơn, giúp nhà tiếp thị nghiên cứu phân tích thẻ nhãn dán giúp tiếp cận người dùng hay nâng cao khả cạnh tranh cho sản phẩm họ CHƯƠNG 2: CÁC CÔNG NGHỆ ĐƯỢC SỬ DỤNG 2.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 Rossum tạo lần đầu vào năm 1991 Python thiết kế với ưu điểm mạnh mẽ, dễ học, dễ nhớ Python ngơn ngữ lập trình có hình thức sáng sủa, cấu trúc rõ ràng, thuận tiện cho người bắt đầu học lập trình dùng rộng rãi năm 2018 tới Python hoàn toàn tạo kiểu tự động dùng chế cấp phát nhớ tự động, tương tự Perl, Ruby, Scheme, Smalltalk TCl Hiện Python hoạt động đa tảng từ MS-DOS đến MAC OS, Windows, Linux hệ điều hành khác thuộc tảng Unix 2.2 Thư viện Python Thư viện sử dụng toán: underthesea , regex Thư viện Regex (regular expression) chuỗi ký tự đặc biệt dùng để mơ tả mẫu tìm kiếm search pattern Nó hữu dụng khơng việc tìm kiếm xâu mà cịn xử lý văn Một regex nhiều nhánh không rỗng phân cách kí tự "|" Regex khớp với nhánh Thư viện Underthesea: thư viện hướng dẫn mã nguồn mở xử lý ngôn ngữ tự nhiên tiếng Việt đo chuyên gia lĩnh vực Python Việt Nam sáng tạo Underthesea hỗ trợ người dùng việc phân tách từ chuỗi xâu kí tự thành từ ngữ tự nhiên hồn cảnh mà khơng làm tính đắn chuỗi xâu 2.3 Thuật toán Naive Bayes Thuật toán Naive Bayes(NBC) thuật toán dựa định lý Bayes lý thuyết xác suất để đưa phán đoán phân loại liệu dựa dự liệu quan sát thống kê, ứng dụng nhiều lĩnh vực Machine Learning dùng để đưa dự đốn có độ xác cao, dựa liệu thu nhập NBC thuộc nhóm học máy có giám sát Định lý Bayes Định lý Bayes cho phép tính xác suất xảy kiện ngẫu nhiên A biết kiện liên quan B xảy Xác suất kí hiệu P(A|B), hiểu "xác suất A có B" Đại lượng gọi xác suất có điều kiện hay xác suất hậu nghiệm rút từ giá trị cho B phụ thuộc vào giá trị Theo định lý Bayes, P(A|B) phụ thuộc vào yếu tố: Xác suất xảy A riêng nó, khơng quan tâm tới B Kí hiệu P(A) Xác suất xảy B riêng nó, khơng quan tâm tới A Kí hiệu P(B) Xác suất xảy B biết A xảy Kí hiệu P(B|A) Đại lượng gọi khả (likelihood) xảy B biết A xảy Chính ta có định lý Bayes mở rộng: Trên thực tế tìm liệu mà thành phần độc lập với Tuy nhiên giả thiết giúp cách tính tốn trở nên đơn giản, train data nhanh 2.4 Ứng dụng thuật toán Bayes Thuật toán sử dụng ứng dụng sau Text classification / Spam Filtering/ Sentiment Analysis: Phân loại văn hay ngơn ngữ tự nhiên Ngồi hệ thống chống thư rác hay sử dụng Recommendation System: Xây dựng hệ thống gợi ý Real time Prediction: Hệ thống cảnh báo cố theo thời gian thực Multi class Prediction: ứng dụng đa dự đoán dựa nhiều giải thiết mục tiêu 2.5 Google Collab Google Collab sản phẩm từ Google Research, cho phép chạy dịng code python thơng qua trình duyệt, phù hợp với Data analysis, machine learning giáo dục Collab khơng u cầu cài đặt cấu hình máy tính thứ chạy qua trình duyệt, bạn sử dụng tài nguyên từ CPU, GPU tốc độ cao Google cung cấp cho bạn Collab cung cấp nhiều loại GPU thường dùng Nvidia K80s, T4s, P4s, Tuy có nhiều GPU người dùng không lựa chọn sử dụng mà thay đổi theo thời gian thực thi Vì dịch vụ miễn phí nên Colab có thứ tự ưu tiên việc sử dụng tài nguyên hệ thống hay thời hạn sử dụng tối đa 12h/ngày 10 CHƯƠNG 3: DỮ LIỆU VÀ QUY TRÌNH XỬ LÝ 3.1 Dữ liệu Dữ liệu yếu tố quan trọng vấn đề mà cần quan tâm tới Trong xây dựng mơ hình liệu bước chuẩn bị liệu đề quan trọng dẫn tới thành bại trình xây dựng Với toán phân loại dán nhãn văn tiếng Việt, liệu mà cần chuẩn bị liệu báo tiếng việt kèm theo chủ đề Loại liệu dễ tìm kiếm thơng qua việc truy cập website tin tức báo chí thống có rất nhiều Trong toán ta sử dụng nguồn liệu từ: Vương Quốc Bình - Giảng Viên Đại học Công Nghiệp Hà Nội Github: https://github.com/binhvq Cong Duy Vu Hoang - Nhà nghiên cứu ứng dụng Oracle Github: https://github.com/duyvuleo Dữ liệu qua xử lý đồng từ thu nhập cá nhân Link: Google Drive Đây nguồn liệu dược dùng tốn 3.2 Quy trình xử lý ● Download liệu đầu vào ● Xử lý liệu cần phân loại gắn nhãn ● Train/Test Model thuật toán Naive Bayes ● Xử lý liệu mà người dùng muốn gắn nhãn 11 3.2.1 Download xử lý liệu dành cho train/test Model Bước 1: Giải nén Google Drive Colab Hình 3: Giải nén Google Drive vào Google Colab Bước 2: Tìm kiếm link liệu Colab Hình 4: Lấy link liệu cần train từ Google Colab 12 Bước 3: Giải nén liệu Hình 5: Giải nén liệu từ link Google Colab Bước 4: Xác định xem giải nén thành công liệu tồn trường trình Hình 6: Xác định tồn liệu 13 Bước 5: Thống kê số lượng liệu data theo Hình7: Thống kế data theo nhãn 14 Bước 6: Thống kê từ (word) tồn tất nhãn Hình 8: Thống kê từ tổn tất nhãn Bước 7: Loại bỏ từ stop-word lưu file Stopword: từ ngữ bị số cơng cụ tìm kiếm bỏ qua phần hoàn toàn VD: "a, of, many, " chiếm khoảng 25% viết Bởi từ ngữ khơng liên quan tới nội dung ý nghĩa viết Hình 9: Loại bỏ StopWord 15 Bước 8: Chia tập để Train/Test liệu Hình 10: Chia tập train/test Bước 9: Lưu train/test thành file train/test Hình 11: Lưu file Train/Test 16 Bước 10: Khởi tạo đường dẫn Model vào chương trình Hình 12: Khởi tạo đường dẫn Model Bước 11: Khai thác thuật toán Naive Bayes Link hỗ trợ: sklearn.naive_bayes.MultinomialNB — scikit-learn 1.0.1 documentation Hình 13: Thuật toán Naive Bayes 17 Bước 12: Hiển thị kết sau áp dụng thuật toán vào tập train/test Hình 14: Kết trình Train/Test 18 3.2.2 Xử lý liệu cần phân loại gắn nhãn Là liệu mà người dùng muốn phân loại gắn nhãn cho viết Bước 1: Cài đặt thư viện Hình 16: Các thư viện Bước 2: Khai báo sử dụng class Hình 17: Khai báo class cần sử dụng Bước 3: Khai báo từ ngữ tiếng việt chứa dấu Hình 18: Khai báo âm tiếng việt có dấu 19 Bước 4: Hàm Unicode dựng sẵn Unicode tổ hợp phù hợp tiếng Việt Hình 19: Chuyển Unicode chuẩn Bước 5: Khai báo nguyên ấm tiếng Việt chuẩn dấu Hình 20: Nguyên dấu chúng tiếng Việt Bước 6: Kiểm tra xem có phải tiếng Việt Hình 21: Check tiếng Việt 20 ... báo sử dụng class Hình 17: Khai báo class cần sử dụng Bước 3: Khai báo từ ngữ tiếng việt chứa dấu Hình 18: Khai báo âm tiếng việt có dấu 19 Bước 4: Hàm Unicode dựng sẵn Unicode tổ hợp phù hợp tiếng. .. tiếng Việt Hình 19: Chuyển Unicode chuẩn Bước 5: Khai báo nguyên ấm tiếng Việt chuẩn dấu Hình 20: Nguyên dấu chúng tiếng Việt Bước 6: Kiểm tra xem có phải tiếng Việt Hình 21: Check tiếng Việt. .. Ứng dụng thuật toán Bayes Thuật toán sử dụng ứng dụng sau Text classification / Spam Filtering/ Sentiment Analysis: Phân loại văn hay ngơn ngữ tự nhiên Ngồi hệ thống chống thư rác hay sử dụng

Ngày đăng: 04/01/2023, 22:02

TÀI LIỆU CÙNG NGƯỜI DÙNG

w