Cùng vói sự phát triển của khoa học máy tính, việc nghiên cứu xử lý ngôn ngữ tự nhiên hay cụ thể hơn là việc đƣa xử lý tiếng nói và chữ viết vào máy tính đã và đang đƣợc đầu tƣ mạnh mẽ trên khắp thế giới trong đó có Việt Nam
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ỜI MỞ ĐẦU Chương : GIỚI THIỆU VỀ XỬ LÝ NGÔN NGỮ 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ình xử lý ngôn ngữ tự nhiên II.4 Một số thuật tốn phân tích cú pháp III Các ứng dụng xử lý ngôn ngữ tự nhiên 12 Chƣơng 2: NGỮ PHÁP TIẾNG ANH 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ì hồn thành(The Present Prefect Tense) 17 Thì hoà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ÔN NGỮ 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ỜI MỞ ĐẦU Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) nhánh trí tuệ nhân tạo tập trung vào ứng dụng ngơn ngữ ngƣời Trong trí tuệ nhân tạo xử lý ngơn ngữ 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ôn ngữ 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ÔN NGỮ TỰ NHIÊN I Tổng quan Xử lý ngơn ngữ 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ơn ngữ 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 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 ngồ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ơn ngữ 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ếng Việt nhìn thấy nhƣ sau Hình : Tín hiệu sóng âm hai âm tiêt Tiếng Việ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ôn ngữ tự nhiên Ngôn ngữ 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ôn ngữ 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ôn ngữ tự nhiên Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) nhánh trí tuệ nhân tạo tập trung vào ứng dụng ngơn ngữ ngƣời.Trong trí tuệ nhân tạo xử lý ngôn ngữ 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 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ôn ngữ 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ôn ngữ 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ọng xử 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ểu ngô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ơn ngữ 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ôn ngữ L H(w1, ,wn) = - W L p(W1n)log(W1n) Entropy rate đƣợc coi nhƣ per-word entropy Coi ngơn ngữ nhƣ q 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 (w1, , wn ) n n n lim n p(w1, , wn ) log p(w1, , wn ) L 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(w1, , wn ) log m(w1, , wn ) L lim n log m(w1, , wn ) n (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) log m( x) x Chú ý: D(p||q) = ∑x p(x) log2 (p(x)/q(x)) II.3 Quy trình xử lý ngơn ngữ tự nhiên Để máy tính hiểu thực thi chƣơng trình đƣợc viết ngơn ngữ 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ơn ngữ đí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ết ngôn ngữ - ngôn ngữ nguồn (source language) - dịch thành chƣơng trình tƣơng đƣơng ngơn ngữ khác - ngơn ngữ đích (target languague) Một phần quan trọng trì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) Trong trì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: Q 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 Trong trì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ôn ngữ đƣợ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ôn ngữ đặ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ơn ngữ 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ệc kiểm tra xem chƣơng trình nguồn có chứa lỗi ngữ 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ểm tra 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ệu xử lý lỗi đƣợc thực xuyên suốt qua tất Đào Văn Trung – 100009 ... nghiệp LỜI MỞ ĐẦU Xử lý ngôn ngữ tự nhiên (natural language processing - NLP) nhánh trí tuệ nhân tạo tập trung vào ứng dụng ngơn ngữ ngƣời Trong trí tuệ nhân tạo xử lý ngơn ngữ tự nhiên phần khó... 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ôn ngữ tự nhiên Xử lý ngôn ngữ tự nhiên (natural language processing. .. đến việc phải hiểu ý nghĩa ngôn ng? ?- công cụ hoà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ôn ngữ tự nhiên hay cụ thể việc đƣa xử lý tiếng nói chữ viết vào