Ứng dụng Naïve Bayes vào bài toán phân loại

Một phần của tài liệu Luận văn công nghệ thông tin xây dựng hệ thống phân loại tài liệu tiếng việt (Trang 42)

3.5.1Ý tƣởng

Ý tƣởng: cơ bản của cách tiếp cận Naïve Bayes là sử dụng xác suất có điều kiện giữa từ và chủ đề để dự đoán xác suất chủ đề của một văn bản cần phân loại. Điểm quan trọng của phƣơng pháp này chính là ở chỗ giả định rằng sự xuất hiện của tất cả các từ trong văn bản đều độc lập với nhau. Giả định đó làm cho việc tính toán NB hiệu quả và nhanh chóng hơn các phƣơng pháp khác vì không sử dụng việc kết hợp các từ để đƣa ra phán đoán chủ đề. Kết quả dự đoán bị ảnh hƣởng bởi kích thƣớc tập dữ liệu, chất lƣợng của không gian đặc trƣng…

Mô hình tổng quát việc phân loại:

Hình 3.3 Mô tả bƣớc xây dựng bộ phân lớp 3.5.1Hƣớng dẫn cài đặt

Thuật toán gồm 2 giai đoạn huấn luyện và phân lớp:

Huấn luyện: tính

Đầu vào:

 Các vector đặc trƣng của văn bản trong tập huấn luyện (Ma trận MxN, với M là số vector đặc trƣng trong tập huấn luyện, N là số đặc trƣng của vector).

 Tập nhãn/lớp cho từng vector đặc trƣng của tập huấn luyện. Đầu ra:

 Các giá trị xác suất và . Công thức tính đã làm trơn Laplace

 |docsi|: số văn bản của tập huấn luyện thuộc phân lớp i.

 |total docs|: số văn bản trong tập huấn luyện.

 m số phân lớp Cài đặt:

 Khởi tạo mảng A, B có kích thƣớc m.

 Duyệt qua các văn bản trong tập dữ liệu, đếm số văn bản trong mỗi phân lớp lƣu vào A.

 Tính xác suất cho từng phân lớp theo công thức trên và lƣu vào mảng B. Công thức tính đã làm trơn Laplace:

| |

Trong đó:

 | |: Số văn bản trong trong phân lớp i có đặc trƣng thứ k mang giá trị xk. (hay số văn bản trong lớp i, có xuất hiện hoặc không xuất hiện đặc trƣng k)

 : Số văn bản của tập huấn luyện thuộc phân lớp i.

 Số giá trị có thể có của đặc trƣng thứ k Cài đặt:

 Với vector đặc trƣng nhƣ mô tả bên trên, dk ở đây mang giá trị là 2, tƣơng ứng với xuất hiện và không xuất hiện. Do chỉ có 2 giá trị, ta có thể tính nhanh xác suất không xuất hiện theo công thức ̅

 Khởi tạo mảng 3 chiều C, chiều 1 có kích thƣớc là m (số phân lớp), chiều 2 có kích thƣớc là N (số đặc trƣng), chiều 3 có kích là 2 (dk) để lƣu các giá trị .

 Duyệt qua các văn bản trong tập dữ liệu, tiến hành thống kê các chỉ số cần thiết để tính xác suất theo công thức trên và lƣu vào mảng C.

Phân lớp:

 Vector đặc trƣng của văn bản cần phân lớp.

 Các giá trị xác suất và . Đầu ra:

 Nhãn/lớp của văn bản cần phân loại.

Công thức tính xác suất thuộc phân lớp i khi biết trƣớc mẫu X

∏ (adsbygoogle = window.adsbygoogle || []).push({});

Dựa vào vector đặc trƣng của văn bản cần phân lớp, áp dụng công thức trên tính xác suất thuộc từng phân lớp cho văn bản, và chọn ra lớp có xác suất cao nhất.

Bảng 3.1 Bảng phân lớp

Docs Var Bit Class

Doc1 1 0 Math Doc2 0 1 Comp Doc3 1 1 Comp Doc4 1 0 Math Doc5 0 1 Math Doc6 0 1 Comp ̅̅̅̅̅ ( ̅̅̅̅| ) ̅̅̅̅̅ ( ̅̅̅̅| ) Docnew = (1,0) Vậy văn bản mới thuộc lớp Math.

CHƢƠNG 4: XÂY DỰNG CHƢƠNG TRÌNH

Thông qua kiến thức có đƣợc tìm hiểu thuật toán phân loại văn bản chúng em đã xây dựng chƣơng trình phân loại tài liệu tiếng Việt thuộc lĩnh vực công nghệ thông tin.

Chƣơng trình đƣợc viết bằng ngôn ngữ Visual Basic dot NET. Chƣơng trình đƣợc xây dựng nhằm mục đích phân loại các bài báo khoa học thuộc 9 chuyên ngành trong lĩnh vực công nghệ thông tin, ngoài ra còn cho phép huấn luyện những đề tài theo ý muốn của ngƣời sử dụng khi có tập dữ liệu chuẩn. Kết nối cơ sở dữ liệu cho phép ngƣời dùng có thể thao tác thêm sửa xóa dữ liệu nhƣ: từ điển, từ phổ thông, chuyên ngành…vv.

4.1 Xây dựng cơ sở dữ liệu

Trong quá trình xây dựng chƣơng trình xây dựng phân loại văn bản cần trải qua các bƣớc nhƣ: huấn luyện văn bản, phân loại văn bản và chƣa kể đền các bƣớc nhỏ trong quá trình thực hiện nhƣ: tách từ, loại bỏ ký tự đặc biệt, xóa topsword, giữ lại các từ có nghĩa nên đòi hỏi phải có một cơ sở dữ liệu để lƣu trữ thông tin cần thiết

4.1.1Từ điển tiếng việt

Bảng 4.1 Thuộc tính thực thể

STT TÊN FIELD DỄN GIẢI KIỂU KÍCH CỠ

1 ChuyenNganhID Mã chuyên ngành Số nguyên

2 ChuyenNganh Tên chuyên ngành Chuỗi 100

3 UserID Mã tài khoản Số nguyên

4 Pass Mật khẩu tài khoản Chuỗi 50

5 UserName Tên tài khoản Chuỗi 50

6 Fullname Tên đầy đủ của tài khoản Chuỗi 50

7 Sex Giới tính Số nguyên

9 WordDic_ID Mã từ điển Số thực

10 WordDic Từ điển Chuỗi 256

11 TPT_ID Mã Từ phổ thông Số thực

12 TPT Từ phổ thông Chuỗi 256

13 Tu_ID Mã từ đƣợc tách Số nguyên

14 IDF Số văn bản có chứa từ Số thực

15 Tu Từ đƣợc tách Chuỗi MAX

16 WordWeight Trọng số của từ Số thực 17 TuCN_ID Mã từ chuyên ngành Số nguyên

18 TuCN Mã từ Số thực MAX

19 BaiBao_ID Mã bài báo Số nguyên (adsbygoogle = window.adsbygoogle || []).push({});

20 BaiBao Bài báo Chuỗi 256

21 DuongDanBB Đƣờng dẫn bài báo Chuỗi MAX

22 BaiBaoPL_ID Mã bài báo đã phân loại Số nguyên

23 BaiBaoPL bài báo phân loại Chuỗi

24 TenChuyenNganh Tên chuyên ngành Chuỗi 25 WordID Mã từ của file tạm Số nguyên

26 Word Từ của file tạm Chuỗi

4.1.2Mô tả thực thể

Bảng 4.2 Bảng Chuyên ngành

ChuyenNganh STT TÊN FIELD DỄN GIẢI KIỂU

ChuyenNganh_ID 1 ChuyenNganhID Mã chuyên ngành Số nguyên ChuyenNganh 2 ChuyenNganh Tên chuyên ngành Chuỗi

Tên thực thể: Chuyên ngành

Ý nghĩa: Dùng để lƣu trữ tên chuyên ngành

Bảng 4.3 Bảng tài khoản

tblUser STT TÊN FIELD DỄN GIẢI KIỂU

UserID int 1 UserID Mã tài khoản Số nguyên

Pass 2 Pass Mật khẩu tài khoản Chuỗi

UserName 3 UserName Tên tài khoản Chuỗi

Fullname 4 Fullname Tên đầy đủ của tài khoản Chuỗi

Sex 5 Sex Giới tính Số nguyên

SystemRight 6 SystemRight Quyền truy cập Số nguyên

Thực thể:tblUser

Tên thực thể: Tài khoản đăng nhập chƣơng trình Ý nghĩa: Dùng để lƣu trữ thông tin ngƣời dùng

Bảng 4.4 Bảng từ điển

TuDien STT TÊN FIELD DỄN GIẢI KIỂU

WordDic_ID 1 WordDic_ID Mã từ điển Số thực

WordDic 2 WordDic Từ điển Chuỗi

Thực thể:TuDien

Tên thực thể: Từ điển tiếng Việt

Bảng 4.5 Bảng từ phổ thông

TuPhoThong STT TÊN FIELD DỄN GIẢI KIỂU (adsbygoogle = window.adsbygoogle || []).push({});

TPT_ID 1 TPT_ID Mã Từ phổ thông Số thực

TPT 2 TPT Từ phổ thông Chuỗi

Thực thể:TuPhoThong Tên thực thể: Từ phổ thông

Ý nghĩa: Dùng để lƣu trữ từ thông dụng thƣờng xuất hiện trong các bài báo

Bảng 4.6 Bảng từ đƣợc tách

TuDuocTach STT TÊN FIELD DỄN GIẢI KIỂU

Tu_ID 1 Tu_ID Mã từ đƣợc tách Số nguyên

Tu 2 IDF Số văn bản có chứa từ Số thực

IDF real 3 Tu Từ đƣợc tách Chuỗi

WordWeight 4 WordWeight Trọng số của từ Số thực ChuyenNganh_ID 5 ChuyenNganhID Mã chuyên ngành Số nguyên

Thực thể:TuDuocTach Tên thực thể: Từ đƣợc tách

Bảng 4.7 Bảng từ chuyên ngành

TuChuyenNganh STT TÊN FIELD DỄN GIẢI KIỂU

TuCN_ID 1 TuCN Mã từ đƣợc tách Số nguyên

TuCN 2 IDF Số văn bản có chứa từ Số thực

IDF 3 TuCN Từ đƣợc tách Chuỗi

WordWeight 4 WordWeight Trọng số của từ Số thực ChuyenNganh_ID 5 ChuyenNganhID Mã chuyên ngành Số nguyên

Thực thể:TuChuyenNganh Tên thực thể: Từ chuyên ngành

Ý nghĩa: Dùng để lƣu trữ từ đặc trƣng chuyên ngành dựa vào trọng số của từ đƣợc tách

Bảng 4.8 Bảng bài báo

BaiBao STT TÊN FIELD DỄN GIẢI KIỂU

BaiBao_ID 1 BaiBao_ID Mã bài báo Số nguyên

BaiBao 2 BaiBao Bài báo Chuỗi

DuongDanBB 3 DuongDanBB Đƣờng dẫn bài báo Chuỗi ChuyenNganh_ID 4 ChuyenNganhID Mã chuyên ngành Số nguyên

Thực thể: BaiBao Tên thực thể: Bài báo

Bảng 4.9 Bảng bài báo sau khi phân loại

BaiBaoPL STT TÊN FIELD DỄN GIẢI KIỂU

BaiBaoPL_ID 1 BaiBaoPL_ID Mã bài báo đã phân loại Số nguyên

BaiBaoPL 2 BaiBaoPL bài báo phân loại Chuỗi

DuongDanBB 3 TenChuyenNganh Tên chuyên ngành Chuỗi TenChuyenNganh 4 DuongDanBB Đƣờng dẫn bài báo Chuỗi (adsbygoogle = window.adsbygoogle || []).push({});

ChuyenNganh_ID 5 ChuyenNganhID Mã chuyên ngành Số nguyên

Thực thể:BaiBaoPL

Tên thực thể: Bài báo sau khi phân loại

Ý nghĩa: Dùng để lƣu trữ các bài báo sau quá trình phân loại

Bảng 4.10 Bảng biến tạm

Temp STT TÊN FIELD DỄN GIẢI KIỂU

WordID 1 WordID Mã từ của file tạm Số nguyên

Word 2 Word Từ của file tạm Chuỗi

WordWeight 3 WordWeight Trọng số của từ Số thực ChuyenNganh_ID 4 ChuyenNganhID Mã chuyên ngành Số nguyên

Thực thể:Temp

Tên thực thể: Bảng tạm

Ý nghĩa: Dùng để lƣu trữ các từ đƣợc tách của bài báo trong quá trình phân loại để từ đó dựa trên công thức tính toán xác định ra chuyên ngành của bài báo

Mô hình cơ sở dữ liệu

Bƣớc 1: Chuyển thực thể thành mối quan hệ tƣơng ứng và tạo khóa chính cho quan hệ.

Bảng 4.11 Bảng mối quan hệ thực thể Tên quan hệ Quan hệ

ChuyenNganh ChuyenNganh(ChuyenNganh_ID, ChuyenNganh)

tblUser tblUser(UserID, Pass, UserName, Fullname, Sex, SystemRight ) TuDien TuDien(WordDic_ID,WordDic)

TuPhoThong TuPhoThong(TPT_ID,TPT)

TuDuocTach TuDuocTach(Tu_ID,Tu,IDF,WordWeight)

TuChuyenNganh TuChuyenNganh(TuCN_ID,TuCN,IDF,WordWeight) BaiBao BaiBao(BaiBao_ID,BaiBao,DuongDanBB)

BaiBaoPL BaiBaoPL(BaiBaoPL_ID,BaiBaoPL,DuongDanBB) Temp Temp(WordID,Word,WordWeight)

Bƣớc 2: Chuyển mối kết hợp thành quan hệ có khóa chính và khóa ngoại. Bảng 4.12 Bảng mối kết hợp của thực thể

Tên quan hệ Quan hệ

ChuyenNganh ChuyenNganh(ChuyenNganh_ID, ChuyenNganh)

tblUser tblUser(UserID, Pass, UserName, Fullname, Sex, SystemRight ) TuDien TuDien(WordDic_ID,WordDic)

TuPhoThong TuPhoThong(TPT_ID,TPT)

TuDuocTach TuDuocTach(Tu_ID,Tu,IDF,WordWeight,#ChuyenNganh_ID) TuChuyenNgan

h

TuChuyenNganh(TuCN_ID,TuCN,IDF,WordWeight,#ChuyenNganh _ID)

BaiBao BaiBao(BaiBao_ID,BaiBao,DuongDanBB,#ChuyenNganh_ID) BaiBaoPL BaiBaoPL(BaiBaoPL_ID,BaiBaoPL,DuongDanBB,#ChuyenNganh_ (adsbygoogle = window.adsbygoogle || []).push({});

ID)

4.1 Xây dựng giao diện phân loại văn bản 4.1.1Lƣu đồ phân loại văn bản 4.1.1Lƣu đồ phân loại văn bản

4.1.2Thiết kế giao diện

Giao diện chƣơng trình đƣợc thiết kế với mục đích đem lại sự dễ dàng trong việc huấn luyện cũng nhƣ phân loại văn bản

Hình 4.3 Giao diện chính chƣơng trình

Giao diện chính của chƣơng trình gồm:

- Textbox: Dùng để nhập văn bản hoặc lấy nội dung từ văn bản có sẵn - Button Tách Từ: Dùng để thực hiện thao tác tách từ từ textbox

- Button Thống kê: Dùng để thực hiện thao tác thống kê từ sau khi phân tách

- Button Phân Loại: Dùng để thực hiện thao tác xác định chuyên đề của văn bản

- DataGridView Tách Từ: Hiển thị danh sách từ đƣợc tách - DataGridView Thống Kê: Hiển thị danh sách từ đƣợc thống kê - Lable Hiển Thị: Hiện thị chuyên ngành của văn bàn đƣợc phân loại

4.1.3Xây dựng các chức năng

Huấn luyện văn bản

Hình 4.4 Huấn luyện văn bản

- Combobox Chuyên Ngành: Hiện thị các chuyên ngành

- Textbox Đƣờng dẫn thƣ mục: Chỉ đến thƣ mục cần huấn luyện - Textbox Thê chủ đề: Chủ đế muốn thêm vào

- Button Duyệt thƣ mục: Tìm chủ đề cần huấn luyện - Button Thêm chủ đề: Thao tác thêm chủ đề cần thêm vào - Button Hủy: Hủy bỏ thao tác huấn luyện

Phân loại văn bản

Hình 4.5 Phân loại văn bản

- Textbox File nguồn: Hiển thị đƣờng dẫn bài báo(.Doc)

- Textbox Đƣờng Dẫn: Hiển thị đƣờng dẫn thƣ mục chứa các bài báo - Button Duyệt File: Thực hiện thao tác đến file

- Button Duyệt Thƣ Mục: Thực hiện tao tác đến thƣ mục

- Datagrid View Bài báo: Danh sách các bài báo muốn phân loại

- Datagrid View Bài báo đã phân loại: Danh sách các bài báo cùng chuyên ngành của bài báo.

Quản lý cơ sở dữ liệu

Ngoài chức năng chính là huấn luyện và phân loại văn bản chƣơng trình còn cho phép quản lý các thông tin nhƣ: từ điển, từ phổ thông, chuyên ngành…vv

Quản lý chuyên ngành: Cho phép thao tác thêm, sửa, xóa chuyên ngành

Hình 4.6 Thông tin chủ đề

- Textbox Chuyên Ngành: Cho phép nhập liệu tên chuyên ngành - Button Thêm:Thực hiện thao tác thêm một chuyên ngành

- Button Sửa: Thực hiện thao tác sửa một chuyên ngành đã có sẵn trong cơ sở dữ liệu

- Button Xóa: Thực hiện thao tác xoá một chuyên ngành đã có sẵn trong cơ sở dữ liệu (adsbygoogle = window.adsbygoogle || []).push({});

Quản lý bài báo: Quản lý các bài báo đã sử dụng trong quá trình huấn luyện

Hình 4.7 Thông tin bài báo

- Textbox Bài Báo: Cho phép nhập liệu tên bài báo - Textbox Đƣờng Dẫn: Hiển thị đƣờng dẫn bài báo - Combobox Chuyên ngành: Hiển thị các chuyên ngành

- Button Duyệt: Thao tác lấy đƣờng dẫn bài báo và tên bài báo hiể thị trong Textbox Đƣờng Dẫn và Textbox Bài Báo

- Button Thêm:Thực hiện thao tác thêm một bài báo

- Button Sửa: Thực hiện thao tác sửa một bài báo đã có sẵn trong cơ sở dữ liệu

- Button Xóa: Thực hiện thao tác xoá một bài báo đã có sẵn trong cơ sở dữ liệu

- Datagrid View Bài báo: Hiển thị danh sách các bài báo

- Ngoài các chức năng kể trên chƣơng trình còn cho phép hiển thị bảng thống kê danh sách các bài báo theo chuyên ngành, demo phần tách từ để ngƣời dùng có thể hiểu rõ quá trình phân tách bài báo để tìm ra những từ đặc trƣng của bài báo đó.

CHƢƠNG 5: THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ

5.1 Ví dụ về chƣơng trình phân loại văn bản

Để minh họa cho thuật toán Naïve Bayes, ta có một folder chứa 27 bài báo chứ đƣợc phân loại thực quá trình phân loại theo các bƣớc.

Cho tập dữ liệu vào form phân loại:

Hình 5.1 Giao diện phân loại văn bản

Chƣơng trình sẽ tự động phân loại văn bản theo chuyên ngành đã học từ trƣớc dựa vào thuật toán Naïve Bayes.

Có thể xem quá trình thực hiện của chƣơng trình bằng cách vào thƣ mục Đầu tiên chƣơng trình sẽ convert văn bản .doc sang file .txt, thực hiện quá trình chứa những bài văn bản kiểm tra tách từ (xóa từ phổ thông, ký tự đặc biệt, so khớp từ điển) trong file .txt và lƣu lại với đuôi .temp.

Sau khi phân tách từ chƣơng trình sẽ tính các thông số cần thiết nhƣ: IDF, wordweight…vảo file Word_Count.temp, Word_Weight.temp để từ đó xác định ra chuyên ngành của bài báo

Kiểm tra kết quả phân loại các bài báo ta thu đƣợc

5.2 Đánh giá kết quả 5.2.1Dữ liệu đầu vào 5.2.1Dữ liệu đầu vào

Gồm tập dữ liệu đã phân loại và đƣợc thu thập đƣợc của trƣờng Đại học Khoa Học Tự Nhiên, hội thảo Fair, @ Cần Thơ gồm 9 chuyên đề sau:

Bảng 5.1 Bảng số liệu xử lý theo con ngƣời Thống kê bài báo

Stt Tập dữ liệu Số lƣợng

1 Các hệ thống tính toán đi động 23

2 Công nghệ đa phƣơng tiện 34

3 Công nghệ phần mềm 32

4 Cơ sở toán học của công nghệ thông tin 25

5 Hệ thống thông tin 40

6 Khoa học máy tính 26

7 Mạng máy tính và truyền thông 31

8 Trí tuệ nhân tạo 28 (adsbygoogle = window.adsbygoogle || []).push({});

5.2.2Kết quả thực nghiệm

Đây là bảng kết quả thu đƣợc từ chƣơng trình khi đã phân loại

Bảng 5.2 Bảng kết quả chƣơng trình phân loại văn bản tiếng Việt Kết quả chƣơng trình Stt Tập dữ liệu Phân loại bởi con ngƣời Văn bản phân loại chính xác bằng máy 1 Các hệ thống tính toán đi động 23 20

2 Công nghệ đa phƣơng tiện 34 30

3 Công nghệ phần mềm 32 28

4 Cơ sở toán học của công nghệ thông tin 25 22

5 Hệ thống thông tin 40 35

6 Khoa học máy tính 26 23

7 Mạng máy tính và truyền thông 31 27

8 Trí tuệ nhân tạo 28 23

5.2.3Đánh giá kết quả

Sau khi phân loại và so sánh với kết quả có sẵn ta thu đƣợc kết quả phần trăm

Một phần của tài liệu Luận văn công nghệ thông tin xây dựng hệ thống phân loại tài liệu tiếng việt (Trang 42)