Tìm hiểu kỹ thuật nhận dạng văn bản trong lớp ngôn ngữ la tinh

98 526 0
Tìm hiểu kỹ thuật nhận dạng văn bản trong lớp ngôn ngữ la tinh

Đ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

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG - - CHỬ ĐỨC THÀNH TÌM HIỂU KỸ THUẬT NHẬN DẠNG VĂN BẢN TRONG LỚP NGÔN NGỮ LA TINH LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH THÁI NGUYÊN, NĂM 2015 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG - - CHỬ ĐỨC THÀNH TÌM HIỂU KỸ THUẬT NHẬN DẠNG VĂN BẢN TRONG LỚP NGÔN NGỮ LA TINH Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐẶNG THỊ THU HIỀN THÁI NGUYÊN, NĂM 2015 LỜI CẢM ƠN Tôi xin chân thành cảm ơn Thầy giáo, Cô giáo khoa Công nghệ thông tin cán bộ, nhân viên phòng Đào tạo Sau đại học, Trường Đại học Công nghệ Thông tin Truyền thông - Đại học Thái Nguyên nhiệt tình giúp đỡ tạo điều kiện tốt cho suốt trình học tập trường Xin chân thành cảm ơn anh, chị bạn học viên lớp Cao học CK12H - Trường Đại học Công nghệ Thông tin Truyền thông – Đại học Thái Nguyên động viên, giúp đỡ nhiệt tình chia sẻ với kinh nghiệm học tập, công tác suốt khoá học Đặc biệt xin bày tỏ lòng biết ơn sâu sắc đến TS Đặng Thị Thu Hiền tận tình giúp đỡ hình thành hoàn chỉnh luận văn Mặc dù có nhiều cố gắng, song hạn hẹp thời gian, điều kiện nghiên cứu trình độ, luận văn không tránh khỏi khiếm khuyết Tôi chân thành mong nhận đóng góp ý kiến Thầy giáo, Cô giáo đồng nghiệp Một lần xin cảm ơn! Thái Nguyên, tháng 08 năm 2015 Người thực luận văn Chử Đức Thành MỤC LỤC MỞ ĐẦU CHƯƠNG I TỔNG QUAN VỀ NHẬN DẠNG 1.1 Tổng quan nhận dạng 1.1.1 Không gian biểu diễn đối tượng, không gian diễn dịch 1.1.2 Mô hình chất trình nhận dạng 1.2 Nhận dạng dựa phân hoạch không gian 1.2.1 Phân hoạch không gian 1.2.2 Hàm phân lớp hay hàm định 1.2.3 Nhận dạng thống kê 1.2.4 Một số thuật toán nhận dạng tiêu biểu tự học 10 1.3 Nhận dạng theo cấu trúc 13 1.3.1 Biểu diễn định tính 13 1.3.2 Phương pháp định dựa vào cấu trúc 13 1.4 Nhận dạng mạng nơron 15 1.4.1 Bộ não Nơron sinh học 15 1.4.2 Mô hình mạng nơron 17 CHƯƠNG II KỸ THUẬT NHẬN DẠNG BẰNG THỐNG KÊ 20 2.1 Bài toán 20 2.2 Nhận dạng có giám sát 21 2.3 Nhận dạng giám sát 25 2.3.1 Đặt toán 25 2.3.2 Giải toán trường hợp cho trước số k 25 2.3.3 Trường hợp số k chưa cho biết trước 28 2.4 Mô hình xích Markov 30 2.5 Đặc trưng ngôn ngữ tự nhiên 32 2.5.1 Tần số đơn tương đối ngôn ngữ Tiếng Anh, Tiếng Pháp, Tiếng Đức 33 2.5.2 Tần số đôi móc xích Tiếng Anh, Tiếng Pháp, Tiếng Đức 34 CHƯƠNG III THỰC NGHIỆM 38 3.1 Bài toán nhận dạng văn La Tinh 38 3.2 Thuật toán sử dụng tần số đơn 38 3.2.1.Xây dựng sở liệu để máy học 38 3.2.2.Phân biệt trực tiếp 42 3.2.3 Một số ví dụ 44 3.3 Thuật toán dựa xich Markov cấp hữu hạn trạng thái 46 3.3.1 Xây dựng sở liệu để máy học 46 3.3.2 Nhận biết trực tiếp 57 3.3.3 Một số ví dụ 59 3.4.Chương trình Demo 72 3.4.1 Giao diện chương trình 73 3.4.2 Xây dựng mẫu thử 74 3.4.3 Thực thi chương trình với thuật toán sử dụng tần số đơn 75 3.4.4 Thực thi chương trình với thuật toán dựa xích Markov cấp hữu hạn trạng thái 76 3.4.5 So sánh thuật toán 78 KẾT LUẬN 80 TÀI LIỆU THAM KHẢO 81 PHỤ LỤC 82 DANH MỤC CÁC HÌNH Hình 1.1 Sơ đồ tổng quát hệ nhận dạng Hình 1.2 Cấu tạo nơron sinh học 16 Hình 1.3 Mô hình nơron nhân tạo 18 Hình 3.1 Sơ đồ khối thuật toán sử dụng tần số đơn 43 Hình 3.2 Sơ đồ khối thuật toán dựa xich Markov cấp hữu hạn trang thái 58 Hình 3.3.Giao diện chương trình 73 Hình 3.4 Thực lấy liệu đầu vào 74 Hình 3.5 Màn hình thực thi thuật toán sử dụng tần số đơn 75 Hình 3.6 Kết hiển thị dang file.txt thuật toán sử dụng tần số đơn 76 Hình 3.7 Màn hình thực thi thuật toán dựa xích Markov cấp hữu hạn trạng thái 77 Hình 3.8 Kết hiển thị dang file.txt thuật toán dựa xích Markov cấp hữu hạn trạng thái 77 Hình 3.9 Sơ đồ biểu diễn độ xác hai thuật toán 78 Hình 3.10 Kết thuật toán sử dụng tần số đơn 78 Hình 3.11 Kết thuật toán dựa xích Markov cấp hữu hạn trạng thái 79 DANH MỤC CÁC BẢNG Bảng 2.1 Tần số đơn tương đối ngôn ngữ Anh, Pháp, Đức 33 Bảng 2.2 Bảng tần số đôi móc xích Tiếng Anh 35 Bảng 2.3 Bảng tần số đôi móc xích Tiếng Pháp 36 Bảng 2.4 Bảng tần số đôi móc xích Tiếng Đức 37 Bảng 3.1 Ước lượng hợp lí cực đại đặc trưng ngôn ngữ Anh, Pháp , Đức, Dãy ngẫu nhiên 39 Bảng 3.2 Ước lượng hợp lí cực đại đặc trưng ngôn ngữ Anh, Pháp , Đức, Dãy ngẫu nhiên 40 Bảng 3.3 Ước lượng hợp lí cực đại đặc trưng ngôn ngữ Anh, Pháp , Đức, 41 Bảng 3.4 Ước lượng hợp lí cực đại đặc trưng ngôn ngữ Anh, Pháp , Đức, 42 Bảng 3.5 Ước lượng đôi móc xích tiếng Đức 48 Bảng 3.6 Ước lượng đôi móc xích tiếng Pháp 49 Bảng 3.7 Ước lượng đôi móc sích tiếng Anh 50 Bảng 3.8 Ước lượng ma trận xác suất chuyển trạng thái P mô hình Markov ứng với ngôn ngữ tự nhiên tiếng Đức 53 Bảng 3.9.Ước lượng ma trận xác suất chuyển trạng thái P mô hình Markov ứng với ngôn ngữ tự nhiên tiếng Pháp 54 Bảng 3.10 Ước lượng ma trận xác suất chuyển trạng thái P mô hình Markov ứng với ngôn ngữ tự nhiên tiếng Anh 55 Bảng 3.11.Ước lượng ma trận xác suất chuyển trạng thái P mô hình Markov ứng với ngôn ngữ tự nhiên tiếng dãy ngẫu nhiên 56 MỞ ĐẦU Nhận dạng lý thuyết toán học có nhiều ứng dụng thực tiễn, nhận dạng tiếng nói, nhận dạng hình ảnh, nhận dạng chữ ký, phân loại ngôn ngữ , xây dựng tiêu chuẩn rõ ứng dụng phân tích mã v.v Trên giới nước có nhiều nhà nghiên cứu vấn đề có phần mềm áp dụng cho nhiều lĩnh vực khác nhau: phần mềm nhận dạng tiếng việt, phần mềm nhận dạng vân tay, phần mềm kiểm soát E-mail hệ thống Internet… Nhận dạng chữ toán hữu ích, quen thuộc ứng dụng nhiều thực tế đặc biệt lĩnh vực nhận dạng phân loại văn thu hút nhiều tác giả quan tâm nghiên cứu phương pháp nhận dạng khác nhau: logic mờ, giải thuật di truyền, mô hình xác suất thống kê, mô hình mạng nơ ron Đã có nhiều công trình nghiên cứu thực việc nhận dạng, phân loại văn La Tinh đạt tỷ lệ xác cao, nhiên ứng dụng chưa thể đáp ứng hoàn toàn nhu cầu người sử dụng nên ngày người ta tiếp tục nghiên cứu phương pháp nhận dạng tốt hướng đến dùng cho thiết bị di động, toán thời gian thực Sau tìm hiểu tiến công nghệ nhận dạng chữ La Tinh tính phần mềm nhận dạng chữ, tư vấn giáo viên hướng dẫn, lựa chọn hướng nghiên cứu thiết thực với đề tài: "Tìm hiểu kỹ thuật nhận dạng văn lớp ngôn ngữ La Tinh" Trong khuôn khổ luận văn, tập trung nghiên cứu, giải toán nhận dạng ngôn ngữ tự nhiên dựa vào phân hoạch không gian (nhận dạng theo thống kê toán học), lớp ngôn ngữ tiêu biểu nghiên cứu ngôn ngữ La Tinh Việc nghiên cứu quan trọng cần thiết, kết nghiên cứu có khả mở rộng ứng dụng việc xây dựng chương trình kiểm soát E-mail đặc biệt chương trình phân tích mã tự động, vấn đề cần thiết an ninh quốc phòng Đó ý nghĩa thực tiễn đề tài  Nội dung luận văn vấn đề cần giải Nghiên cứu trình Markov hữu hạn trạng thái Nghiên cứu xây dựng mô hình Markov ứng với ngôn ngữ tự nhiên : Tiếng Anh, Tiếng Pháp, Tiếng Đức Giải toán phân lớp đối tượng cho trường hợp số lớp biết trước số lớp chưa biết Nghiên cứu xây dựng ước lượng tham số xích Markov Ứng dụng toán kiểm định giả thiết thống kê (testing of statistic hypothesis) để giải toán nhận dạng ngôn ngữ Lập trình thử nghiệm  Phương pháp nghiên cứu Phương pháp nghiên cứu ứng dụng phương pháp toán học, nhận dạng xử lý ngôn ngữ, nghiên cứu khảo sát lý thuyết xây dựng thuật toán, lập trình kiểm thử thuật toán đánh giá Cụ thể: - Tìm hiểu cập nhật kiến thức phương pháp nhận dạng ngôn ngữ tự nhiên, trí tuệ nhân tạo, khảo sát lý thuyết mô hình, công cụ toán học, thiết kế xây dựng thuật toán, kỹ thuật tổ chức liệu ngôn ngữ lập trình - Tìm đọc báo, công trình nghiên cứu khoa học liên quan đến chủ đề nghiên cứu nước giới Cụ thể tài liệu kỹ thuật thống kê toán học trình Markov; quy luật ngôn ngữ trình ngẫu nhiên dừng, không hậu quả; kỹ thuật nhận dạng ngôn ngữ tự nhiên Hình thành tổng quan tương đối đầy đủ tình hình nghiên cứu liên quan đến chủ đề giới - Lập trình cài đặt số kỹ thuật nhận dạng ngôn ngữ La Tinh đánh giá kết  Cấu trúc luận văn chia thành chương: Chương 1: " Tổng quan nhận dạng ", trình bày tổng quan hướng nghiên cứu nhận dạng Chương 2: " Kỹ thuật nhận dạng thống kê ", trình bày ứng dụng kỹ thuật thống kê Toán học để nhận dạng ngôn ngữ tự nhiên tìm hiểu đặc trưng số ngôn ngữ tự nhiên tiêu biểu Chương 3: " Thực Nghiệm ", trình bày thuật toán nhận dạng văn La Tinh đưa kết với số mẫu ngôn ngữ điển hình CHƯƠNG I TỔNG QUAN VỀ NHẬN DẠNG 1.1 Tổng quan nhận dạng Nhận dạng trình phân loại đối tượng biểu diễn theo mô hình gán cho chúng vào lớp (gán cho đối tượng tên gọi) dựa theo quy luật mẫu chuẩn Quá trình nhận dạng dựa vào mẫu học biết trước gọi nhận dạng có giám sát hay học có giám sát (supervised learning); trường hợp ngược lại nhận dạng không giám sát hay học giám sát (unsupervised learning) 1.1.1 Không gian biểu diễn đối tượng, không gian diễn dịch - Không gian biểu diễn đối tượng: Các đối tượng quan sát hay thu thập được, thường biểu diễn tập đặc trưng hay đặc tính Như trường hợp xử lý ảnh, ảnh sau tăng cường để nâng cao chất lượng, phân vùng trích chọn đặc tính biểu diễn đặc trưng biên, miền đồng nhất,v.v Người ta thường phân đặc trưng theo loại như: đặc trưng tôpô, đặc trưng hình học đặc trưng chức Việc biểu diễn ảnh theo đặc trưng phụ thuộc vào ứng dụng Ở ta đưa cách hình thức việc biểu diễn đối tượng Giả sử đối tượng X (ảnh, chữ viết, dấu vân tay,v.v.); biểu diễn n thành phần (n đặc trưng): X={x1,x2, ,xn}; xi biểu diễn đặc tính Không gian biểu diễn đối tượng thường gọi tắt không gian đối tượng X ký hiệu là: X ={X1,X2, ,Xn} Xi biểu diễn đối tượng Không gian vô hạn Để tiện xem xét xét tập X hữu hạn - Không gian diễn dịch: Không gian diễn dịch tập tên gọi đối tượng Kết thúc trình nhận dạng ta xác định tên gọi cho đối tượng tập không gian đối Hình 3.7 Màn hình thực thi thuật toán xích Markov cấp hữu hạn trạng thái Để lưu kết ta nhận chọn (Lưu kết quả) hộp thoại (Save As) xuất , ta đặt tên file (File name) chọn (Save) Kết thuật toán lưu dạng tệp txt Hình 3.8 Kết hiển thị dang file.txt thuật toán xích Markov cấp hữu hạn 77 3.4.5 So sánh thuật toán Hình 3.9 Sơ đồ biểu diễn độ xác hai thuật toán Thuật toán sử dụng tần số đơn với số lượng mẫu thử 240 tệp bao gồm 80 tệp tiếng Anh, 80 tệp tiếng Pháp, 80 tệp tiếng Đức thực thi, thuật thuật toán nhận dạng xác 198 tệp tổng số 240 tệp Hình 3.10 Kết thuật toán sử dụng tần số đơn Vì thuật toán đơn tính tần số đơn (đếm số lần xuất ký tự (chữ cái) văn cần nhận dạng) làm số phép toán số học đơn giản 78 kết nhận dạng nhanh Điều quan trọng công tác thám mã tự động để tìm khóa Tuy nhiên thuật toán không hiệu số trường hợp đặc biệt; chẳng hạn mã kiểm tra mã chuyển vị thuật toán không phân biệt mã hay rõ đọc có nghĩa Thuật toán dựa xích Markov cấp hữu hạn trạng thái với số lượng mẫu thử 240 tệp bao gồm 80 tệp tiếng Anh, 80 tệp tiếng Pháp, 80 tệp tiếng Đức thực thi, thuật thuật toán nhận dạng xác 228 tệp tổng số 240 tệp Hình 3.11 Kết thuật toán dựa xích Markov cấp hữu hạn trạng thái Thuật toán dựa xích Markov cấp hữu hạn trạng thái Xây dựng ước lượng ma trận xác suất chuyển trạng thái mô hình Markov ứng với ngôn ngữ tự nhiên tiếng Đức, Pháp Anh Tính tần số đôi móc xích dãy ký tự khắc phục nhược điểm thuật toán sử dụng tần số đơn 79 KẾT LUẬN  KẾT QUẢ ĐẠT ĐƯỢC: Quá trình tìm hiểu kỹ thuật nhận dạng văn lớp ngôn ngữ La Tinh luận văn làm số công việc sau:  Trình bày vấn đề kỹ thuật nhận dạng nói chung, hướng nghiên cứu giới  Nghiên cứu trình Markov hữu hạn trạng thái  Nghiên cứu xây dựng mô hình Markov ứng với ngôn ngữ tự nhiên : Tiếng Anh, Tiếng Pháp, Tiếng Đức  Giải toán phân lớp đối tượng cho trường hợp số lớp biết trước số lớp chưa biết  Nghiên cứu xây dựng ước lượng tham số xích Markov  Ứng dụng toán kiểm định giả thiết thống kê (testing of statistic hypothesis) để giải toán nhận dạng ngôn ngữ  Đề xuất xây dựng thuật toán để nhận dạng văn (Anh, Pháp, Đức) lớp ngôn ngữ la tinh  Thuật toán thể máy tính ngôn ngữ C#, kết thử nghiệm tốt  HƯỚNG PHÁT TRIỂN: Thuật toán dựa xích Markov hữu hạn trạng thái mở rộng để nhận biết nhiều văn La tinh khác tiếng Việt, tiếng Indonesia, tiếng Italia.v.v Không thế, mở rộng sang ngôn ngữ tự nhiên phi la tinh khác tiếng Lào, Thái Lan, Tiếng Campuchia lớp ngôn ngữ tiếng Nhật , Trung, Triều Tiên 80 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Lương Mạnh Bá, Nguyễn Thanh Thuỷ (1999), Nhập môn xử lý ảnh số, Nhà xuất khoa học kỹ thuật, tr.154-170 [2] Hồ Văn Canh, Phạm Quốc Doanh (2002), Thuật toán nhận dạng ngôn ngữ tự nhiên, tr 3-20 [3] Trần Duy Hưng, Nguyễn Ngọc Cường (2002), Nhận dạng tự động ngôn ngữ tiếng Anh, Tạp chí "Tin học điều khiển học", Trung tâm Khoa học tự nhiên Công nghệ Quốc gia số 3/2002 [4] Hoàng Minh Tuấn, Một số vấn đề xây dựng siêu máy tính chi phí thay cho ứng dụng xử lý thông tin tính toán khoa học kỹ thuật, Luận văn Tiến sĩ kỹ thuật, Mã số 62.52.70.01 tr 35-55 [5] Nguyễn Viết Thế, Hồ Văn Canh ( 2010), Nhập môn Phân tích thông tin có bảo mật, NXB Thông tin Truyền thông Tiếng Anh [6] AndrewR.Web.2002 John Wiley & Sons, Ltd Statistical Pattern Recognition, Second Edition [7] Richard O Duda, Peter E Hart, David G Stork Wiley-interscience “Bayesian decision theory”, Pattern Classification, Second Edition: 39-78 [8] Wilks, S S 1962 Mathematical Statitics New York: John Wiley Mark Stam, Richar M.Low ( 2007 ): Applied Cryptanalysis Breaking ciphers in the Real World A John wiley & sons, Inc, publication 2007 81 PHỤ LỤC CẤU TRÚC CÁC LỚP TRONG CHƯƠNG TRÌNH Cấu trúc chung  Lớp Program: đầu vào chương trình, gọi đến lớp MainFrom  Lớp MainForm: lớp xử lý giao diện  Lớp SimpleRecognition: Xử lý thuật toán  Lớp MarkovRecognition: Xử lý thuật toán 2 Chi tiết lớp SimpleRecognition - Lớp thực việc nhận dạng ngôn ngữ theo thuật toán sử dụng tần số xuất chữ câu Các hàm bao gồm:  caclConnect: lấy giá trị ma trận móc xích từ tệp  calcFreq: tính tần số xuất kí tự chuỗi đầu vào  calcS: tính tích vô hướng ma trận móc xích mảng tần số xuất 82 using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Windows.Forms; namespace TextRecognition { public class SimpleRecognition { public static Dictionary dictLang = new Dictionary { {0,"Không đọc được"}, {1,"Tiếng Anh"}, {2,"Tiếng Đức"}, {3,"Tiếng Pháp"} }; public static string fileContent; public static string fileData; public static int type = 0; // Tần số đơn ngôn ngữ private static int[] freq; // Giá trị móc xích đọc từ tệp private static int[,] connect; public static void algorithm() { 83 type = 0; freq = new int[26]; connect = new int[4, 26]; calcFreq(); calcConnect(); int i = 0; double sValue = 0.0; while (i < 4) { sValue = calcS(i); if (sValue >= 0) { type = i; i = 4; } i++; } if (sValue < 0) { type = i - 1; } } // Tính tần số đơn public static void calcFreq() { using (FileStream fs = File.Open(fileContent, FileMode.Open)) using (BufferedStream bs = new BufferedStream(fs)) using (StreamReader sr = new StreamReader(bs)) { string s; while ((s = sr.ReadLine()) != null) { for (int i = 0; i < s.Length; i++) { if ('A'

Ngày đăng: 04/08/2016, 10:49

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