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

nới lỏng truy vấn sử dụng kĩ thuật khám phá tri thức

58 430 0

Đ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 58
Dung lượng 1,87 MB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ──────── * ─────── ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH CÔNG NGHỆ THÔNG TIN NỚI LỎNG TRUY VẤN SỬ DỤNG KĨ THUẬT KHÁM PHÁ TRI THỨC Sinh viên thực hiện : Nguyễn Chí Thanh Lớp HTTT – K50 Giáo viên hướng dẫn: PGS. TS Nguyễn Kim Anh HÀ NỘI 6-2010 PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1. Thông tin về sinh viên Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 1 Họ và tên sinh viên: Nguyễn Chí Thanh Điện thoại liên lạc: 0986703698 Email: thanhnc201086@gmail.com Lớp: HTTT B – K50 Hệ đào tạo: Đại học chính quy Đồ án tốt nghiệp được thực hiện tại: Bộ môn Hệ thống thông tin, Viện CNTT & Truyền thông, Trường Đại học Bách khoa Hà nội Thời gian làm ĐATN: Từ ngày 05 / 01 /2010 đến 28 / 05 /2010 2. Mục đích nội dung của ĐATN Chứng minh được một giải pháp cho bài toán nới lỏng truy vấn sử dụng tri thức học online và cài đặt hệ thống thử nghiệm. 3. Các nhiệm vụ cụ thể của ĐATN - Tìm hiểu bài toán nới lỏng truy vấn và thực trạng nới lỏng truy vấn dựa trên cách các tiếp cận đã có. - Tìm hiểu các kĩ thuật khám phá tri thức và nghiên cứu khả năng áp dụng cho bài toán nới lỏng truy vấn. - Chứng minh giải pháp nới lỏng truy vấn sử dụng kĩ thuật khám phá tri thức. - Cài đặt hệ thống thử nghiệm. 4. Lời cam đoan của sinh viên: Tôi – Nguyễn Chí Thanh - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của PGS. TS Nguyễn Kim Anh. Các kết quả nêu trong ĐATN là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác. Hà Nội, ngày tháng năm 2010 Tác giả ĐATN Nguyễn Chí Thanh 5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của ĐATN và cho phép bảo vệ: Hà Nội, ngày tháng năm 2010 Giáo viên hướng dẫn PGS. TS Nguyễn Kim Anh Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 2 TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Nội dung của đồ án bao gồm 5 chương Phần mở đầu Phần này giới thiệu về bài toán nới lỏng truy vấn với các hệ tìm kiếm thông tin Chương 1 – Tổng quan về nới lỏng truy vấn Phần này đặt vấn đề về bài toán nới lỏng, thực trạng của nới lỏng truy vấn, đề xuất hướng tiếp cận mới. Chương 2 - Kĩ thuật khai phá dữ liệu và bài toán học phân loại Chương 2 trình bày các khái niệm cơ bản về kĩ thuật khám phá tri thức, mô hình của bài toán phân loại, phân tích khả năng áp dụng cho bài toán nới lỏng Chương 3 - Nới lỏng theo tiếp cận của học cây quyết định. Chương 3 trình bày phương pháp sử dụng kết quả của bài toán phân loại trong bài toán nới lỏng truy vấn online, được điều khiển theo truy vấn Chương 4 - Chương trình cài đặt thử nghiệm Chương 4 giới thiệu về một hệ thống thử nghiệm có cài đặt các kỹ thuật trong 3 chương đầu. Nội dung của chương này tập trung vào kiến trúc hệ thống thử nghiệm, giới thiệu các lớp trong chương trình và CSDL thử nghiệm. Phần cuối chương đưa ra một số kết quả minh họa hoạt động của hệ thống. Phần kết luận và hướng phát triển Phần này tổng kết lại những kết quả đồ án đã đạt được và những vấn đề còn tồn đọng, đồng thời đưa ra một số phương án phát triển đề tài lên mức cao hơn. Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 3 Mục lục Mục lục 4 LỜI CẢM ƠN 5 DANH MỤC CÁC HÌNH VẼ 6 DANH MỤC CÁC BẢNG 7 DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ 8 Mở đầu 9 Chương I. Tổng quan về nới lỏng truy vấn 10 1.1 Định nghĩa 10 1.2 Vị trí của nới lỏng 10 11 1.3 Một số cách tiếp cận nới lỏng 11 Chương II. Kĩ thuật khai phá dữ liệu và bài toán học phân loại 13 2.1 Khai phá tri thức 13 15 17 2.2 Mô hình học, dự đoán của bài toán phân loại 17 2.3 Mô hình học cây quyết định 20 2.3 Học cây quyết định cho bài toán nới lỏng truy vấn 31 2.4 Sơ nét về thư viện lập trình học máy của Weka 32 Chương III. Nới lỏng theo tiếp cận của học cây quyết định 33 Chương IV. Chương trình cài đặt thử nghiệm 42 Chương V. Kết luận và hướng phát triển 53 5.1 Các kết luận 53 5.2 Hướng phát triển 56 Tài liệu tham khảo 58 Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 4 LỜI CẢM ƠN Để đồ án tốt nghiệp này được hoàn thành bên cạnh những nỗ lực của bản thân sinh viên trong suốt quá trình học tập, còn có biết bao lời động viên, hướng dẫn, giúp đỡ tận tình từ phía thầy cô, gia đình và bạn bè. Vì thế em xin dành những lời đầu tiên của luận văn tốt nghiệp này cho những lời cảm ơn. Trước hết, em xin được gửi lời cảm ơn chân thành và sâu sắc tới giáo viên hướng dẫn: PGS. TS. Nguyễn Kim Anh, khoa Công nghệ thông tin, trường Đại học Bách Khoa Hà Nội. Cô là người đã cho em những sự hướng dẫn, chỉ bảo tận tình cùng với những sự quan tâm động viên vô cùng hữu ích trong suốt quá trình em thực hiện đồ án. Em xin gửi lời cám ơn chân thành tới các thầy cô giáo trong bộ môn Hệ thống thông tin, khoa Công nghệ thông tin nói riêng và toàn thể các thầy cô giáo trường Đại học Bách Khoa Hà Nội nói chung. Các thầy cô đã tận tình với những bài giảng, với sự tận tâm trong công tác giảng dạy, đã cho em những kiến thức, những bài học vô cùng bổ ích về chuyên môn và về đạo đức trong suốt năm năm học vừa qua. Những kiến thức mà các thầy cô truyền dạy đã không chỉ giúp em hoàn thành tốt đồ án tốt nghiệp này mà chắc chắn sẽ còn giúp ích cho em rất nhiều trong tương lai. Cuối cùng, xin được gửi những lời cảm ơn sâu sắc tới gia đình thân yêu, tới những anh chị, những bạn bè thân thiết đã luôn ở bên cạnh động viên, giúp đỡ. Mặc dù đã cố gắng nỗ lực hết mình , song chắc chắn luận văn không khỏi còn nhiều thiếu sót. Em rất mong nhận được sự thông cảm và chỉ bảo tận tình của Thầy Cô và các bạn. Hà Nội, 05/2010 Sinh viên thực hiện: Nguyễn Chí Thanh Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 5 DANH MỤC CÁC HÌNH VẼ Hình 1: Vị trí của nới lỏng 11 Hình 2: Thuận lợi của khám phá tri thức 14 Hình 3: Tiến trình khai phá tri thức 15 Hình 4: Ứng dụng của KDD 17 Hình 5: Mô hình học 18 Hình 6: Mô hình thử 19 Hình 7: Mô hình sử dụng (phân loại) 19 Hình 8: Ví dụ về cây quyết định 22 Hình 9: Lượng thông tin đạt được khi phân chia tập ví dụ trên thuộc tính Huminity 26 Hình 10: Lượng thông tin đạt được khi phân chia tập ví dụ trên trên thuộc tính Wind 26 Hình 11: Lượng thông tin đạt được khi phân chia tập ví dụ trên trên thuộc tính Outlook 27 Hình 12: Phân chia trên thuộc tính số 28 Hình 13: Chia lớp theo chỉ số Gini 29 Hình 14: Quá trình thử phân chia và tính chỉ số Gini 30 Hình 15: Cây quyết định thu được sau khi đã phân chia tập ví dụ 31 Hình 16: Giải thuật nới lỏng 37 Hình 17: Trích xuất tri thức về miền giá trị 38 Hình 18: Nới lỏng tập ràng buộc 40 Hình 19: Ví dụ về cây điều kiện 43 Hình 20: Ví dụ về cây điều kiện (2) 44 Hình 21: Cây điều kiện thu được sau phép biến đổi 44 Hình 22: Kiến trúc của hệ thống thử nghiệm 45 Hình 23: Lược đồ CSDL thử nghiệm 48 Hình 24: Giao diện của hệ thống 50 Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 6 DANH MỤC CÁC BẢNG Bảng 1: Dữ liệu thống kê chơi golf 22 Bảng 2: Bảng ví dụ 30 Bảng 3: Bảng dữ liệu thử 34 Bảng 4: Bảng dữ liệu Di 34 Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 7 DANH MỤC CÁC TỪ VIẾT TẮT VÀ THUẬT NGỮ Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 8 STT TỪ VIẾT TẮT GIẢI NGHĨA TIẾNG ANH GIẢI NGHĨA TIẾNG VIỆT 1 LOQR Learning for Online Query Relaxtion Giải pháp học đối với nới lỏng truy vấn online 2 KDD Knowledge Discovery of Databases Khám phá tri thức từ cơ sở dữ liệu 3 ML Machine Learning Học máy 4 DM Data Mining Khai phá dữ liệu 5 DNF Disjunctive Normal Form Dạng chuẩn tuyển 6 GNU General Public License Mở đầu Ngày nay, cùng với sự phát triển mạnh mẽ của công nghệ, thông tin ngày càng được lưu trữ nhiều trong máy tính và internet. Tuy nhiên, sự phức tạp của các hệ cơ sở dữ liệu phân tán đối với việc truy cập từ xa thực sự là một thách thức. Người dùng có nhu cầu tìm kiếm thông tin trên internet, do chỉ có thể truy cập gián tiếp tới dữ liệu, không thể mở toàn bộ cơ sở dữ liệu đích, không được hiểu biết cấu trúc của cơ sở dữ liệu, các quan hệ tồn tại trong nó nên cái mà họ thường xuyên gặp phải là sự thất bại tái diễn của các truy vấn, khi không có một kết quả nào thỏa mãn. Việc nới lỏng truy vấn bằng tay mà đòi hỏi sự cộng tác của người dùng qua từng bước thực hiện đã là một công việc gây mất thời gian, buồn tẻ, và chán ngắt. Trong trường hợp xấu nhất họ phải xét đến một hàm số mũ của các khả năng nới lỏng có thể (các khả năng nới lỏng ở đây lả các cách thử kết hợp khác nhau dựa trên giá trị đối với mỗi tập các thuộc tính). Trong tình huống tệ hơn, sự nới lỏng quá mức đối với một truy vấn (đôi khi phá vỡ cả các ràng buộc để có nhiều bộ thỏa mãn) có thể đưa ra cái giá không ngờ tới trong khía cạnh băng thông và phí phải trả cho mỗi bộ các kết quả có được. Trước tình hình đó, yêu cầu đặt ra với các hệ tìm kiếm thông tin hiện đại là phải sử dụng nguồn tri thức bổ sung để giải quyết ngày càng nhiều hơn những vấn đề đau đầu nói trên. Vai trò của tri thức không chỉ đem lại trả lời thỏa đáng cho người dùng mà còn có nhiều khả năng đáng kinh ngạc: giải thích thông minh, cung cấp thêm hiểu biết và lựa chọn cho người dùng nhờ các tư vấn ngày càng nhanh chóng và chính xác. Vậy nguồn tri thức này lấy từ đâu? Khái niệm tri thức chỉ thông tin được tích lũy, bao gồm các nhân tố và mối quan hệ giữa chúng, được nhận ra, nghiên cứu và được học bởi các hệ thống thông minh, hay những “hình ảnh mô phỏng của bộ não con người”. Tri thức có thể được coi là dữ liệu ở mức khái quát và trừu tượng cao. Kĩ thuật khai phá dữ liệu (KDD) và học máy (Machine learning) mở rộng khả năng tìm kiếm thông tin. Khả năng học là một trong những thành tố quan trọng của hành vi thông minh. Để giải quyết thành công các bài toán khai phá dữ liệu cần có sự phối hợp và nỗ lực vượt bậc của các chuyên gia và người sử dụng cuối. Nhà chuyên gia cần nắm vững các kỹ thuật, hiểu được các yêu cầu thực tế, vận dụng kỹ thuật để giải quyết các bài toán và giải thích kết quả bằng ngôn ngữ thực tế cho người sử dụng. Và người sử dụng cần nhận ra những bài toán thiết thực, nắm bắt các kết quả đạt được và vận dụng chúng một cách hiệu quả trong thực tế. Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 9 Chương I. Tổng quan về nới lỏng truy vấn 1.1 Định nghĩa Như đã giới thiệu, nới lỏng truy vấn là phương pháp được sử dụng trong các hệ thống thông tin cộng tác với người dùng, cung cấp khả năng mở rộng phạm vi tìm kiếm thông tin. Nới lỏng được sử dụng khi câu truy vấn người dùng đưa vào không có kết quả, hoặc các kết quả hệ thống trả về không không đáp ứng được yêu cầu. Trong một số hệ thống tìm kiếm, nới lỏng truy vấn là kĩ thuật để giới hạn các kết quả có thể, giảm sự bất ngờ, bối rối từ phía người sử dụng, cũng như chi phí về băng thông khi kết quả tìm kiếm quá lớn. Hơn nữa, nó làm tăng khả năng sử dụng kết quả tìm kiếm từ phía người sử dụng. 1.2 Vị trí của nới lỏng Một trong những đặc điểm dễ thấy nhất của kỹ thuật nới lỏng là sự gia tăng số lượng và phạm vi của kết quả truy vấn. Đặc điểm này đôi khi gây bối rối cho người dùng, nhất là những người dùng phổ thông. Yêu cầu đặt ra với mô đun nới lỏng là phải có khả năng tương tác với người dùng, giải thích các vị trí nới lỏng và cho phép người dùng tự mở rộng phạm vi truy vấn theo ý muốn. Quá trình tương tác nới lỏng diễn ra theo vòng lặp, xuyên suốt phiên làm việc và chấm dứt khi người sử dụng không có nhu cầu tiếp tục. Như mọi mô đun khác trong hệ thống, mô đun thực hiện chức năng nới lỏng cũng có đầu vào và đầu ra. Đầu vào nới lỏng là một cấu trúc lưu trữ các thành phần của một câu truy vấn hoàn chỉnh, bao gồm đích, các điều kiện chọn, các liên kết… Cấu trúc này không nhất thiết phải có dạng SQL, mà có thể ở những dạng phù hợp hơn (chẳng hạn như dạng cây cú pháp sinh ra bởi bộ xử lý ngôn ngữ tự nhiên). Trong đồ án này, mô đun nới lỏng sẽ đảm nhận cả chức năng phát hiện lỗi trong truy vấn và chức năng nới lỏng các ràng buộc. Đầu ra của mô đun nới lỏng sẽ bao gồm những thông báo lỗi, các gợi ý khắc phục lỗi, các thông tin về nới lỏng, và quan trọng nhất, là câu truy vấn đã nới lỏng theo yêu cầu của người dùng. Tùy theo thời điểm tương tác mà người sử dụng sẽ nhận được những thông tin khác nhau từ mô đun nới lỏng. Nhìn chung, vị trí của mô đun nới lỏng trong một hệ cộng tác có dạng như sau : Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 10 [...]... thể sử dụng kết quả trả lại 1.3.2 Tiếp cận nới lỏng sử dụng tri thức học online Tiếp cận nới lỏng truy vấn sử dụng các tri thức được phát hiện online nhờ các kĩ thuật khai phá dữ liệu (Data Mining) là một hướng đi mới Trong cách tiếp cận này, tri thức dành cho nới lỏng được học ngay khi có truy vấn của người dùng (online) và được điều khiển dựa trên truy vấn( query guided), nên vì vậy rất phong phú... sau đó, nó sử dụng kĩ thuật hàng xóm lân cận để chỉ ra một luật học được mà tương tự nhất đối với câu truy vấn thất bại; cuối cùng, nó sử dụng các giá trị thuộc tính từ luật tương tự nhất học được để nới lỏng các ràng buộc trên câu truy vấn thất bại Khám phá tri thức miền Ở bước này, LOQR sử dụng tập nhỏ dữ liệu, được chọn ngẫu nhiên để phát hiện từ cơ sở dữ liệu đích để khám phá các tri thức có thể... tiếp cận nới lỏng trước đây đã đưa ra giải pháp tự động cho việc nới lỏng truy vấn nhưng có một hạn chế lớn là: những tri thức dùng cho viêc xử lý nới lỏng đòi hỏi offline, độc lập với câu truy vấn cần được nới lỏng Hơn nữa, việc học offline có thể được áp dụng trên một cơ sở dữ liệu cũ, không đem lại kết quả, hoặc kết quả không còn hữu ích, người có nhu cầu truy vấn đến dữ liệu không thể sử dụng kết... một phương pháp khai phá dữ liệu riêng biệt với toàn bộ tiêu chuẩn của tiến trình khai phá dữ liệu • Khai phá dữ liệu o Tìm kiếm các mẫu thuộc về một trong mỗi dạng được đề cập riêng hoặc một tập các đại diện như là các luật phân loại hay cây, hồi quy, các cụm, … • Phiên dịch các mẫu được khám phá • Củng cố tri thức đã được khám phá Ứng dụng của KDD Các kĩ thuật khám phá tri thức có nhiều ứng dụng thực... trí của nới lỏng 1.3 Một số cách tiếp cận nới lỏng Các kĩ thuật thu thập và biểu diễn tri thức đóng vai trò quan trọng trong việc phát hiện và mô tả mối quan hệ giữa các giá trị “thô” trong CSDL (là các giá trị thuộc miền giá trị của thuộc tính nào đó) và các khái niệm ở mức trừu tượng cao hơn Các tri thức này là cơ sở cho quá trình nới lỏng truy vấn Mỗi phương pháp thu thập và biển diễn tri thức khác... chương sẽ tập trung vào việc vận dụng học cây quyết định – một dạng bài toán phân loại đối với khả năng nới lỏng truy vấn 2.1 Khai phá tri thức Thuật ngữ Khai phá tri thức từ cơ sở dữ liệu (tiếng anh là: Knowledge Discovery in Databases - KDD) chỉ một tiến trình rất rộng nhằm tìm kiếm tri thức trong dữ liệu, và nhấn mạnh các ứng dụng mức cao của các phương pháp khai phá dữ liệu(Data mining) riêng biệt... nhanh, thậm chí người đang truy vấn tới dữ liệu có thể không biết đến quá trình nới lỏng đã diễn ra Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 12 Chương II Kĩ thuật khai phá dữ liệu và bài toán học phân loại Chương 2 này sẽ trình bày các khái niệm cơ bản về kĩ thuật khám phá tri thức, mô hình của bài toán phân loại, phân tích khả năng áp dụng cho bài toán nới lỏng Sau đó, chương sẽ... HTTT B Trang 13 Hình 2: Thuận lợi của khám phá tri thức Nó thực hiện điều này bằng cách sử dụng các phương pháp khai phá dữ liệu(giải thuật) để trích ra(định nghĩa) các tri thức tiềm ẩn, theo các đặc tả về độ đo và giá trị ngưỡng, sử dụng một cơ sở dữ liệu (CSDL) với bất kì việc tiền xử lý, lấy mẫu, các chuyển đổi nào được yêu cầu trên CSDL đó Tiến trình khai phá tri thức: Sinh viên thực hiện: Nguyễn Chí... phân lớp các mẫu rèn luyện của D1 LOQR khám phá ra tri thức miền thực sự hữu ích bằng cách sử dụng chương trình học C4.5 cho tập dữ liệu D1, và học được các luật quyết định có dạng: Những luật này có thể được sử dụng cho nới lỏng truy vấn bởi vì chúng mô tả những điều kiện đủ để thỏa mãn một ràng buộc riêng biệt từ câu truy vấn Trong ví dụ này, những luật trên sử dụng các giá trị của các thuộc tính của... với CPU trên câu truy vấn Sinh viên thực hiện: Nguyễn Chí Thanh – K50 – Lớp HTTT B Trang 35 Nới lỏng truy vấn Để đơn giản, chúng thừa nhận rằng trong tất cả các mệnh đề học được từ các tập dữ liệu D1-D5, Q1 là phát biểu tương tự nhất với Q0 Khi đó, LOQR tạo ra câu truy vấn nới lỏng mà chỉ chứa các thuộc tính xuất hiện đồng thời ở Q 0 và Q1 Trong ví dụ này của chúng ta, câu truy vấn nới lỏng là: Qr đạt . có. - Tìm hiểu các kĩ thuật khám phá tri thức và nghiên cứu khả năng áp dụng cho bài toán nới lỏng truy vấn. - Chứng minh giải pháp nới lỏng truy vấn sử dụng kĩ thuật khám phá tri thức. - Cài đặt. không thể sử dụng kết quả trả lại. 1.3.2 Tiếp cận nới lỏng sử dụng tri thức học online. Tiếp cận nới lỏng truy vấn sử dụng các tri thức được phát hiện online nhờ các kĩ thuật khai phá dữ liệu. thiệu về bài toán nới lỏng truy vấn với các hệ tìm kiếm thông tin Chương 1 – Tổng quan về nới lỏng truy vấn Phần này đặt vấn đề về bài toán nới lỏng, thực trạng của nới lỏng truy vấn, đề xuất hướng

Ngày đăng: 19/12/2014, 19:55

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1].Ion Muslea. Machine Learning for Online Query Relaxation, 2004 Sách, tạp chí
Tiêu đề: Machine Learning for Online Query Relaxation
[2]. Ion Muslea, Thomas J. Lee. Online Query Relaxation via Bayesian Causal Structures Discovery, 2005 Sách, tạp chí
Tiêu đề: Online Query Relaxation via Bayesian Causal Structures Discovery
[3].Nguyễn Tất Thắng. Đồ án “Phát hiện lỗi và nới lỏng truy vấn trong hệ thống thông tin cộng tác”, 2008 Sách, tạp chí
Tiêu đề: Phát hiện lỗi và nới lỏng truy vấn trong hệ thống thông tin cộng tác
[4].Wesley W.Chu . CoBase : A scalable and extensible cooperative information system Khác
[5].Wesley W.Chu, Hua Yang, Gladys Chow . A cooperative database system for query relaxation Khác
[6].Terry Gaasterland, Parke Godfrey, Jack Minker . Relaxation as a platform for cooperative answering Khác

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w