Nhận Dạng Key Player trên Mạng Xã Hội Twitter

42 493 0
Nhận Dạng Key Player trên Mạng Xã Hội Twitter

Đ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

Nhận dạng Key Player trên Twitter ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CƠ SỞ DỮ LIỆU NÂNG CAO Nhận Dạng Key Player trên Mạng Xã Hội Twitter Giáng viên hướng dẫn PGS.TS. Đỗ Phúc Học viên: Huỳnh Lê Quốc Vương MHV: CH1101158 08 – 2012 ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CƠ SỞ DỮ LIỆU NÂNG CAO Nhận Dạng Key Player trên Mạng Xã Hội Twitter Giáng viên hướng dẫn PGS.TS. Đỗ Phúc Học viên: Huỳnh Lê Quốc Vương MHV: CH1101158 08 – 2012 Nhận dạng Key Player trên Twitter MỤC LỤC GIỚI THIỆU Hiện nay, mạng xã hội là một đề tài hết sức được quan tâm. Thông qua mạng xã hội với hàng triệu người sử dụng thì các tin tức sự kiện được lan truyền đi rất nhanh. Tất nhiên giới kinh doanh không thể nào bỏ qua cơ hội này, đặc biệt là việc marketing trên mạng xã hội. Các công ty lớn như Dell, Starbucks hay Comcast đã tận dụng rất tốt Twitter để quảng bá sản phẩm và giải đáp thắc mắc khách hàng. Nhưng hiện nay, trên các dịch vụ tiểu blog miễn phí, có thể thấy rằng số lượng các doạnh nghiệp nhỏ đã vượt trội so với các doanh nghiệp lớn. Và xét trên nhiều phương diện, Twitter là công cụ rất hữu ích cho họ. Các doanh nghiệp nhỏ có được hơn một nửa số khách hàng của mình chủ yếu nhờ truyền miệng, và Twitter là một minh chứng cho điều đó. Vì vậy, nếu tìm ra được các key player trên mạng xã hội để “phóng thanh” thì sẽ rất là hiệu quả đối với các doanh nghiệp. Trong bài thu hoạch này sẽ thực hiện việc tìm các key player trên mạng xã hội Twitter. Dữ liệu dùng để nhận ra các key player sẽ được thu thập thông qua API Twitter. Qua API này ta có thể lấy được thông tin của người dùng và các mối quan hệ của họ. Dữ liệu này sẽ được lưu trữ xuống một cơ sở dữ liệu đồ thị, một loại cơ sở dữ liệu hết sức hữu dụng hiện nay đối với các dữ liệu có nhiều mối quan hệ như mạng xã hội. Do đó ta cùng tìm hiểu về các ưu điểm của loại cơ sở dữ liệu mới (NO SQL) so với cơ sở dữ liệu truyền thống (cơ sở dữ liệu quan hệ). Cụ thể, sẽ đi vào tìm hiểu cơ sở dữ liệu đồ thị và một hiện thực của nó là Neo4j. Sau cùng, sẽ là cách thực hiện chương trình để đạt được vấn đề đặt ra. Lời cảm ơn, em chân thành xin dành cho thầy Phúc vì những kiến thức của Thầy mang lại để giúp em có được cũng như hoàn thành tốt bài thu hoạch này. Nhận dạng Key Player trên Twitter I. NO SQL Database 1. Xu hướng dữ liệu Theo Eric Schmidt của Google thì “mỗi 2 ngày chúng ta đã tạo ra một lượng thông tin bằng cả năm 2003” (năm 2010). Và tổng dữ liệu được tạo ra trên toàn thế giới trong năm 2011 đã đạt đến 1.8ZB và lượng dữ liệu sẽ tăng hơn gấp đôi qua 2 năm. Trong khi dữ liệu càng ngày càng lớn rất nhanh thì chúng cũng ngày một được kết nối hơn như - Trong nội dung văn bản - Trong HyperText – các đường dẫn liên kết nhau - RSS (Really Simple Syndication) - Các Blog – có chứa các pingback - Tagging – nhóm các dữ liệu liên quan lại với nhau - RDF (Resource Description Framework) – mô tả dữ liệu được kết nối như thế nào) - GGG (Giant Global Graph) – nội dung + các liên kết + các mối quan hệ + mô tả - … Xu hướng kết nối dữ liệu Dữ liệu trở nên bán cấu trúc (dữ liệu không được mô tả riêng biệt thành về kiểu và cấu trúc – không có lược đồ) - Nếu bạn muốn thu thập tất cả dữ liệu cho mỗi bộ phim được sản xuất từ trước đến giờ, bạn sẽ phải mô hình nó như thế nào? - Có quá nhiều thứ để bạn phải suy nghĩ như đạo diễn, nhân vật, địa điểm, ngày, chi phí, đánh giá, trình chiếu, giá vé, … Nhận dạng Key Player trên Twitter Hình trên cho thấy performance của cơ sở dữ liệu quan hệ giảm đáng kể khi độ phức tạp dữ liệu (kết nối dữ liệu) ngày càng tăng. Vì thế đã có sự ra đời của NO SQL. Ban đầu NO SQL có nghĩa là Non- Relational (NoRel) - không ràng buộc. Nhưng sau này người ta thường dịch NO SQL thành Not Only SQL, ám chỉ đến những cơ sở dữ liệu không dùng mô hình dữ liệu quan hệ để quản lý dữ liệu trong lĩnh vực phần mềm. Với NO SQL là một thế hệ cơ sở dữ liệu non-relational (không ràng buộc), distributed (phân tán), open source, horizontal scalable (khả năng mở rộng theo chiều ngang) có thể lưu trữ, xử lý từ một lượng rất nhỏ cho tới hàng petabytes dữ liệu trong hệ thống có độ chịu tải, lỗi cao với những đòi hỏi về tài nguyên phần cứng thấp. Một số đặc điểm nhận dạng cho thế hệ database mới này bao gồm: schema- free, hỗ trợ mở rộng dễ dàng, API đơn giản, eventual consistency (nhất quán cuối) và/hoặc transactions hạn chế trên các thành phần dữ liệu đơn lẻ, không giới hạn không gian dữ liệu, Hiện nay có 4 loại cơ sở dữ liệu NO SQL như sau: 2. Các loại NO SQL Database 2.1. Key Value Store Mô hình lưu trữ dữ liệu dưới cặp giá trị key-value trong đó việc truy xuất, xóa, cập nhật giá trị thực thông qua key tương ứng. Với sự bổ trợ bởi các kỹ thuật BTree, B+Tree, Hash, dữ liệu có thể tồn tại trên RAM hoặc đĩa cứng, phân tán hoặc không phân tán. Hầu hết các NoSQL database đều là key-value store. Dưới đây là một số đặc tính có thể được hỗ trợ trong sản phẩm dạng này: - Key/value được cache trong RAM: memcached, Citrusleaf database, Velocity, Redis, Tuple space, - Key/value được lưu trên đĩa: Memcachedb, Berkeley DB, Tokyo Cabinet, Redis, - Key/value được lưu trữ nhất quán: Amazon Dynamo, Voldemort, Dynomite, KAI, Cassandra, Hibari, Project Voldemort,… - Key/value được lưu trữ có thứ tự: NMDB, Memcachedb, Berkeley DB, - Key/value với phân tán: Apache River, MEMBASE, Azure Table Storage, Amazon Dynamo,. • Điểm mạnh: o Mô hình dữ liệu đơn giản o Khả năng mở rộng cao • Điểm yếu: o Không thể tạo khóa ngoại o Khó khăn trong dữ liệu phức tạp Nhận dạng Key Player trên Twitter 2.2. Wide Column Store / Column Families Hệ cơ sở dữ liệu phân tán cho phép truy xuất ngẫu nhiên/tức thời với khả năng lưu trữ một lượng cực lớn data có cấu trúc. Dữ liệu có thể tồn tại dạng bảng với hàng tỷ bản ghi và mỗi bản ghi có thể chứa hàng triệu cột. Một triển khai từ vài trăm cho tới hàng nghìn commodity hardware dẫn đến khả năng lưu trữ hàng petabytes nhưng vẫn đảm bảo high performance. Dưới đây là một số sản phẩm thông dụng: Hadoop/HBase – Apache, BigTable – Google, Cassandra - Facebook/Apache, Hypertable - Zvents Inc/Baidu, Cloudera, SciDB, Mnesia, Tablets,… • Điểm mạnh: o Hỗ trợ dữ liệu nửa cấu trúc o Đánh chỉ mục tự động theo cột o Khả năng mở rộng cao • Điểm yếu: o Khó khăn trong interconnected data 2.3. Document Store Thực chất là các document-oriented database - một thiết kế riêng biệt cho việc lưu trữ document. Các cài đặt có thể là giả lập tương tác trên relational database, object database hay key-value store. Một số sản phẩm tiêu biểu: Apache Jackrabbit, CouchDB, IBM Lotus Notes Storage Format (NSF), MongoDB, Terrastore, ThruDB, OrientDB, RavenDB, • Điểm mạnh: o Đơn giản, mô hình dữ liệu mạnh mẽ o Khả năng mở rộng cao • Điểm yếu: o Khó khăn trong interconnected data o Mô hình truy vấn bị giới hạn các khóa và chỉ mục o Thiếu map reduct cho các truy vấn lớn 2.4. Graph Database Graph database là một dạng cơ sở dữ liệu được thiết kế riêng cho việc lưu trữ thông tin trong đồ thị như cạnh, nút, thuộc tính. Một số sản phẩm tiêu biểu: Neo4J, Sones, AllegroGraph, Core Data, DEX, FlockDB, InfoGrid, OpenLink Virtuoso, • Điểm mạnh: o mô hình dữ liệu đầy sức mạnh o Truy vấn nhanh cho các dữ liệu có kết nối • Điểm yếu: o Khó khăn trong việc sharding, đang chờ sự phát triển. o Phải thay đổi cách nghĩ, khái niệm về cơ sở dữ liệu đồ thị 3. So sánh các mô hình database với graph database 3.1. Một graph database từ một RDBMS Tách các record trong các stack trong một cơ sở dữ liệu quan hệ trong khi vẫn giữ các mối quan hệ giữa chúng, ta sẽ được một đồ thị. Ở đây, RDBMS thì được tối ưu cho dữ liệu được gom lại thành kiểu (nhóm) trong khi graph database được tối ưu cho dữ liệu được kết nối. Nhìn hình sau đây: RDBMS [...]... http://docs.neo4j.org/chunked/milestone/tutorials.html Nhận dạng Key Player trên Twitter III 1 Chương trình Giới thiệu chương trình Ta đã biết lợi ích như thế nào trong việc marketing trên mạng xã hội cũng như tầm quan trọng của các key player (“loa phóng thanh”) trên mạng xã hội đối với việc marketing Do đó, vấn đề là phải nhận dạng, tìm ra được các key player này Chương trình sẽ thông qua API của mạng xã hội Twitter để thu thập dữ liệu người dùng Twitter. . .Nhận dạng Key Player trên Twitter Graph database từ RDBMS 3.2 Một graph database từ một Key- Value Store Một mô hình key- value thì tối ưu cho việc tìm kiếm các giá trị đơn giản hay danh sách Còn graph database tối ưu cho việc duyệt dữ liệu có kết nối Xem hình sau: Key- Value Store (K* biểu diễn một key, V* biểu diễn một value Chú ý một vài key trỏ tới các key khác chỉ là giá trị... 3 phần chính: Connect to Graph Database Collect Data from Twitter Find Key Players Giao diện ban đầu Đầu tiên, ta phải kết nối tới neo4j, bằng cách click vào button Connect để chọn đường dẫn chứa folder cơ sở dữ liệu (là thư mục TwitterToNeo4jDB chứa kèm theo chương trình) Nhận dạng Key Player trên Twitter Chọn đường dẫn tới cơ sở dữ liệu (TwitterToNeo4jDB) Sau khi kết nối thành công tới cơ sở dữ liệu,... tiếp Ví dụ với request https://api .twitter. com/1/followers/ids.json?cursor=-1&screen_name=twitterapi Thì response sẽ là 1 { 2 "previous_cursor": 0, 3 "ids": [ 4 143206502, 5 143201767, 6 777925 7 ], 8 "previous_cursor_str": "0", Nhận dạng Key Player trên Twitter "next_cursor": 0, 9 "next_cursor_str": "0" 10 } 11 1.2 Lưu trữ đến Neo4j Thông qua các API trên ta kết nối tới Twitter và thu thập dữ liệu người... true/false, tùy chọn này dùng để hiển thị thêm một số thông tin (https://dev .twitter. com/docs/tweet-entities) Ví dụ với request https://api .twitter. com/1/users/show.json? screen_name=TwitterAPI&include_entities=true Thì response sẽ là Nhận dạng Key Player trên Twitter 1 { 2 "profile_sidebar_fill_color": "e0ff92", 3 "name": "Twitter API", 4 "profile_sidebar_border_color": "87bc44", 5 "profile_background_tile":... của mối quan hệ có thể được lờ đi nếu nó không hữu ích trong ứng dụng Một nút có thể có mối quan hệ với chính bản thân nó Nhận dạng Key Player trên Twitter Để nâng cao việc duyệt đồ thị, các mối quan hệ đều có kiểu hay gọi cách khác là được gán nhãn Ví dụ dưới đây là một mạng xã hội đơn giản với hai kiểu mối quan hệ Để tìm một người theo sau thì duyệt theo mối quan hệ có kiểu “follows”, còn nếu tìm... nào có thể kết hợp thành phức tạp hơn, đa dạng về cấu trúc liên kết Sự tương quan giữa độ phức tạp của dữ liệu và kích thước trong các loại NO SQL Ta có thể hình dung một graph database như thế này Nhận dạng Key Player trên Twitter Tổng quan một graph database 1.2 Truy vấn đồ thị Một truy vấn đồ thị được thực hiện với một traversal Một Traversal điều hướng trên một Graph, nó xác định các Path giữa... "http://t.co/37zl2jI", 44 "indices": [ 45 93, 46 112 47 ], 48 "display_url": "tumblr.com/xnr140f9mi" 49 } 50 ], 51 "hashtags": [ 52 Nhận dạng Key Player trên Twitter 53 ], 54 "user_mentions": [ 55 56 ] 57 }, 58 "in_reply_to_user_id_str": null, 59 "contributors": null, 60 "text": "Twitter downtime - Twitter is currently down We are aware of the problem and working on it http://t.co/37zl2jI", 61 "id": 17672734540570624,... tính là các cặp key- value với key là kiểu string Các giá trị thuộc tính có thể là kiểu cơ bản (integer, long, float, …) hay một mảng của một kiểu cơ bản Ví dụ String, int và int[] là các giá trị hợp lệ cho thuộc tính 2.4 Đường đi Một đường đi là một hay nhiều nút với các mối quan hệ kết nối, thường được truy hồi như là một kết quả truy vấn hay duyệt đồ thị Nhận dạng Key Player trên Twitter Đường đi... tối ưu bằng cách lập một bảng chỉ mục dựa trên thuộc tính cho các nút và mối quan hệ, cho các câu hỏi ví dụ như “tìm tài khoản có tên là Peter” Nhận dạng Key Player trên Twitter Cách thức đánh chỉ mục của graph database Phần tiếp theo sẽ đi vào tìm hiểu Neo4j, một hiện thực graph database bằng ngôn ngữ Java 2 Neo4j Cách tổ chức của Neo4j tương tự như phần trên, ta sẽ mô hình hóa chúng bằng hình sau: . Nhận dạng Key Player trên Twitter ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN CƠ SỞ DỮ LIỆU NÂNG CAO Nhận Dạng Key Player trên Mạng Xã Hội Twitter Giáng. LIỆU NÂNG CAO Nhận Dạng Key Player trên Mạng Xã Hội Twitter Giáng viên hướng dẫn PGS.TS. Đỗ Phúc Học viên: Huỳnh Lê Quốc Vương MHV: CH1101158 08 – 2012 Nhận dạng Key Player trên Twitter MỤC LỤC GIỚI. bài thu hoạch này sẽ thực hiện việc tìm các key player trên mạng xã hội Twitter. Dữ liệu dùng để nhận ra các key player sẽ được thu thập thông qua API Twitter. Qua API này ta có thể lấy được thông

Ngày đăng: 10/04/2015, 14:34

Mục lục

    1. Xu hướng dữ liệu

    2. Các loại NO SQL Database

    2.2. Wide Column Store / Column Families

    3. So sánh các mô hình database với graph database

    3.1. Một graph database từ một RDBMS

    3.2. Một graph database từ một Key-Value Store

    3.3. Một graph database từ một Column-Family

    3.4. Một graph database từ một Document Store

    II. Khái quát graph database và Neo4j

    1.1. Nút và mối quan hệ

Tài liệu cùng người dùng

Tài liệu liên quan