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

Tiểu luận môn Máy học và ứng dụng THUẬT TOÁN NAÏVE BAYES ỨNG DỤNG BỎ DẤU TIẾNG VIỆT TỰ ĐỘNG CHO VĂN BẢN KHÔNG DẤU

18 1K 2

Đ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 18
Dung lượng 788,45 KB

Nội dung

---o0o--- Báo cáo chuyên đề MÁY HỌC VÀ ỨNG DỤNG THUẬT TỐN NẠVE BAYES ỨNG DỤNG BỎ DẤU TIẾNG VIỆT TỰ ĐỘNG CHO VĂN BẢN KHƠNG DẤU GV hướng dẫn: PG.TS VŨ THANH NGUYÊN... Mở đầu Việc xử lý

Trang 1

-o0o -

Báo cáo chuyên đề

MÁY HỌC VÀ ỨNG DỤNG

THUẬT TỐN NẠVE BAYES

ỨNG DỤNG BỎ DẤU TIẾNG VIỆT

TỰ ĐỘNG CHO VĂN BẢN KHƠNG DẤU

GV hướng dẫn: PG.TS VŨ THANH NGUYÊN

Trang 2

Mục lục

Lời cảm ơn 3

Mở đầu 4

I Giới thiệu bài tốn bỏ dấu tự động cho đoạn văn bản khơng dấu: 5

1.1 Sơ lược bài tốn: 5

1.2 Hướng giải quyết: 5

II Các chương trình đã cĩ: 5

1 AMPad[1] 5

2 VietPad.Net[2]: 6

III Phân tích các phương pháp giải quyết bài tốn: 7

1 Phương pháp LRMM: 7

2 Thuật tốn Nạve Bayes và mơ hình đề xuất: 9

2.1 Sơ lược về thuật tốn Bayes: 9

2.3 Tiền xử lý: 10

2.4 Tách câu: 10

2.5 Tìm các khả năng đánh dấu của từ: 11

2.6 Tính trọng số để tìm câu thích hợp: 12

2.5 Phương pháp huấn luyện: 13

IV Chương trình demo: 14

1 Chương trình huấn luyện: 14

2 Chương trình ứng dụng bỏ dấu tự động: 14

3 Hướng cải tiến: 17

V Tài liệu tham khảo: 18

Trang 3

Lời cảm ơn

Máy học được ứng dụng rộng rãi trong nhiều lĩnh vực cuộc sống Nó giúp giải quyết nhiều bài toán mà đòi hỏi con người hàng trăm hoặc ngàn năm mới giải quyết được Kiến thức về máy học là kiến thức thiết yếu và quan trọng trong con đường học tập và nghiên cứu

Em xin chân thành cám ơn Thầy, PGS.TS Vũ Thanh Nguyên đã định hướng, giúp

đỡ và hướng dẫn em hoàn thành môn chuyên đề này, mở đầu cho con đường nghiên cứu chuyên sâu về máy học cũng như khoa học máy tính sau này

Trang 4

Mở đầu

Việc xử lý văn bản khơng dấu tự động đã là bài tốn đặt ra từ khi người Việt Nam bắt đầu sử dụng Internet Bắt nguồn từ việc những hệ thống email ban đầu khơng hỗ trợ tốt tiếng Việt Unicode, cho đến những thơng tin trao đổi qua chat do người Việt khơng sử dụng được các bộ gõ tiếng Việt trong thời gian làm quen với máy tính

Qua một thời gian dài gần 10 năm, tình hình trên cĩ khả quan hơn Tuy nhiên sự bùng nổ thiết bị di động ngày nay lại một lần nữa đưa người Việt Nam trở về với bài tốn của thập kỉ trước: bài tốn bỏ dấu tự động cho các tin nhắn khơng dấu

Mặc dù hiện nay, các thiết bị di động hầu hết hỗ trợ bộ gõ tiếng Việt mặc định, nhưng giới trẻ vẫn sử dụng tiếng Việt khơng dấu như một cách tiết kiệm thời gian và cơng sức, qua đĩ gây ra những lỗi khơng đáng cĩ Chính vì vậy, xây dựng một bộ bỏ dấu tiếng Việt tự động với tỉ lệ chính xác cao nhằm hỗ trợ cho việc này là một nhu cầu thiết yếu nhưng ít người cịn quan tâm

Qua nội dung của bài báo cáo này, em xin giới thiệu một số phương pháp đã được

sử dụng và giới thiệu việc ứng dụng phương pháp máy học – cụ thể là thuật tốn Nạve Bayes – vào việc xử lý bài tốn trên

Trang 5

I Giới thiệu bài toán bỏ dấu tự động cho đoạn văn bản không dấu:

1.1 Sơ lược bài toán:

Bài toán được phát biểu đơn giản như sau:

- Cho một đoạn văn bản tiếng Việt không dấu, chuyển văn bản này thành có dấu với độ chính xác càng cao càng tốt

- Áp dụng thêm các mô hình hỗ trợ ra quyết định bỏ dấu trong trường hợp nhập nhằng

- Chỉ xử lý các văn bản Unicode

1.2 Hướng giải quyết:

Trong nội dung của bài báo cáo sẽ cài đặt và sử dụng mô hình dựa trên công thức xác suất Bayes làm cơ sở nghiên cứu, được cài đặt dựa trên việc tách cụm 2 từ và 3 từ để

so sánh và đối chiếu

Sau đây ta sẽ xem qua một số chương trình hiện có và nghiên cứu sơ bộ về cách hoạt động của chúng

II Các chương trình đã có:

1 AMPad [1]

AMPad (phiên bản cũ là AutoMark) là sản phẩm đầu tiên tiên phong trong lĩnh vực

bỏ dấu văn bản không dấu

Trang 6

Chương trình AMPad

Không chỉ đơn thuần hỗ trợ bỏ dấu cho văn bản không dấu, chương trình còn hỗ trợ

bỏ dấu tự động trực tiếp trong khi gõ (bỏ dấu online)

Tuy nhiên, chương trình đã rất lâu không có phiên bản cập nhật

2 VietPad.Net [2] :

Là chương trình hỗ trợ soạn thảo văn bản đơn giản thay thế Notepad với khả năng

hỗ trợ Unicode tốt, VietPad còn hỗ trợ thêm bộ gõ đơn giản và chức năng bỏ dấu tiếng Việt cho đoạn văn bản không dấu

VietPad.Net được xây dựng trên nền tảng Net 2.0 và có cả phiên bản Java hỗ trợ chạy tốt trên các hệ điều hành khác như Linux và MacOSX

VietPad phiên bản NET

VietPad là phần mềm mã nguồn mở, được cung cấp miễn phí tại

http://vietpad.sourceforge.net/

Trang 7

Mô hình bỏ dấu tự động VietPad sử dụng là LRMM, gần giống như AMPad nhưng

dữ liệu được tăng lên và độ chính xác được nâng lên rõ rệt

Ngữ liệu bỏ dấu tự động của VietPad.NET

III Phân tích các phương pháp giải quyết bài toán:

1 Phương pháp LRMM:

Mô hình LRMM được sử dụng chủ yếu trong hầu hết các phần mềm bỏ dấu tự động

và cho kết quả khá cao, đồng thời cách triển khai của phương pháp này khá đơn giản, ngữ liệu tạo ra nhỏ và dễ sử dụng.[3]

Trang 8

Mô hình bỏ dấu của VietPad

Vd: với câu “Nhung van de ve giai quyet nguon nuoc sach cho nguoi dan tren

dia ban thanh pho se duoc chu trong trong nam toi” sẽ được VietPad tách thành

Nhung van / de ve / giai quyet / nguon nuoc / sach / cho / nguoi dan / tren dia ban / thanh pho / se duoc / chu trong / trong / nam toi

Sau bước so khớp, sẽ điền được câu kết quả: Nhưng vẫn để về giải quyết nguồn

nước sách cho người dân trên địa bàn thành phố sẽ được chú trọng trong năm tới

Trang 9

Như vậy, độ chính xác của phương pháp này phụ thuộc nhiều vào phương pháp tách từ Tuy nhiên, việc tách từ, nhất là tách từ cho tiếng Việt đến nay vẫn chưa cĩ cách giải quyết triệt để

2 Thuật tốn Nạve Bayes và mơ hình đề xuất:

2.1 Sơ lược về thuật tốn Bayes:

Nạve Bayes (NB) là phương pháp phân loại dựa vào xác suất được sử dụng rộng rãi trong lĩnh vực máy học, được sử dụng lần đầu tiên trong lĩnh vực phân loại bởi Maron vào năm 1961, sau đĩ trở nên phổ biến dùng trong nhiều lĩnh vực như trong các cơng cụ tìm kiếm, bộ lọc email… [5]

Thuật tốn Nạve Bayes dựa trên định lý Bayes được phát biểu như sau:

𝑃(𝑌|𝑋) = 𝑃(𝑋𝑌)

𝑃(𝑋) =

𝑃(𝑋|𝑌)𝑃(𝑌) 𝑃(𝑋) Theo định lý Bayes[4]:

𝑃(𝐶𝑖|𝑋) = 𝑃(𝑋|𝐶𝑖)𝑃(𝐶𝑖)

𝑃(𝑋) Theo tính chất độc lập điều kiện:

𝑃(𝑋|𝐶𝑖) = ∏ 𝑃(𝑥𝑘|𝐶𝑖)

𝑛

𝑘=1

Trong đĩ:

 𝑃(𝐶𝑖|𝑋) là xác suất thuộc phân lớp i khi biết trước mẫu X

 𝑃(𝐶𝑖) xác suất là phân lớp i

 𝑃(𝑥𝑘|𝐶𝑖) xác suất thuộc tính thứ k mang giá trị xk khi đã biết X thuộc phân lớp i

Trang 10

2.2 Mô hình đề xuất:

Mô hình đề xuất gồm các bước thực hiện: tiền xử lý, tách câu, xác định khả năng bỏ dấu của cụm từ (cụm 2 hay 3 từ), tính trọng số và lựa chọn câu kết quả

2.3 Tiền xử lý:

Là giai đoạn xóa các khoảng trắng thừa, lặp, xóa các kí tự không xử lý…

2.4 Tách câu:

Đoạn văn bản được tách thành từng câu và xử lý bỏ dấu trên từng câu này để đảm bảo tốc độ cho chương trình, vì các đơn vị từ và ngữ giữa các câu là không liên quan đến nhau trong phương pháp bỏ dấu tự động bằng thống kê

Văn bản không dấu

Tiền xử lý

Tách câu

Xác định khả năng bỏ dấu firstmark.txt

Tính trọng số cho các vector từ

(cụm 2 hoặc 3 từ)

Lựa chọn câu có trọng số thích hợp

vector.txt

Trang 11

Câu không đơn thuần chỉ được xác định bằng các dấu hết câu (như chấm, chấm than, chấm hỏi, xuống dòng…) mà còn được xác định bằng các kí tự ngắt như phẩy, ngoặc đơn, dấu nháy…

Vd: ta có câu: Hom nay, troi mua rat to

Thì đưa vào bộ tách câu, ta sẽ được 2 câu là “hom nay” và “troi mua rat to” và xử lý bỏ dấu trên 2 câu này

2.5 Tìm các khả năng đánh dấu của từ:

Tập tin firstmark.txt chứa các khả năng bỏ dấu của 1 từ, qua đó ta sẽ thiết lập được các cách bỏ dấu có thể có của 1 câu

VD: ta đưa vào câu: Troi mua rat to

Tập tin firstmark.txt có các thông tin:

troi|trời mua|mua,mưa rat|rát,rất to|to,tô

Ta sẽ có các cách bỏ dấu:

Và có được các khả năng bỏ dấu câu:

- trời mua rát to

- trời mua rát tô

Trang 12

2.6 Tính trọng số để tìm câu thích hợp:

Các câu được tạo sẽ được tra theo từ để tính trọng số vector và chọn ra câu thích hợp nhất

VD với ví dụ ở trên, ta có một số câu ứng viên:

- trời mua rát to

- trời mua rát tô

- trời mua rất to

- trời mua rất tô

- trời mưa rát to

- trời mưa rất to

Tập tin trọng số dict.txt được bố trí như sau:

trời mưa|0.381067832267509

mưa rất|0.600380292102955

rất to|0.406428366841093

mưa bão|0.449865294270964

thiên tai|0.38932132107303

tai đứt|0.600380292102955

đứt cáp|0.515870488101529

cáp quang|0.485767488535131

Tra theo bảng trọng số, ta có trọng số của câu:

- trời mưa rất to: 0.381067832267509 + 0.600380292102955 + 0 + 0

- trời mưa rát to: 0.381067832267509 + 0 + 0 + 0

Như vậy, câu “trời mưa rất to” có trọng số nhỏ nhất, ta chọn câu này để xuất ra (mỗi từ đôi – cụm 2 từ – không có, ta tính là w=0)

Tương tự trên cho cách tính theo cụm 3 từ

Trang 13

2.5 Phương pháp huấn luyện:

Dữ liệu được thống kê từ hơn 20.000 file là các bài báo được lấy ngẫu nhiên từ Internet, được rút trích và tổng hợp thành 2 tập tin:

- Tập tin firstmark: ghi nhận các khả năng bỏ dấu của từng từ

- Tập tin vector.txt: ghi nhận đặc trưng của vector và trọng số của vector đó VD: ta có đoạn văn bản “Trợ lý Bộ trưởng Ngoại giao – ông A đã đến thăm và làm việc với…” thì sau khi tách câu, ta được câu đầu tiên là:

“Trợ lý Bộ trưởng Ngoại giao”

Tập tin firstmark sẽ nhận thêm các giá trị:

tro|trợ ly|lý bo|bộ truong|trưởng ngoai|ngoại giao|giao Tập tin vector (cụ thể là vector với đặc trưng là từng cặp 2 từ) sẽ nhận các giá trị:

trợ lý|[trọng số]

lý bộ|[trọng số]

bộ trưởng|[trọng số]

trưởng ngoại|[trọng số]

ngoại giao|[trọng số]

Trọng số được tính theo công thức Bayes:

Trang 14

IV Chương trình demo:

1 Chương trình huấn luyện:

Chương trình nhằm mục đích học từ dữ liệu thô và tạo ra 2 tập tin firstmark.txt và vector.txt

Thời gian thống kê cho cụm 2 từ là khoảng 5 phút và cụm 3 từ là khoảng 20 phút

Tập tin tạo ra sau khi thống kê Với bộ ngữ liệu 27,557 tập tin, ta thống kê được:

2 Chương trình ứng dụng bỏ dấu tự động:

Trang 15

Giao diện chương trình bỏ dấu tự động Chương trình hỗ trợ bỏ dấu tự động theo 2 phương thức chi cụm 2 từ và 3 từ tích hợp

Trang 16

3 So sánh và đánh giá:

Thực hiện so sánh và thử bỏ dấu trên 10 văn bản được chọn ngẫu nhiên, ta thu được kết quả như sau:

(độ chính xác dựa theo số từ đúng/tổng số từ trong văn bản, tính bằng %)

(cụm 2 từ)

mAuto (cụm 3 từ)

Như bảng so sánh, ta thấy sử dụng thuật tốn Nạve Bayes cho kết quả cao hơn hẳn so với

mơ hình LRMM

Trang 17

3 Hướng cải tiến:

Mặc dù đã đạt được độ chính xác cao và tốc độ chạy khơng thua kém gì so với phương pháp LRMM, sử dụng thuật tốn Nạve Bayes vẫn cịn gặp những vấn đề cần khắc phục:

- Sử dụng tài nguyên quá lớn (60MB Ram khi load các vector cho cụm 2 từ và 400MB khi sử dụng cụm 3 từ) làm chiếm dụng tài nguyên máy

- Thời gian chạy lâu nếu gặp từ/cụm từ cĩ quá nhiều khả năng bỏ dấu

- Phương pháp huấn luyện là khơng giám sát nên cịn nhiều sai sĩt và khơng thực sự chính xác cao

Trong tương lai, cĩ thể tích hợp thêm một bộ kiểm tra chính tả cơ bản sau khi đã thực hiện

bỏ dấu tự động Như vậy cĩ thể tăng thêm độ chính xác cho mơ mình bỏ dấu tự động này

Trang 18

V Tài liệu tham khảo:

[1] Trần Khiết Tâm - Phần mềm AMPad

[2] VietPad.NET - http://vietpad.sourceforge.net/

[3] Christopher D.Manning, Hinrich Schutze, Foundations Of Statistical Natural Language Processing

[4] PGT TS Vũ Thanh Nguyên, Bài giảng máy học và ứng dụng, trường Đại học Công

Nghệ Thông Tin, ĐHQG.HCM

[5] Andrew McCallum, Kamal Nigam, A Comparison of Event Models for Naive Bayes Text Classication

Ngày đăng: 21/05/2015, 12:50

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w