1. Trang chủ
  2. » Luận Văn - Báo Cáo

nhận diện chủ đề văn bản bằng kỹ thuật naive bayes với bộ dữ liệu ag news news articles

40 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

Nội dung

Việc nắm vững kỹ thuật Naive Bayes trong việc phân loại vănbản sẽ mang lại nhiều lợi ích trong công việc thực tế.Phân loại dựa trên nội dung văn bản: Kỹ thuật Naive Bayes được sử dụnghiệ

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC ĐẠI NAM KHOA CÔNG NGHỆ THÔNG TIN

-BÁO CÁO BÀI TẬP LỚN

MÔN: HỌC MÁY

Trang 2

TÊN ĐỀ TÀI:

Nhận diện chủ đề văn bản bằng kỹ thuật naive bayesVới bộ dữ liệu: AG News (News articles)

Giảng viên hướng dẫn: ThS Phạm Thị Tố Nga Lớp: CNTT14 - 02

Khóa: 14

HÀ NỘI - NĂM 2023

Trang 3

BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC ĐẠI NAMKHOA CÔNG NGHỆ THÔNG TIN

Trang 4

Đề tài: Nhận diện chủ đề văn bản bằng kỹ thuật naive bayes với bộ dữ liệu

AG News (News articles)

Sinh viên: Nguyễn Thanh BìnhMã sinh viên: 1451020018

Trang 5

CÁN BỘ CHẤM THI 1CÁN BỘ CHẤM THI 2

Trang 6

MỤC LỤC

MỞ ĐẦU 6

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 7

1.1.Lý do chọn đề tài 7

1.2 Mục tiêu nghiên cứu 7

1.3 Đối tượng và phạm vi nghiên cứu 8

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 9

2.1 Tìm hiểu về học máy(Machine Learning) 9

2.1.1 Định nghĩa 9

2.1.2 Một số phương thức của Machine Learning 9

2.1.3 Bài toán phân lớp dữ liệu 10

2.1.4 Ngôn ngữ lập trình Python 12

2.1 Thuật toán Naive Bayes 14

2.2.1 Khái niệm 14

2.2.2 Quy trình làm việc của thuật toán 14

2.2.3 Ưu điểm của thuật toán 15

2.2.4 Nhược điểm của thuật toán 15

2.3 Thuật toán K-Nearest Neighbor (KNN) 16

2.3.1 Định nghĩa 16

2.3.2 Quy trình làm việc của thuật toán KNN 16

2.3.3 Ưu điểm 16

2.3.4 Nhược điểm của thuật toán 17

2.4 Thuật toán K-mean 17

Trang 7

2.4.2 Quy trình của thuật toán 19

CHƯƠNG 4: XÂY DỰNG MÔ HÌNH 26

4.1 Lý chọn kỹ thuật Naive Bayes 26

Trang 8

MỞ ĐẦU

Tự động nhận diện và xử lý văn bản đang trở thành một lĩnh vực nghiên cứu vàứng dụng ngày càng quan trọng trong thế giới công nghệ ngày nay Sự phát triển vượtbậc của Trí tuệ Nhân tạo (AI) và học sâu (Deep Learning) đã mở ra nhiều cơ hội mớivà động lực cho việc tiếp cận và hiểu biết về ngôn ngữ tự nhiên.

Từ việc xử lý một lượng lớn thông tin trên Internet ngày nay, việc tự động phânloại, tóm tắt và trích xuất thông tin từ văn bản đã trở thành một thách thức đáng kể.Công nghệ nhận diện văn bản mang lại nhiều tiện ích đa dạng, từ phân loại văn bảnvào các nhóm chủ đề chính như thể thao, công nghệ và giải trí.

Trong bối cảnh này, đề tài "Nhận diện và Xử lý Văn bản" trở thành một hướngnghiên cứu hết sức thú vị và hứa hẹn Đề tài này không chỉ mang lại những tri thức sâuvề lĩnh vực xử lý ngôn ngữ tự nhiên mà còn đóng góp vào việc phát triển các ứng dụngthực tế hỗ trợ trong công việc và cuộc sống.

Qua việc tiếp cận và tìm hiểu về đề tài này, chúng tôi mong muốn có cơ hội họchỏi và ứng dụng những kiến thức, kỹ năng đã thu thập được vào các dự án và côngviệc tương lai.

Chúng em xin chân thành cảm ơn!

Trang 9

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

1.1 Lý do chọn đề tài

Nhóm chúng tôi đã quyết định chọn đề tài "Phân loại văn bản sử dụng kỹthuật Naive Bayes" trong môn Học máy vì nó mang lại nhiều lợi ích và tháchthức đáng quan tâm Dưới đây là những lý do quan trọng để chọn đề tài này:

Tính ứng dụng cao trong thực tế: Phân loại văn bản là một vấn đề quantrọng và được áp dụng rộng rãi trong nhiều lĩnh vực, từ tổ chức thông tin đếnphân tích ý kiến Việc nắm vững kỹ thuật Naive Bayes trong việc phân loại vănbản sẽ mang lại nhiều lợi ích trong công việc thực tế.

Phân loại dựa trên nội dung văn bản: Kỹ thuật Naive Bayes được sử dụnghiệu quả trong việc xử lý dữ liệu văn bản, giúp phân loại văn bản vào các nhómchủ đề khác nhau.

Phát triển kỹ năng trong Học máy: Dự án này sẽ cung cấp cơ hội chonhóm chúng tôi rèn luyện các kỹ năng quan trọng trong lĩnh vực Học máy, từ xửlý dữ liệu đến xây dựng và đánh giá mô hình.

Đóng góp vào lĩnh vực phân loại văn bản: Hiểu biết sâu về phân loại vănbản có thể đóng góp vào việc phát triển các ứng dụng và giải pháp trong nhiềulĩnh vực, từ tổ chức thông tin đến quyết định dựa trên dữ liệu văn bản.

Tiếp cận Học máy: Việc sử dụng Naive Bayes trong việc phân loại vănbản cung cấp một cơ hội tuyệt vời để hiểu sâu hơn về các khái niệm và kỹ thuậttrong lĩnh vực này, đồng thời mở ra cánh cửa cho việc nghiên cứu và ứng dụngHọc máy trong các tác phẩm sau này.

1.2 Mục tiêu nghiên cứu

Mục tiêu của dự án “Phân loại văn bản bằng Naive Bayes” là phân loạicác văn bản thành các nhóm khác nhau Thuật toán Naive Bayes được sử dụngđể tối ưu hóa hiệu suất phân loại Nó là một thuật toán phân loại dựa trên Địnhlý Bayes, trong đó giả định rằng các tính năng của một văn bản độc lập với

Trang 10

nhau Thuật toán này đã được sử dụng rộng rãi cho phân loại văn bản và phântích văn bản trong lĩnh vực học máy Trong bài viết này, tôi sẽ giải thích cáchhoạt động của Naive Bayes và cách sử dụng nó để phân loại các văn bản.

1.3 Đối tượng và phạm vi nghiên cứu

Đối tượng nghiên cứu của đề tài “Phân loại văn bản bằng Naive Bayes”

là các văn bản, trong đó có thể là các bài báo, tin nhắn, tài liệu, và nhiềuhơn nữa.

Phạm vi nghiên cứu: bao gồm việc thu thập dữ liệu, tiền xử lý dữ liệu,

xây dựng và huấn luyện mô hình phân loại văn bản bằng thuật toán NaiveBayes Nghiên cứu cũng bao gồm việc đánh giá hiệu suất của mô hìnhtrên tập dữ liệu kiểm tra

Trang 11

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1 Tìm hiểu về học máy(Machine Learning)2.1.1 Định nghĩa

- Là một lĩnh vực của trí tuệ nhân tạo liên qua đến việc nghiên cứu và xâydựng các kĩ thuật cho phép các hệ thống học tự động từ dữ liệu để giải quyết cácvấn đề cụ thể Ví dụ các máy có thể học cách phân loại thư điện tử có phải thưrác hay không và tự động sắp xếp vào các thư mục tương ứng.

- Machine Learning có liên quan đến thống kê vì cả hai lĩnh vực đềunghiên cứu việc phân tích dữ liệu, nhưng khác với thống kê, học máy tập trungvào sự phức tạp của các giải thuật trong việc thực thi tính toán.

- Machine Learning có hiện nay được áp dụng rộng rãi bao gồm máy truytìm dữ liệu, máy phân tích thị trường chứng khoán, nhận dạng tiếng nói và chữviết

2.1.2 Một số phương thức của Machine Learning

- Học có giám sát: Thuật toán dự đoán đầu ra của một dữ liệu mới (newinput) dựa trên các cặp (input, outcome) đã biết từ trước Cặp dữ liệu này cònđược gọi là (data, label), tức (dữ liệu, nhãn) Supervised learning là nhóm phổbiến nhất trong các thuật toán Machine Learning.

Học có giám sát được chia thành hai loại chính:

- Classification (phân lớp): Là quá trình phân lớp một đối tượng dữ liệuvào một hay nhiều lớp đã cho trước nhờ một mô hình phân lớp (model) Môhình này được xây dựng dựa trên một tập dữ liệu được xây dựng trước đó có gánnhãn (hay còn gọi là tập huấn luyện) Quá trình phân lớp là quá trình gán nhãncho đối tượng dữ liệu.

Có nhiều bài toán phân lớp như phân lớp nhị phân, phân lớp đa lớp, phânlớp đa trị Trong đó phân lớp nhị phân là một loại phân lớp đặc biệt của phân lớp

Trang 12

đa lớp Ứng dụng của bài toán phân lớp được sử dụng rất nhiều và rộng rãi nhưnhận dạng khuôn mặt, nhận dạng chữ viết, nhận dạng giọng nói, phát hiện thưrác

- Regression (hồi quy): Nếu không được chia thành các nhóm mà là mộtgiá trị thực cụ thể Đầu ra của một điểm dữ liệu sẽ bằng chính đầu ra của điểmdữ liệu đã biết.

- Học không giám sát: là một kĩ thuật của máy học nhằm tìm ra một môhình hay cấu trúc bị ẩn bơi tập dữ liệu không được gán nhãn cho trước họckhông giám sát khác với học có giám sát là không thể xác định trước output từtập dữ liệu huấn luyện được Tùy thuộc vào tập huấn luyện kết quả output sẽkhác nhau Trái ngược với học có giám sát, tập dữ liệu huấn luyện của họckhông giám sát không do con người gán nhãn, máy tính sẽ phải tự học hoàntoàn Có thể nói, học không giám sát thì giá trị đầu ra sẽ phụ thuộc vào thuậttoán học không giám sát Ứng dụng lớn phổ biến của học không giám sát là bàitoán phân cụm.

- Học bán giám sát: Các bài toán khi có một số lượng lớn dữ liệu nhưngchỉ một phần trong chúng được dán nhãn Những bài toán này nằm giữa phươngthức học giám sát và học không giám sát.

- Học tăng cường: Các bài toán giúp cho hệ thống tự động xác định đượchành vi dựa trên hoàn cảnh để đạt được lợi ích cao nhất Hiện tại học tăng cườngchủ yếu được áp dụng vào lý thuyết trò chơi, các thuật toán cần xác định đượcnước đi tiếp theo để đạt được điểm số cao nhất.

Ví dụ điển hình cho phương pháp học tăng cường này là: AlphaGo gầnđây nổi tiếng với việc chơi cờ vây thắng con người

2.1.3 Bài toán phân lớp dữ liệu

Để xây dựng được mô hình phân lớp và đánh giá hiệu quả của mô hìnhcần phải thực hiện quá trình sau đây:

Trang 13

- Bước 1: Chuẩn bị tập dữ liệu huấn luyện và rút trích đặc trưng Côngđoạn này được xem là công đoạn quan trọng trong các bài toán về ML vì đây làinput cho việc học để tìm ra mô hình của bài toán Chúng ta phải biết cần chọnra những đặc trưng tốt của dữ liệu, lược bỏ những đặc trưng không tốt của dữliệu, gây nhiễu Ước lượng số chiều của dữ liệu bao nhiêu là tốt hay nói cáchkhác là chọn bao nhiêu feature Nếu số nhiều quá lớn gây khó khăn cho việc tínhtoán thì phải giảm số chiều của dữ liệu nhưng vẫn giữ được độ chính xác của dữliệu.

Ở bước này chúng ta cũng chuẩn bị bộ dữ liệu để test trên mô hình Thôngthường sẽ sử dụng cross-validation (kiểm tra chéo) để chia tập dataset thành haiphần, một phần phục vụ cho training và phần còn lại phục vụ cho mục đíchtesting trên mô hình Có hai cách thường sử dụng trong cross-validation làsplitting và k-fold.

- Bước 2: Xây dựng mô hình phân lớp

Mục đích của mô hình huấn luyện là tìm ra hàm F(x) và thông qua hàm ftìm được để chúng ta gán nhãn cho dữ liệu Bước này thường được gọi là họcmáy training.

- Bước 3: Kiểm tra dữ liệu với mô hình

Sau khi tìm được mô hình phân lớp ở bước hai, thì bước này chúng ta sẽđưa vào các dữ liệu mới để kiểm tra trên mô hình phân lớp.

- Bước 4: Đánh giá mô hình phân lớp và chọn ra mô hình tốt nhất

Trang 14

Bước cuối cùng chúng ta sẽ đánh giá mô hình bằng cách đánh giá mức độlỗi của dữ liệu testing và dữ liệu training thông qua mô hình tìm được Nếukhông đạt được kết quả mong muốn của chúng ta thì phải thay đổi các tham sốcủa thuật toán học để tìm ra các mô hình tốt hơn và kiểm tra, đánh giá lại môhình phân lớp và cuối cùng chọn ra mô hình phân lớp tốt nhất cho bài toán củachúng ta.

2.1.4 Ngôn ngữ lập trình Python

Python (phát âm tiếng Anh là một 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 van Rossum tạo ra và lần đầu ra mắt vào năm1991 Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ.Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện chongười mới học lập trình và là ngôn ngữ lập trình dễ học; được dùng rộng rãitrong phát triển trí tuệ nhân tạo Cấu trúc của Python còn cho phép người sửdụng viết mã lệnh với số lần gõ phím tối thiểu.

Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động;do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl Python đượcphát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python SoftwareFoundation quản lý.

Python là một ngôn ngữ lập trình đa mẫu hình, lập trình hướng đốitượng và lập trình cấu trúc được hỗ trợ hoàn toàn, và nhiều tính năng của nócũng hỗ trợ lập trình hàm và lập trình hướng khía cạnh (bao gồm siêu lập trìnhvà siêu đối tượng (phương thức thần kỳ)) Các mẫu hình khác cũng được hỗ trợthông qua các phần mở rộng, bao gồm thiết kế theo hợp đồng và lập trình logic

Python sử dụng kiểu động và một dạng kết hợp giữa đếm tham chiếu vàbộ dọn rác kiểm tra theo chu kì để quản lí bộ nhớ Nó cũng có tính năng phângiải tên động (liên kết muộn), cho phép liên kết các tên biến và phương thứctrong quá trình thực thi chương trình.

Python là một ngôn ngữ dễ đọc, dễ hiểu Định dạng của nó rất gọn gàngvề mặt trực quan, và nó thường sử dụng các từ khoá tiếng Anh trong khi cácngôn ngữ khác lại sử dụng các dấu câu Khác với nhiều ngôn ngữ khác, nókhông sử dụng các dấu ngoặc nhọn để giới hạn các khối lệnh, và dấu chấm phẩycuối câu lệnh rất ít khi được sử dụng dù không bị cấm Nó có ít ngoại lệ cú phápvà trường hợp đặc biệt hơn C và Pascal.

Một số câu lệnh trong Python gồm có:

Trang 15

● Câu lệnh if: thực thi một khối lệnh nếu thỏa mãn điều kiện, sử dụngcùng với else và else-if

biến cục bộ để sử dụng trong khối lệnh của vòng lặp.

lệnh và dùng vế except để xử lý; câu lệnh cũng đảm bảo rằng phần mãdọn dẹp trong khối finally sẽ được chạy dù có lỗi hay không.

ngoại lệ đã được bắt từ trước.

của nó vào một lớp, để dùng trong lập trình hướng đối tượng.

(context manager) (ví dụ như khóa luồng lại trước khi chạy mã rồi mởkhóa, hoặc mở một tệp rồi đóng tệp lại), cho phép các hành vi kiểuRAII (sự đạt được tài nguyên là sự khởi tạo) và thay thế cho các câu

bị xóa và cố gắng sử dụng biến đó sẽ gây lỗi Một biến đã bị xoá cóthể được gán lại.

dùng để tạo các khối lệnh rỗng.

là một toán tử Dạng này được dùng để triển khai các đồng thườngtrình.

Trang 16

● Câu lệnh import: được dùng để nhập các mô đun chứa các hàm và biếnđược sử dụng trong chương trình hiện tại.

Câu lệnh gán (=) hoạt động bằng cách liên kết một tên dưới dạngmột tham chiếu với một đối tượng được cấp phát động riêng lẻ Các biến có thểđược dùng lại bất cứ lúc nào với bất cứ đối tượng nào Trong Python, một tênbiến chỉ giữ tham chiếu một cách chung chung và không có kiểu dữ liệu cố địnhđi kèm Tuy nhiên, tại một thời điểm nhất định, một biến sẽ tham chiếu đến mộtvài đối tượng có kiểu Nó được gọi là kiểu động, ngược lại với các ngôn ngữ lậptrình kiểu tĩnh với mỗi biến chỉ có thể chứa giá trị của một kiểu nhất định.

2.1 Thuật toán Naive Bayes2.2.1 Khái niệm

Thuật toán Naive Bayes là một trong nhóm các thuật toán học máy dựatrên xác suất Nó được sử dụng rộng rãi trong các tác vụ phân loại và dự đoán.Tên "Naive" được đặt ra từ giả định đơn giản và ngây thơ về phân phối của cácđặc trưng trong dữ liệu.

2.2.2 Quy trình làm việc của thuật toán

Tính toán xác suất hậu nghiệm của mỗi lớp (label) dựa trên dữ liệu huấnluyện Điều này được thực hiện bằng cách sử dụng công thức Bayes:

P(y) gọi là prior probability của mục tiêu y

Trang 17

• P(X) gọi là prior probability của đặc trưng X

Ở đây, X là vector các đặc trưng, có thể viết dưới dạng:

Trong mô hình Naive Bayes, có hai giả thiết được đặt ra:

của một đặc trưng không ảnh hưởng đến các đặc trưng còn lại.

2.2.3 Ưu điểm của thuật toán

lọc spam,

được (observed data)

Trang 18

• Tốt khi có sự chênh lệch số lượng giữa các lớp phân loại Huấn luyện môhình (ước lượng tham số) dễ và nhanh

2.2.4 Nhược điểm của thuật toán

luyện) không có thuộc tính lớp Ck, có thuộc tính Fi nhận một giá trị cụ thểvij, thì xác suất điều kiện P(Fi = xij | Ck) sẽ luôn bằng 0)

đến sự tương tác giữa các ước lượng này.

2.3 Thuật toán K-Nearest Neighbor (KNN)

2.3.1 Định nghĩa

K-láng giềng gần nhất (K Nearest Neighbor - KNN) là một trong nhữngthuật toán học có giám sát đơn giản nhất trong Machine Learning Ý tưởng củaKNN là tìm ra output của dữ liệu dữ trên thông tin của những dữ liệu traininggần nó nhất.

2.3.2 Quy trình làm việc của thuật toán KNN.

Bước 1: Xác định tham số K = số láng giềng gần nhất.

Bước 2: Tính khoảng cách đối tượng cần phân lớp với tất cả các đối tượng trongtraining data.

Trong không gian một chiều, khoảng cách giữa hai điểm là trị tuyệt đốigiữa hiệu giá trị của hai điểm đó Trong không gian nhiều chiều, khoảng cáchgiữa hai điểm có thể được định nghĩa bằng nhiều hàm số khác nhau, trong đó độdài đường thẳng nối hai điểm chỉ là một trường hợp đặc biệt trong đó Nhiềuthông tin bổ ích (cho Machine Learning) có thể được tìm thấy tại Norms (chuẩn)của vector trong tab Math.

Trang 19

Bước 3: Sắp xếp khoảng cách theo thứ tự tăng dần và xác định K láng giềng gầnnhất với đối tượng cần phân lớp.

Bước 4: Lấy tất cả các lớp của K láng giềng gần nhất.

Bước 5: Dựa vào phần lớn lớp của K để xác định lớp cho đối tượng cần phânlớp.

2.3.3 Ưu điểm

2.3.4 Nhược điểm của thuật toán

mất nhiều thời gian tính toán.

2.4 Thuật toán K-mean2.4.1 Định nghĩa

Thuật toán K-means là một phương pháp trong học máy được sử dụng đểphân cụm dữ liệu thành các nhóm (clusters) dựa trên các đặc trưng tương tựnhau Mục tiêu của thuật toán này là tìm ra K centroids, trong đó K là một sốnguyên dương được xác định trước, để tối thiểu hóa tổng bình phương khoảngcách giữa mỗi điểm dữ liệu và centroid tương ứng của nó.

2.4.2 Quy trình của thuật toán

Quy trình làm việc của thuật toán K-means có thể được mô tả bằng cácbước cụ thể sau đây:

Trang 20

Bước 1: Khởi tạo Centroids Ban Đầu:

Bước 2: Gán Các Điểm Dữ Liệu Vào Các Clusters:

o Tính khoảng cách (thường được đo bằng khoảng cách Euclidean) từđiểm dữ liệu đó đến tất cả các centroids.

o Gán điểm dữ liệu vào cluster có centroid gần nhất.

Bước 3: Cập Nhật Centroids:

Bước 4: Kiểm Tra Điều Kiện Dừng:

đáng kể không Nếu không, thuật toán dừng lại.

Bước 5: Lặp Lại Bước 2-4:

bước 2 và tiếp tục quá trình lặp lại.

Bước 6: Kết Thúc:

vào các clusters), quá trình kết thúc và kết quả cuối cùng là việc các điểmdữ liệu được phân thành các clusters.

Ngày đăng: 18/07/2024, 14:52

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

TÀI LIỆU LIÊN QUAN

w