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

Trong thời đại bùng nổ thông tin và sự phát triển của mạng Internet, phương thức tiếp cận tin tức của độc giả đã chuyển dịch mạnh mẽ sang môi trường trực tuyến. Mỗi ngày, hàng triệu bài báo thuộc đa dạng lĩnh vực được xuất bản liên tục từ nhiều nguồn thông tin khác nhau. Thực trạng này dẫn đến hiện tượng quá tải thông tin, khiến độc giả gặp nhiều khó khăn trong việc tìm kiếm và chọn lọc nội dung thực sự phù hợp với nhu cầu và sở thích cá nhân. Để giải quyết bài toán này, các hệ thống gợi ý tin tức (News Recommender System - NRS) đã được nghiên cứu và ứng dụng nhằm đề xuất nội dung tự động dựa trên phân tích thuộc tính bài viết và hành vi của người đọc.

Khóa luận tiến hành khảo sát hiện trạng tại bốn cổng thông tin điện tử tiêu biểu trong nước và quốc tế:

  • VnExpress: Trang tin tức trực tuyến phổ biến hàng đầu tại Việt Nam với hệ thống chuyên mục phong phú (Thời sự, Góc nhìn, Kinh doanh, Bất động sản, Khoa học, Giải trí, Thể thao, Pháp luật...). Hệ thống có khối gợi ý bài viết liên quan nhưng mật độ banner quảng cáo dày đặc.
  • 24h: Trang tin điện tử tập trung vào các mảng tin tức trong ngày, thể thao, giải trí, pháp luật; bố cục rõ ràng, tốc độ phản hồi nhanh, tuy nhiên số lượng quảng cáo hiển thị nhiều gây cản trở trải nghiệm đọc.
  • The New York Times: Nhật báo điện tử uy tín của Hoa Kỳ, ngôn ngữ trau chuốt, nội dung chuyên sâu, hỗ trợ đề xuất theo từng chủ đề hoặc bài viết tương tự; hạn chế là một số bài phân tích có dung lượng quá dài và áp dụng hình thức thu phí/đăng ký đọc (paywall).
  • BBC News: Kênh tin tức đa phương tiện toàn cầu thuộc điều hành của British Broadcasting Corporation, sở hữu hệ thống gợi ý bài viết liên quan (Related Stories) dựa trên việc thu thập lịch sử duyệt web và phân tích nội dung chuyên mục; song các luồng tin đa phương tiện đôi khi gây phân tán cho người dùng chỉ có nhu cầu đọc thuần túy.

Đánh giá chung cho thấy các website hiện nay đều hỗ trợ tìm kiếm theo từ khóa, chuyên mục và hiển thị bài viết liên quan. Tuy nhiên, tình trạng lạm dụng quảng cáo hiển thị gây ảnh hưởng tiêu cực đến tốc độ tương tác và tính liền mạch khi tiếp nhận thông tin. Xuất phát từ thực tế đó, tác giả lựa chọn đề tài xây dựng một website đọc báo điện tử tích hợp hệ thống khuyến nghị nội dung tương tự dựa trên phương pháp Content-Based Filtering, đồng thời hạn chế tối đa quảng cáo nhằm tối ưu hóa trải nghiệm người dùng.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài gồm ba nội dung chính:

  1. Nghiên cứu cơ sở lý thuyết về hệ thống khuyến nghị, trọng tâm là phương pháp lọc dựa trên nội dung (Content-Based Filtering), thuật toán K-Nearest Neighbors (KNN), kỹ thuật trích xuất đặc trưng văn bản TF-IDF và mã hóa One-Hot.
  2. Xây dựng quy trình xử lý dữ liệu bài báo tiếng Việt (tiền xử lý, tách từ, trích xuất đặc trưng kết hợp giữa văn bản và biến phân loại) nhằm huấn luyện mô hình tính toán độ tương đồng và lưu trữ danh sách đề xuất.
  3. Phân tích, thiết kế và phát triển hoàn chỉnh hệ thống website báo điện tử gồm hai phân hệ: cổng đọc tin tức trực tuyến cho độc giả và hệ thống quản lý nội dung (CMS) cho ban biên tập.

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

  • Đối tượng nghiên cứu:
    • Độc giả trực tuyến: Người truy cập hệ thống để tiếp nhận thông tin, tìm kiếm bài viết theo chủ đề và xem các đề xuất nội dung tương tự.
    • Nhà quản trị trang báo: Ban biên tập, quản trị viên nội dung chịu trách nhiệm biên tập bài viết, duyệt bình luận và vận hành hệ thống.
  • Phạm vi nghiên cứu:
    • Không gian và môi trường: Nền tảng ứng dụng web đa thiết bị, tương thích giao diện máy tính và thiết bị di động (responsive design).
    • Phạm vi dữ liệu: Tập dữ liệu bài báo tiếng Việt crawl từ Báo Lao Động được công bố trên nền tảng Kaggle.
    • Phạm vi kỹ thuật: Tập trung vào mô hình Content-Based Filtering sử dụng TF-IDF, OneHotEncoder và thuật toán NearestNeighbors; không triển khai Collaborative Filtering dựa trên ma trận người dùng - tương tác.

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

Khóa luận thiết lập nền tảng lý thuyết dựa trên các nguyên lý xử lý ngôn ngữ tự nhiên và học máy truyền thống phục vụ bài toán khuyến nghị:

1. Khung lý thuyết và mô hình giải thuật

  • Hệ thống khuyến nghị (Recommender System): Văn bản so sánh hai trường phái chính:
    • Collaborative Filtering: Khuyến nghị dựa trên hành vi, sở thích tương đồng giữa các người dùng (User-Based) hoặc giữa các đối tượng (Item-Based). Ưu điểm là khám phá được các mục tiêu mới nằm ngoài phạm vi thuộc tính văn bản, nhưng gặp hạn chế lớn về vấn đề khởi đầu lạnh (Cold-Start) và ma trận thưa.
    • Content-Based Filtering: Khuyến nghị dựa trên sự tương đồng giữa thuộc tính của mục tiêu (item profile) với sở thích của người dùng. Phương pháp này phù hợp cho việc gợi ý bài báo tương tự dựa trên các thuộc tính văn bản như tiêu đề, nội dung tóm tắt, thể loại và tác giả mà không cần dữ liệu lịch sử của độc giả.
  • Thuật toán K-Nearest Neighbors (KNN): Thuật toán học có giám sát, phi tham số, dùng độ gần để phân loại hoặc dự đoán nhóm dữ liệu. Trong bài toán tìm kiếm bài viết tương đồng, KNN sử dụng cấu trúc dữ liệu tối ưu hóa như cây KD-tree hoặc Ball tree để nhanh chóng xác định các điểm láng giềng gần nhất trong không gian đặc trưng nhiều chiều.
  • Các chỉ số đo khoảng cách:
    • Khoảng cách Euclid ($p=2$): $d(x, y) = \sqrt{\sum_{i=1}^n (x_i - y_i)^2}$
    • Khoảng cách Manhattan ($p=1$): $d(x, y) = \sum_{i=1}^n |x_i - y_i|$
    • Khoảng cách Minkowski (dạng tổng quát): $d(x, y) = \left(\sum_{i=1}^n |x_i - y_i|^p\right)^{\frac{1}{p}}$
    • Khoảng cách Hamming: Đo sự sai khác giữa các vector Boolean hoặc chuỗi ký tự.
  • Trích xuất đặc trưng văn bản bằng TF-IDF (Term Frequency – Inverse Document Frequency):
    • Tần số thuật ngữ: $\text{TF}(t, d) = \frac{\text{Frequency}(t, d)}{\sum_{t' \in d} \text{Frequency}(t', d)}$
    • Tần số nghịch đảo tài liệu: $\text{IDF}(t, D) = \log_2 \frac{N(D)}{|{d \in D: t \in d}|}$
    • Trọng số kết hợp có làm trơn logarit: $\text{TFIDF}(t, d, D) = \log(1 + \text{TF}(t, d)) \times \log(\text{IDF}(t, d))$
  • Kỹ thuật xử lý từ dừng (Stop words): Loại bỏ các từ phổ biến mang ít giá trị thông tin trong tiếng Việt (như: "là", "của", "và", "có", "được", "trong", "với", "cho", "đến"...).
  • Mã hóa nhị phân One-Hot Encoding: Chuyển đổi các biến phân loại danh mục (Category) và tác giả (Author) thành các vector nhị phân có độ dài bằng số lượng nhãn riêng biệt.

2. Phương pháp nghiên cứu thực tế

Tác giả áp dụng phương pháp nghiên cứu thực nghiệm kết hợp phát triển phần mềm:

  • Thu thập và phân tích dữ liệu thứ cấp từ tập dữ liệu có sẵn.
  • Thực nghiệm quy trình tiền xử lý ngôn ngữ tự nhiên tiếng Việt bằng thư viện chuyên dụng (underthesea cho tác vụ word_tokenize).
  • Thực hiện vector hóa dữ liệu kết hợp và đo đạc chỉ số khớp nhau thông qua mô hình NearestNeighbors của Scikit-learn.
  • Xây dựng phần mềm hoàn chỉnh theo mô hình kiến trúc phân tầng tích hợp giao diện lập trình ứng dụng RESTful API.

3. Nguồn dữ liệu

Nguồn dữ liệu sử dụng là bộ dữ liệu công khai trên Kaggle với tên gọi News Dataset Vietnameses, được thu thập (crawl) từ Báo Lao Động vào ngày 19/05/2022. Cấu trúc nguyên bản gồm 313.697 dòng bài báo với 8 trường dữ liệu:

Tên trường Kiểu dữ liệu Ý nghĩa
URL Chuỗi Đường dẫn gốc của bài báo trên website nguồn
Title Văn bản Tiêu đề bài báo
Summary Văn bản Tóm tắt ngắn gọn nội dung bài viết
Contents Văn bản Toàn bộ nội dung chi tiết bài viết
Date Chuỗi ngày Thời điểm xuất bản bài báo
Author(s) Chuỗi Tên tác giả hoặc nguồn tổng hợp (T/H)
Category Chuỗi Thể loại/chuyên mục của bài báo
Tags Chuỗi Danh sách từ khóa/nhãn đính kèm bài viết

Thiết kế và triển khai

Phân hệ kỹ thuật của khóa luận bao gồm kiến trúc hệ thống, quy trình xử lý thuật toán và thiết kế chi tiết các chức năng phần mềm.

1. Kiến trúc công nghệ và công cụ

  • Giao diện người dùng (Frontend): Xây dựng bằng ReactJS kết hợp framework Next.js. Các tính năng cốt lõi được ứng dụng bao gồm Render phía máy chủ (Server-Side Rendering - SSR), Tạo trang tĩnh (Static Site Generation - SSG), cơ chế định tuyến (Routing), nạp lại mô-đun nóng (Hot Module Replacement - HMR), chia nhỏ mã tự động (Code-splitting) và hỗ trợ kiểm soát kiểu dữ liệu với TypeScript.
  • Máy chủ ứng dụng (Backend): Ngôn ngữ lập trình Python kết hợp Django Rest Framework (DRF) theo chuẩn kiến trúc REST API. DRF đảm nhận việc chuyển đổi cấu trúc đối tượng (Serialization), phân quyền và chứng thực (Authentication/Permissions), quản lý bộ điều hướng (Viewsets và Routers), phân trang tự động (Pagination) và tạo tài liệu API.
  • Hệ quản trị cơ sở dữ liệu: MySQL phục vụ việc lưu trữ dữ liệu có cấu trúc, đảm bảo tính toàn vẹn giao dịch (ACID).
  • Môi trường và thư viện hỗ trợ: Visual Studio Code, Jupyter Notebook; các thư viện phân tích tính toán pandas, numpy, scipy, sklearn (scikit-learn), underthesea, pickle, joblib và sqlalchemy.

2. Quy trình tiền xử lý và trích xuất đặc trưng

Để phục vụ việc huấn luyện mô hình khuyến nghị trên dữ liệu thực nghiệm, tác giả thiết lập quy trình tiền xử lý có kiểm soát:

  1. Lọc dữ liệu: Từ 313.697 dòng gốc, loại bỏ các cột không dùng trực tiếp gồm URL và Tags; loại bỏ các hàng mang giá trị rỗng (NULL/NA) và các hàng trùng lặp.
  2. Cân bằng tập mẫu: Lọc và lấy đúng 1.111 dòng đầu tiên cho mỗi thể loại thuộc 10 thể loại chỉ định: Bất động sản, Xã hội, Kinh doanh, Thời sự, Pháp luật, Giáo dục, Sức khỏe, Thể thao, Công nghệ, Du lịch. Tổng kích thước tập dữ liệu huấn luyện cố định là 10.010 dòng.
  3. Chuẩn hóa dữ liệu ngày tháng: Chuyển đổi tên ngày từ tiếng Việt sang tiếng Anh, đưa chuỗi thời gian về định dạng thống nhất %Y-%m-%d %H:%M và loại bỏ thông tin múi giờ (timezone).
  4. Chuẩn hóa văn bản: Đối với hai trường Title và Summary, hệ thống loại bỏ các ký tự đặc biệt, chuyển toàn bộ văn bản về chữ thường, sử dụng word_tokenize từ thư viện underthesea để tách từ tiếng Việt, và loại bỏ từ dừng dựa trên danh sách vietnamese-stopwords.txt kết hợp stop words tùy biến.
  5. Trích xuất ma trận đặc trưng:
    • Áp dụng TfidfVectorizer trên tập kết hợp Title và Summary, sau đó biến đổi riêng cho từng trường để thu được ma trận title_tfidf và summary_tfidf.
    • Sử dụng OneHotEncoder để mã hóa hai trường phân loại danh mục gồm Category và Author(s).
    • Kết hợp các ma trận thưa lại với nhau bằng phương thức scipy.sparse.hstack tạo thành ma trận đặc trưng tổng hợp (features).
    • Lưu trữ các đối tượng vectorizer và encoder vào tập tin variables.pkl bằng pickle, lưu trữ ma trận đặc trưng vào tập tin features.joblib bằng joblib.
  6. Xử lý khi có bài báo mới: Đọc bản ghi mới nhất từ cơ sở dữ liệu MySQL bằng câu truy vấn (SELECT ... ORDER BY p.id DESC LIMIT 1), chuẩn hóa văn bản, tải các bộ mã hóa từ variables.pkl, thực hiện biến đổi transform, nối vector mới vào ma trận đã lưu và cập nhật lại đề xuất.

3. Thiết kế cơ sở dữ liệu và ca sử dụng (Use Case)

Cơ sở dữ liệu của hệ thống được tổ chức thành các bảng quan hệ chính:

  • Users: Quản lý tài khoản quản trị viên và người dùng hệ thống.
  • Categories: Lưu trữ danh mục 10 thể loại tin tức.
  • Posts: Chứa thông tin bài báo gồm tiêu đề (title), tóm tắt (excerpt), nội dung (content), tác giả (author), ngày xuất bản, trạng thái hiển thị (isEnabled), khóa ngoại liên kết tác giả và danh mục.
  • Relateds: Lưu trữ danh sách kết quả bài viết khuyến nghị được tính toán từ mô hình KNN.

Hệ thống phân định hai nhóm tác nhân chính:

  • Độc giả trực tuyến: Thực hiện các ca sử dụng: Đọc bài báo, Tìm kiếm theo tên bài viết, Tìm kiếm theo thể loại, Gửi bình luận phản hồi.
  • Nhà quản lý (Admin / Biên tập viên): Thực hiện các ca sử dụng: Quản lý bài báo (Xem danh sách, Thêm bài viết mới, Chỉnh sửa bài viết, Xóa bài viết), Quản lý bình luận (Kiểm duyệt, Phê duyệt hoặc Xóa bình luận của người đọc).

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

Chương 1. Tổng quan

Chương 1 trình bày tính cấp thiết của đề tài trong bối cảnh quá tải thông tin số, thiết lập mục tiêu xây dựng website đọc báo tích hợp hệ thống khuyến nghị NRS nhằm giảm thiểu quảng cáo phiền nhiễu. Chương này tiến hành khảo sát giao diện, cấu trúc bài viết và cơ chế đề xuất của bốn chuyên trang: VnExpress, 24h, The New York Times và BBC News; từ đó rút ra ưu điểm về bố cục nhưng chỉ ra hạn chế về mật độ quảng cáo và tường phí. Chương cũng xác định đối tượng người dùng, nhà quản lý cùng phạm vi thực nghiệm trên tập bài báo tiếng Việt.

Chương 2. Cơ sở lý thuyết

Chương 2 phân tích cơ sở lý thuyết của hệ thống gợi ý nội dung (Content-Based Filtering) so với lọc cộng tác (Collaborative Filtering). Trọng tâm chương là thuật toán K-Nearest Neighbors (KNN), các công thức đo lường khoảng cách (Euclid, Manhattan, Minkowski, Hamming) và ý nghĩa của tham số $k$. Chương làm rõ phương pháp xây dựng hồ sơ đối tượng (item profile) thông qua trích xuất đặc trưng TF-IDF cho dữ liệu văn bản, kỹ thuật loại bỏ stop words tiếng Việt và phương pháp mã hóa nhị phân One-Hot Encoding cho dữ liệu phân loại. Đồng thời, chương giới thiệu các công nghệ phát triển hệ thống gồm React, Next.js, kiến trúc REST API, Django Rest Framework và hệ quản trị cơ sở dữ liệu MySQL.

Chương 3. Đề xuất xử lý thuật toán

Chương 3 chi tiết hóa giải pháp kỹ thuật trên tập dữ liệu News Dataset Vietnameses (313.697 dòng ban đầu). Tác giả mô tả chi tiết các bước làm sạch dữ liệu, lọc trích xuất 10.010 dòng mẫu (1.111 bài cho mỗi thể loại thuộc 10 nhóm chủ đề), chuẩn hóa ngày tháng và định dạng văn bản bằng underthesea. Chương trình bày quy trình trích xuất ma trận TF-IDF cho Title, Summary kết hợp mã hóa One-Hot cho Category, Author(s). Chương cũng cung cấp giải thuật dự đoán láng giềng gần nhất bằng NearestNeighbors(n_neighbors=10) để lấy ra 9 bài tương đồng nhất, quy trình lưu ma trận vào features.joblib và lưu các chỉ số đề xuất vào cơ sở dữ liệu, cùng sơ đồ luồng dữ liệu tiếp nhận khi có bài báo mới phát sinh.

Chương 4. Phân tích thiết kế và triển khai

Chương 4 tập trung vào phân tích nghiệp vụ, yêu cầu chức năng và phi chức năng của hệ thống. Tác giả xây dựng sơ đồ ca sử dụng (Use Case tổng quát), các sơ đồ hoạt động (Activity Diagram) và sơ đồ tuần tự (Sequence Diagram) cho các chức năng đọc báo, tìm kiếm, gửi bình luận, quản lý bài viết và quản lý bình luận. Thiết kế cơ sở dữ liệu được cụ thể hóa qua sơ đồ quan hệ và mô tả chi tiết các bảng Users, Categories, Posts, Relateds. Phần triển khai minh họa giao diện thực tế của hệ thống trên cả môi trường desktop và mobile bao gồm: Trang chủ, Trang đọc báo chi tiết (gồm tiêu đề, nội dung chính, khu vực góp ý và danh sách bài viết đề xuất), Trang thể loại, Trang tìm kiếm cùng hệ thống trang quản trị CMS (danh sách bài viết, tạo mới, chỉnh sửa và kiểm duyệt bình luận).

Chương 5. Kết luận và hướng phát triển

Chương 5 tổng kết toàn bộ kết quả đạt được của khóa luận, bao gồm việc xây dựng thành công website báo điện tử có khả năng gợi ý nội dung theo bài viết tương tự và cung cấp trang quản trị nội dung hoàn chỉnh. Tác giả đánh giá khách quan các ưu điểm về giao diện, hạn chế quảng cáo, chỉ ra khó khăn trong quá trình xử lý ngôn ngữ tiếng Việt và lưu trữ ma trận thưa của KNN. Cuối cùng, chương đưa ra các định hướng mở rộng hệ thống trong tương lai.


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

Khóa luận hoàn thành việc xây dựng và thực nghiệm hệ thống với các kết quả cụ thể:

1. Kết quả kỹ thuật và triển khai thực nghiệm

  • Xử lý dữ liệu: Xây dựng thành công tập dữ liệu thực nghiệm chuẩn hóa gồm 10.010 bài báo tiếng Việt phân bố đồng đều trên 10 thể loại tin tức chính ngạch.
  • Mô hình khuyến nghị:
    • Khởi tạo thành công pipeline vector hóa kết hợp ma trận TF-IDF của văn bản và ma trận nhị phân One-Hot của biến phân loại danh mục, tác giả.
    • Sử dụng mô hình NearestNeighbors thiết lập tham số n_neighbors=10 để dự đoán và trích xuất chính xác 9 bài báo có nội dung gần nhất đối với mỗi bài viết đang xem (sau khi loại bỏ chỉ số của chính bài viết đó).
    • Tích hợp thành công cơ chế tuần tự hóa dữ liệu thông qua các tập tin variables.pkl và features.joblib, cho phép tái sử dụng mô hình và ánh xạ nhanh chóng khi cập nhật thêm dữ liệu mới từ database.
  • Sản phẩm ứng dụng:
    • Triển khai thành công website báo điện tử vận hành đầy đủ các chức năng xem tin, phân loại chuyên mục, tìm kiếm và gửi phản hồi bình luận.
    • Xây dựng giao diện tương thích tốt trên cả màn hình máy tính và thiết bị di động (mobile responsive), đảm bảo tốc độ phản hồi nhanh và giới hạn quảng cáo.
    • Cung cấp cổng quản trị nội dung (CMS) hỗ trợ biên tập viên quản lý bài viết và kiểm duyệt các phản hồi từ độc giả.

2. Giải pháp và kiến nghị của tác giả

  • Ứng dụng quy trình tách từ tiếng Việt chuyên dụng bằng thư viện underthesea trước khi đưa vào tính toán tần số thuật ngữ nhằm khắc phục hiện tượng tách rời từ ghép trong tiếng Việt.
  • Tận dụng kết hợp thuộc tính tác giả và danh mục bài viết song song với tiêu đề và tóm tắt để nâng cao mức độ liên quan về mặt chủ đề giữa các bài viết được gợi ý.
  • Sử dụng cơ chế lưu trữ kết quả gợi ý trực tiếp vào cơ sở dữ liệu (split_indices được chuyển đổi thành dataframe và nạp vào MySQL theo cơ chế chunking) nhằm giảm thiểu thời gian tính toán lặp lại khi người dùng truy cập bài viết.

3. Đóng góp tự nêu của khóa luận

  • Đề xuất giải pháp tích hợp mô hình học máy gợi ý bài báo trực tiếp vào một hệ thống web tin tức hoàn chỉnh, vận hành thực tế thay vì chỉ dừng lại ở bước thực nghiệm thuật toán trên notebook.
  • Xây dựng một quy trình khép kín từ khâu tiền xử lý dữ liệu báo chí tiếng Việt thô, trích xuất đặc trưng đa nguồn (kết hợp văn bản và dữ liệu danh mục), đến việc triển khai kiến trúc backend phân tách giữa API xử lý dữ liệu và giao diện người dùng.

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

Dựa trên các nội dung được tác giả trình bày và phạm vi thực tế của đề tài, các hạn chế và hướng mở của khóa luận bao gồm:

1. Hạn chế

  • Hạn chế của thuật toán KNN: Thuật toán K-Nearest Neighbors đòi hỏi phải duy trì toàn bộ ma trận đặc trưng trong bộ nhớ, dẫn đến chi phí tính toán và yêu cầu tài nguyên lưu trữ tăng cao khi quy mô dữ liệu bài báo mở rộng lên hàng trăm nghìn bản ghi.
  • Hạn chế của kỹ thuật TF-IDF: Phương pháp trích xuất đặc trưng TF-IDF chỉ đánh giá tầm quan trọng của từ ngữ dựa trên tần suất xuất hiện thuần túy, chưa có khả năng trích xuất và hiểu sâu ngữ cảnh ngữ nghĩa (semantic context) của câu văn trong tiếng Việt.
  • Hạn chế về tính cá nhân hóa: Đề tài mới chỉ triển khai phương pháp Content-Based Filtering dựa trên thuộc tính bài viết hiện tại; chưa thu thập và phân tích dữ liệu lịch sử đọc của từng tài khoản người dùng để áp dụng Collaborative Filtering nhằm cá nhân hóa gợi ý theo thời gian.
  • Cơ chế cập nhật mô hình: Việc bổ sung dữ liệu mới vẫn dựa trên việc nạp lại mô hình tĩnh từ tập tin trung gian, chưa hình thành luồng xử lý luồng (streaming data) theo thời gian thực tự động hóa hoàn toàn.

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

  • Nghiên cứu ứng dụng các mô hình ngôn ngữ sâu (Deep Learning) và các mô hình biểu diễn từ theo ngữ cảnh (như BERT, PhoBERT cho tiếng Việt) nhằm nâng cao độ chính xác trong việc nắm bắt ý nghĩa của văn bản bài báo.
  • Nghiên cứu và phát triển hệ thống khuyến nghị lai (Hybrid Recommender System) kết hợp giữa Content-Based Filtering và Collaborative Filtering, tận dụng dữ liệu tương tác thực tế của người dùng để nâng cao chất lượng đề xuất.
  • Tối ưu hóa cấu trúc dữ liệu tìm kiếm vector tương tự (như FAISS hoặc Annoy) nhằm hỗ trợ khả năng mở rộng với các tập dữ liệu lớn hàng triệu bài viết trong môi trường sản xuất.

Giá trị tham khảo

Khóa luận mang lại giá trị tham khảo thiết thực cho nhiều nhóm đối tượng và bối cảnh học thuật:

  • Đối tượng tham khảo:
    • Sinh viên các ngành Hệ thống Thông tin, Kỹ thuật Phần mềm, Khoa học Dữ liệu và Công nghệ Thông tin đang thực hiện đồ án tốt nghiệp hoặc các dự án môn học liên quan đến khai phá dữ liệu văn bản và xây dựng ứng dụng web.
    • Các kỹ sư phần mềm muốn tìm hiểu cách tích hợp các mô hình Machine Learning cơ bản (Scikit-learn) vào hệ thống web hiện đại sử dụng Django Rest Framework và Next.js.
    • Các nhà nghiên cứu và người phát triển quan tâm đến việc xử lý dữ liệu văn bản tin tức tiếng Việt có cấu trúc.
  • Nội dung giá trị nhất trong tài liệu:
    • Quy trình tiền xử lý văn bản tiếng Việt chi tiết (kết hợp tách từ qua underthesea, xử lý stop words và định dạng ngày tháng tiếng Việt).
    • Kỹ thuật kết hợp đồng thời ma trận đặc trưng văn bản TF-IDF và ma trận mã hóa danh mục One-Hot Encoding bằng scipy.sparse.hstack.
    • Bộ tài liệu phân tích thiết kế hệ thống chi tiết bao gồm danh mục Use Case, bảng đặc tả, sơ đồ hoạt động (Activity Diagram), sơ đồ tuần tự (Sequence Diagram) và cấu trúc bảng cơ sở dữ liệu MySQL chuẩn mực.

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

1. Khóa luận sử dụng nguồn dữ liệu nào để thực nghiệm và quy mô tập mẫu sau khi làm sạch là bao nhiêu?
Khóa luận sử dụng bộ dữ liệu News Dataset Vietnameses được crawl từ Báo Lao Động vào ngày 19/05/2022 và công bố trên Kaggle (gốc gồm 313.697 dòng). Sau các bước làm sạch và loại bỏ dữ liệu trống/trùng lặp, tác giả tiến hành lấy mẫu cân bằng gồm 1.111 bài báo cho mỗi nhóm thuộc 10 thể loại chỉ định, tạo thành tập dữ liệu huấn luyện thực nghiệm cố định gồm đúng 10.010 dòng.

2. Mô hình khuyến nghị sử dụng những trường thông tin nào của bài báo để tính độ tương đồng?
Hệ thống sử dụng kết hợp 4 trường thông tin: Tiêu đề (Title) và Tóm tắt (Summary) được chuyển đổi thành ma trận đặc trưng bằng kỹ thuật TF-IDF; Thể loại (Category) và Tác giả (Author(s)) được mã hóa thành ma trận nhị phân thông qua OneHotEncoder. Tất cả được ghép nối thành một ma trận đặc trưng tổng hợp duy nhất.

3. Thuật toán K-Nearest Neighbors đề xuất bao nhiêu bài báo liên quan cho mỗi bài viết đang xem?
Trong mã nguồn triển khai, mô hình gọi hàm kneighbors(features, n_neighbors=10). Do điểm láng giềng đầu tiên chính là bản thân bài viết đang xét (khoảng cách bằng 0), hệ thống sẽ trích xuất 9 chỉ số bài báo gần nhất còn lại để lưu trữ và hiển thị cho người đọc dưới dạng danh sách bài viết liên quan.

4. Kiến trúc công nghệ của website được phân chia như thế nào giữa các tầng?
Hệ thống được phát triển tách biệt theo mô hình kiến trúc phân tầng giao tiếp qua REST API: Tầng giao diện (Frontend) sử dụng ReactJS và Next.js hỗ trợ SSR/SSG; Tầng xử lý nghiệp vụ (Backend) sử dụng ngôn ngữ Python với Django Rest Framework (DRF); Tầng dữ liệu sử dụng hệ quản trị cơ sở dữ liệu quan hệ MySQL; các tác vụ học máy được hỗ trợ bởi các thư viện Scikit-learn, Pandas và Underthesea.

5. Hệ thống xử lý như thế nào khi ban biên tập đăng tải một bài báo mới vào hệ thống?
Khi có bài viết mới, hệ thống thực hiện truy vấn lấy bản ghi mới nhất từ MySQL (LIMIT 1), tiến hành chuẩn hóa văn bản tương tự tập huấn luyện ban đầu, sau đó tải các bộ thông số đã lưu trong tập tin variables.pkl để thực hiện biến đổi transform thuộc tính, ghép nối vào vector ma trận đặc trưng và gọi mô hình KNN để tìm kiếm ngay các bài viết tương đồng tương ứng.


Kết luận

Khóa luận tốt nghiệp của tác giả Võ Thành Đô đã giải quyết trọn vẹn bài toán xây dựng nền tảng báo điện tử tích hợp công nghệ khuyến nghị nội dung tương tự, hướng tới việc tối ưu hóa trải nghiệm đọc tin tức và giảm thiểu quảng cáo phiền toái. Bằng việc kết hợp hiệu quả giữa phương pháp trích xuất đặc trưng TF-IDF cho văn bản tiếng Việt, mã hóa nhị phân One-Hot cho dữ liệu danh mục và mô hình láng giềng gần nhất KNN, hệ thống đã thực hiện thành công chức năng đề xuất 9 bài báo tương đồng trên tập mẫu 10.010 bài viết thực nghiệm. Đồng thời, đồ án đã hoàn thiện kiến trúc ứng dụng web đa tầng hiện đại với sự kết hợp giữa Django Rest Framework và Next.js, cung cấp đầy đủ các phân hệ chức năng cho cả độc giả trực tuyến và nhà quản trị nội dung. Đây là một tài liệu tham khảo có giá trị cao về mặt phân tích thiết kế hệ thống và tích hợp ứng dụng học máy vào bài toán thực tiễn.