Bối cảnh và vấn đề nghiên cứu
Trong kỷ nguyên Cách mạng Công nghiệp 4.0 và sự bùng nổ thông tin trên Internet, nhu cầu tiếp cận tin tức thời sự của người dùng trên các thiết bị di động ngày càng gia tăng. Tuy nhiên, người đọc phải đối mặt với tình trạng tin giả, tin chưa qua kiểm chứng xuất hiện tràn lan trên mạng xã hội và các trang thông tin không chính thống. Để giải quyết thực trạng này, đồ án tốt nghiệp kỹ sư ngành Công nghệ Thông tin (chuyên ngành Công nghệ Phần mềm) tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh của nhóm tác giả Nguyễn Trường Phúc và Cao Ngọc Quý (dưới sự hướng dẫn của ThS. Trương Thị Ngọc Phượng) đã thực hiện đề tài "Xây dựng website tin tức tổng hợp tự động".
Hệ thống được định hướng tự động thu thập thông tin từ các cơ quan báo chí chính thống, cung cấp cơ chế tổng hợp, lọc trùng và cho phép người dùng tương tác trực tiếp với nội dung tin tức, đồng thời góp phần giảm thiểu lượng giấy in ấn của báo chí truyền thống nhằm bảo vệ môi trường.
Văn bản xác định các mục tiêu và nhiệm vụ nghiên cứu cụ thể:
- Mục tiêu nghiên cứu:
- Xây dựng giao diện trực quan với các tính năng hỗ trợ, nâng cao trải nghiệm người dùng.
- Xây dựng ứng dụng gắn liền thực tiễn, đáp ứng nhu cầu tiếp cận thông tin mới nhất, chính thống của độc giả.
- Ứng dụng toàn diện kiến thức và công nghệ phát triển web hiện đại vào đồ án thực tế.
- Nhiệm vụ của luận văn:
- Hoàn thành toàn bộ danh mục chức năng đề ra cho phía người dùng, hệ thống và quản trị viên.
- Hoàn thành tài liệu báo cáo kỹ thuật và kiểm thử cho khóa luận.
- Triển khai ứng dụng lên môi trường mạng phục vụ người dùng thực tế.
- Đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Ứng dụng web tổng hợp tin tức tự động xây dựng trên nền tảng Java Spring Boot, Next.js, Tailwind CSS, cơ sở dữ liệu MySQL, tích hợp mô hình thị giác máy tính COCO-SSD và bộ công cụ xử lý ngôn ngữ tự nhiên Stanford Core NLP.
- Phạm vi nghiên cứu: Thu thập tự động dữ liệu bài viết định kỳ từ 2 nguồn báo chí điện tử chính thống tại Việt Nam gồm VnExpress và Dân Trí; thời gian thực hiện từ ngày 04/03/2024 đến ngày 15/06/2024.
Cơ sở lý thuyết và phương pháp
Khóa luận kết hợp phương pháp nghiên cứu khảo sát hiện trạng công nghệ, phân tích thiết kế hệ thống phần mềm theo hướng đối tượng (UML/Usecase) và tích hợp các mô hình trí tuệ nhân tạo (xử lý ảnh và ngôn ngữ tự nhiên).
1. Khảo sát hiện trạng nền tảng Google News
Tác giả đã tiến hành khảo sát dịch vụ Google News để rút ra các ưu điểm và hạn chế làm căn cứ thiết kế:
- Ưu điểm: Khả năng thu thập, lập chỉ mục và phân loại tin tức từ hàng nghìn nguồn trên toàn cầu; hỗ trợ đa ngôn ngữ, chuyển đổi khu vực địa lý linh hoạt; bộ lọc tìm kiếm nâng cao và khả năng cá nhân hóa đề xuất tin tức theo sở thích, vị trí sinh sống.
- Hạn chế: Hệ thống chỉ lưu trữ và chuyển hướng người dùng bằng đường dẫn (URL) trỏ trực tiếp về trang nguồn; thu thập cả những nguồn tin có uy tín thấp hoặc mang thiên hướng chính trị; không cung cấp môi trường cho độc giả tương tác trực tiếp (không hỗ trợ bình luận, đánh giá sao hay lưu trữ bài viết tập trung).
2. Mô hình học sâu COCO-SSD
Đồ án sử dụng mô hình học sâu COCO-SSD (Single Shot MultiBox Detector huấn luyện trên tập dữ liệu Common Objects in Context - COCO gồm hơn 200.000 hình ảnh và hơn 80 nhãn đối tượng) để phát hiện vật thể trong ảnh:
- Kiến trúc mạng: Sử dụng mạng cơ sở VGG-16 (đã loại bỏ các lớp fully connected ở cuối) kết hợp các lớp trích xuất đặc trưng bổ sung (Extra Feature Layers: Conv6, Conv7, Conv8_2, Conv9_2, Conv10_2, Conv11_2).
- Cơ chế dự đoán: Sử dụng các hộp giới hạn tiêu chuẩn (default bounding boxes) với tỷ lệ 4 hoặc 6 hộp trên mỗi đơn vị bản đồ đặc trưng để nhận diện đa kích thước vật thể. Trong khảo sát thực nghiệm của đồ án, cấu hình SSD512 đạt độ chính xác mAP cao và duy trì tốc độ xử lý 22 khung hình/giây (fps), đảm bảo tính toán nhanh trên môi trường web.
3. Công cụ xử lý ngôn ngữ tự nhiên Stanford Core NLP
Hệ thống tích hợp bộ công cụ mã nguồn mở Stanford Core NLP để thực hiện phân tích văn bản tiếng Anh, phân đoạn câu, trích xuất thực thể/từ khóa quan trọng qua hàm nerKeyword() và tính toán độ tương đồng giữa các chuỗi văn bản. Dữ liệu tin tức tiếng Việt sau khi thu thập được chuyển đổi/dịch ngữ để trích xuất đặc trưng, phục vụ việc đối soát và lọc trùng lặp nội dung giữa các bài viết từ nhiều nguồn báo khác nhau.
Thiết kế và triển khai hệ thống
Hệ thống được thiết kế theo mô hình kiến trúc phân tầng, tách biệt hoàn toàn giữa giao diện người dùng (Frontend) và dịch vụ xử trị dữ liệu (Backend REST API).
1. Kiến trúc công nghệ phần mềm
- Giao diện (Frontend): Xây dựng bằng framework Next.js (React) áp dụng kết hợp Server-Side Rendering (SSR) và Static Site Generation (SSG) nhằm tối ưu tốc độ tải trang và chỉ mục SEO; định kiểu giao diện bằng Tailwind CSS theo phương pháp utility-first.
- Xử lý trung tâm (Backend): Sử dụng Java Spring Boot, quản lý phụ thuộc bằng Maven, cung cấp các REST API bảo mật thông qua Spring Security, điều phối tiến trình lập lịch tự động và kết nối thư viện NLP/Computer Vision.
- Hệ quản trị cơ sở dữ liệu: MySQL chịu trách nhiệm lưu trữ có cấu trúc toàn bộ thông tin người dùng, bài viết, quan hệ chuyên mục, tương tác và hàng đợi kiểm duyệt.
2. Danh mục 21 chức năng của hệ thống
| STT |
Phân nhóm chức năng |
Tên chức năng cụ thể |
Yêu cầu đăng nhập |
Ghi chú vai trò |
| 1 |
Phía hệ thống |
Tự động cập nhật bài viết mới từ VnExpress và Dân Trí |
Không |
Định kỳ mỗi 5 phút |
| 2 |
Phía người dùng |
Đăng nhập hệ thống (qua Email / Mật khẩu) |
Không |
Độc giả vãng lai |
| 3 |
Phía người dùng |
Đăng ký tài khoản người dùng mới |
Không |
Độc giả vãng lai |
| 4 |
Phía người dùng |
Xem danh sách bài viết phân theo chuyên mục |
Không |
Độc giả vãng lai / Thành viên |
| 5 |
Phía người dùng |
Xem nội dung bài viết chi tiết |
Không |
Độc giả vãng lai / Thành viên |
| 6 |
Phía người dùng |
Tìm kiếm bài viết theo từ khóa |
Không |
Độc giả vãng lai / Thành viên |
| 7 |
Phía người dùng |
Tìm kiếm bài viết theo đối tượng nhận diện trong ảnh |
Không |
Sử dụng mô hình COCO-SSD |
| 8 |
Phía người dùng |
Đổi mật khẩu tài khoản |
Có |
Mọi người dùng có tài khoản |
| 9 |
Phía người dùng |
Quản lý thông tin cá nhân và cập nhật ảnh đại diện |
Có |
Mọi người dùng có tài khoản |
| 10 |
Phía người dùng |
Gửi bình luận vào bài viết |
Có |
Mọi người dùng có tài khoản |
| 11 |
Phía người dùng |
Chỉnh sửa nội dung bình luận đã đăng |
Có |
Tác giả bình luận |
| 12 |
Phía người dùng |
Xóa bình luận đã đăng |
Có |
Tác giả bình luận |
| 13 |
Phía người dùng |
Đánh giá sao (1 đến 5 sao) cho bài viết |
Có |
Mọi người dùng có tài khoản |
| 14 |
Phía người dùng |
Thả cảm xúc tương tác đối với bài viết |
Có |
Mọi người dùng có tài khoản |
| 15 |
Phía người dùng |
Theo dõi các chuyên mục tin tức ưa thích |
Có |
Mọi người dùng có tài khoản |
| 16 |
Phía người dùng |
Xem bảng tin cá nhân hóa theo chuyên mục theo dõi |
Có |
Mọi người dùng có tài khoản |
| 17 |
Phía người dùng |
Lưu bài viết vào danh sách quan tâm |
Có |
Mọi người dùng có tài khoản |
| 18 |
Phía người dùng |
Xem danh sách các bài viết đã lưu trữ |
Có |
Mọi người dùng có tài khoản |
| 19 |
Phía người dùng |
Xóa bài viết ra khỏi danh sách đã lưu |
Có |
Mọi người dùng có tài khoản |
| 20 |
Phía quản trị |
Quản lý danh mục chuyên mục, danh sách tag và người dùng |
Có |
Phân quyền Quản trị viên |
| 21 |
Phía quản trị |
Kiểm duyệt bài viết bị hệ thống đánh dấu nghi ngờ trùng lặp |
Có |
Chấp nhận hoặc Từ chối bài |
3. Thiết kế cơ sở dữ liệu quan hệ
Hệ thống thiết kế cấu trúc dữ liệu gồm 13 bảng quan hệ:
article: Lưu thông tin chi tiết bài viết (tiêu đề, tóm tắt, nội dung, ảnh nền, tác giả, thời gian xuất bản, thời gian đọc ước tính, nguồn tin).
category: Danh mục chuyên mục bài viết (chuyên mục cha và chuyên mục con).
tag: Danh sách các từ khóa phân loại bài viết.
tag_article: Bảng liên kết nhiều-nhiều giữa bài viết và tag.
user: Thông tin tài khoản người dùng, email, mật khẩu mã hóa, họ tên, ngày sinh, ảnh đại diện, vai trò.
comment: Lưu trữ các bình luận của người dùng theo từng bài viết.
vote_star: Ghi nhận điểm đánh giá sao của từng người dùng cho bài viết.
average_star: Lưu trữ điểm đánh giá sao trung bình tính toán của bài viết.
react_emotion: Ghi nhận tương tác cảm xúc của độc giả.
saved_article: Danh sách bài viết được độc giả lưu lại.
follow_category: Danh mục các chuyên mục mà độc giả nhấn theo dõi.
ner_keyword: Danh sách thực thể/từ khóa trích xuất tự động qua xử lý ngôn ngữ.
pending_information: Hàng đợi chứa các bài viết được hệ thống đánh giá có độ tương đồng cao cần quản trị viên duyệt trước khi xuất bản.
4. Quy trình vận hành cốt lõi
- Thu thập và lập lịch: Dịch vụ lập lịch tự động kích hoạt mỗi 5 phút (
@Scheduled), gửi yêu cầu quét các bài mới từ nguồn VnExpress và Dân Trí. Hệ thống bóc tách các trường: tiêu đề, phần mô tả ngắn, nội dung đầy đủ, ảnh, tác giả và thời gian.
- Xử lý lọc trùng: Bài viết mới được tách đoạn, dịch thuật và đưa vào hàm
nerKeyword() của Stanford Core NLP để trích xuất tập từ khóa. Hệ thống chạy thuật toán tính độ tương đồng chuỗi giữa tin mới và tin đã có trong cơ sở dữ liệu. Nếu độ tương đồng vượt ngưỡng cảnh báo, bài viết được chuyển vào bảng pending_information để quản trị viên đối soát thủ công; nếu không trùng lặp, bài viết tự động lưu vào bảng article.
- Tìm kiếm bằng ảnh: Người dùng tải ảnh lên qua giao diện, mô hình COCO-SSD xử lý phân tích và trả về danh sách nhãn đối tượng (ví dụ: person, car, dog...). Hệ thống đối soát nhãn này với dữ liệu từ khóa/tag của các bài báo để hiển thị kết quả tương ứng.
5. Kiểm thử hệ thống
Tác giả đã xây dựng và thực thi 29 bảng kịch bản kiểm thử chức năng chi tiết (từ Bảng 56 đến Bảng 84 trong văn bản đồ án), bao quát toàn bộ các usecase: đăng nhập, đăng ký, đổi mật khẩu, cập nhật hồ sơ, tìm kiếm văn bản/hình ảnh, tương tác bình luận/sao/cảm xúc, lưu trữ bài viết, quản trị dữ liệu danh mục và kiểm duyệt bài viết chấp nhận/từ chối.
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 tin giả tràn lan, xác định mục đích nghiên cứu, cách tiếp cận hệ thống và phương pháp nghiên cứu. Định rõ đối tượng nghiên cứu gồm các công nghệ Next.js, Tailwind CSS, MySQL, Java Spring Boot, mô hình COCO-SSD, Stanford Core NLP. Xác định phạm vi thu thập dữ liệu từ hai báo điện tử VnExpress và Dân Trí cùng danh mục các kết quả dự kiến về mặt chức năng và giao diện.
Phần 2: Nội dung
Chương trọng tâm của đồ án, bao gồm các nội dung kỹ thuật chi tiết:
- Khảo sát hiện trạng trang Google News và phân tích kiến trúc mạng SSD (VGG-16 kết hợp Extra Feature Layers, kích thước lưới đặc trưng, cấu trúc hộp tiêu chuẩn).
- Thiết lập danh sách 21 chức năng hệ thống và xây dựng lược đồ usecase cho phía người dùng và hệ thống.
- Đặc tả chi tiết từng usecase kèm bảng mô tả luồng sự kiện chính, luồng ngoại lệ, thông tin trường dữ liệu đầu vào và sơ đồ tuần tự (Sequence Diagram).
- Thiết kế mô hình cơ sở dữ liệu quan hệ gồm 13 bảng chi tiết thuộc tính.
- Cài đặt hiện thực các thuật toán: thu thập dữ liệu định kỳ 5 phút/lần, xử lý ngôn ngữ tự nhiên trích xuất từ khóa, tính toán độ tương đồng chuỗi, nhận diện vật thể trong ảnh qua COCO-SSD.
- Hiện thực giao diện người dùng theo 3 phân quyền: độc giả vãng lai, người dùng đã đăng nhập và quản trị viên.
- Xây dựng bộ kịch bản kiểm thử gồm 29 trường hợp thử nghiệm bao phủ toàn diện các chức năng hệ thống.
Phần 3: Kết luận
Tổng kết các kết quả đạt được về kiến thức học thuật, kỹ năng phát triển phần mềm và sản phẩm ứng dụng hoàn thiện; phân tích ưu điểm và nhược điểm tồn tại của hệ thống, đồng thời vạch ra các hướng phát triển nâng cấp trong tương lai.
Kết quả và đóng góp
1. Kết quả thực nghiệm
Khóa luận đã hoàn thành toàn diện các yêu cầu đặt ra trong đề cương:
- Về kiến thức: Nắm vững và làm chủ quy trình phát triển một hệ thống web full-stack hoàn chỉnh; ứng dụng thành công các mô hình học sâu và xử lý ngôn ngữ tự nhiên vào bài toán tin tức thực tế.
- Về kỹ năng: Nâng cao kỹ năng phân tích đặc tả usecase, thiết kế sơ đồ tuần tự, thiết kế cơ sở dữ liệu quan hệ chuẩn hóa, xây dựng RESTful API với Spring Boot, phát triển giao diện chuẩn SEO với Next.js và xây dựng kịch bản kiểm thử phần mềm.
- Về sản phẩm: Xây dựng thành công website tin tức tổng hợp tự động có khả năng vận hành ổn định, tự động cập nhật dữ liệu mỗi 5 phút từ hai nguồn báo uy tín VnExpress và Dân Trí, lọc trùng lặp bài viết kết hợp kiểm duyệt quản trị, cung cấp đầy đủ các tiện ích tương tác độc giả (bình luận, vote sao, thả reaction, theo dõi chuyên mục, lưu bài) và tính năng tìm kiếm đa phương thức (từ khóa và hình ảnh).
2. Đóng góp của đề tài
So với các nền tảng tổng hợp tin tức hiện nay (như Google News), sản phẩm đồ án đạt được các điểm cải tiến cụ thể:
- Cung cấp môi trường tương tác trực tiếp ngay trên trang: cho phép người đọc đánh giá sao, để lại bình luận và biểu đạt cảm xúc với bài viết.
- Xây dựng bảng tin cá nhân hóa dựa trên hành vi theo dõi chuyên mục của từng tài khoản.
- Tích hợp cơ chế tìm kiếm bài viết mới lạ thông qua nhận diện đối tượng hình ảnh bằng mô hình COCO-SSD.
- Tích hợp quy trình kiểm duyệt bài viết bán tự động: kết hợp giữa thuật toán phát hiện tương đồng tự động bằng NLP và giao diện phê duyệt của quản trị viên đối với các bài viết có nguy cơ trùng lặp.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế:
- Nguồn dữ liệu thu thập tự động mới chỉ giới hạn ở hai trang báo điện tử (VnExpress và Dân Trí).
- Quy trình xử lý ngôn ngữ tự nhiên còn phụ thuộc vào bước chuyển đổi ngôn ngữ trung gian sang tiếng Anh trước khi đưa vào mô hình Stanford Core NLP.
- Danh mục nhận diện vật thể trong tìm kiếm hình ảnh phụ thuộc vào 80 lớp đối tượng có sẵn của tập dữ liệu COCO.
- Hướng nghiên cứu và phát triển tiếp:
- Mở rộng phạm vi thu thập dữ liệu sang nhiều nguồn báo chí chính thống uy tín khác.
- Nghiên cứu tích hợp các mô hình xử lý ngôn ngữ tự nhiên chuyên sâu dành riêng cho tiếng Việt để tối ưu hóa độ chính xác của quá trình trích xuất từ khóa và lọc bài viết trùng lặp.
- Mở rộng tập dữ liệu huấn luyện nhận diện hình ảnh để nhận biết đa dạng đối tượng thực tế hơn.
- Cải tiến thuật toán gợi ý tin tức thông minh dựa trên lịch sử đọc và hành vi tương tác chi tiết của người dùng.
Giá trị tham khảo
Báo cáo đồ án là tài liệu tham khảo hữu ích cho sinh viên các ngành Công nghệ Thông tin, Kỹ thuật Phần mềm, Hệ thống Thông tin cũng như các lập trình viên đang xây dựng các hệ thống web có tích hợp trí tuệ nhân tạo:
- Tài liệu tham khảo nghiệp vụ và kiến trúc: Cung cấp bộ hồ sơ thiết kế hoàn chỉnh từ khảo sát hiện trạng, đặc tả 21 usecase, sơ đồ tuần tự chi tiết đến lược đồ 13 bảng cơ sở dữ liệu quan hệ.
- Giải pháp tích hợp AI vào Web: Cung cấp mã nguồn và phương pháp kết nối mô hình nhận diện vật thể (COCO-SSD) và xử lý ngôn ngữ tự nhiên (Stanford Core NLP) vào luồng nghiệp vụ của ứng dụng Java Spring Boot và Next.js.
- Tài liệu kiểm thử phần mềm: Hệ thống 29 bảng kịch bản kiểm thử chức năng chi tiết là tài liệu mẫu trực quan cho việc xây dựng tài liệu kiểm thử đồ án tốt nghiệp.
Câu hỏi thường gặp
1. Hệ thống tự động thu thập tin tức từ những nguồn báo nào và chu kỳ cập nhật là bao lâu?
Hệ thống được thiết lập cơ chế lập lịch tự động (@Scheduled) để cào và cập nhật dữ liệu bài viết mới định kỳ 5 phút một lần từ hai nguồn báo điện tử chính thống tại Việt Nam là VnExpress và Dân Trí.
2. Mô hình COCO-SSD đóng vai trò gì trong website này?
Mô hình COCO-SSD được sử dụng cho tính năng tìm kiếm bài viết theo hình ảnh. Khi người dùng tải lên một tệp hình ảnh từ thiết bị cá nhân, mô hình sẽ phân tích và nhận diện các đối tượng có trong ảnh (dựa trên 80 nhãn đối tượng của tập dữ liệu COCO), sau đó hệ thống dùng các nhãn này để truy vấn các bài viết có nội dung liên quan.
3. Quy trình phát hiện và xử lý bài viết trùng lặp diễn ra như thế nào?
Khi quét tin mới, hệ thống kết hợp phân đoạn câu, chuyển đổi ngôn ngữ và dùng bộ công cụ Stanford Core NLP (hàm nerKeyword()) để trích xuất các từ khóa thực thể quan trọng, sau đó tính toán độ tương đồng giữa hai chuỗi văn bản. Nếu bài viết mới bị đánh giá có khả năng trùng lặp cao với tin đã có, hệ thống sẽ lưu vào bảng pending_information để quản trị viên kiểm duyệt thủ công (chấp nhận hoặc từ chối) trước khi hiển thị chính thức.
4. Người dùng chưa đăng nhập (độc giả vãng lai) có thể sử dụng những chức năng nào?
Độc giả vãng lai có thể sử dụng các chức năng công khai không yêu cầu tài khoản gồm: xem bài viết theo chuyên mục, xem chi tiết bài viết, tìm kiếm bài viết theo từ khóa văn bản, tìm kiếm bài viết theo đối tượng trong ảnh, đăng ký tài khoản mới và đăng nhập vào hệ thống. Các tính năng tương tác như bình luận, đánh giá sao, thả cảm xúc, lưu bài và theo dõi chuyên mục bắt buộc phải đăng nhập.
5. Quản trị viên hệ thống có những thẩm quyền quản lý nào?
Quản trị viên có các chức năng chuyên biệt gồm: quản lý danh mục chuyên mục (thêm, sửa, xóa), quản lý danh sách tag từ khóa (thêm, sửa, xóa), quản lý tài khoản người dùng (cập nhật thông tin, xóa người dùng) và kiểm duyệt các bài viết nghi vấn trùng lặp trong danh sách chờ duyệt.
Kết luận
Đồ án tốt nghiệp "Xây dựng website tin tức tổng hợp tự động" của sinh viên Nguyễn Trường Phúc và Cao Ngọc Quý đã xây dựng thành công một giải pháp công nghệ hoàn chỉnh nhằm cung cấp nguồn tin tức chính thống, cập nhật tự động định kỳ từ VnExpress và Dân Trí. Hệ thống kết hợp hài hòa giữa kiến trúc phần mềm phân tầng hiện đại (Next.js, Java Spring Boot, MySQL) và các mô hình trí tuệ nhân tạo (COCO-SSD, Stanford Core NLP) để tối ưu hóa trải nghiệm đọc báo, tương tác độc giả và xử lý lọc trùng dữ liệu. Toàn bộ các mục tiêu nghiên cứu, đặc tả usecase, thiết kế cơ sở dữ liệu và 29 kịch bản kiểm thử đã được thực thi đầy đủ, đáp ứng tốt yêu cầu chuyên môn của một đồ án kỹ sư Công nghệ Thông tin.