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

KHAI PHÁ CHỦ đề của KHO văn bản lớn THEO TIẾP cận đồ THỊ TRÊN nền TÍNH TOÁN PHÂN tán

78 194 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 78
Dung lượng 9,37 MB

Nội dung

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  NGUYỄN HỒ DUY TRI KHAI PHÁ CHỦ ĐỀ CỦA KHO VĂN BẢN LỚN THEO TIẾP CẬN ĐỒ THỊ TRÊN NỀN TÍNH TỐN PHÂN TÁN LUẬN VĂN THẠC SĨ NGÀNH KHOA HỌC MÁY TÍNH Mã số: 60 48 01 01 TP HỒ CHÍ MINH – NĂM 2018 ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN  NGUYỄN HỒ DUY TRI KHAI PHÁ CHỦ ĐỀ CỦA KHO VĂN BẢN LỚN THEO TIẾP CẬN ĐỒ THỊ TRÊN NỀN TÍNH TỐN PHÂN TÁN LUẬN VĂN THẠC SĨ NGÀNH KHOA HỌC MÁY TÍNH Mã số: 60 48 01 01 NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS ĐỖ PHÚC TP HỒ CHÍ MINH – NĂM 2018 Lời cam đoan LỜI CAM ĐOAN Tác giả luận văn có lời cam đoan danh dự cơng trình khoa học mình, cụ thể: Tơi tên: NGUYỄN HỒ DUY TRI Sinh ngày 10 tháng 09 năm 1991 tỉnh Đồng Nai Quê quán: Quảng Nam Hiện công tác tại: Trường Đại học Công Nghệ Thông Tin – ĐHQG TP.HCM Là học viên khóa ngành Khoa học Máy tính Mã số học viên: CH1401037 Tôi cam đoan: “Khai phá chủ đề kho văn lớn theo tiếp cận đồ thị tính tốn phân tán” cơng trình nghiên cứu riêng tôi, kết nghiên cứu có tính độc lập riêng, khơng chép tài liệu chưa công bố nội dung đâu Các số liệu luận văn sử dụng trung thực, nguồn trích dẫn có thích rõ ràng, minh bạch, có tính kế thừa, phát triển từ tài liệu, tạp chí, cơng trình nghiên cứu cơng bố, website có uy tín Nếu phát có gian lận tơi xin hồn tồn chịu trách nhiệm lời cam đoan danh dự Trường Đại học Công Nghệ Thông Tin không liên quan đến vi phạm tác quyền, quyền gây trình thực (nếu có) TP HCM, ngày 10 tháng 02 năm 2018 Tác giả luận văn Nguyễn Hồ Duy Tri -1- Mục lục MỤC LỤC LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC CÁC B ẢNG .6 DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ .7 MỞ ĐẦU Chương TỔNG QUAN 10 1.1 Lý chọn đề tài 10 1.2 Mục tiêu, đối tượng phạm vi nghiên cứu luận văn 10 1.3 Nội dung phương pháp nghiên cứu 11 1.3.1 Xây dựng kho văn lớn 11 1.3.2 Nghiên cứu áp dụng phương pháp biểu diễn văn đồ thị 12 1.3.3 Nghiên cứu áp dụng phương pháp tìm đồ thị phổ biến tính toán phân tán 12 1.3.4 Xây dựng tập đồ thị đặc trưng cho chủ đề văn bản, qua rút trích mơ hình chủ đề 12 1.4 Cấu trúc luận văn 13 Chương CƠ SỞ LÝ THUYẾT 14 2.1 Mơ hình hóa chủ đề 14 2.2 Biểu diễn văn đồ thị 15 2.2.1 Giới thiệu 15 2.2.2 Tổng quan biểu diễn văn đồ thị 15 2.2.3 Các loại mơ hình đồ thị 16 2.2.4 Đồ thị đồng (Co-occurrence Graph) 19 2.3 Mơ hình hóa chủ đề văn biểu diễn đồ thị 21 2.4 Khai phá đồ thị phổ biến 21 2.4.1 Giới thiệu 21 2.4.2 Hướng tiếp cận 22 2.4.3 Thuật toán Graph-Based Substructure Pattern Mining – gSpan 23 2.5 Khoảng cách hai đồ thị 25 2.6 Cơ sở liệu đồ thị 27 -2- Mục lục 2.6.1 Hệ quản trị sở liệu MongoDB 28 2.6.2 Hệ quản trị sở liệu Neo4j 29 2.6.3 Hệ quản trị sở liệu OrientDB 31 2.6.4 So sánh hệ quản trị sở liệu OrientDB với MongoDB Neo4j 32 2.7 Tổng quan liệu lớn 37 2.7.1 Khái niệm lịch sử hình thành phát triển 37 2.7.2 Đặc điểm 38 2.8 Các tảng tính tốn phân tán 41 2.8.1 MapReduce 41 2.8.2 Giới thiệu chung Hadoop 42 2.8.3 Hadoop 1.0 (MRv1) 43 2.8.4 Hadoop 2.0 (MRv2, YARN - Yet Another Resource Negotiator) 45 2.8.5 Giới thiệu Apache Spark 48 2.8.6 Các thành phần Apache Spark 49 Chương PHÂN TÍCH THIẾT KẾ HỆ THỐNG 52 3.1 Tổng quan hệ thống 52 3.2 Tiền xử lý lưu trữ kho văn lớn 53 3.3 Biểu diễn văn sử dụng mơ hình đồ thị 54 3.4 Khai phá tập đồ thị phổ biến 56 3.5 Mơ hình hóa chủ đề dựa việc trích xuất đồ thị đặc trưng 58 Chương HIỆN THỰC VÀ THỬ NGHIỆM 60 4.1 Môi trường công cụ 60 4.1.1 Hệ điều hành Ubuntu 60 4.1.2 Mơi trường phát triển tích hợp Eclipse 62 4.1.3 Ngôn ngữ Scala 63 4.2 Dữ liệu sử dụng 67 4.3 Hiện thực phương pháp khai phá chủ đề đề xuất 68 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71 5.1 Kết luận 71 5.2 Những đóng góp đề tài 71 5.3 Khả ứng dụng thực tiễn 71 5.4 Hướng phát triển 72 -3- Mục lục DANH MỤC CÔNG BỐ KHOA HỌC CỦA TÁC GIẢ 73 TÀI LIỆU THAM KHẢO 74 BÀI BÁO KHOA HỌC QĐ THÀNH LẬP HỘI ĐỒNG CHẤM LUẬN VĂN THẠC SĨ QĐ THAY ĐỔI THÀNH VIÊN HỘI ĐỒNG CHẤM LUẬN VĂN THẠC SĨ NHẬN XÉT LUẬN VĂN THẠC SĨ PHIẾU YÊU CẦU CHỈNH SỬA LUẬN VĂN THẠC SĨ BẢN GIẢI TRÌNH CHỈNH SỬA LUẬN VĂN THẠC SĨ -4- Danh mục ký hiệu chữ viết tắt DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT STT Từ viết tắt Cụm từ gốc ACID Atomicity, Consistency, Isolation, Durability CG Conceptual Graph CSDL DFS Depth First Search FTP File Transfer Protocol GPL GNU General Public License gSpan Graph-Based Substructure Pattern Mining HD HDFS 10 IDE 11 JSON JavaScript Object Notation 12 NASA National Aeronautics and Space Administration 13 RDD Resilient Distributed Datasets 14 YARN Yet Another Resource Negotiator Cơ sở liệu High Definition Hadoop Distributed File System Integrated Development Environment -5- Danh mục bảng DANH MỤC CÁC BẢNG Bảng 2.1: So sánh chức OrientDB MongoDB .34 Bảng 2.2: So sánh ngôn ngữ truy vấn OrientDB MongoDB 36 Bảng 4.1: Mô tả kiểu liệu ngôn ngữ Scala .64 Bảng 4.2: Số lượng đồ thị đặc trưng ứng với chủ đề 69 -6- Danh mục hình vẽ, đồ thị DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 2.1: Mơ hình túi từ 15 Hình 2.2: Mơ hình đồ thị khái niệm 16 Hình 2.3: Mơ hình đồ thị hình 17 Hình 2.4: Mơ hình đồ thị vô hướng sử dụng tần số xuất .18 Hình 2.5: Mơ hình đồ thị có hướng cạnh không gán nhãn 18 Hình 2.6: Mơ hình đồ thị khoảng cách n đơn giản câu “AAA BBB CCC DDD” 19 Hình 2.7: Mơ hình đồ thị đồng 20 Hình 2.8: Ví dụ đồ thị chung .26 Hình 2.9: Đồ thị chung lớn .26 Hình 2.10: Hệ quản trị sở liệu MongoDB 28 Hình 2.11: Hệ quản trị sở liệu Neo4j 30 Hình 2.12: Hệ quản trị sở liệu OrientDB .31 Hình 2.13: Bộ liệu đơn giản dạng JSON 32 Hình 2.14: Liên kết liệu OrientDB 33 Hình 2.15: 05 đặc điểm liệu lớn (mơ hình 5V) 40 Hình 2.16: Framework Apache Hadoop 42 Hình 2.17: Các thành phần Hadoop 1.0 43 Hình 2.18: Quy trình MapReduce Hadoop 44 Hình 2.19: Cấu trúc cài đặt cụm tính tốn Hadoop 1.0 45 Hình 2.20: Những thay đổi Hadoop 2.0 so với Hadoop 1.0 .46 Hình 2.21: Cấu trúc cài đặt cụm tính tốn YARN .47 Hình 2.22: Biểu tượng Apache Spark 48 Hình 2.23: Các thành phần Apache Spark 50 Hình 3.1: Tổng quan hệ thống 52 Hình 3.2: Quy trình tiền xử lý tập tin văn .53 Hình 3.3: Cửa sổ trượt kích thước cho trượt qua văn để tạo thành đồ thị 54 Hình 3.4: Đồ thị đồng tạo thành từ ví dụ cho 55 -7- Danh mục hình vẽ, đồ thị Hình 3.5: Quy trình biểu diễn văn sử dụng mơ hình đồ thị 56 Hình 3.6: Mơ hình phân tán thuật toán gSpan 57 Hình 3.7: Sơ đồ bước trích xuất đồ thị đặc trưng 59 Hình 4.1: Biểu đồ thời gian thực thi chương trình 70 -8- Hiện thực thử nghiệm mắt, cài đặt ứng dụng đơn giản, dễ dàng việc lưu liệu hỗ trợ cộng đồng người dùng khổng lồ Mặc định, đĩa cài đặt Ubuntu bao gồm nhiều phần mềm mã nguồn mở để người dùng sử dụng trực tiếp Đó ứng dụng văn phòng LibreOffice (Từ phiên Ubuntu 10.04), trình duyệt internet Mozilla Firefox, trình quản lý thư điện tử Mozilla Thunderbird, trình gửi tin nhắn tức thời Telegram, trình tải tập tin torrent Tranmission Về truyền thông đa phương tiện, Ubuntu tích hợp trình chơi loại tập tin đa phương tiện tiếng VLC Một số ứng dụng nhỏ chụp hình, máy tính bỏ túi, trò chơi trò chơi giải đố có sẵn Môi trường Linux từ lâu nơi triển khai framework xử lý liệu lớn mã nguồn mở tính ổn định, xác linh hoạt Cộng với công cụ hỗ trợ tốt Eclipse, ngôn ngữ Scala, Java triển khai cách dễ dàng tảng Chính thế, luận văn chọn môi trường hệ điều hành Ubuntu để xây dựng luận văn 4.1.2 Mơi trường phát triển tích hợp Eclipse Eclipse mơi trường phát triển tích hợp mã nguồn mở tiếng, sử dụng rộng rãi lập trình máy tính mơi trường phát triển ứng dụng Java sử dụng rộng rãi Phần mềm bao gồm không gian làm việc kèm với hệ thống plug-in mở rộng phong phú để người dùng tự tùy biến môi trường làm việc Eclipse chủ yếu viết ngơn ngữ Java, ngồi việc sử dụng để phát triển ứng dụng Java, sử dụng để viết phần mềm ngôn ngữ khác Ada, ABAP, C, C ++, C #, COBOL, D, Fortran , Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby (bao gồm framework Ruby on Rails), Rust, Scala, Clojure, Groovy, Scheme Erlang thơng qua plug-in mở rộng Ngồi ra, Eclipse soạn thảo tài liệu LaTeX thơng qua plug-in TeXlipse gói dành cho phần mềm Mathematica Những phiên Eclipse với plug-in hỗ trợ quen thuộc Eclipse Java development tools (JDT) cho ngôn ngữ Java Scala, Eclipse CDT cho ngôn ngữ C/C++ Eclipse PDT dành cho PHP - 62 - Hiện thực thử nghiệm Được tạo nên dựa theo cảm hứng từ họ phần mềm môi trường phát triển tích hợp tiếng VisualAge viết tảng ngôn ngữ SmallTalk VisualAge sản phẩm thành công, nhiên, thành phần khơng viết dạng mơ-đun mà mã nguồn đóng chung thành tập tin nén Chính điều làm cho việc truy xuất lớp độc lập đến trở nên khó khăn bên ngồi phần mềm hồn tồn khơng phép Chính vậy, nhóm với thành viên chủ yếu đến từ phòng thí nghiệm IBM Cary NC phát triển phần mềm thay dựa tảng Java Vào tháng 11 năm 2001, tổ hợp thành lập với ban quản trị để tiếp tục phát triển Eclipse theo định hướng phần mềm nguồn mở Người ta ước tính IBM đầu tư gần 40 triệu la vào thời điểm Các cơng ty thành viên ban đầu Borland, IBM, Merant, QNX Software Systems, Rational Software, Red Hat, SuSE, TogetherSoft WebGain Vào tháng năm 2004, Quỹ Eclipse thành lập Bộ phần mềm phát triển Eclipse miễn phí phần mềm mã nguồn mở phát hành giấy phép Eclipse Public License Tuy giấy phép không tương thích với giấy phép GNU General Public License, mơi trường phát triển tích hợp chạy thư viện GNU Classpath Kể từ phiên 3.2, phát hành Eclipse đặt tên mã dựa chủ đề khoa học như: Eclipse 3.2 (Callisto), Eclipse 3.3 (Europa), Eclipse 3.6 (Helios)… Phiên ổn định 4.7 phát hành vào ngày 28 tháng 06 năm 2017 có tên mã Oxygen Chính khả mở rộng mềm dẻo, linh hoạt sức mạnh Eclipse nên luận văn chọn mơi trường phát triển tích hợp sử dụng để hồn thành đề tài 4.1.3 Ngơn ngữ Scala ❖ Giới thiệu Scala • Ngơn ngữ Scala (viết tắt cho Scalable Language) ngơn ngữ lập trình đa mẫu hình Nó tạo Martin Odersky lần mắt vào năm 2003 Nó thiết kế để có khả mở rộng tùy theo nhu cầu người sử dụng Ngôn ngữ Scala dùng nhiều lĩnh vực, quy mô, từ đoạn lệnh nhỏ hệ thống lớn - 63 - Hiện thực thử nghiệm • Scala chạy máy ảo Java tương thích hồn tồn với Java Ngồi chạy NET, nhiên kể từ phiên Scala vào cuối năm 2012 trở khơng hỗ trợ tảng • Scala xây dựng với tính lập trình hàm lập trình hướng đối tượng Sự kết hợp lập trình hàm lập trình hướng đối tượng thể nhiều khia cạnh, hai kiểu lập trình bổ sung sức mạnh cho đặc biệt hệ thống mở rộng Lập trình hàm xây dựng nhanh chóng dễ dàng tính từ phần nhỏ lập trình hướng đối tượng thích hợp để cấu trúc hệ thống lớn ❖ Một số đặc điểm ngơn ngữ Scala • Cơ động linh hoạt cú pháp • Sở hữu vòng lặp mạnh mẽ • Được thiết kế để phù hợp với lập trình hàm lập trình hướng đối tượng • Hệ thống kiểu liệu phong phú có khả mở rộng (định nghĩa thêm phương thức cho kiểu có sẵn) ❖ Các cơng cụ hỗ trợ lập trình: Để lập trình ngơn ngữ Scala, sử dụng phần mềm đây: • Phần mềm IntelliJ IDEA (với plugin); • Phần mềm Sublime Text; • Phần mềm Atom; • Phần mềm Eclipse IDE Scala IDE (dựa Eclipse) ❖ Các kiểu liệu Bảng 4.1: Mô tả kiểu liệu ngôn ngữ Scala STT Kiểu liệu Byte Giá trị có dấu bit Khoảng giá trị từ -128 đến 127 Short Giá trị có dấu 16 bit Khoảng giá trị từ -32768 đến 32767 Int Long Mơ tả Giá trị có dấu 32 bit Khoảng giá trị từ -2147483648 đến 2147483647 Giá trị có dấu 64 bit Khoảng giá trị từ -9223372036854775808 đến 9223372036854775807 - 64 - Hiện thực thử nghiệm Float Kiểu dấu chấm động, độ xác đơn, 32 bit, tuân theo chuẩn IEEE 754 Double Kiểu dấu chấm động, độ xác kép, 64 bit, tuân theo chuẩn IEEE 754 Char Ký tự Unicode không dấu 16 bit Khoảng giá trị từ U+0000 đến U+FFFF String Một chuỗi ký tự Boolean 10 Unit Tương ứng với khơng có giá trị 11 Null Giá trị Null tham chiếu rỗng 12 Nothing Kiểu tất kiểu khác, bao gồm kiểu khơng có giá trị (Unit) 13 Any Kiểu cha tất kiểu; đối tượng (object) có kiểu Any 14 AnyRef Kiểu luận lý, sai Kiểu cha tất kiểu tham chiếu ❖ Cú pháp lệnh • Khai báo biến Trong Scala có loại biến biến có giá trị biến đổi (mutable variable) biến có giá trị bất biến (immutable variable) Do có hai cách khai báo biến tương ứng với hai loại Khai báo biến có giá trị biến đổi sử dụng từ khóa var, khai báo biến có giá trị bất biến sử dụng từ khóa val, ví dụ: var myvar : String = “Foo” val myval : String = “Bar” Cú pháp chung việc khai báo biến là: var (or val) variableName : Datatype = Initial value Tuy nhiên, khai báo biến, khơng cần cho trước giá trị khởi tạo, ví dụ: var myvar : String Hoặc, khơng cần khai báo kiểu liệu, cần gán giá trị khởi tạo cho biến, trình biên dịch tự xác định kiểu liệu biến đó: var myVar = 10 val myVal = "Hello, Duy Tri!" • Khai báo phương thức/hàm Cú pháp: - 65 - Hiện thực thử nghiệm def tên_hàm(biến1 : kiểu_dữ_liệu [, biến2 : kiểu_dữ_liệu]) : kiểu_dữ_liệu_trả_về = { //thân_hàm } Khai báo hàm/phương thức khóa def sau tới tên hàm/phương thức, giá trị đầu vào nằm dấu ngoặc đơn Tiếp sau dấu hai chấm “:” kiểu liệu trả Nội dung hàm/phương thức nằm cặp dấu ngoặc nhọn “{}” • Câu lệnh điều kiện, lặp ➢ Câu lệnh If … else … Cú pháp: if (biểu thức điều kiện) { //Thực thi biểu thức điều kiện } else { // Thực thi biểu thức điều kiện sai } Câu lệnh điều kiện if … else … có cú pháp giống ngơn ngữ lập trình thơng dụng khác Trong khối lệnh else có khơng, khối lệnh if tồn đơn lẻ biểu thị cho việc thực thi khối lệnh biểu thức điều kiện Hoặc sử dụng cú pháp sau cho trường hợp có nhiều điều kiện cần xem xét: if (biểu thức điều kiện 1) { // Thực thi biểu thức điều kiện } else if (biểu thức điều kiện 2) { // Thực thi biểu thức điều kiện } else if (biểu thức điều kiện 3) { // Thực thi biểu thức điều kiện } else { // Thực thi khơng có biểu thức điều kiện } ➢ Câu lệnh lặp for Trong Scala, cú pháp vòng lặp for mơ tả sau: - 66 - Hiện thực thử nghiệm for (biến

Ngày đăng: 23/12/2018, 06:14

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w