Giới thiệu dự án

Trong bối cảnh đại dịch COVID-19 bùng phát toàn cầu, các mạng xã hội — đặc biệt là Twitter — đã trở thành kênh truyền thông thời gian thực chủ lực với hơn 500 triệu lượt tweet mỗi ngày. Tuy nhiên, khối lượng thông tin khổng lồ, phân tán và chứa nhiều dữ liệu nhiễu đã tạo ra rào cản lớn cho các tổ chức y tế công cộng và cơ quan quản lý trong việc nắm bắt diễn biến dịch bệnh cũng như tâm lý cộng đồng. Đề tài khóa luận tốt nghiệp "Xây dựng ứng dụng phân loại tin tức COVID-19 trên mạng xã hội Twitter" của nhóm tác giả Nguyễn Bá Minh Hoàng và Nguyễn Gia Huy (Khoa Hệ thống Thông tin, Trường Đại học Công nghệ Thông tin – ĐHQG-HCM) được nghiên cứu nhằm giải quyết bài toán tự động hóa trích xuất và gom cụm ngữ nghĩa tin tức dựa trên dữ liệu hashtag.

+-----------------------------------------------------------------------------------+
|                            TỔNG QUAN DỰ ÁN CLASSIFICATION                         |
+-----------------------------------------------------------------------------------+
|  Đề tài      : Xây dựng ứng dụng phân loại tin tức COVID-19 trên Twitter           |
|  Sinh viên   : Nguyễn Bá Minh Hoàng (16520435) - Nguyễn Gia Huy (16520517)        |
|  GV hướng dẫn: TS. Nguyễn Lưu Thùy Ngân - ThS. Nguyễn Thị Kim Phụng              |
|  Đơn vị      : Khoa Hệ thống Thông tin - Trường ĐH Công nghệ Thông tin, ĐHQG-HCM   |
|  Dữ liệu mẫu : 179,108 bản ghi tweet (Kaggle COVID-19 Tweets Dataset)             |
+-----------------------------------------------------------------------------------+

Vấn đề thực tiễn và bài toán kỹ thuật

Các tin tức liên quan đến COVID-19 trên mạng xã hội có đặc trưng phi cấu trúc, sử dụng nhiều từ viết tắt, tiếng lóng và đặc biệt là các hashtag viết liền (ví dụ: #stayhomesavelives, #coronaviruspandemic). Việc phân loại thủ công hoàn toàn bất khả thi về mặt thời gian và chi phí nhân sự. Bài toán kỹ thuật đặt ra là: Xây dựng một quy trình xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) kết hợp các thuật toán học máy không giám sát (Unsupervised Clustering) để tự động phân nhóm các chủ đề tin tức nóng mà không cần gán nhãn trước (unlabeled data).

Mục tiêu dự án

  1. Thu thập và tiền xử lý dữ liệu quy mô lớn: Làm sạch và chuẩn hóa hơn 170,000 bản ghi dữ liệu tweet từ tập dữ liệu cộng đồng Kaggle.
  2. Xây dựng pipeline NLP chuyên biệt cho Hashtag: Xử lý tách các hashtag ghép nhiều từ thành các token có nghĩa bằng kỹ thuật Viterbi segmentation.
  3. Mô hình hóa không gian vector đặc trưng: Triển khai kỹ thuật TF-IDF (Term Frequency – Inverse Document Frequency) để ánh xạ văn bản thành vector số học đa chiều.
  4. Đánh giá và tối ưu hóa thuật toán phân cụm: Thực nghiệm, đối chuẩn 3 thuật toán gom cụm cốt lõi: K-Means, BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies) và Agglomerative Hierarchical Clustering (AHC) thông qua các chỉ số định lượng.
  5. Đóng gói ứng dụng thực thi: Xây dựng phần mềm hoàn chỉnh cho phép người dùng nạp dữ liệu, tự động phân loại và trực quan hóa các cụm chủ đề COVID-19.

Phương pháp tiếp cận và phạm vi

  • Phương pháp: Kết hợp kỹ thuật phân rã từ vựng chuyên sâu (wordninja), vector hóa TF-IDF và thuật toán phân cụm phân vùng/phân cấp. Lựa chọn số cụm $k$ tối ưu bằng phương pháp Elbow (Elbow Method).
  • Phạm vi kỹ thuật: Tập trung vào dữ liệu ngôn ngữ tiếng Anh trong tập dữ liệu Twitter COVID-19 với 179,108 tweet, sử dụng nền tảng ngôn ngữ Python 3.8 và hệ sinh thái thư viện Scikit-learn, Pandas, NumPy.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Hiện nay, việc phân tích tin tức mạng xã hội thường đối mặt với các hạn chế giữa phương pháp dựa trên luật (Rule-based) và học có giám sát (Supervised Learning):

Tiêu chí Tiếp cận dựa trên luật (Rule-based) Học có giám sát (Supervised ML) Giải pháp Unsupervised Clustering (Đề tài)
Chi phí gán nhãn Thấp ban đầu, cực cao khi mở rộng Rất cao (yêu cầu hàng chục nghìn nhãn) 0 đồng (Hoàn toàn tự động)
Khả năng thích ứng Kém khi xuất hiện từ khóa mới Phụ thuộc vào dữ liệu huấn luyện cũ Tức thì với các hashtag/chủ đề mới nổi
Độ phức tạp tính toán Thấp ($O(N)$) Cao trong pha huấn luyện Trung bình ($O(N \cdot K \cdot I)$)
Khả năng gom nhóm Rời rạc, dễ sót dữ liệu Giới hạn trong các nhãn định sẵn Khám phá chủ đề ẩn tự nhiên

Ma trận ưu tiên yêu cầu hệ thống (MoSCoW)

  • Must-have (Bắt buộc):
    • Tách mảng hashtag đơn lẻ thành chuỗi từ vựng độc lập.
    • Lọc nhiễu ký tự đặc biệt, lỗi mã hóa font (mojibake) và stopwords.
    • Chuyển đổi dữ liệu sang ma trận vector TF-IDF.
    • Phân cụm dữ liệu với K-Means và tính toán các độ đo nội tại.
  • Should-have (Nên có):
    • Tích hợp mô hình phân cụm BIRCH và Agglomerative Clustering để đối chuẩn.
    • Vẽ đồ thị Elbow Method xác định $k$ tối ưu.
  • Could-have (Có thể có):
    • Giao diện trực quan hóa dữ liệu theo từng cụm chủ đề.
    • Xuất báo cáo phân loại định dạng CSV/Excel.
  • Won't-have (Chưa thực hiện):
    • Phân tích sắc thái cảm xúc nâng cao (Sentiment Analysis) sử dụng Deep Learning.
    • Thu thập trực tiếp thời gian thực từ Twitter Streaming API (do giới hạn cấp quyền học thuật tại Việt Nam).

Thiết kế hệ thống

+-----------------------------------------------------------------------------------+
|                        KIẾN TRÚC PIPELINE XỬ LÝ DỮ LIỆU                           |
+-----------------------------------------------------------------------------------+
|                                                                                   |
|  [ Raw Tweets CSV ]                                                               |
|         |                                                                         |
|         v                                                                         |
|  +-----------------------------------------------------------------------------+  |
|  | Module Tiền xử lý NLP:                                                      |  |
|  | 1. Hashtag Array Flattening                                                 |  |
|  | 2. Punctuation & Regex Noise Filtering                                      |  |
|  | 3. Mojibake/Font-error Dropping                                             |  |
|  | 4. Wordninja Compound Word Segmentation                                     |  |
|  | 5. Stopwords Removal & Case Lowering                                        |  |
|  +-----------------------------------------------------------------------------+  |
|         |                                                                         |
|         v                                                                         |
|  +-----------------------------------------------------------------------------+  |
|  | Module Vector hóa (Feature Extraction):                                     |  |
|  | TF-IDF Vectorizer Matrix (179,108 docs x 5,000 features)                     |  |
|  +-----------------------------------------------------------------------------+  |
|         |                                                                         |
|         v                                                                         |
|  +-----------------------------------------------------------------------------+  |
|  | Module Gom cụm & Đánh giá (Clustering Engine):                              |  |
|  | - K-Means Clustering                                                        |  |
|  | - BIRCH (CF Tree: Branching Factor B, Threshold T)                          |  |
|  | - Agglomerative Hierarchical Clustering (AHC)                               |  |
|  | - Evaluation: Silhouette, Calinski-Harabasz, Davies-Bouldin                   |  |
|  +-----------------------------------------------------------------------------+  |
|         |                                                                         |
|         v                                                                         |
|  [ Giao diện Trực quan hóa & Phân loại Tin tức ]                                  |
|                                                                                   |
+-----------------------------------------------------------------------------------+

Cấu trúc dữ liệu và đặc tả Dataset

Tập dữ liệu covid19_tweets.csv bao gồm 179,108 dòng và 13 trường thuộc tính:

  • user_name, user_location, user_description, user_created: Thông tin hồ sơ người dùng.
  • user_followers (int), user_friends (int), user_favourites (int), user_verified (bool): Chỉ số tương tác tài khoản.
  • date (datetime): Thời gian phát hành tweet.
  • text (string): Nội dung văn bản thô của tweet.
  • hashtags (string/list): Danh sách các hashtag gắn kèm (trường dữ liệu đầu vào cốt lõi).
  • source (string), is_retweet (bool): Nguồn thiết bị và trạng thái chia sẻ lại.

Methodology và Kế hoạch thực hiện

Đề tài áp dụng quy trình chuẩn CRISP-DM (Cross-Industry Standard Process for Data Mining) gồm 5 giai đoạn:

  1. Data Understanding (Tuần 1-2): Khám phá cấu trúc trường hashtags và phân bố từ khóa.
  2. Data Preparation (Tuần 3-5): Xây dựng bộ lọc regex, loại bỏ ký tự rác, tích hợp thư viện bẻ từ ghép.
  3. Modeling (Tuần 6-8): Cài đặt và tinh chỉnh siêu tham số cho K-Means, BIRCH và AHC.
  4. Evaluation (Tuần 9-10): Đánh giá chéo bằng Silhouette, Calinski-Harabasz và Davies-Bouldin.
  5. Deployment (Tuần 11-12): Xây dựng ứng dụng desktop phân loại tin tức và hoàn thiện báo cáo khoa học.

Implementation và kết quả

Development process

1. Tiền xử lý dữ liệu và Phân rã Hashtag

Một trong những thách thức lớn nhất là các hashtag tiếng Anh thường được viết liền không có dấu cách (dạng CamelCase hoặc lowercase như #coronavirustestingcenter). Hệ thống tích hợp thuật toán Viterbi thông qua thư viện wordninja dựa trên tần suất từ vựng tiếng Anh để phân tách chính xác.

import re
import wordninja
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer

def preprocess_hashtag_pipeline(raw_hashtag_list):
    """
    Tiền xử lý chuỗi hashtag thô từ Twitter
    """
    if pd.isna(raw_hashtag_list):
        return ""
    
    # 1. Chuyển chuỗi mảng thành chuỗi văn bản thông thường
    text = str(raw_hashtag_list).strip("[]'")
    
    # 2. Loại bỏ dấu câu, số và ký tự đặc biệt
    text = re.sub(r'[^a-zA-Z\s]', ' ', text)
    
    # 3. Phân tách từ ghép phức hợp (Compound words)
    tokens = text.split()
    segmented_tokens = []
    for token in tokens:
        split_words = wordninja.split(token)
        segmented_tokens.extend(split_words)
        
    # 4. Loại bỏ từ dừng và chuẩn hóa chữ thường
    custom_stopwords = {'https', 'co', 'covid', 'covid19', 'coronavirus', 'amp'}
    cleaned_words = [
        w.lower() for w in segmented_tokens 
        if len(w) > 2 and w.lower() not in custom_stopwords
    ]
    
    return " ".join(cleaned_words)

2. Vector hóa ma trận TF-IDF

Không gian đặc trưng được xây dựng dựa trên công thức tính trọng số:

$$\text{TF}(t, d) = \frac{f_{t, d}}{\sum_{t' \in d} f_{t', d}}$$

$$\text{IDF}(t) = 1 + \ln\left(\frac{1 + N}{1 + \text{DF}(t)}\right)$$

$$\text{TF-IDF}(t, d) = \text{TF}(t, d) \times \text{IDF}(t)$$

# Cài đặt Vector hóa văn bản với Scikit-learn
vectorizer = TfidfVectorizer(
    max_features=5000,
    min_df=5,
    max_df=0.85,
    ngram_range=(1, 2),
    smooth_idf=True
)
tfidf_matrix = vectorizer.fit_transform(processed_corpus)

3. Cài đặt các thuật toán gom cụm

Hệ thống triển khai 3 mô hình chính trên tập vector trích xuất:

from sklearn.cluster import KMeans, Birch, AgglomerativeClustering
from sklearn.metrics import silhouette_score, calinski_harabasz_score, davies_bouldin_score

# 1. Thuật toán K-Means với k=6 tối ưu từ Elbow Method
kmeans_model = KMeans(n_clusters=6, init='k-means++', max_iter=300, random_state=42)
kmeans_labels = kmeans_model.fit_predict(tfidf_matrix)

# 2. Thuật toán BIRCH (Sử dụng cấu trúc cây Clustering Feature)
birch_model = Birch(n_clusters=6, threshold=0.5, branching_factor=50)
birch_labels = birch_model.fit_predict(tfidf_matrix)

# 3. Thuật toán Agglomerative Hierarchical Clustering (Ward linkage)
# Chạy trên tập mẫu đại diện do giới hạn ma trận khoảng cách O(N^2)
agg_model = AgglomerativeClustering(n_clusters=6, affinity='euclidean', linkage='ward')
agg_labels = agg_model.fit_predict(tfidf_matrix[:10000].toarray())

Testing và validation

Đánh giá định lượng thuật toán

Hiệu năng của các mô hình gom cụm được đo lường dựa trên 3 tiêu chuẩn học máy không giám sát:

$$\text{Silhouette Score: } S = \frac{b - a}{\max(a, b)}$$

$$\text{Calinski-Harabasz Score: } CH = \frac{\text{trace}(B_k)}{\text{trace}(W_k)} \times \frac{N - k}{k - 1}$$

$$\text{Davies-Bouldin Score: } DB = \frac{1}{k} \sum_{i=1}^{k} \max_{j \neq i} \left( \frac{\sigma_i + \sigma_j}{d(c_i, c_j)} \right)$$

Trong đó:

  • $a$: Khoảng cách trung bình nội cụm.
  • $b$: Khoảng cách trung bình tới cụm gần nhất.
  • $B_k, W_k$: Ma trận phân tán đối cụm (Between-cluster) và nội cụm (Within-cluster).
  • $\sigma_i$: Bán kính/độ phân tán cụm $i$, $d(c_i, c_j)$: Khoảng cách giữa 2 tâm cụm.
Thuật toán Silhouette Score (↑ Cao hơn là tốt hơn) Calinski-Harabasz Score (↑ Cao hơn là tốt hơn) Davies-Bouldin Score (↓ Thấp hơn là tốt hơn) Thời gian thực thi (Giây)
K-Means ($k=6$) 0.542 1,482.35 0.842 14.2 s
BIRCH ($B=50, T=0.5$) 0.481 1,120.18 1.105 28.6 s
Agglomerative (AHC) 0.415 895.40 1.340 185.4 s (10k mẫu)

Kết quả đạt được

Mô hình K-Means với $k=6$ đạt kết quả toàn diện vượt trội nhất về cả 3 chỉ số đo lường hình học cụm và tốc độ xử lý ma trận thưa. Hệ thống phân chia dữ liệu tin tức COVID-19 thành 6 cụm ngữ nghĩa rõ rệt:

  1. Cụm 0 (Chính sách & Phong tỏa): Các từ khóa nổi bật: lockdown, quarantine, stayhome, curfew, rules.
  2. Cụm 1 (Y tế & Vaccine): Các từ khóa nổi bật: vaccine, treatment, clinical, trial, oxford, moderna.
  3. Cụm 2 (Số liệu ca nhiễm & Tử vong): Các từ khóa nổi bật: cases, confirmed, deaths, update, total, active.
  4. Cụm 3 (Kinh tế & Thị trường): Các từ khóa nổi bật: economy, business, market, stimulus, financial, jobs.
  5. Cụm 4 (Y tế dự phòng & Bảo vệ cá nhân): Các từ khóa nổi bật: mask, wearamask, socialdistancing, sanitizer, safety.
  6. Cụm 5 (Tâm lý cộng đồng & Hoạt động trực tuyến): Các từ khóa nổi bật: support, together, webinar, mentalhealth, family.

Đổi mới và đóng góp

Đổi mới kỹ thuật

  • Giải pháp bẻ khóa Hashtag phức hợp: Thay vì xem toàn bộ hashtag là một token duy nhất (gây loãng không gian từ điển), đề tài ứng dụng thuật toán phân tách từ động lực, biến các hashtag dạng chuỗi dài thành các đơn vị thông tin ngữ nghĩa độc lập.
  • Tối ưu hóa bộ nhớ xử lý ma trận thưa: Triển khai scipy.sparse trong pipeline TF-IDF, giúp giảm 74% mức tiêu thụ RAM trên tập 179,108 văn bản so với ma trận NumPy thông thường.
  • Đối chuẩn đa tiêu chí thuật toán gom cụm: Cung cấp bức tranh thực nghiệm chi tiết giữa thuật toán phân vùng (K-Means), phân cấp Top-Down (BIRCH) và phân cấp Bottom-Up (AHC) trên dữ liệu văn bản mạng xã hội cực ngắn.

So sánh với các giải pháp hiện có

Giải pháp Đặc trưng kỹ thuật Độ chính xác gom cụm Khả năng mở rộng (Scalability)
Traditional Keyword Filtering Tìm kiếm chuỗi tĩnh (Exact Match) Rất thấp (Nhiều từ khóa đồng nghĩa bị bỏ sót) Kém, bảo trì thủ công liên tục
Standard BoW + K-Means Không tách hashtag ghép, ma trận nhị phân Trung bình (Silhouette ~0.28) Tốt nhưng nhiễu từ vựng lớn
Proposed Pipeline (Đề tài) Wordninja Segmentation + TF-IDF + K-Means Cao (Silhouette = 0.542, tăng +93.5%) Cao, xử lý 180k tweet trong <15 giây

Ứng dụng thực tế và triển khai

Tình huống ứng dụng thực tế

  1. Hệ thống giám sát dịch bệnh cho CDC và Sở Y tế: Tự động lọc và gom cụm các bài đăng phàn nàn về triệu chứng hoặc sự cố bùng phát cục bộ theo thời gian thực để khoanh vùng ổ dịch sớm.
  2. Theo dõi phản ứng chính sách (Public Sentiment Tracking): Giúp các cơ quan quản lý đo lường ngay lập tức phản hồi của người dân đối với các quy định cách ly, giãn cách xã hội hoặc thông báo tiêm chủng.
  3. Bộ lọc tin tức tự động cho tòa soạn báo chí: Hỗ trợ phóng viên và biên tập viên nhóm các luồng dư luận và sự kiện COVID-19 nóng nhất trên không gian mạng để xây dựng tuyến bài chính xác.
+-----------------------------------------------------------------------------------+
|                        MÔ TẢ GIAO DIỆN PHÂN LOẠI ỨNG DỤNG                         |
+-----------------------------------------------------------------------------------+
|  [ Open CSV File... ] -> C:/datasets/covid19_tweets_raw.csv                       |
|  Status: Đã tải 179,108 dòng dữ liệu | Thời gian xử lý: 14.2s                    |
+-----------------------------------------------------------------------------------+
|  CHỌN CỤM ĐỂ XEM DỮ LIỆU:                                                         |
|  (o) Cụm 1: Y tế & Vaccine (34,120 tweets)                                        |
|  ( ) Cụm 2: Số liệu ca nhiễm (41,205 tweets)                                      |
|  ( ) Cụm 3: Kinh tế & Thị trường (22,410 tweets)                                  |
+-----------------------------------------------------------------------------------+
|  DANH SÁCH BÀI VIẾT THUỘC CỤM ĐƯỢC CHỌN:                                          |
|  - "Oxford vaccine candidate shows positive immune response in early trials..."    |
|  - "Moderna advances phase 3 study for mRNA vaccine distribution..."              |
|  - "Healthcare workers prioritize clinical trials for high risk groups..."        |
+-----------------------------------------------------------------------------------+

Yêu cầu hệ thống và triển khai

  • Cấu hình phần cứng tối thiểu:
    • CPU: Intel Core i3 / AMD Ryzen 3 trở lên.
    • RAM: Tối thiểu 4GB (Khuyến nghị 8GB để thực hiện vector hóa mượt mà).
    • Ổ cứng: 500MB không gian trống.
  • Môi trường phần mềm:
    • Hệ điều hành: Windows 10/11, Ubuntu 18.04+, macOS.
    • Python Runtime: Python 3.8.x cùng các package: pandas>=1.1.5, scikit-learn>=0.23.2, wordninja>=2.0.0, numpy>=1.19.2.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Sự phụ thuộc vào mô hình không gian vector túi từ (BoW/TF-IDF): TF-IDF không nắm bắt được thứ tự từ vựng và ngữ cảnh sâu của câu; các từ đồng nghĩa nhưng viết khác nhau nếu không cùng tần suất có thể bị tách rời.
  • Hạn chế ngôn ngữ: Pipeline phân tách từ hiện tại (wordninja) được tối ưu cho ngữ liệu tiếng Anh, chưa hỗ trợ hoàn chỉnh cho tiếng Việt không dấu hoặc tiếng lóng bản địa.
  • Giới hạn bộ nhớ của thuật toán phân cấp: Thuật toán Agglomerative Clustering có độ phức tạp không gian $O(N^2)$, không thể chạy trực tiếp trên toàn bộ 180,000 dòng dữ liệu mà phải lấy mẫu (downsampling).

Hướng phát triển đề xuất

  1. Nâng cấp mô hình biểu diễn ngữ nghĩa: Thay thế TF-IDF bằng các mô hình nhúng ngữ cảnh sâu hiện đại như Sentence-BERT (SBERT) hoặc COVID-Twitter-BERT (CT-BERT) để nắm bắt ngữ nghĩa đa chiều.
  2. Triển khai phân cụm động thời gian thực (Streaming Clustering): Ứng dụng mô hình MiniBatchKMeans kết hợp với Apache Kafka để phân loại các luồng tweet trực tiếp (Live Stream).
  3. Mở rộng hỗ trợ đa ngôn ngữ: Tích hợp các bộ tách từ chuyên biệt cho tiếng Việt như pyvi hoặc VnCoreNLP để phục vụ phân tích mạng xã hội trong nước.

Đối tượng hưởng lợi

  • Sinh viên & Học viên nghiên cứu: Tài liệu tham khảo hoàn chỉnh về quy trình thực hiện đồ án NLP thực tế, từ bước thu thập dữ liệu thô, xử lý hashtag đến đánh giá thuật toán phân cụm không giám sát bằng mã nguồn trực quan.
  • Kỹ sư & Lập trình viên học máy: Cung cấp mẫu code chuẩn về xử lý chuỗi ký tự bất quy tắc trên mạng xã hội và kỹ thuật tối ưu bộ nhớ ma trận thưa trong Scikit-learn.
  • Cơ quan quản lý & Tổ chức y tế: Sở hữu giải pháp kiến trúc có khả năng ứng dụng ngay để phân tích dư luận xã hội và phát hiện sớm các khủng hoảng thông tin y tế công cộng với chi phí 0 đồng tiền bản quyền phần mềm.
  • Nhà khoa học dữ liệu: Cung cấp dữ liệu thực nghiệm đối chuẩn giữa 3 họ thuật toán gom cụm kinh điển trên tập dữ liệu dịch bệnh quy mô lớn.

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

1. Cấu hình hệ thống tối thiểu để triển khai ứng dụng này là gì?

Hệ thống yêu cầu máy tính chạy hệ điều hành Windows, Linux hoặc macOS, trang bị chip xử lý từ 2 nhân (x86/x64), dung lượng RAM tối thiểu 4GB (khuyến nghị 8GB) và đã cài đặt môi trường Python 3.8 kèm các thư viện: pandas, scikit-learn, wordninja.

2. Giới hạn khả năng mở rộng (Scalability) của hệ thống là bao nhiêu và giải pháp khắc phục khi dữ liệu tăng đột biến?

Khi kích thước dữ liệu vượt quá 1 triệu tweet, ma trận TF-IDF và thuật toán K-Means truyền thống có thể gây nghẽn bộ nhớ. Giải pháp khắc phục là chuyển đổi sang sử dụng MiniBatchKMeans với kích thước batch cố định (ví dụ: 1,024 mẫu/lần) hoặc kết hợp kỹ thuật giảm chiều dữ liệu TruncatedSVD (LSA) để hạ số chiều từ 5,000 xuống 100–300 chiều.

3. Làm thế nào để tích hợp module phân loại này vào hệ thống cơ sở dữ liệu có sẵn của doanh nghiệp?

Hệ thống được thiết kế dạng module hóa cao. Doanh nghiệp chỉ cần đóng gói pipeline tiền xử lý và mô hình phân cụm thành một RESTful API sử dụng FastAPI hoặc Flask. Dữ liệu tweet mới từ cơ sở dữ liệu (MySQL, PostgreSQL, MongoDB) sẽ được đẩy qua endpoint /api/v1/classify-tweet để nhận về mã cụm tương ứng trong định dạng JSON.

4. Chi phí bảo trì và vận hành hệ thống định kỳ như thế nào?

Do hệ thống sử dụng hoàn toàn các công nghệ mã nguồn mở (Python, Scikit-learn) và thuật toán học máy không giám sát, chi phí bản quyền phần mềm là 0 đồng. Chi phí bảo trì chủ yếu tập trung vào việc cập nhật từ điển stopwords mới khi xuất hiện các thuật ngữ y tế hoặc tiếng lóng mới trên mạng xã hội.

5. Tại sao đề tài lại chọn phân tích dữ liệu Hashtag thay vì toàn bộ nội dung bài viết (Text)?

Hashtag trên Twitter mang tính chất cô đọng cao nhất về mặt chủ đề do chính người dùng chủ động gắn nhãn để tạo xu hướng (trending). Việc tập trung vào hashtag giúp giảm hơn 80% độ nhiễu ngữ pháp, giảm kích thước ma trận từ vựng và tăng tốc độ xử lý thuật toán lên hơn gấp 5 lần mà vẫn giữ được độ chính xác phân loại chủ đề cốt lõi.


Kết luận

Đề tài "Xây dựng ứng dụng phân loại tin tức COVID-19 trên mạng xã hội Twitter" đã chứng minh tính khả thi và hiệu quả vượt trội của việc ứng dụng kỹ thuật tiền xử lý ngôn ngữ tự nhiên kết hợp thuật toán học máy không giám sát trong việc giải quyết bài toán thông tin rác và bùng nổ dữ liệu thời kỳ đại dịch. Bằng việc xây dựng thành công pipeline bẻ khóa hashtag phức hợp với wordninja, biểu diễn không gian vector TF-IDF và thực nghiệm đối chuẩn 3 thuật toán gom cụm cốt lõi, đề tài đã chứng minh thuật toán K-Means ($k=6$) đạt hiệu quả tối ưu nhất với Silhouette Score đạt 0.542 và tốc độ xử lý nhanh gấp nhiều lần so với các phương pháp phân cấp.

Kết quả của khóa luận không chỉ mang ý nghĩa học thuật trong việc tối ưu hóa xử lý văn bản mạng xã hội cực ngắn mà còn mở ra tiềm năng ứng dụng thực tiễn lớn cho các cơ quan y tế, truyền thông và doanh nghiệp trong việc chủ động theo dõi, phân tích dòng chảy thông tin đại chúng. Các nhà nghiên cứu và lập trình viên quan tâm có thể tiếp tục mở rộng mô hình bằng cách tích hợp các kiến trúc Transformer tiên tiến để phục vụ đa dạng các bài toán giám sát thông tin xã hội trong tương lai.