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

báo cáo sử lý ngôn ngữ tự nhiên đề tài phân nhóm văn bản sử dụng phương pháp học naïve bayes

16 625 0

Đ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 16
Dung lượng 541 KB

Nội dung

 Với một ví dụ mới z, thì z sẽ được phân vào lớp nào? Mục tiêu: xác định phân lớp phù hợp nhất với z b  Để tìm được phân lớp cĩ thể nhất đối với z  Giả sử trong phân loại Nạve Bayes:

Trang 1

ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN CƠNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG

- -BÀI TẬP LỚN Mơn: Xử Lý Ngơn Ngữ Tự Nhiên

Đề tài: Phân nhĩm văn bản sử dụng phương pháp học Nạve Bayes

GV hướng dẫn: PGS.TS Lê Thanh Hương

Sinh viên thực hiện:

Phạm Chiến Thắng 20082485 Nguyễn Mạnh Hoằng 20081088

Nguyễn Tuấn Anh 20080075

Hà Nội 04/2012

Contents

Trang 2

I Mơ tả bài tốn 3

II Phương pháp giải quyết bài tốn 4

1 Vector biểu diễn văn bản 4

2 Phân loại Nạve Bayes 4

3 Kịch bản ứng dụng 7

III Giao diện, chức năng chương trình 8

1 Chức năng phân tách và trainning dataset 8

2 Chức năng tiền xử lý 9

3 Chức năng phân loại văn bản 11

IV Đánh giá độ chính xác phân loại 13

V Kết luận 15

VI Phụ lục 15

Trang 3

I Mô tả bài toán.

Ngày nay cùng với sự phát triển ngày càng nhanh của internet là nhu cầu tìm kiếm, trong đó tìm kiếm văn bản là một trong những phần tìm kiếm chủ đạo nhất Việc phân loại văn bản theo các nhãn sẽ hỗ trợ rất nhiều cho việc truy vẫn

cơ sở dữ liệu, từ đó giúp nâng cao hiệu năng của các bộ tìm kiếm, nâng cao tổ chức dữ liệu, Bài toán phân loại văn bản được đặt ra để giải quyết vấn đề đó

a Đầu vào:

Một tập các văn bản biểu diễn dưới dạng vector với thuộc tính là các từ khóa

và số lần xuất hiện từ khóa của văn bản đó

b Xử lý:

Dựa vào vector biểu diễn mỗi văn bản, gán nhãn phù hợp cho văn bản đó

c Đầu ra:

Mỗi văn bản trong tập các văn bản đầu vào được gán nhãn phù hợp

Trang 4

II Phương pháp giải quyết bài tốn.

Nạve Bayes là một phương pháp học đơn giản và cho hiệu năng khá cao, rất phù hợp trong bài tốn phân loại văn bản, cụ thể việc áp dụng như sau:

1 Vector biểu diễn văn bản.

 Mỗi văn bản trong dataset được biểu diễn dưới dạng vector n+1 chiều:

keyword[1] numberRepeated[1]

keyword[2] numberRepeated[2]

keyword[n] numberRepeated[n]

label labelName

Với n là số từ khĩa trong văn bản

 Tập các label cĩ thể phân loại:

1 Antibodies

2 Carcinoma

4 In-Vitro

5 Molecular-Sequence-Data

6 Pregnancy

7 Prognosis

8 Receptors

9 Risk-Factors

10 Tomography

2 Phân loại Nạve Bayes.

 Biểu diễn bài tốn phân loại:

Một tập học D_train, trong đĩ mỗi ví dụ học x được biểu diễn là một

vector n+1 chiều (keyword[1], keyword[2], …, keyword[n], label)

 Tập các nhãn lớp (label) C = { Antibodies , Carcinoma , DNA, In-Vitro, Molecular-Sequence-Data, Pregnancy, Prognosis, Receptors, Risk-Factors, Tomography}

Trang 5

 Với một ví dụ mới z, thì z sẽ được phân vào lớp nào?

 Mục tiêu: xác định phân lớp phù hợp nhất với z

b

 Để tìm được phân lớp cĩ thể nhất đối với z

 Giả sử trong phân loại Nạve Bayes: xác suất từ khĩa tj xuất hiện đối với lớp

ci là độc lập đối với vị trí của từ khĩa đĩ trong văn bản

 Đối với mỗi phân lớp ci, tính giá trị likehood của văn bản d đối với ci:

 Phân lớp văn bản d thuộc vào lớp c*

 Vấn đề 1:

 Nếu khơng cĩ ví dụ nào gắn với phân lớp ci cĩ giá trị thuộc tính xj P(xj, ci) = 0, và vì vậy:

Trang 6

 Giải pháp: sử dụng ước lượng Bayes

 Vấn đề 2:

 Giới hạn về độ chính xác trong tính toán của máy tính

 P(xj, ci) < 1, đối với mọi thuộc tính xj và phân lớp ci

 Trong dataset nhóm sử dụng có số thuộc tính rất lớn nên:

 Giải pháp: sử dụng hàm logarit cho các giá trị xác suất:

3 Kịch bản ứng dụng.

Giai đoạn học (trainning phase), sử dụng một tập học Đối với mỗi phân lớp

có thể (mỗi nhãn lớp) ci ∈ C:

 Tính giá trị xác suất trước: P(ci)

 Đối với mỗi giá trị thuộc tính xj, tính giá trị xác suất xảy ra của giá trị thuộc tính đó đối với một phân lớp ci: P(xj|ci)

Giai đoạn phân lớp (classification phase), đối với một ví dụ mới:

 Đối với mỗi phân lớp ci ∈ C, tính giá trị của biểu thức:

Trang 7

 Xác định phân lớp của z là có thể nhất c*:

Trang 8

III Giao diện, chức năng chương trình.

1 Chức năng phân tách và trainning dataset.

Bộ dataset sử dụng trong chương trình là được lấy từ bộ dữ liệu của weka, link download tài liệu: http://www.cs.waikato.ac.nz/ml/weka/index_datasets.html

Khởi động ứng dụng sẽ cho phép người dùng lựa chọn tỉ lệ giữa bộ D_train và

D_test sau đó người dùng có thể sử dụng chức năng “Trainning” Chức năng

này thực hiện hai công việc chính:

Tách bộ dataset làm bộ D_train và D_test.

Tính xác suất trước P(ci) cho mỗi phân lớp ci và xác xuất xuất hiện của mỗi từ khóa trong bộ từ khóa với mỗi phân lớp tương ứng

Trang 9

Sau khi thực hiện, các kết quả được lưu vào CSDL để tiện tính toán và phân loại sau này

2 Chức năng kiểm thử.

Khi chọn chức năng này chương trình sẽ thực hiện gán nhãn mới cho các văn bản trong tập dataset sau đó tính toán độ chính xác phân loại của chương

Độ chính xác phân loại đối với mỗi nhãn được đánh giá độ chính xác (Precision) Sau đó độ chính xác của chương trình sẽ được đánh giá bằng Macro-Averaging, là trung bình cộng của độ chính xác phân loại đối với mỗi phân lớp

Trang 10

Kết quả sẽ được lưu vào CSDL để kiểm tra, xem xét kết quả.

Trang 11

3 Chức năng phân loại văn bản.

Chức năng này sẽ thực hiện phân loại văn bản thực đã qua bước tiền xử lý Kết quả được lưu vào CSDL và trình bày cho người dùng xem dưới dạng:

Trong đó bảng “Result on real data” cho biết tên văn bản, nhãn đầu vào và nhãn được ứng dụng gán cho dựa vào giải thuật

Trang 12

Khi bấm vào “More detail…” hệ thống sẽ cho biết thông tin chi tiết về văn bản gồm: nội dung văn bản, các từ khóa xuất hiện trong tập từ khóa, xác suất phân loại với các nhãn lớp

Trang 13

IV Đánh giá độ chính xác phân loại.

a Phương pháp đánh giá.

Trong chương trình phân loại nhóm em sử dụng phương pháp đánh giá Hold-out (Splitting) Việc lựa chọn phương pháp đánh giá này của nhóm là phù hợp với bộ dataset tương đối lớn (|D| = 11162)

Khi thực hiện kiểm thử, chương trình cho phép người dùng lựa chọn tỉ lệ

trong việc phân tách tập dữ liệu D thành D_train và D_test với các lựa chọn

70%-30%, 60%-40%, 50%-50%, 40%-60%

b Độ chính xác phân loại.

Trong chương trình nhóm em sử dụng hàm đánh giá độ chính xác phân loại

là Macro-Averaging

Kết quả thực hiện gán nhãn văn trong tập D_test, thực hiện với mỗi lựa chọn 5 lần,

lấy kết quả trung bình như sau:

Nhận xét:

- Độ chính xác phân loại của chương trình thay đổi không đáng kể khi thay

đổi tỉ lệ giữa D_train:D_test, điều này cho thấy bộ dữ liệu này lớn và phân

bố đều trên các nhãn

Trang 14

- Độ chính xác phân loại chưa cao (~80%), sở dĩ có kết quả như vậy vì các nhãn của các văn bản có nội dung khá gần nhau (đều về những vấn đề trong

y học), vì vậy với độ chính xác phân loại như vậy là hoàn toàn chấp nhận được

Trang 15

V Kết luận.

- Nạve Bayes là phương pháp cài đặt tương đối đơn giản, hiệu quả trong bài tốn phân loại văn bản

- Nạve Bayes thực hiện phân loại cho kết quả tốt

- Thời gian trả kết quả tương đối nhanh

- Cĩ thể dễ diễn giải với người dùng

VI Phụ lục.

- Chương trình demo được viết bằng java (jdk 1.6)

- Sử dụng IDE Netbean 6.9.1

- Sử dụng MySQL 1.2.17

- Sử dụng thư viện iText-2.1.7 để xử lý lấy nội dung file pdf

Cài đặt chương trình

- Tạo thư mục “Nạve Bayes” tại “C:/”

- Copy file config.cfg vào thư mục trên, sửa username và password vào MySQL cho chính xác

- Chạy file backup naiveBayesDocumentClassificationDatabase.sql để copy data cho chương trình

- Chạy chương trình bằng file Classifier.jar

Trang 16

- DANH MỤC TÀI LIỆU THAM KHẢO

1 Bài giảng Xử lý ngôn ngữ tự nhiên – PGS.TS Lê Thanh Hương

2 Bài giảng Học máy, Trí tuệ nhân tạo – TS Nguyễn Nhật Quang

3 http://www.cs.waikato.ac.nz/ml/weka/index_datasets.html

4 Etc…

Ngày đăng: 23/10/2014, 23:30

TỪ KHÓA LIÊN QUAN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w