Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
2,2 MB
Nội dung
Lời cảm ơn Em xin đƣợc bày tỏ lòng biết ơn sâu sắc tới thầy giáo Đặng Quang Huy thầy giáo Vũ Mạnh Khánh - giảng viên trƣờng Đại học dân lập Hải Phòng tận tình hƣớng dẫn tạo điều kiện thuận lợi để em hoàn thành báo cáo thực tập tốt nghiệp Em xin chân thành cảm ơn tất thầy cô giáo khoa Công nghệ thông tin - Trƣờng Đại học dân lập Hải Phòng nhiệt tình giảng dạy cung cấp kiến thức quý báu để em hồn thành tốt đồ án tốt nghiệp Cuối cùng, em xin cảm ơn gia đình tất bạn tập thể lớp CT1001 động viên, góp ý trao đổi hỗ trợ cho em suốt thời gian vừa qua Em xin chân thành cảm ơn! Hải Phòng, ngày tháng năm.2009 Sinh viên MỤC LỤC Lời cảm ơn LỜIMỞ ĐẦU Chương : GIỚI THIỆU VỀXỬLÝNGÔNNGỮTỰNHIÊN I Tổng quan II Cơ sở khoa học II.1 Một số khái niệm II.2 Lý thuyết thông tin II.3 Quy trìnhxửlýngơnngữtựnhiên II.4 Một số thuật tốn phân tích cú pháp III Các ứng dụngxửlýngônngữtựnhiên 12 Chƣơng 2: NGỮ PHÁP TIẾNGANH 15 I Các tiếng anh: 15 II: Cách sửdụng số thì: 15 Thì đơn(The Simple Present Tense): 15 Thì tiếp diễn(The present continuous/progressive tense) 16 Thì hoàn thành(The Present Prefect Tense) 17 Thì hồn thành tiếp diễn(The Present Prefect continuousTense) 17 Thì khứ đơn(The Simple Past Tense) 18 Thì khứ tiếp diễn (The Past continuous Tense) 19 Thì tương lai đơn(The Simple Future Tense) 20 Chƣơng 3: GIỚI THIỆU NGÔNNGỮ VB 6.0 21 Giới thiệu 21 Các thao tác VB 21 Lập trình VB 24 3.1 Kiểu liệu - biến 24 3.2 Các cấu trúc lệnh VB 28 3.3 Các hàm xửlý chuỗi Vb6 29 Chƣơng 4: CHƢƠNG TRÌNH THỰC NGHIỆM 32 I Giới thiệu chƣơng trình 32 II Phát biểu toán 34 III Tƣ tƣởng, chiến lƣợc 34 IV Bộ liệu từ điển 35 V Chƣơng trình 36 VI Hạn chế hƣớng phát triển đề tài 63 KẾT LUẬN 64 TÀI LIỆU THAM KHẢO 65 Đồ án tốt nghiệp LỜIMỞ ĐẦU Xửlýngônngữtựnhiên (natural language processing - NLP) nhánh trí tuệ nhân tạo tập trung vào ứng dụngngônngữ ngƣời Trong trí tuệ nhân tạo xửlýngơnngữtựnhiên phần khó liên quan đến việc phải hiểu ý nghĩa ngơn ngữ-cơng cụ hồn hảo tƣ giao tiếp Cùng vói phát triển khoa học máy tính, việc nghiên cứu xửlýngơnngữtựnhiên hay cụ thể việc đƣa xửlýtiếng nói chữ viết vào máy tính đƣợc đầu tƣ mạnh mẽ khắp giới có Việt Nam Tuy đạt đƣợc nhiều thành tựu to lớn nhƣng công việc ngành khoa học trắc trở tiêu tốn nhiều công sức Đào Văn Trung – 100009 Đồ án tốt nghiệp Chương : GIỚI THIỆU VỀXỬLÝNGÔNNGỮTỰNHIÊN I Tổng quan Xửlýngơnngữxửlý thông tin đầu vào “dữ liệu ngôn ngữ” (dữ liệu cần biến đổi), tức liệu “văn bản” hay “tiếng nói” Các liệu liên quan đến ngơnngữviết (văn bản) nói (tiếng nói) dần trở nên kiểu liệu ngƣời có lƣu trữ dƣới dạng điện tử Đặc điểm kiểu liệu khơng có cấu trúc nửa cấu trúc chúng khơng thể lƣu trữ khuôn dạng cố định nhƣ bảng biểu Theo đánh giá công ty Oracle, có đến 80% liệu khơng cấu trúc lƣợng liệu lồi ngƣời có [Oracle Text] Với đời phổ biến Internet, sách báo điện tử, máy tính cá nhân, viễn thông, thiết bị âm thanh, … ngƣời ngƣời tạo liệu văn hay tiếng nói Vấn đề ta xửlý chúng, tức chuyển chúng từ dạng ta chƣa hiểu đƣợc thành dạng ta hiểu giải thích đƣợc, tức ta tìm thơng tin, tri thức hữu ích cho Giả sử có câu sau tiếng nƣớc ngoài: - “We meet here today to talk about Vietnamese language and speech processing.” - “Aujourd'hui nous nous réunissons ici pour discuter le traitement de langue et de parole vietnamienne.” - “Mы встрачаемся здесь сегодня, чтобы говорить о вьетнамском языке и обработке речи.” Nếu có dịch, có chƣơng trình máy tính dịch (biến đổi) chúng tiếng Việt, ta hiểu nghĩa câu là: “Hôm gặp để bàn xửlýngônngữtiếng nói tiếng Việt.”Nếu câu đƣợc lƣu trữ nhƣ tệp tiếng Anh, Pháp, Nga Việt nhƣ ta nhìn thấy trên, ta có liệu “văn bản” Nếu đọc câu này, ghi âm lại, ta chuyển chúng vào máy tính dƣới dạng tệp tín hiệu (signal) “tiếng nói” Tín hiệu sóng âm hai âm tiết tiếngViệt nhìn thấy nhƣ sau Hình : Tín hiệu sóng âm hai âm tiêt TiếngViệt Đào Văn Trung – 100009 Đồ án tốt nghiệp Tuy nhiên, văn thật (một báo khoa học chẳng hạn) có đến hàng nghìn câu, ta khơng phải có mà hàng triệu văn Web nguồn liệu văn khổng lồ, với thƣ viện điện tử − tƣơng gần sách báo xƣa nguồn âm đƣợc chuyển hết vào máy tính (chẳng hạn chƣơng trình nhận dạng chữ, thu nhập âm thanh, gõ thẳng vào máy) − sớm chứa hầu nhƣ toàn kiến thức nhân loại Vấn đề “xử lý” (chuyển đổi) đƣợc khối liệu văn tiếng nói khổng lồ qua dạng khác để ngƣời có đƣợc thông tin tri thức cần thiết từ chúng II Cơ sở khoa học II.1 Một số khái niệm a NgônngữtựnhiênNgônngữ hệ thống để giao thiệp hay suy luận dùng cách biểu diễn phép ẩn dụ loại ngữ pháp theo logic, bao hàm tiêu chuẩn hay thật thuộc lịch sử siêu việt Nhiều ngônngữsửdụng điệu bộ, âm thanh, lý hiệu, hay chữ viết, cố gắng truyền khái niệm, ý nghĩa, ý nghĩ, nhƣng mà nhiều khía cạnh nằm sát quá, khó phân biệt b XửlýngơnngữtựnhiênXửlýngônngữtựnhiên (natural language processing - NLP) nhánh trí tuệ nhân tạo tập trung vào ứng dụngngơnngữ ngƣời.Trong trí tuệ nhân tạo xửlýngơnngữtựnhiên phần khó liên quan đến việc phải hiểu ý nghĩa ngônngữ - cơng cụ hồn hảo tƣ giao tiếp c Trí tuệ nhân tạo Trí tuệ nhân tạo hay trí thơng minh nhân tạo (tiếng Anh: artificial intelligence hay machine intelligence, thƣờng đƣợc viết tắt AI) trí tuệ đƣợc biểu diễn hệ thống nhân tạo Thuật ngữ thƣờng dùng để nói đến máy tính có mục đích khơng định ngành khoa học nghiên cứu lý thuyết ứng dụng trí tuệ nhân tạo d Nhập nhằng Nhập nhằng ngônngữ học tƣợng thƣờng gặp, giao tiếp hàng ngày ngƣời để ý đến họ xửlý tốt tƣợng Nhƣng Đào Văn Trung – 100009 Đồ án tốt nghiệp ứng dụng liên quan đến xửlýngônngữtựnhiên phải thao tác với ý nghĩa từvựng mà điển hình dịch tự động nhập nhằng trở thành vấn đề nghiêm trọng Ví dụ câu cần dịch có xuất từ “đƣờng” nhƣ câu “ra chợ mua cho mẹ đƣờng” vấn đề nảy sinh cần dịch từ road hay sugar, ngƣời xác định chúng dễ dàng vào văn cảnh dấu hiệu nhận biết khác nhƣng với máy khơng Một số tƣợng nhập nhằng: Nhập nhằng ranh giới từ, Nhập nhằng từ đa nghĩa, Nhập nhằng từ đồng âm (đồng tự), Nhập nhằng từ loại II.2 Lý thuyết thông tin a Khái niệm Lý thuyết thông tin nghiên cứu về: Áp dụng cơng cụ tốn học việc lƣợng hóa data cho mục đích lƣu trữ truyền liệu Độ đo thông tin Entropy, số lƣợng bít trung bình cần thiết việc lƣu trữ hay truyền liệu Đóng vai trò quan trọngxửlý thơng tin phƣơng pháp thống kê, đặc biệt NLP b Entropy Entropy độ đo thông tin Entropy ~ hỗn độn, mờ, trái nghĩa với order, Đo độ không chắn: Entropy thấp -> Đo độ không chắn thấp ; Entropy cao -> Đo độ không chắn cao Trong vật lý: Entropy giảm lƣợng đƣợc sửdụng Ký hiệu p(x) phân bố biến ngẫu nhiên X không gian mẫu X Entropy đƣợc tính nhƣ sau: H(X) = - ∑ x p(x) log2p(x) Đơn vị: bits (log10: nats) Kí hiệu: H(X) = Hp(X) = H(p) c Perplexity - Cross Entropy c Entropy liên quan đến hiểungơn ngữ? Liên quan đến ko xác: vấn đề có nhiều thơng tin Entropy thấp Có nhiều mơ hình -> entropy đo chất lƣợng mơ hình? Ví dụ: mơ hình mã hóa ký tự với trung bình số bít sửdụng ký tự 2.5 Đây mơ hình ngônngữ 0-gram, đặt liên kết âm tiết sinh đƣợc mơ hình tốt hơn, chẳng hạn cho entropy 1.22 bít ký tự c Perplexity Entropy phân bố p(X) là: Hp(X)Thì giá trị 2H đƣợc gọi perplexity Đào Văn Trung – 100009 Đồ án tốt nghiệp perplexity số lƣợng mẫu trung bình mà biến phải lựa chọn.Perlexity bé (tức entropy bé) mơ hình tốt số bít dùng để mã hóa thơng tin bé Ví dụ: Cho ngựa với xác suất lựa chọn nhƣ sau: Ngựa 1: 1/2 ngựa 2: 1/4 ngựa 3: 1/8 ngựa 4: 1/16 Ngựa 5: 1/64 ngựa 2: 1/64 ngựa 3: 1/64 ngựa 4: 1/64 c.3 Entropy rate Tính entropy dãy từngônngữ L H(w1, ,wn) = - W L p(W1n)log(W1n) Entropy rate đƣợc coi nhƣ per-word entropy Coi ngônngữ nhƣ trình ngẫu nhiên sản xuất dãy từ Cần quan tâm đến dãy vô hạn từ Entropy rate H(L) đƣợc định nghĩa nhƣ sau: H (L) lim H (w , , w ) n n 1n lim n n p(w , , w ) log p(w , , w ) 1n L 1n c.4 Cross Entropy Cross entropy đƣợc sửdụng phân bố thật p Cross-entropy phân bố m phân bố thật p đƣợc định nghĩa: H ( p, m) lim n n p(w , , w )logm(w , , w ) L 1n 1n lim logm(w , , w ) n n 1n (theo lý thuyết Shannon-McMillan-Breiman) c.5 Cross entropy để so sánh mơ hình : H(p) ≤ H(p,m) Cross entropy H(p,m) cận entropy H(p) Mơ hình m xác cross entropy H(p,m) gần với entropy H(p) Độ khác H(p,m) H(p) đo độ xác mơ hình m c.6 Các cơng thức Cross Entropy Cross entropy biến X với phân bố xác suất p(x) phân bố m đƣợc tính nhƣ sau: H ( X , m) H ( X ) D( p || m) p(x) logm(x) x Chú ý: D(p||q) = ∑x p(x) log2 (p(x)/q(x)) II.3 Quy trìnhxửlýngơnngữtựnhiên Để máy tính hiểu thực thi chƣơng trình đƣợc viếtngơnngữ cấp cao, ta cần phải có trình biên dịch thực việc chuyển đổi chƣơng Đào Văn Trung – 100009 Đồ án tốt nghiệp trình sang chƣơng trình dạng ngơnngữ đích Chƣơng trình bày cách tổng quan cấu trúc trình biên dịch mối liên hệ với thành phần khác - “họ hàng” - nhƣ tiền xử lý, tải soạn thảo liên kết, v.v Cấu trúc trình biên dịch đƣợc mô tả chƣơng cấu trúc mức quan niệm bao gồm giai đoạn: Phân tích từ vựng, Phân tích cú pháp, Phân tích ngữ nghĩa, Sinh mã trung gian, Tối ƣu mã Sinh mã đích Nói cách đơn giản, trình biên dịch chƣơng trình làm nhiệm vụ đọc chƣơng trình đƣợc viếtngônngữ - ngônngữ nguồn (source language) - dịch thành chƣơng trình tƣơng đƣơng ngơnngữ khác - ngơnngữ đích (target languague) Một phần quan trọngtrình dịch ghi nhận lại lỗi có chƣơng trình nguồn để thơng báo lại cho ngƣời viết chƣơng trình Hình : Một trình biên dịch a Phân tích từvựng (Lexical Analysis) Trongtrình biên dịch, giai đọan phân tích từvựng đọc chƣơng trình nguồn từ trái sang phải (quét nguyên liệu - scanning) để tách thành thẻ từ (token) Ví dụ 1.2: Quá trình phân tích từvựng cho câu lệnh gán position := initial + rate * 60 tách thành token nhƣ sau: Danh biểu position Ký hiệu phép gán := Danh biểu initial Ký hiệu phép cộng (+) Danh biểu rate Ký hiệu phép nhân (*) Số 60 Trongtrình phân tích từvựng khoảng trắng (blank) bị bỏ qua b Phân tích cú pháp (Syntax Analysis) Giai đoạn phân tích cú pháp thực cơng việc nhóm thẻ từ chƣơng trình nguồn thành ngữ đoạn văn phạm (grammatical phrase), mà sau đƣợc trình biên dịch tổng hợp thành phẩm Thông thƣờng, ngữ đoạn văn Đào Văn Trung – 100009 Đồ án tốt nghiệp phạm đƣợc biểu diễn dạng phân tích cú pháp (parse tree) với : - Ngônngữ đƣợc đặc tả luật sinh - Phân tích cú pháp dựa vào luật sinh để xây dựng phân tích cú pháp Ví dụ 1.3: Giả sửngônngữ đặc tả luật sinh sau : Stmt → id := expr expr → expr + expr | expr * expr | id | number Với câu nhập: position := initial + rate * 60, phân tích cú pháp đƣợc xây dựng nhƣ sau : Hình :Một phân tích cú pháp Cấu trúc phân cấp chƣơng trình thƣờng đƣợc diễn tả quy luật đệ qui Ví dụ 1.4: 1) Danh biểu (identifier) biểu thức (expr) 2) Số (number) biểu thức 3) Nếu expr1 expr2 biểu thức thì: expr1 + expr2 expr1 * expr2 (expr) 4) Cũng biểu thức Câu lệnh (statement) định nghĩa đệ qui: 4.1) Nếu id1 danh biểu expr2 biểu thức id1 := expr2 lệnh (stmt) 4.2) Nếu expr1 biểu thức stmt2 lệnh while (expr1) stmt2 if (expr1) then stmt2: lệnh Ngƣời ta dùng qui tắc đệ qui nhƣ để đặc tả luật sinh (production) cho ngơnngữSự phân chia q trình Đào Văn Trung – 100009 Đồ án tốt nghiệp phân tích từvựng phân tích cú pháp tuỳ theo cơng việc thực c Phân tích ngữ nghĩa (Semantic Analysis) Giai đoạn phân tích ngữ nghĩa thực việckiểmtra xem chƣơng trình nguồn có chứa lỗingữ nghĩa hay không tập hợp thông tin kiểu cho giai đoạn sinh mã sau Một phần quan trọng giai đoạn phân tích ngữ nghĩa kiểmtra kiểu (type checking) ép chuyển đổi kiểu Ví dụ 1.5: Trong biểu thức position := initial + rate * 60 Các danh biểu (tên biến) đƣợc khai báo real, 60 số integer trình biên dịch đổi số nguyên 60 thành số thực 60.0 Hình 4: Chuyển đổi kiểu phân tích cú pháp d Các giai đoạn trình biên dịch Một trình biên dịch đƣợc chia thành giai đoạn, giai đoạn chuyển chƣơng trình nguồn từ dạng biểu diễn sang dạng biểu diễn khác VÍ DỤ: Một cách phân rã điển hình trình biên dịch đƣợc trình bày hình : Hình 5: Các giai đoạn trình biên dịch Việc quản lý bảng ký hiệuxửlýlỗi đƣợc thực xuyên suốt qua tất Đào Văn Trung – 100009 Đồ án tốt nghiệp * Kiểmtra tả: Kiểmtra xem câu có sai lỗi tả hay khơng Nếu sai thơng báo sai lỗi tả từ khơng có liệu từ điển, bạn mở giao diện từ điển để nhập sửa từ thông qua điêu khiển “Từ điển” “Private Sub Command6_Click() Dim cau As String Dim danhsach As String Dim arr Dim i As Integer Dim j As Integer Dim check As Boolean Dim st As String Dim st1 As String check = False cau = cauday arr = Split(cau, " ") i = UBound(arr) 51 Đào Văn Trung – 100009 Đồ án tốt nghiệp j=0 danhsach = "" While j