1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo môn khoa học dữ liệu đề tài nhận diện phân loại văn bản tiếng việt

28 0 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

Tiêu đề Nhận diện phân loại văn bản tiếng Việt
Tác giả Huỳnh Văn Quân, Trịnh Xuân Phúc, Nguyễn Nho Gia Huy, Nguyễn Minh Thông, Nguyễn Tiến Thịnh
Người hướng dẫn Phạm Công Thắng
Trường học Trường Đại học Bách Khoa, Đại học Đà Nẵng
Chuyên ngành Khoa học Dữ liệu
Thể loại Báo cáo môn
Năm xuất bản 2024
Thành phố Đà Nẵng
Định dạng
Số trang 28
Dung lượng 1,52 MB

Nội dung

TÓM TẮT DỰ ÁNĐây là một đồ án nghiên cứu giải quyết vấn đề thú vị trong lĩnh vực thị giác máy tínhlà một hệ thống phân loại bài báo tiếng Việt vào để xác định bài báo đó thuộc thể loạinà

Trang 1

SE_08 - Huỳnh Văn Quân - Trịnh Xuân PhúcSE_08 - Huỳnh Văn Quân - Trịnh Xuân Phúc

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MÔN: KHOA HỌC

DỮ LIỆU

ĐỀ TÀI “Nhận diện phân loại văn bản tiếng Việt” Giáo viên hướng dẫn: Phạm Công Thắng

SINH VIÊN THỰC HIỆN

1 Nguyễn Nho Gia Huy 102200134 Lớp: 20TCLC_DT3

2 Nguyễn Minh Thông 102210280 Lớp: 21TCLC_DT4

3 Nguyễn Tiến Thịnh 102200114 Lớp: 20TCLC_DT2

Đà Nẵng, 5/2024

Trang 2

TÓM TẮT DỰ ÁN

Đây là một đồ án nghiên cứu giải quyết vấn đề thú vị trong lĩnh vực thị giác máy tính

là một hệ thống phân loại bài báo tiếng Việt vào để xác định bài báo đó thuộc thể loạinào trong 10 thể loại: Chính trị xã hội, đời sống, khoa học, kinh doanh, pháp luật, sứckhoẻ, thế giới, thể thao, văn hoá, vi tính

Để đạt được mục tiêu này, phương pháp tiếp cận đã được áp dụng bao gồm việc sửdụng crawl tool để thu thập một tập dữ liệu khoảng 32 000 mẫu, trong đó mỗi loạibáo có trên 2.000 mẫu đại diện Tiếp theo, mô hình học sâu RCNN, một kiến trúcDeep Neural Network (DNN) hiệu quả, sử dụng để huấn luyện trên tập dữ liệu này.Các kỹ thuật tiên tiến như checkpoint, data augmentation và feature extraction cũngđược áp dụng nhằm tăng cường khả năng học tập của mô hình và giảm thiểu các vấn

đề như overfitting

Kết quả mô hình đã đạt được độ chính xác phân loại trên 90% khi được kiểm tra trêntập dữ liệu thử nghiệm Điều này cho thấy khả năng áp dụng thực tế của giải pháptrong việc phân loại các bài báo tiếng Việt khác nhau nói riêng cũng như văn bảntiếng Việt nói chung

Trang 3

BẢNG PHÂN CÔNG NHIỆM VỤ

Nguyễn Tiến Thịnh Thu thập và tiền xử lý dữ liệu

Trích xuất đặc trưngViết báo cáo

Nguyễn Nho Gia Huy Mô hình hoá dữ liệu và kiểm thử theo phương pháp

Naive BayesViết slideNguyễn Minh Thông Mô hình hoá dữ liệu theo mô hình học sâu RCNN

Viết báo cáoTrương Thị Thanh Kiều Không tham gia

Trang 4

MỤC LỤC

TÓM T T D ÁN ẮT DỰ ÁN Ự ÁN 2

B NG PHÂN CÔNG NHI M V ẢNG PHÂN CÔNG NHIỆM VỤ ỆM VỤ Ụ 3

M C L C Ụ Ụ 4

DANH M C HÌNH NH Ụ ẢNG PHÂN CÔNG NHIỆM VỤ 5

DANH M C B NG BI U Ụ ẢNG PHÂN CÔNG NHIỆM VỤ ỂU 7

DANH M C THU T NG Ụ ẬT NGỮ Ữ 8

1 Gi i thi u ới thiệu ệu 11

1.1 Hi n tr ng v các s n ph m t ện trạng về các sản phẩm tương tự liên quan đến đề tài ạng về các sản phẩm tương tự liên quan đến đề tài ề các sản phẩm tương tự liên quan đến đề tài ản phẩm tương tự liên quan đến đề tài ẩm tương tự liên quan đến đề tài ương tự liên quan đến đề tài ng t liên quan đ n đ tài ự liên quan đến đề tài ến đề tài ề các sản phẩm tương tự liên quan đến đề tài 11

1.1.1 Trong n ước 11 c 1.1.2 Trên th gi i ế giới ớc 11

1.1.3 M t s s n ph m ột số sản phẩm ố sản phẩm ản phẩm ẩm 12

1.2 V n đ ấn đề ề các sản phẩm tương tự liên quan đến đề tài 15

1.2.1 Thu nh p d li u ập dữ liệu ữ liệu ệu 15

1.2.2 L a ch n mô hình hu n luy n ựa chọn mô hình huấn luyện ọn mô hình huấn luyện ấn luyện ệu 15

1.2.3 Hu n luy n mô hình hi u qu ấn luyện ệu ệu ản phẩm 16

1.3 Đ xu t gi i pháp t ng quan ề các sản phẩm tương tự liên quan đến đề tài ấn đề ản phẩm tương tự liên quan đến đề tài ổng quan 17

1.3.1 Thu th p và x lý d li u ập dữ liệu ử lý dữ liệu ữ liệu ệu 17

1.3.2 L a ch n mô hình phù h p ựa chọn mô hình huấn luyện ọn mô hình huấn luyện ợp 17

1.3.3 Hu n luy n mô hình hi u qu ấn luyện ệu ệu ản phẩm 18

2 Quy trình th c hi n và k t qu ực hiện và kết quả ệu ết quả ả 18

2.1 Thu thập và xử lý dữ liệu 18

2.1.1 Thu th p d li u và gán nhãn ập dữ liệu ữ liệu ệu 18

2.1.2 Ti n x lý d li u ền xử lý dữ liệu ử lý dữ liệu ữ liệu ệu 24

2.2 Trích xuất đặc trưng 24

2.2.1 Count Vectors as features 26

2.2.2 TF-IDF Vectors as Features 27

2.2.3 Truncated SVD (Singular Value Decomposition) 27

2.3 Huấn luyện mô hình 28

2.3.1 X lý và chu n b d li u ử lý dữ liệu ẩm ị dữ liệu ữ liệu ệu 28

2.3.2 Xây d ng mô hình ựa chọn mô hình huấn luyện 30

2.3.3 Hu n luy n mô hình ấn luyện ệu 32

2.4 Đánh giá và tinh chỉnh mô hình 33

3 K t lu n ết quả ận 43

TÀI LI U THAM KH O ỆM VỤ ẢNG PHÂN CÔNG NHIỆM VỤ 44

Trang 5

DANH MỤC HÌNH ẢNH

Ảnh 1: PlantNet app 12

Ảnh 2: Google lens 13

Ảnh 3: Flora Incognita app 13

Ảnh 4: LeafSnap app 14

Ảnh 5: FlowerChecker app 14

Ảnh 6: Flowers Dataset từ Kaggle 20

Ảnh 7: Thư mục chứa tập dữ liệu Train và Test 20

Ảnh 8: Thư mục chứa các tập ảnh của 5 loại hoa 20

Ảnh 9: Số lượng ảnh trong tập test 21

Ảnh 10: Thực thi chương trình với Unsplash Image API 22

Ảnh 11: Extension Dowload All Image 22

Ảnh 12: Sử dụng Extension Download All Image 23

Ảnh 13: Các thư mục của 10 loại hoa 23

Ảnh 14: Kiến trúc của VGG16 27

Ảnh 15: Trích xuất dữ liệu ảnh hoa từ một tệp zip 28

Ảnh 16: Kiểm tra chất lượng hình ảnh 29

Ảnh 17: Kết quả kiểm tra chất lượng hình ảnh 29

Ảnh 18: Khởi tạo ImageDataGenerator 29

Ảnh 19: Tạo các bộ dữ liệu từ các thư mục chứa ảnh 30

Ảnh 20: Sử dụng pre-trained vgg16 model và đóng băng lớp của nó 31

Ảnh 21: Thêm các lớp fully connected 31

Ảnh 22: Hàm mất mát categorical_crossentropy 32

Ảnh 23: Định nghĩa các callback 32

Ảnh 24: Huấn luyện mô hình 33

Ảnh 25: Kết quả huấn luyện mô hình 33

Ảnh 26: Lưu mô hình 33

Ảnh 27: Vẽ biểu đồ độ chính xác và mất mát trong quá trình huấn luyện 34

Ảnh 28: Biểu đồ vẽ chung độ chính xác và mất mát 35

Trang 6

Ảnh 29: Biểu đồ vẽ riêng độ chính xác và mất mát 35

Ảnh 30: Tính toán độ chính xác và mất mát trên tập kiểm tra 36

Ảnh 31: Tạo báo cáo phân loại 36

Ảnh 32: Báo cáo phân loại 37

Ảnh 33: Tạo ma trận nhầm lẫn 37

Ảnh 34: : Ma trận nhầm lẫn 37

Ảnh 35: Kiến trúc ứng dụng 38

Ảnh 36: Khởi tạo ứng dụng Flask 38

Ảnh 37: Load mô hình 39

Ảnh 38: Tạo route trang chính 39

Ảnh 39: Tạo route xử lý dự đoán 39

Ảnh 40: Trường hợp tải lên một file 40

Ảnh 41: Trường hợp nhập URL 40

Ảnh 42: Trả về kết quả 40

Ảnh 43: Hàm dự đoán 41

Ảnh 44: Giao diện web 42

Ảnh 45: Giao diện web sau khi trả về kết quả 42

Ảnh 46: Giao diện web khi hiển thị kết quả trả về không nhận ra 43

Trang 7

DANH MỤC BẢNG BIỂU

Trang 8

1 Quy trình thực hiện và kết quả

1.1 Thu thập và xử lý dữ liệu

1.1.1 Thu thập dữ liệu và gán nhãn

Việc thu thập và xây dựng tập dữ liệu ảnh đóng vai trò quan trọng đối vớithành công của dự án phân loại 10 loại báo bằng học sâu Tuy nhiên, quátrình này cũng tiềm ẩn nhiều thách thức cần được giải quyết một cách hiệuquả

Một trong những khó khăn lớn nhất là đảm bảo tính đa dạng và cân bằngcủa dữ liệu Với yêu cầu phải có 10 loại báo khác nhau, chúng ta cần thuthập đủ số lượng mẫu đại diện cho mỗi lớp, đồng thời đảm bảo rằng cácmẫu này được phân bố đồng đều giữa các lớp Điều này nhằm tránh hiệntượng mô hình bị thiên vị hoặc học kém đối với các lớp ít dữ liệu hơn.Ngoài ra, tập dữ liệu cũng cần đủ lớn để đảm bảo mô hình không gặp vấn

đề underfitting trong quá trình huấn luyện

Để giải quyết những thách thức này, nhóm đã đưa ra quyết định xây dựngmột tập dữ liệu lớn, gồm hơn 32.000 mẫu, trong đó mỗi loại báo có trên2.000 mẫu đại diện Số lượng mẫu lớn này sẽ giúp đảm bảo tính đa dạng vàcân bằng của dữ liệu, đồng thời cung cấp đủ dữ liệu để huấn luyện một môhình hiệu quả

Tuy nhiên, việc xây dựng thủ công một tập dữ liệu lớn như vậy sẽ đòi hỏirất nhiều thời gian và công sức Do đó, nhóm đã lựa chọn kết hợp haiphương pháp sau để thu thập dữ liệu:

1 Tìm kiếm và khai thác các tập dữ liệu ảnh báo có sẵn:

Qua quá trình tìm hiểu và nghiên cứu, nhóm chúng tôi đã nhận thấy rằngnhững tập dữ liệu về báo công cộng không chỉ phong phú về số lượng

mà còn đa dạng về chủng loại hoa, điều này rất phù hợp cho các ứngdụng trong nhận dạng và phân loại hình ảnh Các tập dữ liệu này được tổ

Trang 9

chức và cá nhân uy tín kiểm định, đảm bảo tính chính xác và đáng tincậy

Việc sử dụng chúng không chỉ giúp tiết kiệm đáng kể thời gian trongkhâu thu thập dữ liệu mà còn nâng cao hiệu quả và độ chính xác của các

mô hình học máy Thêm vào đó, việc khai thác các nguồn dữ liệu có sẵncòn thúc đẩy sự phát triển và cải tiến liên tục trong lĩnh vực nghiên cứu

và ứng dụng trí tuệ nhân tạo vào nhận dạng văn bản tiếng Việt

Điều này giúp nhóm chúng tôi xây dựng và đào tạo mô hình một cáchhiệu quả, đồng thời đảm bảo kết quả nhận dạng và phân loại báo đạt độchính xác cao nhất

Ảnh 1: Ảnh nguồn dữ liệu tìm được

Sau khi tải về thì tập dữ liệu sẽ gồm có tập train và tập test

Ảnh 2: Thư mục chứa tập dữ liệu Train và Test

Trang 10

Tập train gồm có 10 loại báo: Chính trị xã hội, đời sống, khoa học, kinhdoanh, pháp luật, sức khoẻ, thế giới, thể thao, văn hoá, vi tính, mỗi loại

có giao động từ 2000 -> 5000 tệp

Ảnh 3: Thư mục train chứa các tệp của 10 loại báo

Tập test tương tự như tập train sẽ có >30 000 tệp

Trang 11

Ảnh 4: Thư mục test chứa các tệp của 10 loại báo

Để đảm bảo tính chính xác và tính nhất quán này, chúng tôi sẽ áp dụngquy trình gán nhãn ảnh nghiêm ngặt như sau:

1 Tổ chức dữ liệu hợp lý:

Sau khi thu thập, các ảnh sẽ được sắp xếp và lưu trữ trong các thưmục riêng biệt, mỗi thư mục mang tên của một loại hoa cụ thể

Trang 12

Ảnh 5: Các thư mục của 10 loại báo

Việc phân loại sơ bộ này sẽ giúp quá trình gán nhãn được thuận tiện

và có hệ thống hơn

2 Kiểm tra và xác nhận thủ công:

Các tệp trong các thư mục sẽ được kiểm tra thủ công bởi ít nhất haithành viên trong nhóm

Quá trình kiểm tra sẽ diễn ra độc lập, sau đó các kết quả sẽ được đốichiếu để đảm bảo sự nhất quán

Với cách tiếp cận này, nhóm hi vọng sẽ xây dựng được một tập dữ liệu văn bảnđạt chất lượng và quy mô yêu cầu, tạo tiền đề vững chắc cho việc huấn luyện

mô hình phân loại hiệu quả

1.1.2 Tiền xử lý dữ liệu

- Trước hết, chúng ta cần phải loại bỏ những ký tự đặc biệt trong văn bản banđầu như dấu chấm, dấu phẩy, dấu mở đóng ngoặc, bằng cách sử dụng thưviện gensim Sau đó chúng ta sẽ sử dụng thư viện PyVi để tách từ tiếngViệt

Trang 13

- Chúng ta sẽ đưa mỗi bài báo về một cặp (x, y) Trong đó, x là văn bản đãđược xử lý, y là nhãn/thể loại của bài báo đó.

- Lưu dữ liệu lại vào file pkl để tiện sử dụng cho việc sử dụng lại dữ liệu đãđược xử lý

Ảnh: tiền xử lý dữ liệu

Trang 14

Ảnh: lưu dữ liệu vào file pkl.

2.2 Trích xuất đặc trưng

2.2.1 Count Vectors as features

- Count Vectors là một kỹ thuật biểu diễn văn bản dưới dạng các vector số

bằng cách đếm số lần xuất hiện của mỗi từ trong một văn bản Mỗi từ trong từ điển được ánh xạ tới một chỉ mục và giá trị tại chỉ mục đó trong vector tương ứng với số lần từ đó xuất hiện trong văn bản

Các bước thực hiện

- Xây dựng từ điển (Vocabulary): Tạo một danh sách các từ duy nhất

từ toàn bộ tập dữ liệu

- Tạo vector đếm (Count Vector): Khởi tạo một vector có độ dài bằng

số lượng từ trong từ điển, với tất cả các phần tử bằng 0 Duyệtqua mỗi

từ trong văn bản và tăng giá trị của phần tử tương ứng trong vector

2.2.2 TF-IDF Vectors as Features

- TF-IDF (Term Frequency-Inverse Document Frequency) là một kỹ thuật

chuyển đổi văn bản thành các vector số để sử dụng trong các thuật toán họcmáy TF-IDF không chỉ đếm tần suất của các từ (Term Frequency) mà còn xemxét tầm quan trọng của từ trong toàn bộ tập tài liệu bằng cách giảm trọng số củacác từ phổ biến (Inverse Document Frequency)

- Term Frequency (TF):

Đo tần suất xuất hiện của một từ trong một tài liệu

Trang 15

Công thức:

- TF-IDF Vectors as Features

Đo độ quan trọng của một từ trong toàn bộ tập tài liệu.Công thức:

Trang 16

2.2.3 Truncated SVD (Singular Value Decomposition)

- Sau khi thực hiện TF-IDF, chúng ta dễ dàng nhận thấy rằng, ma trận màchúng ta thu được có kích thước rất lớn, và việc xử lý tính toán với ma trậnnày đòi hỏi thời gian và bộ nhớ khá tốn kém Để xử lý vấn đề này, chúng ta sẽ

sử dụng thuật toán SVD (singular value decomposition) nhằm mục đích giảmchiều dữ liệu của ma trận mà chúng ta thu được, mà vẫn giữ nguyên được cácthuộc tính của ma trận gốc ban đầu

- Truncated SVD (Singular Value Decomposition) là một kỹ thuật giảmchiều dùng trong xử lý dữ liệu và học máy Nó đặc biệt hữu ích khi làm việc với

ma trận hiếm (sparse matrices), chẳng hạn như ma trận TF-IDF được sử dụngtrong xử lý ngôn ngữ tự nhiên

- SVD cơ bản:

Trang 17

Ảnh: minh hoạ sử dụng Truncated SVD

- Trong mô hình này, mỗi từ sẽ được biểu diễn bằng một vector 300 chiều Từ

đó chúng ta có thể sử dụng chúng cho các mô hình Deep Learning như DeepNeural Network, Recurrent Neural Networks, Convolutional Neural Networks đểphân loại văn bản

Ở đây chúng ta sẽ tiếp tục sử dụng thư viện gensim:

Trang 18

Ảnh: minh hoạ sử dụng mô hình Word Embeddings

2.3 Huấn luyện mô hình

Huấn luyện một mô hình học máy để phân loại hình ảnh là một quá trình đòi hỏinhiều bước khác nhau Trong trường hợp này, việc huấn luyện mô hình phân loạihình ảnh hoa sử dụng phương pháp Naive Bayes và Recurrent ConvolutionalNeural Network

2.3.1 Mô hình Naive Bayes

Là một thuật toán phân loại dựa trên lý thuyết Bayes, với giả định rằng

sự xuất hiện của một đặc trưng trong một lớp không phụ thuộc vào sự xuấthiện của các đặc trưng khác (giả định độc lập)

Trang 19

Đối với bước xử lý và chuẩn bị dữ liệu, một chuỗi các quy trình được thựchiện một cách cẩn thận và chi tiết để đảm bảo chất lượng và tính nhất quáncủa dữ liệu đầu vào cho mơ hình

Ảnh 6: Sử dụng các dữ liệu đã xử lý từ file pkl

Ảnh 7: Huấn luyện mơ hình Nạve Bayes

Trang 20

Ảnh 8: Kết quả huấn luyện

Sau khi có kết quả huấn luyện, chúng tôi sẽ kiểm thử kết quả:

Ảnh 9: tệp kiểm thử

Trang 21

và đánh giá một cách hiệu quả, khách quan và có khả năng khái quát hóa tốttrên dữ liệu mới.

Trang 22

Qua đó, ta thấy rằng kết quả với độ chính xác >85% là một kết quả tốt.

2.3.2 Xây dựng mô hình RCNN

- RCNN là một mô hình kết hợp giữa mạng nơ-ron tích chập (CNN) vàmạng nơ-ron hồi quy (RNN) RCNN tận dụng khả năng trích xuất đặc trưngkhông gian của CNN và khả năng học thông tin tuần tự của RNN để phânloại văn bản

Cấu trúc RCNN:

Trang 23

- CNN (Convolutional Neural Network):

CNN sử dụng các lớp tích chập (convolutional layers) để trích xuấtcác đặc trưng không gian từ dữ liệu đầu vào (ví dụ: văn bản được mãhóa dưới dạng ma trận)

- RNN (Recurrent Neural Network):

RNN, đặc biệt là các biến thể như LSTM (Long Short-TermMemory) hoặc GRU (Gated Recurrent Unit), được sử dụng để học cácmối quan hệ tuần tự trong dữ liệu

Trang 24

Xây dựng mô hình:

Kết quả huấn luyện:

Trang 25

Ta thấy rằng độ chính xác đạt được trên 90%, cho thấy kết quả huấn luyện theo

mô hình RCNN là rất tốt

Trang 26

2.3 Đánh giá và tinh chỉnh mô hình

Sau khi hoàn tất quá trình huấn luyện, việc đánh giá mô hình trên tập dữ liệukiểm tra là một bước quan trọng để xác định hiệu suất và khả năng khái quáthóa của mô hình Đánh giá này giúp chúng ta hiểu rõ hơn về những điểmmạnh và điểm yếu của mô hình, từ đó có thể đưa ra các chiến lược tinh chỉnhphù hợp để cải thiện hiệu suất

Để đánh giá hiệu suất của mô hình trong quá trình huấn luyện, chúng ta vẽbiểu đồ để theo dõi sự thay đổi của độ chính xác và mất mát trên tập huấnluyện và tập kiểm tra sau mỗi epoch Biểu đồ này cung cấp thông tin hữu ích

để phân tích việc mô hình có overfitting hay underfitting hay không, từ đó cóthể điều chỉnh các tham số huấn luyện và kiến trúc mô hình cho phù hợp

Ảnh: Biểu đồ vẽ chung độ chính xác và mất mát

Trang 27

Báo cáo phân loại (classification report) cung cấp thông tin chi tiết về độchính xác (precision), độ đrecall (recall) và độ f1-score cho từng lớp Nhữngthông tin này rất hữu ích để xác định xem mô hình có thể phân loại tốt cáclớp nào và gặp khó khăn với các lớp nào.

Ngày đăng: 15/08/2024, 13:56

w