Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Kỹ thuật - Lập trình ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN THANH HẢI RÚT TRÍCH CÁC BÌNH LUẬN TRÊN MẠNG XÃ HỘI VỀ MỘT SỐ NHÂN VẬT NỔI TIẾNG ĐỂ PHÂN TÍCH, ĐÁNH GIÁ CẢM XÚC CỦA NGƯỜI DÙNG VỀ HỌ Chuyên ngành: Khoa học máy tính Mã số: 8480101 TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT Đà Nẵng - Năm 2018 Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA Người hướng dẫn khoa học: TS. Trương Ngọc Châu Phản biện 1: TS. Huỳnh Hữu Hưng Phản biện 2: TS. Trần Văn Cường Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ chuyên ngành Khoa học máy tính họp tại Trường Đại học Bách khoa Đà Nẵng vào ngày 05 tháng 01 năm 2019 Có thể tìm hiểu luận văn tại: - Trung tâm Học liệu và Truyền thông Trường Đại học Bách khoa Đại học Đà Nẵng tại - Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách khoa Đại học Đà Nẵng 1 MỞ ĐẦU 1. Tính cấp thiết của đề tài, ý nghĩa thực tiễn: Sự phát triển của khoa học công nghệ đã đem đến cho xã hội loài người những loại hình truyền thông mới. Công nghệ mới đã dẫn đến những phong cách và kiểu mẫu truyền thông mới. Trong khi Internet đang có một thời đại phát triển bùng nổ, các hình thức truyền thông mới đang ngày càng thu hút được đông đảo người xem. Những người dùng Internet - đặc biệt là giới trẻ, bắt đầu tìm kiếm một nơi thỏa mãn mọi nhu cầu về thông tin, giải trí, kết nối… và mạng xã hội ra đời, đáp ứng một cách gần như hoàn hảo những nhu cầu đó. . Khai phá dữ liệu (data mining) là một lĩnh vực nghiên cứu quá trình phân tích dữ liệu từ kho dữ liệu. Một trong các nội dung cơ bản nhất trong khai phá dữ liệu và rất phổ biến là khai phá dữ liệu web. Kỹ thuật khai phá dữ liệu này cho phép trích xuất tri thức từ cơ sở dữ liệu khổng lồ, phương pháp này cho phép trích xuất ra nhiều thông tin hữu ích về các đối tượng cụ thể, các cá nhân nổi tiếng như: các chính trị gia, ca sỹ,…. Việc nắm bắt được các thông tin hữu ích từ mạng xã hội, có những nhận xét tích cực lẫn tiêu cực về các cá nhân là “người nổi tiếng” sẽ giúp các tổ chức (chính phủ hoặc phi chính phủ), công ty quản lý (đối với ca sỹ, ..)……có thể thăm dò đánh giá, phản ứng của dư luận về các cá nhân chịu sự quản lý của mình. Trên cơ sở đó, tôi chọn đề tài “Rút trích các bình luận trên mạng xã hội về một số nhân vật nổi tiếng để phân tích, đánh giá cảm xúc của người dùng về họ” để làm luận văn tốt nghiệp. 2 Luận văn này sẽ minh họa cách làm thế nào để khai phá dữ liệu người dùng trên mạng xã hội, làm thế nào để trích xuất các giá trị từ mạng xã hội. Nghiên cứu này sẽ giải thích chi tiết về kịch bản, cách thức sử dụng API của mạng xã hội để phân tích dữ liệu lớn. 2. Mục tiêu nghiên cứu: Trên cơ sở lý thuyết về xử lý ngôn ngữ tự nhiên, phân tích từ vựng trong đoạn văn bản, bước đầu xây dựng ứng dụng demo có thể phân tích ý kiến đánh giá từ một đoạn văn bản. Dữ liệu đầu vào của chương trình được khai thác từ các trang mạng xã hội như Facebook, Twitter. 3. Đối tượng và phạm vi nghiên cứu: - Đối tượng nghiên cứu: Người dùng có tài khoản và tương tác trên mạng xã hội Twitter. - Phạm vi nghiên cứu: Mạng xã hội Twitter, ngôn ngữ sử dụng là tiếng Anh 4. Phương pháp nghiên cứu đề tài: - Tìm hiểu phương pháp khai thác dữ liệu từ mạng xã hội. - Tìm hiểu các phương pháp phân lớp dữ liệu và phân loại văn bản: học máy, SVM (support vector machine), KNN (K-Neaset Neighbor),.... - Tiến hành phân tích và xây dựng ứng dựng mô phỏng cho lý thuyết nghiên cứu. - Phân tích văn bản đã khai thác được từ mạng xã hội để xem văn bản đó là mang ý nghĩa tích cực hay tiêu cực. 5. Ý nghĩa khoa học và thực tiễn: - Ý nghĩa khoa học: + Đề xuất giải pháp thu thập dữ liệu người dùng thông qua API của mạng xã hội. 3 + Đề xuất kỹ thuật, đánh giá độ ổn định và khả năng phân tích dữ liệu người dùng sử dụng mạng xã hội. - Ý nghĩa thực tiễn: + Kết quả nghiên cứu sẽ giúp đánh giá sự quan tâm của người dùng về một số nhân vật nổi tiếng mang tính tích cực hay tiêu cực. + Kết quả nghiên cứu sử dụng để khảo sát người dùng về một số nhân vật nổi tiếng một cách khách quan hơn. 6. Dự kiến kết quả đạt được. - Minh họa cách làm thế nào để khai phá dữ liệu người dùng trên mạng xã hội, làm thế nào để trích xuất các giá trị từ mạng xã hội - Xây dựng một ứng dụng demo có khả năng rút trích thông tin trên mạng xã hội Twitter nhằm đánh giá phản ứng của người dùng. 7. Bố cục luận văn Dựa trên những mục tiêu đã đề ra, ngoài các nội dung như mở đầu thì luận văn sẽ được xây dựng với bố cục như sau: CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU Chương này trình bày tổng quan về khai phá dữ liệu, các kỹ thuật khai phá dữ liệu cũng như tính ứng dụng của nó trong các lĩnh vực đời sống, đặc biệt là dữ liệu trên nền Web. CHƯƠNG 2: CÁC PHƯƠNG PHÁP LẤY DỮ LIỆU TỪ MẠNG XÃ HỘI Chương này trình bày tổng quan về các mạng xã hội phổ biến hiện nay, đặc biệt là mạng xã hội Twitter. Tìm hiểu phương thức lấy dữ liệu từ mạng xã hội Twitter bằng công cụ Twitter REST API . Sau đó, tìm hiểu các phương pháp phân lớp dữ liệu như: SVM, NB, KNN, ... 4 CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ Trên cơ sở tìm hiểu và phân tích các thuật toán liên quan, đặc biệt là thuật toán NB, báo cáo khảo sát các phương pháp lấy dữ liệu và phân tích dữ liệu thu được. Chương này xây dựng một ứng dụng demo được viết bằng ngôn ngữ lập trình Python với bộ dữ liệu 200 tweet được lấy bằng Twitter Rest API. 5 CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1.1. Khai phá dữ liệu 1.1.1. Khái niệm Khai phá dữ liệu (datamining) được định nghĩa như là một quá trình chắt lọc hay khai phá tri thức từ một lượng lớn dữ liệu. Dataming được ví như công việc "Đãi cát tìm vàng" trong một tập hợp lớn các dữ liệu cho trước. Thuật ngữ Datamining ám chỉ việc tìm kiếm một tập hợp nhỏ có giá trị từ một số lượng lớn các dữ liệu thô. Có nhiều thuật ngữ hiện được dùng cũng có nghĩa tương tự với từ Datamining như Knowledge Mining (khai phá tri thức), knowledge extraction (chắt lọc tri thức), datapatern analysis (phân tích dữ liệumẫu), data archaeoloogy (khảo cổ dữ liệu), datadredging (nạo vét dữ liệu),... Khai phá dữ liệu là một lĩnh vực mới được nghiên cứu, nhằm tự động khai thác thông tin, tri thức mới hữu ích, tiềm ẩn từ những cơ sở dữ liệu lớn cho các đơn vị, tổ chức, doanh nghiệp, .... từ đó thúc đẩy khả năng sản xuất, kinh doanh, cạnh tranh cho các đơn vị, tổ chức này. Các kết quả nghiên cứu khoa học cùng với những ứng dụng thành công trong khai phá tri thức cho thấy khai phá dữ liệu là một lĩnh vực phát triển bền vững và mang nhiều lợi ích hơn hẳn so với các công cụ tìm kiếm phân tích dữ liệu truyền thống. 6 Hình 1.1: Các bước trong Datamining và KDD 1.1.2. Các bước trong quá trình khai phá dữ liệu Quá trình khai phá dữ liệu gồm các bước như sau: Hình 1.2: Các bước trong khai phá dữ liệu 1.1.3. Các hướng tiếp cận và kỹ thuật áp dụng trong khai phá dữ liệu 1.1.4. Ứng dụng của khai phá dữ liệu 1.2. Khai phá dữ liệu Web 1.2.1. Khai phá dữ liệu web Có nhiều khái niệm khác nhau về khai phá Web, nhưng có thể tổng quát hóa như sau: Khai phá Web là việc sử dụng các kỹ thuật KPDL để tự động hóa quá trình khám phá và trích rút những thông tin hữu ích từ các tài liệu, các dịch vụ và cấu trúc 7 Web. Hay nói cá ch khác khai phá Web là việc thăm dò những thông tin quan trọng và những mẫu tiềm năng từ nội dung Web, từ thông tin truy cập Web, từ liên kết trang và từ nguồn tài nguyên thương mại điện tử bằng việc sử dụng các kỹ thuật KPDL, nó có thể giúp con người rút ra những tri thức, cải tiến việc thiết kế các Web site và phát triển thương mại điện tử tốt hơn. Lĩnh vực này đã thu hút được nhiều nhà khoa học quan tâm 1.2.2. Lợi ích của khai phá dữ liệu web 1.2.3. Khó khăn 1.2.4. Thuận lợi 1.2.5. Các kiểu dữ liệu web Ta có thể khái quát bằng sơ đồ sau: Hình1.3: Phân loại dữ liệu web 1.3. Các thách thức trong khai phá dữ liệu 1.3.1. Các vấn đề về Cơ sở dữ liệu 1.3.2. Một số vấn đề khác - Quá phù hợp (Overfitting) - Khả năng biểu đạt của mẫu - Sự tương tác với người sử dụng và các tri thức sẵn có. 1.4. Các phương pháp tách từ hiện nay 8 1.4.1. Phương pháp Maximum Matching 1.4.2. Phương pháp giải thuật học cải biến (Transformation- based Learning - TBL) 1.4.3. Mô hình tách từ bằng WFST và mạng Neural 1.4.4. Phương pháp Quy hoạch động 1. 5. Các công trình khai phá và xử lý dữ liệu đã được phát triển 1.6. Kết luận Chương 1 9 CHƯƠNG 2: PHƯƠNG PHÁP RÚT TRÍCH DỮ LIỆU TỪ MẠNG XÃ HỘI VÀ PHÂN LỚP DỮ LIỆU 2.1. Giới thiệu bài toán Những năm gần đây, sự ra đời của mạng xã hội trực tuyến là một trong những sự kiện thú vị nhất. Có rất nhiều mạng xã hội trực tuyến phổ biến hiện nay như: Facebook, Twitter, LinkedIn , … Với sự phát triển nhanh chóng về số người sử dụng trên toàn thế giới, mạng xã hội trực tuyến như một mô hình thu nhỏ của thế giới thực. Do đó, mạng xã hội trở thành nơi cất giữ thông tin và các mối quan hệ giữa các cá nhân, doanh nghiệp, … Những thông tin này tạo thành “đám mây tri thức ”. Việc tìm hiểu và khai thác hiệu quả những thông tin này sẽ tạo tiền đề cho nhiều ứng dụng khác như: hệ thống tư vấn, hệ thống tìm kiếm thông tin, tiếp thị trực tuyến, điều tra tội phạm, dự đoán sự phát triển của mạng xã hội, … Vì vậy, việc khai thác những thông tin trên mạng xã hội để áp dụng vào thực tiễn ngày càng trở nên quan trọng. 2.2. Mạng xã hội 2.2.1. Giới thiệu 2.2.2. Các mạng xã hội phổ biến hiện nay 2.2.2.1. Facebook 2.2.2.2. Youtube 2.2.2.3. Instagram 2.2.3. Mạng xã hội Twitter Mạng xã hội twitter ra đời vào ngày 2132006 bởi Jack Dorsey và July, tính đến tháng 5 năm 2016, Twitter có hơn 1.3 tỉ người dùng, trong đó có hơn 310 triệu người dùng tích cực trong tháng và trung bình trên mỗi người dùng có 208 người 10 theo dõi. Trung bìn h có hơn 500 triệu tweet được tạo ra trên một ngày. Điều đó có nghĩa có 6000 tweet mỗi giây. Có 80 người sử dụng truy cập qua điện thoại, có 65.8 các công ty ở Mỹ với hơn 100 người làm sử dụng Twitter để tiếp thị, quảng bá. Twitter chỉ cho phép người dùng sử dụng 140 ký tự mà thôi. Do đo, Twitter không thể giống như facebook nơi chúng ta có thể đăng tải 1 status (trạng thái) dài lê thê. Twitter cũng không có album ảnh hay nơi để t ải lên video như facebook. Twitter cũng không có chế độ kết bạn, chỉ có chế độ Follow (theo dõi) mà thôi. Cơ chế kết nối Cơ chế của mạng xã hội Twitter là cơ chế một chiều. Một người theo (follow) bạn thì không cần phải chờ sự xác nhận từ bạn. Sau khi một người follow bạn thì họ sẽ nhận được các thôn g tin mà bạn tweet trên đó, tweet cũng giống như hình thức cập nhật trạng thái của Facebook. Nhưng nếu bạn không follow lại người đó thì bạn sẽ không thấy những cập nhật của họ. Hay nói cách khác là bạn muốn nhìn thấy được những cập nhật từ ai đó, bạn phải follow người đó. Điểm mạnh của Twitter là số người follow bạn không giới hạn, còn số lượng người kết nối bạn bè trong Facebook thì giới hạn với con số 5000. Do đó, Twitter thường được ưa thích sử dụng bởi các doanh nghiệp, thương hiệu, hay những ngôi sao nổi tiếng nhằm cập nhật những thông tin về mình cho những người quan tâm.. 11 Cơ chế cập nhật C ó một điểm đặc biệt và khác với nhiều mạng xã hội khác ở Twitter chính là việc chỉ cho phép tweet với 140 ký tự. Đây cũng là một trong những lý do tại sao đa số người Việt Nam không thích sử dụng mạng xã hội này. Thế nhưng tại sao lại như vậy? Đó là vì nếu như bạn ở Mỹ và một số nước mà Twitter phát triển, bạn có thể nhận được những cập nhật từ người mà bạn quan tâm thông qua tin nhắn SMS. Mà đa phần các thiết bị di động chỉ giới hạn số ký tự cho một tin nhắn là 160 ký tự. Vậy vì sao lại không phải là 160 ký tự mà là 140 ký tự? Đó là vì 20 ký tự kia được dành để hiển thị cho tên người cập nhật. Mặt khác, việc cập nhật một status với số lượng ký tự ít ỏi này cũng tạo nên một thói quen cho người dùng. Nhất là đối với thời buổi bận rộn hiện nay. Tuy nhiên, hiện nay Twitter chưa hỗ trợ phần gửi tin nhắn SMS ở Việt Nam. Đó cũng là một trong những lý do chính khiến cho Twitter không thể phát triển được ở Việt Nam. Từ những gì đã nêu ở trên, các bạn sẽ dễ dàng nhận thấy rằng Twitter rất tiện lợi trong ba vấn đề sau: Đối với bạn bè quan tâm đến bạn : Khi bạn đang ở đâu đó, bạn đi đâu đó, bạn chỉ cần tweet lên twitter thì bạn bè thân của bạn sẽ biết được mà không cần phải gọi điện thoại hay nhắn tin. Đối với doanh nghiệp và người dùng: Các doanh nghiệp sẽ dễ dàng cung cấp thông tin đến với người tiêu dùng của họ thông qua việt tweet lên Twitter. Người dùng cũng dễ 12 dàng nhận được các thông tin hỗ trợ và những chương trình khuyến mãi, hay các thông tin về sản phẩm mới. Đối với các ngôi sao có nhiều fan hâm mộ: Các ngôi sao có thể cập nhật những gì mình đang làm, những chương trình mà mình tham gia, các buổi biểu diễn… Các fan hâm mộ cũng có thể nhận được thông tin này một cách nhanh nhất trực tiếp từ chính thần tượng của họ. Qua đó, các bạn cũng thấy rằng không cần phải thông qua các báo đài, bạn vẫn có thể nhận được thông tin một cách nhanh nhất một cách trực tiếp từ người bạn cần theo dõi. Ngoài ra, Twitter còn có cơ chế retweet, tức là tweet lại thông tin từ người khác đã tweet. Đây cũng chính là một trong những điểm mạnh của Twitter, thông tin lan truyền một cách nhanh chóng. 2.3. Phương pháp rút trích dữ liệu từ mạng xã hội Twitter 2.3.1. Twitter REST API Chúng ta đã tìm hiểu ở trên thì Twitter là một mạng thông tin và là phương tiện giao tiếp cung cấp hơn 200 triệu tweet mỗi ngày. Nền tảng Twitter cung cấp đường truy cập tới khối dữ liệu đó thông qua Twitter API. Mỗi API biểu thị một khía cạnh của Twitter, và cho p...
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA NGUYỄN THANH HẢI RÚT TRÍCH CÁC BÌNH LUẬN TRÊN MẠNG XÃ HỘI VỀ MỘT SỐ NHÂN VẬT NỔI TIẾNG ĐỂ PHÂN TÍCH, ĐÁNH GIÁ CẢM XÚC CỦA NGƯỜI DÙNG VỀ HỌ Chuyên ngành: Khoa học máy tính Mã số: 8480101 TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT Đà Nẵng - Năm 2018 Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA Người hướng dẫn khoa học: TS Trương Ngọc Châu Phản biện 1: TS Huỳnh Hữu Hưng Phản biện 2: TS Trần Văn Cường Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp thạc sĩ chuyên ngành Khoa học máy tính họp tại Trường Đại học Bách khoa Đà Nẵng vào ngày 05 tháng 01 năm 2019 Có thể tìm hiểu luận văn tại: - Trung tâm Học liệu và Truyền thông Trường Đại học Bách khoa Đại học Đà Nẵng tại - Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách khoa Đại học Đà Nẵng 1 MỞ ĐẦU 1 Tính cấp thiết của đề tài, ý nghĩa thực tiễn: Sự phát triển của khoa học công nghệ đã đem đến cho xã hội loài người những loại hình truyền thông mới Công nghệ mới đã dẫn đến những phong cách và kiểu mẫu truyền thông mới Trong khi Internet đang có một thời đại phát triển bùng nổ, các hình thức truyền thông mới đang ngày càng thu hút được đông đảo người xem Những người dùng Internet - đặc biệt là giới trẻ, bắt đầu tìm kiếm một nơi thỏa mãn mọi nhu cầu về thông tin, giải trí, kết nối… và mạng xã hội ra đời, đáp ứng một cách gần như hoàn hảo những nhu cầu đó Khai phá dữ liệu (data mining) là một lĩnh vực nghiên cứu quá trình phân tích dữ liệu từ kho dữ liệu Một trong các nội dung cơ bản nhất trong khai phá dữ liệu và rất phổ biến là khai phá dữ liệu web Kỹ thuật khai phá dữ liệu này cho phép trích xuất tri thức từ cơ sở dữ liệu khổng lồ, phương pháp này cho phép trích xuất ra nhiều thông tin hữu ích về các đối tượng cụ thể, các cá nhân nổi tiếng như: các chính trị gia, ca sỹ,… Việc nắm bắt được các thông tin hữu ích từ mạng xã hội, có những nhận xét tích cực lẫn tiêu cực về các cá nhân là “người nổi tiếng” sẽ giúp các tổ chức (chính phủ hoặc phi chính phủ), công ty quản lý (đối với ca sỹ, )……có thể thăm dò đánh giá, phản ứng của dư luận về các cá nhân chịu sự quản lý của mình Trên cơ sở đó, tôi chọn đề tài “Rút trích các bình luận trên mạng xã hội về một số nhân vật nổi tiếng để phân tích, đánh giá cảm xúc của người dùng về họ” để làm luận văn tốt nghiệp 2 Luận văn này sẽ minh họa cách làm thế nào để khai phá dữ liệu người dùng trên mạng xã hội, làm thế nào để trích xuất các giá trị từ mạng xã hội Nghiên cứu này sẽ giải thích chi tiết về kịch bản, cách thức sử dụng API của mạng xã hội để phân tích dữ liệu lớn 2 Mục tiêu nghiên cứu: Trên cơ sở lý thuyết về xử lý ngôn ngữ tự nhiên, phân tích từ vựng trong đoạn văn bản, bước đầu xây dựng ứng dụng demo có thể phân tích ý kiến đánh giá từ một đoạn văn bản Dữ liệu đầu vào của chương trình được khai thác từ các trang mạng xã hội như Facebook, Twitter 3 Đối tượng và phạm vi nghiên cứu: - Đối tượng nghiên cứu: Người dùng có tài khoản và tương tác trên mạng xã hội Twitter - Phạm vi nghiên cứu: Mạng xã hội Twitter, ngôn ngữ sử dụng là tiếng Anh 4 Phương pháp nghiên cứu đề tài: - Tìm hiểu phương pháp khai thác dữ liệu từ mạng xã hội - Tìm hiểu các phương pháp phân lớp dữ liệu và phân loại văn bản: học máy, SVM (support vector machine), KNN (K-Neaset Neighbor), - Tiến hành phân tích và xây dựng ứng dựng mô phỏng cho lý thuyết nghiên cứu - Phân tích văn bản đã khai thác được từ mạng xã hội để xem văn bản đó là mang ý nghĩa tích cực hay tiêu cực 5 Ý nghĩa khoa học và thực tiễn: - Ý nghĩa khoa học: + Đề xuất giải pháp thu thập dữ liệu người dùng thông qua API của mạng xã hội 3 + Đề xuất kỹ thuật, đánh giá độ ổn định và khả năng phân tích dữ liệu người dùng sử dụng mạng xã hội - Ý nghĩa thực tiễn: + Kết quả nghiên cứu sẽ giúp đánh giá sự quan tâm của người dùng về một số nhân vật nổi tiếng mang tính tích cực hay tiêu cực + Kết quả nghiên cứu sử dụng để khảo sát người dùng về một số nhân vật nổi tiếng một cách khách quan hơn 6 Dự kiến kết quả đạt được - Minh họa cách làm thế nào để khai phá dữ liệu người dùng trên mạng xã hội, làm thế nào để trích xuất các giá trị từ mạng xã hội - Xây dựng một ứng dụng demo có khả năng rút trích thông tin trên mạng xã hội Twitter nhằm đánh giá phản ứng của người dùng 7 Bố cục luận văn Dựa trên những mục tiêu đã đề ra, ngoài các nội dung như mở đầu thì luận văn sẽ được xây dựng với bố cục như sau: CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU Chương này trình bày tổng quan về khai phá dữ liệu, các kỹ thuật khai phá dữ liệu cũng như tính ứng dụng của nó trong các lĩnh vực đời sống, đặc biệt là dữ liệu trên nền Web CHƯƠNG 2: CÁC PHƯƠNG PHÁP LẤY DỮ LIỆU TỪ MẠNG XÃ HỘI Chương này trình bày tổng quan về các mạng xã hội phổ biến hiện nay, đặc biệt là mạng xã hội Twitter Tìm hiểu phương thức lấy dữ liệu từ mạng xã hội Twitter bằng công cụ Twitter REST API Sau đó, tìm hiểu các phương pháp phân lớp dữ liệu như: SVM, NB, KNN, 4 CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ Trên cơ sở tìm hiểu và phân tích các thuật toán liên quan, đặc biệt là thuật toán NB, báo cáo khảo sát các phương pháp lấy dữ liệu và phân tích dữ liệu thu được Chương này xây dựng một ứng dụng demo được viết bằng ngôn ngữ lập trình Python với bộ dữ liệu 200 tweet được lấy bằng Twitter Rest API 5 CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1.1 Khai phá dữ liệu 1.1.1 Khái niệm Khai phá dữ liệu (datamining) được định nghĩa như là một quá trình chắt lọc hay khai phá tri thức từ một lượng lớn dữ liệu Dataming được ví như công việc "Đãi cát tìm vàng" trong một tập hợp lớn các dữ liệu cho trước Thuật ngữ Datamining ám chỉ việc tìm kiếm một tập hợp nhỏ có giá trị từ một số lượng lớn các dữ liệu thô Có nhiều thuật ngữ hiện được dùng cũng có nghĩa tương tự với từ Datamining như Knowledge Mining (khai phá tri thức), knowledge extraction (chắt lọc tri thức), data/patern analysis (phân tích dữ liệu/mẫu), data archaeoloogy (khảo cổ dữ liệu), datadredging (nạo vét dữ liệu), Khai phá dữ liệu là một lĩnh vực mới được nghiên cứu, nhằm tự động khai thác thông tin, tri thức mới hữu ích, tiềm ẩn từ những cơ sở dữ liệu lớn cho các đơn vị, tổ chức, doanh nghiệp, từ đó thúc đẩy khả năng sản xuất, kinh doanh, cạnh tranh cho các đơn vị, tổ chức này Các kết quả nghiên cứu khoa học cùng với những ứng dụng thành công trong khai phá tri thức cho thấy khai phá dữ liệu là một lĩnh vực phát triển bền vững và mang nhiều lợi ích hơn hẳn so với các công cụ tìm kiếm phân tích dữ liệu truyền thống 6 Hình 1.1: Các bước trong Datamining và KDD 1.1.2 Các bước trong quá trình khai phá dữ liệu Quá trình khai phá dữ liệu gồm các bước như sau: Hình 1.2: Các bước trong khai phá dữ liệu 1.1.3 Các hướng tiếp cận và kỹ thuật áp dụng trong khai phá dữ liệu 1.1.4 Ứng dụng của khai phá dữ liệu 1.2 Khai phá dữ liệu Web 1.2.1 Khai phá dữ liệu web Có nhiều khái niệm khác nhau về khai phá Web, nhưng có thể tổng quát hóa như sau: Khai phá Web là việc sử dụng các kỹ thuật KPDL để tự động hóa quá trình khám phá và trích rút những thông tin hữu ích từ các tài liệu, các dịch vụ và cấu trúc 7 Web Hay nói cách khác khai phá Web là việc thăm dò những thông tin quan trọng và những mẫu tiềm năng từ nội dung Web, từ thông tin truy cập Web, từ liên kết trang và từ nguồn tài nguyên thương mại điện tử bằng việc sử dụng các kỹ thuật KPDL, nó có thể giúp con người rút ra những tri thức, cải tiến việc thiết kế các Web site và phát triển thương mại điện tử tốt hơn Lĩnh vực này đã thu hút được nhiều nhà khoa học quan tâm 1.2.2 Lợi ích của khai phá dữ liệu web 1.2.3 Khó khăn 1.2.4 Thuận lợi 1.2.5 Các kiểu dữ liệu web Ta có thể khái quát bằng sơ đồ sau: Hình1.3: Phân loại dữ liệu web 1.3 Các thách thức trong khai phá dữ liệu 1.3.1 Các vấn đề về Cơ sở dữ liệu 1.3.2 Một số vấn đề khác - Quá phù hợp (Overfitting) - Khả năng biểu đạt của mẫu - Sự tương tác với người sử dụng và các tri thức sẵn có 1.4 Các phương pháp tách từ hiện nay 8 1.4.1 Phương pháp Maximum Matching 1.4.2 Phương pháp giải thuật học cải biến (Transformation- based Learning - TBL) 1.4.3 Mô hình tách từ bằng WFST và mạng Neural 1.4.4 Phương pháp Quy hoạch động 1.5 Các công trình khai phá và xử lý dữ liệu đã được phát triển 1.6 Kết luận Chương 1 10 theo dõi Trung bình có hơn 500 triệu tweet được tạo ra trên một ngày Điều đó có nghĩa có 6000 tweet mỗi giây Có 80% người sử dụng truy cập qua điện thoại, có 65.8% các công ty ở Mỹ với hơn 100 người làm sử dụng Twitter để tiếp thị, quảng bá Twitter chỉ cho phép người dùng sử dụng 140 ký tự mà thôi Do đo, Twitter không thể giống như facebook nơi chúng ta có thể đăng tải 1 status (trạng thái) dài lê thê Twitter cũng không có album ảnh hay nơi để tải lên video như facebook Twitter cũng không có chế độ kết bạn, chỉ có chế độ Follow (theo dõi) mà thôi Cơ chế kết nối Cơ chế của mạng xã hội Twitter là cơ chế một chiều Một người theo (follow) bạn thì không cần phải chờ sự xác nhận từ bạn Sau khi một người follow bạn thì họ sẽ nhận được các thông tin mà bạn tweet trên đó, tweet cũng giống như hình thức cập nhật trạng thái của Facebook Nhưng nếu bạn không follow lại người đó thì bạn sẽ không thấy những cập nhật của họ Hay nói cách khác là bạn muốn nhìn thấy được những cập nhật từ ai đó, bạn phải follow người đó Điểm mạnh của Twitter là số người follow bạn không giới hạn, còn số lượng người kết nối bạn bè trong Facebook thì giới hạn với con số 5000 Do đó, Twitter thường được ưa thích sử dụng bởi các doanh nghiệp, thương hiệu, hay những ngôi sao nổi tiếng nhằm cập nhật những thông tin về mình cho những người quan tâm 11 Cơ chế cập nhật Có một điểm đặc biệt và khác với nhiều mạng xã hội khác ở Twitter chính là việc chỉ cho phép tweet với 140 ký tự Đây cũng là một trong những lý do tại sao đa số người Việt Nam không thích sử dụng mạng xã hội này Thế nhưng tại sao lại như vậy? Đó là vì nếu như bạn ở Mỹ và một số nước mà Twitter phát triển, bạn có thể nhận được những cập nhật từ người mà bạn quan tâm thông qua tin nhắn SMS Mà đa phần các thiết bị di động chỉ giới hạn số ký tự cho một tin nhắn là 160 ký tự Vậy vì sao lại không phải là 160 ký tự mà là 140 ký tự? Đó là vì 20 ký tự kia được dành để hiển thị cho tên người cập nhật Mặt khác, việc cập nhật một status với số lượng ký tự ít ỏi này cũng tạo nên một thói quen cho người dùng Nhất là đối với thời buổi bận rộn hiện nay Tuy nhiên, hiện nay Twitter chưa hỗ trợ phần gửi tin nhắn SMS ở Việt Nam Đó cũng là một trong những lý do chính khiến cho Twitter không thể phát triển được ở Việt Nam Từ những gì đã nêu ở trên, các bạn sẽ dễ dàng nhận thấy rằng Twitter rất tiện lợi trong ba vấn đề sau: Đối với bạn bè quan tâm đến bạn: Khi bạn đang ở đâu đó, bạn đi đâu đó, bạn chỉ cần tweet lên twitter thì bạn bè thân của bạn sẽ biết được mà không cần phải gọi điện thoại hay nhắn tin Đối với doanh nghiệp và người dùng: Các doanh nghiệp sẽ dễ dàng cung cấp thông tin đến với người tiêu dùng của họ thông qua việt tweet lên Twitter Người dùng cũng dễ 12 dàng nhận được các thông tin hỗ trợ và những chương trình khuyến mãi, hay các thông tin về sản phẩm mới Đối với các ngôi sao có nhiều fan hâm mộ: Các ngôi sao có thể cập nhật những gì mình đang làm, những chương trình mà mình tham gia, các buổi biểu diễn… Các fan hâm mộ cũng có thể nhận được thông tin này một cách nhanh nhất trực tiếp từ chính thần tượng của họ Qua đó, các bạn cũng thấy rằng không cần phải thông qua các báo đài, bạn vẫn có thể nhận được thông tin một cách nhanh nhất một cách trực tiếp từ người bạn cần theo dõi Ngoài ra, Twitter còn có cơ chế retweet, tức là tweet lại thông tin từ người khác đã tweet Đây cũng chính là một trong những điểm mạnh của Twitter, thông tin lan truyền một cách nhanh chóng 2.3 Phương pháp rút trích dữ liệu từ mạng xã hội Twitter 2.3.1 Twitter REST API Chúng ta đã tìm hiểu ở trên thì Twitter là một mạng thông tin và là phương tiện giao tiếp cung cấp hơn 200 triệu tweet mỗi ngày Nền tảng Twitter cung cấp đường truy cập tới khối dữ liệu đó thông qua Twitter API Mỗi API biểu thị một khía cạnh của Twitter, và cho phép developer viết và mở rộng ứng dụng của họ theo một cách hoàn toàn mới và sáng tạo REST API cho phép lập trình viên truy cập vào một vài core nguyên thuỷ của Twitter bao gồm các timeline, các cập nhật status, và thông tin người dùng Bạn có thể xây dựng profile của một người dùng: tên của họ, Twitter họ đang dùng và tập hợp những người mà họ đang theo dõi trên Twitter – tất cả chỉ với một vài lời gọi RESTful API Thêm vào đó, để cho 13 phép truy nhập vào timeline, status, user object thông qua lập trình, API này cung cấp cho lập trình viên rất nhiều những phương thức tích hợp để giao tiếp với Twitter Hiện Twitter REST API có phiên bản 1.0 và phiên bản 1.1, tuy nhiên bản 1.0 không được sử dụng nữa Phiên bản gần nhất là REST API 1.1 2.3.2 Các phương thức của REST API v1.1 2.3.2.1 Timelines GET statuses/mentions_timeline: Trả về 20 thông tin gần nhất có đề cập tới người dùng ( tweet bao gồm @screen_name của người dùng ) cho người dùng đã đăng nhập Phương thức này có thể trả về tới 800 tweet GET statuses/user_timeline: Trả về một tập những Tweet gần đây nhất đăng bởi người dùng được chỉ ra bởi thông số screen_name hoặc user_id Timelime của người dùng được bảo mật, sẽ chỉ nhận những request từ người dùng đó (xác nhận bằng đăng nhập) hoặc một người theo dõi người dùng đó đã được cho quyền xem Phương thức này có thể trả vời tới 3200 Tweet gần nhất của người dùng GET statuses/home_timeline: Trả về tập hợp những Tweet và Retweet gần nhất được đăng bởi người dùng đăng nhập và những người dùng mà họ đang theo dõi Home timeline là trung tâm của những tương tác giữa người dùng và dịch vụ Twitter Có thể lấy được tới 800 tweet từ home timeline Kết quả trả về dễ thay đổi trong trường hợp user theo dõi nhiều người dùng khác hoặc theo dõi những người dùng thường xuyên tweet GET statuses/retweets_of_me: Trả về những tweet 14 gần nhất được tạo bởi người dùng đăng nhập hiện tại mà những tweet này đã được retweet bởi những người khác Timeline này là một tập con của GET statuses/user_timeline của người dùng 2.3.2.2 Tweets GET statuses/retweets/:id: Trả về tập hợp của 199 retweet gần nhất theo thông số id GET statuses/show/:id: Trả về một tweet duy nhất, chỉ ra bởi thông số id POST statuses/destroy/:id: Xoá một status chỉ ra bởi thông số ID bắt buộc phải có Người dùng đăng nhập bắt buộc phải là người đăng status đã được chỉ ra Trả về status đã xoá trong trường hợp thành công POST statuses/update: Cập nhật trạng thái hiện tại của người đăng nhập Để upload một bức ảnh đi cùng với tweet, sử dụng POST statuses/update_with_media Với mỗi lần cập nhật, dòng cập nhật sẽ được so sánh với những tweet gần đây của người dùng đăng nhập Những cập nhật gây ra kết quả trùng lặp sẽ bị chặn lại và báo về lỗi 403 Vì vậy người dùng không thể cập nhật những dòng trạng thái giống nhau một cách liên tiếp Số lượng cập nhật liên tiếp trong một khoảng thời gian nhất định cũng bị giới hạn, do đó người dùng sẽ nhận được lỗi HTTP 403 nếu vượt quá giới hạn này POST statuses/retweet/:id: Retweet một tweet nào đó Trả về tweet nguồn với thông tin retweet được nhúng vào POST statuses/update_with_media: Cập nhật trạng thái của người dùng đăng nhập và đính kèm một media để upload Nói cách khác, nó tạo ra một tweet với một bức ảnh đính kèm Không giống POST statuses/update, phương thức 15 này yêu cầu dữ liệu raw và được chia làm nhiều phần POST request Content-Type của bạn cần phải được thiết lập là multipart/form-date với thông số media Dòng tweet có thể đi kèm với URL của media, nhưng sẽ làm giảm số lượng kí tự được cho phép trong dong tweet đó Nếu URL làm tweet dài hơn 140 kí tự, tweet sẽ bị từ chối và kết quả trả về lỗi 403 GET statuses/oembed: Trả về thông tin cho phép tạo ra dạng nhúng của một Tweet trong site của bên thứ ba Endpoint này cho phép thay đổi (customize) một chút cho dạng hiển thị cuối cùng Tweet được nhúng, cần lưu ý rằng dạng hiển thị của Tweet được đưa ra có thể thay đổi theo thời gian để thích hợp với yêu cầu hiển thị của Twitter Không nên nghĩ rằng các thông số class hoặc id sẽ giữ nguyên trạng ở kết quả trả về GET statuses/retweeters/ids: Trả về một tập hợp có thể lên tới 100 ID người dùng mà những người này đã retweet tweet được chỉ ra bởi thong số id Phương thức này trả về kết quả tương tự như GET statuses/retweets/:id và thay thế phương thức GET statuses/:id/retweeted_by/ids của API phiên bản 1 2.3.2.3 Tìm kiếm GET search/tweets: Trả về một tập hợp các Tweet tương ứng truy vấn được gọi Cần lưu ý rằng Twitter search sẽ không trả về một tập hợp Tweet với cấu trúc hoàn hảo Không phải tất cả các tweet sẽ được đánh thứ tự và cũng không phải tất cả có thể search được Ở API phiên bản 1.1, cấu trúc kết quả trả về của API tìm kiếm đã được sửa đổi để trả về những Tweet object giống với những object bạn tìm thấy được ở API và nền tảng REST 16 2.3.2.4 Streaming POST statuses/filter: Trả về những status công khai đã được lọc qua filter Nhiều thông số có thể được định rõ để cho phép hầu hết các máy client sử dụng một kết nối tới Streaming API Cả request GET và POST đều được hỗ trợ Nhưng request GET với quá nhiều thông số có thể khiến request bị từ chối vì URL quá dài Sử dụng một POST request để tránh trường hợp URL dài GET statuses/sample: Trả về một lượng nhỏ những mẫu ngẫu nhiên của tất cả những status công khai Những Tweet trả về mặc định thường có khả năng truy nhập giống nhau, vì thế nếu hai client cùng connect tới một endpoint họ sẽ thấy những Tweet giống nhau GET statuses/firehose: Endpoint này yêu cầu quyền truy nhập đặc biệt Trả về tất cả các status công khai Một lượng nhỏ các ứng dụng yêu cầu cấp độ truy nhập này Sử dụng kết hợp các nguồn khác và nhiều cấp độ truy nhập một cách sáng tạo có thể đáp ứng được hầu hết các nhu cầu của các ứng dụng GET user: Lấy các message của một người dùng GET site: Lấy message của một tập các người dùng 2.3.2.5 Tin nhắn trực tiếp Tin nhắn trực tiếp là những tin nhắn ngắn, không công khai giữa hai người dùng Truy nhập tới tin nhắn trực tiếp được quản lý bởi The Application Permission Model GET direct_messages: Trả về 20 tin nhắn trực tiếp gần nhất được gửi tới người dùng đăng nhập Bao gồm thông tin chi tiết về người gửi và người nhận Bạn có thể request tới 200 tin nhắn trực tiếp mỗi lần gọi, và có thể tới cực đại là 800 tin nhắn 17 trực tiếp Chú ý, phương thức này yêu cầu một access token với quyền RWD (đọc, viết, tin nhắn trực tiếp ) GET direct_messages/sent: Trả về 20 tin nhắn trực tiếp gần nhất được gửi bởi người dùng đăng nhập Bao gồm thông tin chi tiết về người nhận và người gửi Bạn có thể request tới 200 tin nhắn trực tiếp mỗi lần gọi, và có thể tới cực đại là 800 tin nhắn trực tiếp GET direct_message/show: Trả về một tin nhắn trực tiếp duy nhất, chỉ ra bởi id POST direct_messages/destroy: Xoá tin nhắn trực tiếp được với id cho trước Người dùng đăng nhập bắt buộc phải là người nhận của tin nhắn đã được chỉ ra Phương thức này yêu cầu một access token với quyền RWD (đọc, viết, tin nhắn trực tiếp ) POST direct_messages/new: Gửi một tin nhắn trực tiếp tới người dùng với ID cho trước với người gửi là người dùng đăng nhập Cần cả thông số người dùng và đoạn tin nhắn và phải là một request POST Trả về kết quả là tin nhắn được gửi và định dạng request trong trường hợp thành công 2.3.2.6 Bạn bè và những người theo dõi GET friendships/no_retweets/ids: Trả về một tập hợp của các user_id mà người dùng đăng nhập không muốn nhận retweet từ những người này Sử dụng POST friendships/update để thiết lập trạng thái “no retweets” cho những tài khoản của những người dùng trên đối với trang của người dùng hiện tại GET friends/ids: Trả về tập hợp của những ID của những người dùng mà người dùng được nhắc tới đang theo dõi ( có thể nói cách khác là bạn của họ ) 18 GET followers/ids: Trả về tập hợp những ID của những người dùng đang theo dõi người dùng được chỉ đến GET friendships/incoming: Trả về tập hợp của những ID của tất cả những người đang đợi request follow của họ tới người dùng hiện tại được chấp nhận GET friendships/outgoing: Tra về tập hợp của ID của tất cả những người mà người dùng hiện tại đang chờ request follow gửi tới họ được chấp nhận POST friendships/create: Cho phép người dùng hiện tại theo dõi người dùng được chỉ ra bởi ID Trả về người dùng được theo dõi với format giống request trong trường hợp thành công Trả về một chuỗi miêu tả tại sao request thất bại trong trường hợp này POST friendships/destroy: Cho người dùng hiện tại không theo dõi người dùng với ID cho trước nữa Trả về người dùng bị bỏ theo dõi với định dạng giống với request trong trường hợp thành công Trả về một chuỗi miêu tả tại sao request thất bại trong trường hợp này Những action trong phương thức này được tạo ra không đồng thời và sự thay đổi sẽ được đồng bộ dần dần POST friendships/update: Cho phép người dùng hiện tại cho quyền hoặc bỏ quyền retweet và thông báo tới thiết bị từ một người dùng khác GET friendships/show: Trả về thông tin chi tiết về liên hệ bạn bè giữa hai người dùng bất kỳ GET friends/list: trả về tập hợp các object người dùng mà người dùng hiện tại đang theo dõi Kết quả trả về được sắp xếp thứ tự thời gian Tuy nhiên thứ tự này có thể bị thay đổi