Bối cảnh và vấn đề nghiên cứu

Cuộc bầu cử Tổng thống Mỹ năm 2020 giữa hai ứng cử viên Donald Trump và Joe Biden diễn ra trong bối cảnh toàn cầu đối mặt với nhiều biến động phức tạp như đại dịch COVID-19, các cuộc biểu tình xã hội và biến đổi khí hậu. Kết quả của cuộc bầu cử này định hình chính sách đối ngoại, an ninh, thương mại quốc tế và các cam kết môi trường toàn cầu của Hoa Kỳ. Trong kỷ nguyên số, mạng xã hội Twitter (với hơn 340 triệu người dùng) đã trở thành không gian công cộng trọng yếu để cử tri thể hiện quan điểm, thảo luận chính trị và phản ứng trực tiếp trước các phát ngôn của người có tầm ảnh hưởng hay các cuộc tranh luận truyền hình. Xuất phát từ thực tiễn đó, đồ án tốt nghiệp ngành Kỹ thuật Dữ liệu tập trung nghiên cứu và xây dựng một hệ thống xử lý luồng dữ liệu thời gian thực nhằm thu thập, phân tích cảm xúc và dự đoán xu hướng ủng hộ của cử tri trong cuộc bầu cử Tổng thống Mỹ.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể theo các nội dung sau:

  1. Nghiên cứu tổng quan về cơ chế bầu cử Tổng thống Mỹ (quy trình bầu cử sơ bộ, đại cử tri đoàn) và các yếu tố tác động đến tâm lý cử tri.
  2. Tìm hiểu cơ sở lý thuyết về hệ thống xử lý thời gian thực và các kỹ thuật Xử lý ngôn ngữ tự nhiên (NLP) phục vụ phân tích cảm xúc (Sentiment Analysis).
  3. Khảo sát, so sánh và lựa chọn thuật toán học máy tối ưu cho bài toán phân loại cảm xúc từ văn bản mạng xã hội.
  4. Thiết kế kiến trúc tổng thể của hệ thống xử lý phân tán, kết hợp các công cụ thu thập, truyền tải, xử lý luồng, lưu trữ chuỗi thời gian và trực quan hóa.
  5. Cài đặt và tích hợp hoàn chỉnh hệ thống với chuỗi công nghệ: Apify, FastAPI, Apache Kafka, Apache Spark Streaming, Telegraf, InfluxDB, MySQL và mô hình ngôn ngữ lớn Llama 3 (thông qua llama.cpp).
  6. Xây dựng giao diện Dashboard tương tác trực quan hóa kết quả bầu cử theo bản đồ địa lý và khối nhận xét tự động AI Summary Box.
  7. Đánh giá độ tin cậy của mô hình và đối chiếu kết quả phân tích dữ liệu với kết quả bầu cử thực tế năm 2020.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Các bài đăng và bình luận (tweets) liên quan đến cuộc bầu cử Tổng thống Mỹ; các thuật toán phân tích cảm xúc (LightGBM, XGBoost, CatBoost, Linear Regression...); mô hình AI Llama 3; kỹ thuật trích xuất dữ liệu từ Twitter; các công nghệ kỹ thuật dữ liệu (Apache Spark, Apache Kafka, Telegraf, InfluxDB, MySQL, FastAPI).
  • Phạm vi không gian: Tập trung vào các tweet phát sinh tại Hoa Kỳ, có định vị địa lý gắn liền với các bang và vùng lãnh thổ quan trọng.
  • Phạm vi thời gian: Quá trình nghiên cứu và thực nghiệm hệ thống được thực hiện từ ngày 01/01/2024 đến ngày 15/06/2024 (kế hoạch 22 tuần). Dữ liệu phân tích tập trung vào sự kiện bầu cử Tổng thống Mỹ năm 2020.
  • Nguồn dữ liệu: Dữ liệu thu thập thời gian thực từ Twitter thông qua Apify API (theo các từ khóa và hashtag #Biden, #Trump) kết hợp với tập dữ liệu lưu trữ lịch sử được công bố trên Kaggle.

Cơ sở lý thuyết và phương pháp

Đề tài kết hợp giữa lý thuyết xử lý ngôn ngữ tự nhiên, học máy phân loại và các mô hình kiến trúc dữ liệu phân tán:

Khung lý thuyết và mô hình ứng dụng

  • Phân tích cảm xúc (Sentiment Analysis / Opinion Mining): Phân loại theo các dạng: Phân tích chi tiết (Fine-grained), Phát hiện cảm xúc (Emotion detection), Phân tích cảm xúc theo khía cạnh (Aspect-based), Phân tích đa ngôn ngữ (Multilingual) và Phân tích ý định (Intent Analysis). Trong đề tài, bài toán được quy về phân loại nhị phân (Binary Classification): nhãn 1 (tích cực/ủng hộ) và nhãn 0 (tiêu cực/phản đối).
  • Thuật toán phân loại học máy: Đề tài tiến hành khảo sát các mô hình bao gồm Naive Bayes, Support Vector Machines (SVM), Random Forest, LSTM, CNN, Transformer, Linear Regression, XGBoost, CatBoost và LightGBM (Light Gradient Boosting Machine). Trong đó, LightGBM được chọn làm mô hình thực thi chính trong luồng dữ liệu nhờ cấu trúc phát triển cây theo chiều sâu (leaf-wise), mang lại tốc độ huấn luyện nhanh và hiệu suất tối ưu trên tập dữ liệu lớn.
  • Mô hình ngôn ngữ lớn (LLM): Llama 3 được tích hợp nhằm xây dựng tính năng AI Summary Box, có nhiệm vụ đọc dữ liệu tổng hợp và tự động sinh văn bản tóm tắt, nhận xét diễn biến cuộc bầu cử.

Nền tảng công nghệ và hệ thống dữ liệu

  • Apache Kafka: Hệ thống phân tán quản lý luồng sự kiện theo thời gian thực, kết hợp giữa mô hình Hàng đợi (Queuing) và Xuất bản - Đăng ký (Publish-Subscribe). Hệ thống sử dụng các thành phần Producer, Consumer, Consumer Group, Partitions, Topics, Schema Registry và Zookeeper để điều phối luồng dữ liệu.
  • Apache Spark / Spark Streaming: Nền tảng tính toán phân tán trong bộ nhớ (In-memory computing) xử lý dữ liệu theo cơ chế vi lô (mini-batches). Các thành phần sử dụng gồm Spark Core, Spark SQL, Spark Streaming và định nghĩa hàm xử lý tùy biến UDF (predict_udf).
  • Telegraf: Phần mềm mã nguồn mở thu thập, xử lý và trung chuyển dữ liệu số liệu (metrics). Hoạt động dựa trên kiến trúc Plugin: Input Plugins (nhận dữ liệu từ topic của Kafka), Processor Plugins, Aggregate Plugins và Output Plugins (ghi dữ liệu vào InfluxDB).
  • InfluxDB: Hệ thống quản trị cơ sở dữ liệu chuỗi thời gian (Time-Series DBMS). Cấu trúc lưu trữ gồm Cluster, Nodes, Storage Engine tối ưu hóa cho chuỗi thời gian theo cấu trúc Measurement, Tag, Field và Timestamp. Cơ chế vận hành bao gồm nạp dữ liệu (Data Ingestion), nén dữ liệu (Compactors/Data Compaction) và thu gom rác (Garbage Collection) dựa trên chính sách duy trì dữ liệu (Retention Policies).
  • MySQL & SQLAlchemy / Pydantic: Lưu trữ dữ liệu quan hệ dài hạn, trạng thái tập dữ liệu và lịch sử các bản tóm tắt phân tích.

Phương pháp nghiên cứu

Đồ án sử dụng phương pháp thực nghiệm kỹ thuật dữ liệu kết hợp nghiên cứu định lượng. Quy trình thực nghiệm bao gồm: trích xuất dữ liệu từ mạng xã hội, làm sạch dữ liệu văn bản (loại bỏ từ dừng - stop words, mã hóa biểu tượng cảm xúc - emojis), trích xuất đặc trưng địa lý thông qua OpenStreetMap, chuyển đổi múi giờ (từ UTC sang giờ địa phương), phân loại cảm xúc bằng mô hình học máy phân tán và tự động hóa chu trình tóm tắt thông tin.

Thành phần hệ thống Công nghệ / Công cụ Chức năng chính
Thu thập dữ liệu Apify API, Kaggle Dataset Cào dữ liệu tweet theo hashtag #Biden, #Trump và nạp dữ liệu lịch sử
Web Service & Điều phối FastAPI, OpenStreetMap Tiếp nhận Webhook, chuẩn hóa địa lý, đổi múi giờ và gửi dữ liệu vào Kafka
Xếp hàng thông điệp Apache Kafka, Zookeeper Quản lý luồng thông điệp phân tán qua các topic chuyên biệt
Xử lý luồng & Phân loại Apache Spark Streaming, LightGBM Tiền xử lý văn bản, thực thi hàm predict_udf để phân loại cảm xúc
Trung chuyển dữ liệu Telegraf Đọc dữ liệu phân loại từ Kafka và đẩy vào InfluxDB
Cơ sở dữ liệu chuỗi thời gian InfluxDB Lưu trữ các bản ghi phân tích cảm xúc theo mốc thời gian và từng bang
Cơ sở dữ liệu quan hệ MySQL, SQLAlchemy Quản lý trạng thái dữ liệu và lưu trữ các báo cáo tóm tắt
Tóm tắt tự động Llama 3, llama.cpp, APScheduler Tổng hợp dữ liệu từ InfluxDB và sinh văn bản nhận định cuộc bầu cử
Giao diện người dùng Web Application Dashboard Hiển thị bản đồ phân bố cử tri, biểu đồ thời gian thực và AI Summary Box

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo mô hình luồng dữ liệu thời gian thực khép kín từ khâu thu thập đến hiển thị trực quan:

[Twitter / Apify / Kaggle] 
[Apache Kafka: Input Topics (Biden / Trump)]
[Apache Kafka: Processed Output Topic]
[Telegraf Agent]
[InfluxDB: Time-Series Buckets]

Quy trình xử lý luồng dữ liệu chi tiết

  1. Thu thập và nạp dữ liệu: Dữ liệu tweet được trích xuất tự động qua công cụ Apify với bộ lọc hashtag #Biden và #Trump. Khi có dữ liệu mới, Apify kích hoạt HTTP Webhook gửi yêu cầu POST tới các endpoint của FastAPI (/biden, /trump). Dữ liệu thô đồng thời được lưu vào các bảng trạng thái của MySQL (BIDENDATASETSTATUS, TRUMPDATASETSTATUS, BIDENTWEETDATA, TRUMPTWEETDATA).
  2. Tiền xử lý vị trí và chuyển tiếp: FastAPI thực thi hàm xử lý thời gian (chuyển đổi từ UTC sang múi giờ Việt Nam/địa phương) và truy vấn OpenStreetMap để chuẩn hóa thông tin vị trí người dùng. Nếu thông tin địa lý hợp lệ thuộc lãnh thổ Hoa Kỳ, dữ liệu được Producer đẩy trực tiếp vào các topic tương ứng trong Apache Kafka.
  3. Xử lý luồng phân tán và chấm điểm cảm xúc: SparkSession thiết lập kết nối tới Kafka, đọc luồng dữ liệu vào các DataFrame (biden_df, trump_df). Quy trình xử lý văn bản gồm: loại bỏ danh sách từ dừng (stop words), chuyển đổi các biểu tượng cảm xúc (emojis) thành ý nghĩa văn bản tương ứng. Hàm người dùng định nghĩa predict_udf tải mô hình LightGBM đã huấn luyện sẵn để dự đoán cảm xúc của từng câu bình luận (gán nhãn 0 hoặc 1). Kết quả sau biến đổi được ghi ngược trở lại Kafka thông qua truy vấn luồng kafka_writer_query.
  4. Trung chuyển và lưu trữ chuỗi thời gian: Telegraf lắng nghe các topic đầu ra của Kafka thông qua tệp cấu hình kết nối, tự động chuyển đổi các bản ghi thành định dạng dữ liệu chuỗi thời gian và ghi vào các Bucket trong InfluxDB theo các Tag (tiểu bang, ứng cử viên) và Field (kết quả cảm xúc).
  5. Cơ chế AI Summary Box: Hệ thống sử dụng bộ lập lịch chạy nền (APScheduler) để định kỳ kích hoạt hàm truy vấn dữ liệu từ InfluxDB, trích xuất dữ liệu thành danh sách CSV thông qua hàm create_election_summary và process_csv_data. Dữ liệu này được gửi tới mô hình Llama 3 (triển khai cục bộ thông qua llama.cpp với tệp mô hình tải từ Hugging Face). Kết quả phân tích dạng văn bản tự nhiên được lưu trữ trong bảng SUMMARY của MySQL và cung cấp cho giao diện thông qua API.
  6. Trực quan hóa: Giao diện người dùng hiển thị bản đồ bầu cử nước Mỹ mã hóa màu theo thời gian thực (phân loại bang chiến trường - Battleground States, bang đổi chiều - Flipped Seats, mức độ dẫn trước - Size of Lead), kết hợp biểu đồ đường thể hiện tỷ lệ ủng hộ biến động theo thời gian của từng ứng viên và hiển thị nhận định từ AI Summary Box.

Nội dung chính theo từng chương

Phần 1: Mở đầu

Trình bày tính cấp thiết của đề tài trong bối cảnh cuộc bầu cử Tổng thống Mỹ năm 2020 và sự bùng nổ của dữ liệu mạng xã hội Twitter. Xác định rõ đối tượng, phạm vi nghiên cứu về không gian, thời gian (thực hiện trong 22 tuần từ tháng 01 đến tháng 06/2024), phân tích các hướng nghiên cứu liên quan về mô hình học máy, xử lý luồng dữ liệu lớn và nêu rõ các kết quả dự kiến đạt được của đồ án.

Chương 1: Tổng quan về bầu cử Mỹ năm 2020 và hệ thống thời gian thực

  • Tổng quan về bầu cử Mỹ: Hệ thống hóa cấu trúc bầu cử Tổng thống Hoa Kỳ, quy trình bầu cử sơ bộ, đại hội đảng và vai trò của Đại cử tri đoàn (Electoral College). Phân tích các nhân tố tác động mạnh đến quyết định của cử tri năm 2020: tin đồn trên mạng xã hội, các phát ngôn và xu hướng của người có tầm ảnh hưởng, cùng tác động từ các phiên tranh luận trực tiếp trên truyền hình giữa Donald Trump và Joe Biden. Đánh giá ảnh hưởng toàn cầu của kết quả bầu cử đối với chính sách môi trường (Hiệp định Paris), an ninh khu vực (Trung Đông, Châu Á - Thái Bình Dương) và kinh tế thế giới.
  • Tổng quan về hệ thống thời gian thực: Phân tích khái niệm, đặc trưng xử lý độ trễ thấp, chu trình thu thập dữ liệu liên tục từ cảm biến/mạng xã hội, cơ chế xử lý luồng dữ liệu (stream processing), lưu trữ in-memory và vai trò của bảng điều khiển tương tác (dashboard). Nêu rõ các thách thức kỹ thuật về mở rộng quy mô, đảm bảo độ trễ thấp và an toàn thông tin.

Chương 2: Lý thuyết liên quan

  • Xử lý ngôn ngữ tự nhiên và phân tích cảm xúc: Làm rõ khái niệm Sentiment Analysis, phân biệt 5 dạng phân loại cảm xúc cơ bản và phân tích tầm quan trọng của việc khai phá dữ liệu cảm xúc trong nghiên cứu hành vi người dùng, tối ưu hóa giao tiếp máy - người.
  • Khảo sát thuật toán học máy: Trình bày nguyên lý hoạt động của Naive Bayes, SVM, Random Forest, LSTM, CNN, Transformer, Linear Regression, XGBoost, CatBoost và LightGBM.
  • Công nghệ nền tảng: Phân tích chi tiết kiến trúc, cơ chế hoạt động, ưu điểm, hạn chế và ứng dụng thực tế của từng công nghệ:
    • Telegraf: Các loại plugin (Input, Processor, Aggregate, Output) và tính linh hoạt trong thu thập metric.
    • InfluxDB: Kiến trúc lưu trữ chuỗi thời gian, cơ chế Ingestion, Compaction và Garbage Collection.
    • Apache Spark: Kiến trúc Driver - Cluster Manager - Worker - Executors, Spark Core, Spark SQL, Spark Streaming và MLlib.
    • Apache Kafka: Kiến trúc Publish-Subscribe kết hợp Queuing, vai trò của Broker, Partitions, Consumer Group, Kafka Connect, Kafka Streams và Schema Registry.
    • MySQL & Llama 3: Mô hình quan hệ truyền thống và kiến trúc mô hình ngôn ngữ lớn Llama 3 khi so sánh với Llama 2.

Chương 3: Xây dựng hệ thống dự đoán bầu cử Mỹ theo thời gian thực

  • Kiến trúc và cài đặt môi trường: Mô tả chi tiết các bước thiết lập môi trường hoạt động cho Apache Spark, Apache Kafka (và Zookeeper), MySQL, InfluxDB, Telegraf và llama.cpp.
  • Mô hình phân tích cảm xúc: Đánh giá độ tin cậy của các thuật toán (LightGBM, CatBoost, Linear Regression, XGBoost), xây dựng hàm tiền xử lý văn bản, khử từ dừng, ánh xạ emoji và tích hợp mô hình LightGBM vào Spark Streaming qua hàm predict_udf.
  • Thu thập và nạp dữ liệu: Thiết lập cấu hình Apify để cào dữ liệu theo hashtag, xây dựng các kết nối SQLAlchemy với MySQL, tạo các bảng BIDENDATASETSTATUS, TRUMPDATASETSTATUS, BIDENTWEETDATA, TRUMPTWEETDATA và xây dựng API xử lý địa lý bằng OpenStreetMap.
  • Xử lý luồng và lưu trữ thời gian thực: Cấu hình kết nối giữa FastAPI -> Kafka -> Spark Streaming -> Kafka -> Telegraf -> InfluxDB. Thiết lập các Bucket trong InfluxDB để lưu trữ kết quả phân loại cảm xúc cử tri.
  • Tự động tóm tắt và trực quan hóa: Lập lịch tự động định kỳ trích xuất dữ liệu chuỗi thời gian từ InfluxDB sang CSV, chuyển tiếp qua Llama 3 (llama.cpp) để sinh văn bản nhận định và lưu vào bảng SUMMARY của MySQL. Xây dựng Dashboard hiển thị bản đồ mã hóa màu nước Mỹ, các bang chiến trường, tỷ lệ ủng hộ thời gian thực và hộp tóm tắt AI.
  • Đánh giá kết quả: Đối chiếu tỷ lệ dự đoán cảm xúc trên hệ thống với kết quả bầu cử thực tế năm 2020 giữa Donald Trump và Joe Biden.

Phần 3: Kết luận

Tổng kết các kết quả đạt được về mặt kiến thức kỹ thuật dữ liệu, kỹ năng xây dựng hệ thống phân tán, đồng thời thẳng thắn chỉ ra các hạn chế kỹ thuật hiện tại và vạch ra các định hướng phát triển tiếp theo.


Kết quả và đóng góp

Kết quả chính

  • Xây dựng hoàn chỉnh đường ống xử lý dữ liệu luồng (end-to-end data pipeline) có khả năng tiếp nhận dữ liệu từ Twitter/Kaggle, xử lý và lưu trữ vào InfluxDB với độ trễ thấp theo thời gian thực.
  • Triển khai thành công mô hình học máy phân loại cảm xúc LightGBM trên luồng dữ liệu phân tán Spark Streaming, đảm bảo phân loại nhị phân (ủng hộ/phản đối) đối với từng bài đăng mạng xã hội.
  • Ứng dụng thành công mô hình ngôn ngữ lớn Llama 3 chạy cục bộ thông qua llama.cpp, tự động hóa hoàn toàn quy trình đọc số liệu từ InfluxDB, tổng hợp và sinh nhận định báo cáo định kỳ về diễn biến bầu cử (AI Summary Box).
  • Xây dựng bảng điều khiển tương tác trực quan hóa đa chiều: bản đồ địa lý 50 bang của Mỹ thể hiện rõ các trạng thái chính trị (Battleground States, Flipped Seats, Size of Lead), biểu đồ biến thiên tỷ lệ ủng hộ theo thời gian thực giữa Donald Trump và Joe Biden.

Đóng góp của đề tài

  • Đề xuất và hiện thực hóa mô hình kiến trúc tích hợp giữa công nghệ dữ liệu chuỗi thời gian (Telegraf + InfluxDB), nền tảng xử lý luồng phân tán (Kafka + Spark Streaming) và mô hình AI tạo sinh cục bộ (Llama 3).
  • Cung cấp giải pháp kỹ thuật giải quyết bài toán phân tích tâm lý xã hội quy mô lớn từ dữ liệu mạng xã hội không có cấu trúc với chi phí tài nguyên tối ưu, không phụ thuộc vào các dịch vụ LLM đám mây thương mại trả phí.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của đồ án

  • Phụ thuộc công cụ thu thập dữ liệu: Việc lấy dữ liệu từ Twitter thông qua Apify chịu giới hạn bởi chính sách API, tốc độ cào dữ liệu và định dạng dữ liệu đầu vào của nền tảng mạng xã hội.
  • Đại diện nhân khẩu học: Dữ liệu phân tích chỉ giới hạn trong nhóm người dùng hoạt động trên nền tảng Twitter, chưa phản ánh đầy đủ toàn bộ cơ cấu cử tri thực tế trên toàn nước Mỹ (nhóm cử tri không sử dụng mạng xã hội, nhóm người cao tuổi).
  • Yêu cầu tài nguyên tính toán cục bộ: Việc chạy đồng thời cụm dịch vụ phân tán (Zookeeper, Kafka, Spark, MySQL, InfluxDB) cùng với mô hình ngôn ngữ lớn Llama 3 trên môi trường máy chủ đơn lẻ tạo áp lực lớn lên bộ nhớ RAM và năng lực tính toán CPU/GPU.
  • Độ phức tạp ngữ nghĩa: Mô hình phân loại cảm xúc nhị phân chưa bao quát hết các sắc thái biểu cảm phức tạp của ngôn ngữ con người như sự mỉa mai (sarcasm) hoặc các câu bình luận đa nghĩa trong bối cảnh chính trị.

Hướng nghiên cứu tiếp

  • Mở rộng phạm vi thu thập dữ liệu đa nguồn từ nhiều nền tảng mạng xã hội và tin tức trực tuyến khác nhau (Facebook, Reddit, diễn đàn báo chí) để tăng tính đại diện của mẫu khảo sát.
  • Nâng cấp mô hình phân tích cảm xúc từ nhị phân sang phân tích cảm xúc theo khía cạnh (Aspect-based Sentiment Analysis) nhằm đánh giá chi tiết quan điểm cử tri đối với từng chính sách cụ thể (kinh tế, y tế, đối ngoại).
  • Tối ưu hóa và mở rộng hệ thống lên cụm hạ tầng điện toán đám mây phân tán hoàn chỉnh, ứng dụng các kỹ thuật nén mô hình LLM nâng cao để giảm thiểu độ trễ xử lý và nâng cao năng lực chịu tải.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo chuyên môn cao cho các nhóm đối tượng:

  • Sinh viên và nghiên cứu sinh ngành Kỹ thuật Dữ liệu, Công nghệ Thông tin, Khoa học Dữ liệu: Tài liệu minh họa chi tiết về cách thiết kế và triển khai một kiến trúc luồng dữ liệu thời gian thực (Real-time Streaming Architecture) chuẩn mực từ khâu Ingestion đến Visualization.
  • Kỹ sư dữ liệu (Data Engineers) và Kỹ sư phần mềm: Cung cấp hướng dẫn thực tế về việc cấu hình, kết nối và tích hợp các công nghệ phân tán phổ biến: cách cấu hình topic trong Kafka, xây dựng truy vấn luồng trong Spark Streaming, cách dùng Telegraf chuyển tiếp dữ liệu vào InfluxDB và quản trị cơ sở dữ liệu chuỗi thời gian.
  • Người nghiên cứu ứng dụng AI cục bộ: Cung cấp giải pháp triển khai mô hình mã nguồn mở Llama 3 thông qua llama.cpp để tự động hóa trích xuất và tóm tắt thông tin từ cơ sở dữ liệu chuỗi thời gian mà không cần gửi dữ liệu ra ngoài.

Câu hỏi thường gặp

1. Telegraf đóng vai trò gì trong kiến trúc luồng dữ liệu của đồ án?

Trong hệ thống, Telegraf đóng vai trò là một tác tử (agent) trung gian thu thập và chuyển tiếp dữ liệu hiệu năng cao. Telegraf sử dụng Input Plugin để đăng ký và đọc các thông điệp phân tích cảm xúc đã được xử lý xong từ Output Topic của Apache Kafka, sau đó sử dụng Output Plugin để ghi trực tiếp các bản ghi này vào các Bucket tương ứng trong cơ sở dữ liệu chuỗi thời gian InfluxDB theo định dạng tối ưu.

2. Vì sao nhóm tác giả lựa chọn thuật toán LightGBM cho bài toán phân tích cảm xúc?

Nhóm tác giả đã tiến hành khảo sát và đánh giá độ tin cậy giữa nhiều thuật toán học máy khác nhau (LightGBM, CatBoost, XGBoost, Linear Regression). Thuật toán LightGBM (Gradient Boosting Decision Tree phát triển cây theo chiều sâu - leaf-wise) được lựa chọn nhờ ưu điểm vượt trội về tốc độ xử lý, thời gian huấn luyện ngắn, tiết kiệm tài nguyên bộ nhớ và đạt độ chính xác cao khi phân loại cảm xúc trên các tập dữ liệu lớn dạng luồng.

3. Quy trình thu thập và chuẩn hóa dữ liệu địa lý từ Twitter được thực hiện như thế nào?

Dữ liệu tweet được cào tự động qua Apify API theo các hashtag #Biden và #Trump, sau đó gửi về dịch vụ FastAPI qua HTTP Webhook. Tại FastAPI, hệ thống thực thi hàm chuyển đổi thời gian sang múi giờ chuẩn và gọi API OpenStreetMap để trích xuất, xác thực tọa độ/địa danh. Nếu dữ liệu xác định người dùng thuộc các bang của Hoa Kỳ, dữ liệu sẽ được giữ lại để đẩy tiếp vào Apache Kafka.

4. Module AI Summary Box hoạt động dựa trên cơ chế nào để tự động sinh báo cáo?

AI Summary Box được vận hành tự động thông qua bộ lập lịch nền (APScheduler). Định kỳ, hệ thống gọi hàm kết nối InfluxDB, trích xuất các bản ghi số liệu chuỗi thời gian gần nhất thành tệp dữ liệu CSV, sau đó chuyển văn bản này vào mô hình ngôn ngữ lớn Llama 3 (chạy cục bộ thông qua công cụ llama.cpp). Llama 3 sẽ xử lý dữ liệu và sinh ra đoạn văn tóm tắt, nhận định về tương quan ủng hộ giữa hai ứng viên, kết quả được lưu trữ vào bảng SUMMARY trong MySQL để hiển thị lên Dashboard.

5. InfluxDB tối ưu hóa việc lưu trữ dữ liệu thời gian thực trong đề tài bằng những kỹ thuật nào?

InfluxDB tổ chức dữ liệu theo mô hình chuỗi thời gian gắn liền với nhãn thời gian (Timestamp), phân loại theo các Tag (tiểu bang, ứng viên) và Field (điểm cảm xúc). Hệ thống áp dụng quy trình nén dữ liệu tự động (Data Compaction) thông qua các thành phần Compactors để gộp các tệp nhỏ thành tệp lớn không chồng lấp, kết hợp với tiến trình thu gom rác (Garbage Collector) để loại bỏ dữ liệu hết hạn theo chính sách duy trì (Retention Policy), giúp giải phóng không gian lưu trữ và tăng tốc độ truy vấn.


Kết luận

Đồ án tốt nghiệp "Áp dụng Telegraf và InfluxDB vào dự đoán bầu cử Mỹ theo thời gian thực" của sinh viên Văn Hoàng Lương và Đặng Xuân Bách đã xây dựng thành công một hệ thống kỹ thuật dữ liệu hoàn chỉnh, xử lý luồng dữ liệu mạng xã hội quy mô lớn với độ trễ thấp. Bằng việc kết hợp hài hòa giữa các nền tảng phân tán (Kafka, Spark Streaming), cơ sở dữ liệu chuỗi thời gian (InfluxDB, Telegraf), mô hình học máy LightGBM và mô hình ngôn ngữ lớn Llama 3, đề tài đã giải quyết hiệu quả bài toán phân tích tâm lý cử tri theo thời gian thực. Công trình là tài liệu tham khảo có giá trị cao về mặt kiến trúc hệ thống và giải pháp kỹ thuật cho sinh viên cũng như các kỹ sư hoạt động trong lĩnh vực Kỹ thuật Dữ liệu.