Tin học là một môn học mới và tương đối khó đối với học sinh THPT trong đó môn ngôn ngữ lập trình trong chương trình lớp 11 lại càng khó Thực trạng chung hiện nay là học sinh rất khó tiếp cận và tiếp thu kiến thức kỹ năng lập trình Một trong những nguyên nhân chính làm cản trở rất lớn đối với học sinh hiện nay là xử lý lỗi do lỗi lập trình hiện đang ở dạng ngôn ngữ tiếng Anh Luận văn đã nghiên cứu tổng quan kiến thức về xử lý ngôn ngữ tự nhiên và xử lý tiếng Việt Dịch tự động và dịch tự động tiếng Việt Đặc biệt luận văn đã nghiên cứu giải pháp thực nghiệm và xây dựng kho ngữ liệu song ngữ Anh Việt các lỗi lập trình Xây dựng được hệ thống dịch song ngữ Anh Việt các lỗi lập trình sử dụng mô hình mạng Nơron dịch các lỗi lập trình của ngôn ngữ lập trình Pascal và C Hệ thống có ý nghĩa thực tiễn góp phần phát triển CNTT của quốc gia nói chung và hỗ trợ giảng dạy học tập tin học tại các trường THPT nói riêng
d ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẶNG XUÂN HÙNG GIẢI PHÁP XÂY DỰNG KHO NGỮ LIỆU VÀ HỆ THỐNG DỊCH SONG NGỮ ANH - VIỆT CÁC LỖI LẬP TRÌNH HỖ TRỢ HỌC SINH THPT LUẬN VĂN THẠC SĨ -Khoa Học Máy Tính Đà Nẵng - Năm 2018 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẶNG XUÂN HÙNG GIẢI PHÁP XÂY DỰNG KHO NGỮ LIỆU VÀ HỆ THỐNG DỊCH SONG NGỮ ANH - VIỆT CÁC LỖI LẬP TRÌNH HỖ TRỢ HỌC SINH THPT Chuyên ngành: Khoa Học Máy Tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ Người hướng dẫn khoa học PGS, TS Huỳnh Công Pháp Đà Nẵng - Năm 2018 LỜI CAM ĐOAN Tôi xin cam đoan luận văn với tiêu đề “Giải pháp xây dựng kho ngữ liệu hệ thống dịch song ngữ Anh - Việt lỗi lập trình hỗ trợ học sinh THPT” hồn tồn kết nghiên cứu thân tơi chưa cơng bố cơng trình nghiên cứu người khác Trong trình thực luận văn, thực nghiêm túc quy tắc đạo đức nghiên cứu; kết trình bày luận văn sản phẩm nghiên cứu, khảo sát riêng cá nhân tôi; tất tài liệu tham khảo sử dụng luận văn trích dẫn tường minh, theo quy định Tơi xin hồn tồn chịu trách nhiệm tính trung thực số liệu nội dung khác luận văn Đà Nẵng, ngày 01 tháng 06 năm 2018 Tác giả luận văn Đặng Xuân Hùng LỜI CẢM ƠN Tác giả xin chân thành cảm ơn thầy giáo – PGS TS Huỳnh Công Pháp định hướng khoa học, hướng dẫn tận tình, chu đáo suốt trình thực luận văn Xin bày tỏ lòng biết ơn đến: - Lãnh đạo sở GD-ĐT Quảng Ngãi, lãnh đạo trường THPT Huỳnh Thúc Kháng bạn bè đồng nghiệp tạo điều kiện thuận lợi cho tác giả theo học chương trình sau đại học thực luận văn - Quý thầy cô giáo, lãnh đạo khoa Công nghệ thông tin – Trường ĐHBK Đà Nẵng, Trường Cao đẵng Công nghệ thông tin Đà Nẵng, tạo điều kiện thuận lợi cho tác giả suốt thời gian học tập thực đề tài trường! TÓM TẮT LUẬN VĂN GIẢI PHÁP XÂY DỰNG KHO NGỮ LIỆU VÀ HỆ THỐNG DỊCH SONG NGỮ ANH - VIỆT CÁC LỖI LẬP TRÌNH HỖ TRỢ HỌC SINH THPT Học viên: Đặng Xuân Hùng Chuyên ngành: Khoa học Máy tính Mã số: 60.48.01 Khóa: K33-QNG, Trường Đại học Bách khoa - ĐHĐN Tóm tắt - Tin học mơn học tương đối khó học sinh THPT mơn ngơn ngữ lập trình chương trình lớp 11 lại khó Thực trạng chung học sinh khó tiếp cận tiếp thu kiến thức, kỹ lập trình Một nguyên nhân làm cản trở lớn học sinh xử lý lỗi, lỗi lập trình dạng ngơn ngữ tiếng Anh Luận văn nghiên cứu tổng quan kiến thức xử lý ngôn ngữ tự nhiên xử lý tiếng Việt; Dịch tự động dịch tự động tiếng Việt Đặc biệt, luận văn nghiên cứu giải pháp, thực nghiệm xây dựng kho ngữ liệu song ngữ Anh - Việt lỗi lập trình; Xây dựng hệ thống dịch song ngữ Anh - Việt lỗi lập trình sử dụng mơ hình mạng Nơron dịch lỗi lập trình ngơn ngữ lập trình Pascal C Hệ thống có ý nghĩa thực tiễn, góp phần phát triển CNTT quốc gia nói chung hỗ trợ giảng dạy, học tập tin học trường THPT nói riêng Từ khóa – Kho ngữ liệu song ngữ; Hệ thống dịch song ngữ; lỗi lập trình; SOLUTIONS FOR BUILDING THE CORPUS AND THE ENGLISH VIETNAMESE BILINGUAL SYSTEM TO TRANSLATE PROGRAMING ERRORS TO SUPPORT TO THE HIGH SCHOOL STUDENTS Computing is a new and relatively difficult subject for high school students in which programming language in the 11th grade program is even harder The current situation is that students are difficult to access and acquire knowledge, programming skills One of the main reasons for this is that it is an error-free, programming error is currently in English language The dissertation has studied the knowledge of natural language processing and processing Vietnamese; Automatic translation and automatic translation of Vietnamese In particular, the thesis has studied solutions, experiments and building bilingual English-Vietnamese bilingual programming errors Build a bilingual EnglishVietnamese translation system for programming errors using neural network model to solve the programming errors of the Pascal and C programming languages The system has practical significance, contributing to the national IT development in general and support teaching, studying information technology in high schools in particular Keywords - Bilingual language bureau; Bilingual translation system; programming error; MỤC LỤC MỞ ĐẦU 1 Lý chọn đề tài Mục đích nghiên cứu Đối tượng phạm vi nghiên cứu 3.1 Đối tượng nghiên cứu: 3.2 Phạm vi nghiên cứu Phương pháp nghiên cứu 4.1 Phương pháp lý thuyết 4.2 Phương pháp thực nghiệm Ý nghĩa đề tài 5.1 Ý nghĩa khoa học: 5.2 Ý nghĩa thực tiễn: Cấu trúc luận văn CHƯƠNG - TỔNG QUAN 1.1 Xử lý ngôn ngữ tự nhiên xử lý tiếng Việt 1.1.2 Các bước xử lý ngôn ngữ tự nhiên 1.1.3 Một số ứng dụng xử lý ngôn ngữ tự nhiên 1.1.4 Tình hình xử lý tiếng Việt 1.1.5 Một số cơng trình ứng dụng xử lý tiếng Việt tiêu biểu [3] 1.2 Dịch tự động dịch tự động tiếng Việt 1.2.1 Khái niệm dịch tự động 1.2.2 Các phương pháp dịch tự động phổ biến 1.2.3 Tình hình dịch tự động tiếng Việt 10 1.2.4 Một số hệ thống dịch tự động dịch tự động tiếng Việt phổ biến 11 1.3 Kho ngữ liệu xử lý ngôn ngữ tự nhiên 12 1.3.1 Khái niệm kho ngữ liệu 12 1.3.2 Các loại kho ngữ liệu 12 1.3.3 Một số kho ngữ liệu phổ biến 12 1.3.4 Một số ứng dụng kho ngữ liệu 14 1.4 Thực trạng học lập trình Trường trung học phổ thông 15 1.4.1 Tình hình đào tạo ứng dụng cơng nghệ thơng tin Trường THPT 15 1.4.2 Thực trạng vấn đề bất cập việc giảng dạy học lập trình trường THPT 15 1.4.3 Một số giải pháp nâng cao chất lượng đào tạo công nghệ thông tin trường THPT 17 CHƯƠNG - XÂY DỰNG KHO NGỮ LIỆU SONG NGỮ ANH - VIỆT CÁC LỖI LẬP TRÌNH 20 2.1 Giới thiệu 20 2.2 Tổng quan lỗi lập trình 20 2.2.1 Lỗi cú pháp 20 2.2.2 Lỗi tả 20 2.2.3 Lỗi thời gian (timing error) 21 2.2.4 Lỗi chia cho 21 2.2.5 Gán sai liệu 21 2.2.6 Các lỗi biên: 21 2.2.7 Lỗi quản lý nhớ 22 2.2.8 Lỗi thuật toán 22 2.2.9 Lỗi lập luận 22 2.3 Tập liệu lỗi ngơn ngữ lập trình phổ biến giảng dạy trường THPT 22 2.3.1 Ngơn ngữ lập trình Pascal 22 2.3.2 Ngôn ngữ lập trình C 24 2.4 Các giải pháp thu thập xây dựng kho ngữ liệu [5] 25 2.4.1 Giải pháp thu thập xây dựng kho ngữ liệu từ tài nguyên đa ngữ 25 2.4.2 Các phương pháp phân lớp liệu để xây dựng kho ngữ liệu 26 2.4.3 Giải pháp hợp để xây dựng kho ngữ liệu lớn đồng 34 2.5 Giải pháp xây dựng kho ngữ liệu lỗi lập trình Anh - Việt [5] 37 2.5.1 Giải pháp thu thập lỗi lập trình tiếng Anh 37 2.5.2 Giải pháp dịch tập lỗi lập trình tiếng Anh sang tiếng Việt 38 2.5.3 Giải pháp xây dựng kho ngữ liệu lỗi lập trình Anh - Việt phục vụ xây dựng hệ thống dịch tự động sử dụng mạng nơ ron 38 CHƯƠNG - XÂY DỰNG HỆ THỐNG DỊCH SONG NGỮ ANH - VIỆT CÁC LỖI LẬP TRÌNH 41 3.1 Dịch tự động sử dụng mạng nơ ron [3] 41 3.1.1 Tổng quan dịch máy sử dụng mạng nơ ron 41 3.1.2 Các bước triển khai xây dựng hệ thống dịch máy sử dụng mạng nơ ron 41 3.1.3 Một số hệ thống dịch máy sử dụng mạng nơ ron 42 3.2 Cài đặt chương trình xây dựng kho ngữ liệu song ngữ Anh - Việt lỗi lập trình theo hướng mạng nơ ron 42 3.2.1 Tách từ mạng nơ ron tập liệu kho ngữ liệu lỗi lập trình 42 3.2.2 Xây dựng vector biểu diễn từ 44 3.2.3 Cài đặt kết thực nghiệm 45 3.3 Cài đặt chương trình mơi trường xây dựng hệ thống dịch song ngữ Anh Việt lỗi lập trình sử dụng mạng nơ ron 46 3.3.1 Mơ hình dịch máy mạng nơ ron 46 3.3.2 Cài đặt hệ thống dịch mạng nơ ron sử dụng mã nguồn mở OpenNMT 46 3.3.3 Kết chương trình đánh giá 47 KẾT LUẬN VÀ KIẾN NGHỊ 49 DANH MỤC TÀI LIỆU THAM KHẢO 50 QUYẾT ĐỊNH GIAO ĐỀ TÀI 52 QUYẾT ĐỊNH ĐIỀU CHỈNH TÊN ĐỀ TÀI 53 PHỤ LỤC A – DANH MỤC LỖI CỦA NGƠN NGỮ LẬP TRÌNH PASCAL 54 PHỤ LỤC B – DANH MỤC LỖI CỦA NGƠN NGỮ LẬP TRÌNH C 67 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT TT Viết tắt Viết đầy đủ ANN Artificial neural network CBOW Continuous Bag of Words CCG Combinatory Categorial Grammar CFG Context Free Grammar CNTT Công nghệ thông tin DG Dependency Grammar GPU Graphics processing unit IDE Integrated Development Environment IR Information Retrieval 10 MT Machine translation 11 NMT Neural Network Translation 12 QA Question Answer 13 RNN Recurrent Neural Networks 14 SVM Support Vector Machine 15 THPT Trung học phổ thông 16 XML eXtensible Markup Language DANH MỤC CÁC HÌNH ẢNH Hình Nội dung Trang Hình 2.1 Thơng báo lỗi ngơn ngữ lập trình Pascal 23 Hình 2.2 Thơng báo lỗi ngơn ngữ lập trình C 25 Hình 2.3 Bài tốn phân lớp liệu 27 Hình 2.4 Mơ hình định 29 Hình 2.5 Cấu trúc nơ ron (Neural) 31 Hình 2.6 Mơ hình mạng nơ ron nhân tạo 31 Hình 2.7 Tiến trình học mạng nơ ron 32 Hình 2.8 Hợp kho ngữ liệu song ngữ 34 Hình 2.9 Các cặp ngữ liệu tồn hai kho ngữ liệu 34 Hình 2.10 Cặp ngữ liệu khác ngữ nghĩa 35 Hình 2.11 Cặp ngữ liệu tồn hai kho ngữ liệu 35 Hình 2.12 Lưu đồ thuật toán hợp kho ngữ liệu song ngữ 36 Hình 2.13 Các bước thực giải pháp thu thập từ nguồn liệu thô 37 Hình 2.14 Các bước thực giải pháp trích từ từ điển điện tử 37 Hình 2.15 Sơ đồ dịch câu tiếng Anh sang tiếng Việt 38 Hình 2.16 Các giải pháp tổ chức CSDL 38 Hình 2.17 Nguyên tắc hoạt động mạng RNN 39 Hình 2.18 Minh họa mã hóa – giải mã 40 Hình 3.1 Nội dung tập tin từ điển sử dụng mơ hình dịch thống kê dịch sử dụng mạng nơ ron 43 Hình 3.2 Mơ hình CBOW Skip-gram 44 71 return 0; } Lỗi 80 Lvalue required: thành phần bên trái lệnh gán phải biến Lỗi 81 main must have a return type of int: hàm main phải return kiểu int Lỗi 82 Misplaced break: break khơng nằm switch vịng lặp Lỗi 83 Misplaced continue: continue khơng nằm vịng lặp Lỗi 84 Misplaced else: else khơng có if Lỗi 85 Missing xxx before yyy: thiếu xxx trước yyy Lỗi 86 Missing function header (old-style): sai tiêu đề phần định nghĩa hàm (có thể thừa dấu; sau tiêu đề) Lỗi 87 Multiple declaration for 'identifier': trùng khai báo cho 'identifier' Lỗi 88 Need an identifer to declare: cần định danh cho khai báo Lỗi 89 No: following the?: không có: sau? cấu trúc tam phân (…? …: …) Lỗi 90 Not an allowed type: không cho phép kiểu (chẳng hạn, trả liệu kiểu mảng tĩnh cho hàm) Lỗi 91 Numeric constant too large: số lớn Lỗi 92 new line in constant: thiếu dấu ” Lỗi 93 operator [] missing ]: toán tử [] thiếu ] Lỗi 94 sizeof may not be applied to a function: tốn tử sizeof khơng thể áp dụng cho hàm Lỗi 95 Size of 'identifier' is unknown or zero: kích thước 'identifier' khơng biết Lỗi 96 Size of the type is unknown or zero: kích thước kiểu khơng biết Lỗi 97 Statement missing ‘;’: thiếu dấu ‘;’ Lỗi 98 Structure size too large: kích thước struct lớn Lỗi 99 Switch selection expression must be of integral type: biểu thức chọn switch phải kiểu nguyên Lỗi 100 unexpected end of file: thiếu } Lỗi 101 xxx undeclared identifier: thiếu khai báo xxx ... ngữ liệu hệ thống dịch song ngữ Anh - Việt lỗi lập trình hỗ trợ học sinh THPT? ?? Mục đích nghiên cứu - Đề xuất giải pháp xây dựng kho ngữ liệu lỗi lập trình - Xây dựng hệ thống dịch lỗi lập trình. .. Tập liệu lỗi số ngơn ngữ lập trình phổ biến; Các giải pháp thu thập xây dựng kho ngữ liệu; Giải pháp xây dựng kho ngữ liệu lỗi lập trình Anh - Việt Chương - Xây dựng hệ thống dịch song ngữ Anh. ..ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐẶNG XUÂN HÙNG GIẢI PHÁP XÂY DỰNG KHO NGỮ LIỆU VÀ HỆ THỐNG DỊCH SONG NGỮ ANH - VIỆT CÁC LỖI LẬP TRÌNH HỖ TRỢ HỌC SINH THPT Chuyên ngành: Khoa Học