1. Trang chủ
  2. » Luận Văn - Báo Cáo

(TIỂU LUẬN) xây DỰNG ỨNG DỤNG WEBSITE TỔNG hợp và tóm tắt TIN tức

53 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Ứng Dụng Website Tổng Hợp và Tóm Tắt Tin Tức
Tác giả Trần Cao Minh Bách, Vũ Thị Ánh, Trần Thị Dung
Người hướng dẫn ThS. Lê Đức Thuận
Trường học Học viện Kỹ thuật Mật mã
Chuyên ngành Công nghệ Thông tin
Thể loại tiểu luận
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 53
Dung lượng 1,09 MB

Cấu trúc

  • CHƯƠNG 1. CƠ SỞ LÝ THUYẾT (12)
    • 1.1 Tổng quan về ngôn ngữ và các công cụ hỗ trợ (12)
      • 1.1.1 Tổng quan về lập trình Python và Laravel (12)
      • 1.1.2 Các công cụ hỗ trợ (12)
    • 1.2 Tổng quan về các nội dung thông tin được sử dụng (12)
    • 1.3 Tổng quan về học máy (13)
      • 1.3.1 Giới thiệu học máy (13)
      • 1.3.2 Giới thiệu về NLP (14)
      • 1.3.3 Giới thiệu về NLTK (14)
    • 1.4 Quy trình xử lý và tóm tắt văn bản (15)
    • 1.5 Tổng quan về thuật toán sử dụng tóm tắt văn bản (15)
      • 1.5.1 Thuật toán K-Means Clustering (15)
      • 1.5.2 Thuật toán LSA (Latent Semantic Analysis) (16)
      • 1.5.3 Thuật toán Text Rank (18)
  • CHƯƠNG 2. THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG (20)
    • 2.1 Phân tích hệ thống (20)
      • 2.1.1 Biểu đồ phân rã chức năng (20)
      • 2.1.2 Biểu đồ Use Case tổng quát (21)
      • 2.1.3 Xác định actor và chức năng (22)
      • 2.1.4 Biểu đồ Use case chi tiết (23)
      • 2.1.5 Đặc tả các ca sử dụng (24)
    • 2.2 Thiết kế giao diện người dùng (35)
      • 2.2.1 Các chức năng chính (36)
      • 2.2.2 Phân quyền cho User (36)
      • 2.2.3 Nội dung trên trang (36)
      • 2.2.4 Cấu trúc trang web thực tế (36)
    • 2.3 Chuẩn bị dữ liệu đầu vào (0)
      • 2.3.1 Thu thập dữ liệu (38)
      • 2.3.2 Bóc tách & Lọc dữ liệu về dạng chuẩn (41)
    • 2.4 Xử lý dữ liệu đã chuẩn hoá (0)
      • 2.4.1 Tách câu trong văn bản (42)
      • 2.4.2 Tách từ trong câu (42)
      • 2.4.3 Sử dụng kỹ thuật chuyển từ thành vector số thực (42)
      • 2.4.4 Xây dựng đoạn văn bản tóm tắt (42)
  • CHƯƠNG 3. KẾT QUẢ THỰC NGHIỆM (43)
    • 3.1 Nộp bản cứng (43)
      • 3.1.1 Nộp bản mềm (43)
    • 3.2 Bản quyền kết quả nghiên cứu (43)
  • KẾT LUẬN (45)
  • TÀI LIỆU THAM KHẢO (46)
  • PHỤ LỤC (47)

Nội dung

CƠ SỞ LÝ THUYẾT

Tổng quan về ngôn ngữ và các công cụ hỗ trợ

1.1.1 Tổng quan về lập trình Python và Laravel

Python là ngôn ngữ lập trình hướng đối tượng mạnh mẽ, được phát triển bởi Guido van Rossum Với cú pháp rõ ràng và dễ hiểu, Python dễ dàng cho người mới bắt đầu học Ngôn ngữ này hỗ trợ kiểu dữ liệu động và cơ chế cấp phát bộ nhớ tự động, giúp lập trình viên tập trung vào việc phát triển ứng dụng Python cung cấp cấu trúc dữ liệu cấp cao và cách tiếp cận hiệu quả cho lập trình hướng đối tượng, làm cho nó trở thành lựa chọn lý tưởng cho việc viết script và phát triển ứng dụng trên nhiều nền tảng.

Laravel là một framework PHP mã nguồn mở miễn phí, được phát triển bởi Taylor Otwell và ra mắt lần đầu vào năm 2011 Framework này được thiết kế để hỗ trợ phát triển ứng dụng web theo mô hình Model – View – Controller (MVC).

1.1.2 Các công cụ hỗ trợ

Hiện nay, có nhiều trình soạn thảo mã nguồn hỗ trợ lập trình và chạy mã, trong đó Visual Studio Code nổi bật với khả năng tích hợp dễ dàng các extension Công cụ này không chỉ giúp lập trình viên làm việc hiệu quả mà còn tạo điều kiện thuận lợi cho việc thực thi mã nguồn Chúng tôi sẽ sử dụng Visual Studio Code xuyên suốt trong đề tài này.

Tổng quan về các nội dung thông tin được sử dụng

Hiện nay, chúng ta đang đối mặt với một lượng thông tin khổng lồ cần phải chọn lọc Để đảm bảo tính chính xác, nguồn thông tin phải được xác thực từ các cơ quan chính thống Do đó, để phát triển hệ thống, chúng tôi sử dụng các nguồn thông tin đáng tin cậy từ những trang báo uy tín như VnExpress.vn, Zing.vn, thanhnien.vn, Vietnamnet.vn, laodong.vn, tuoitre.vn và dantri.com.vn.

Tổng quan về học máy

Học máy, một nhánh của trí tuệ nhân tạo, được định nghĩa là lĩnh vực của khoa học máy tính có khả năng tự học từ dữ liệu mà không cần lập trình cụ thể.

Ý tưởng cơ bản của quy trình học máy là xây dựng mô hình dựa trên thuật toán để thực hiện các nhiệm vụ như phân loại, phân lớp và hồi quy Giai đoạn huấn luyện dựa trên dữ liệu đầu vào nhằm dự đoán đầu ra, với kết quả phụ thuộc vào mục tiêu ban đầu và quá trình thực hiện Quy trình học máy bao gồm các bước cụ thể để đảm bảo hiệu quả trong việc xây dựng mô hình.

Hình 1.1: Sơ đồ học máy

Quy trình học máy cơ bản được chia làm các giai đoạn sau:

Quá trình thu thập dữ liệu là yếu tố quan trọng trong việc xây dựng dự án, đặc biệt là trong lĩnh vực học máy và hệ thống IoT Việc xác định nguồn dữ liệu phù hợp, chẳng hạn như tập tin, cơ sở dữ liệu và cảm biến, sẽ giúp tối ưu hóa chất lượng và hiệu quả của hệ thống mà chúng ta muốn phát triển.

Tiền xử lý dữ liệu là giai đoạn quan trọng trong học máy, giúp xây dựng mô hình chính xác Quá trình này bao gồm việc làm sạch dữ liệu thô, thu thập từ nhiều nguồn thực tế, và chuyển đổi thành tập dữ liệu sạch Dữ liệu thô thường có những vấn đề như thiếu sót, không nhất quán và nhiễu, do đó cần phải xử lý trước khi đưa vào quá trình học máy.

Mục tiêu chính của chúng tôi là phát triển một mô hình tối ưu cho loại dữ liệu cụ thể, thông qua việc áp dụng các thuật toán phân loại và phân lớp hiệu quả.

Để huấn luyện và kiểm thử mô hình, chúng ta chia quy trình thành ba giai đoạn: dữ liệu huấn luyện, dữ liệu xác nhận và dữ liệu kiểm thử Trong giai đoạn đầu, tập hợp dữ liệu huấn luyện được sử dụng để huấn luyện bộ phân lớp Tiếp theo, tập hợp xác nhận được áp dụng để tinh chỉnh các tham số của mô hình Cuối cùng, hiệu suất của bộ phân loại được kiểm tra bằng cách sử dụng dữ liệu kiểm thử Lưu ý rằng dữ liệu kiểm thử không được sử dụng trong quá trình huấn luyện để đảm bảo tính khách quan của kết quả.

Đánh giá mô hình là một bước quan trọng trong quy trình phát triển, giúp xác định mô hình tối ưu nhất cho dữ liệu của chúng ta Việc này không chỉ cho phép chúng ta chọn lựa mô hình phù hợp mà còn dự đoán hiệu suất của nó trong tương lai.

Natural Language Processing (NLP) – Xử lý ngôn ngữ tự nhiên là lĩnh vực

Khoa học máy tính kết hợp Trí tuệ nhân tạo và Ngôn ngữ học tính toán nhằm cải thiện khả năng tương tác giữa con người và máy tính, giúp máy tính hiểu và bắt chước ngôn ngữ của con người Một số ứng dụng nổi bật hiện nay bao gồm Siri, Cortana và Google Now.

NLTK, hay Natural Language Toolkit, là một thư viện Python hỗ trợ xử lý ngôn ngữ tự nhiên, giúp việc này trở nên dễ dàng và nhanh chóng Được phát triển bởi Steven Bird và Edward Loper tại Đại Học Pennsylvania vào năm 2001, NLTK cung cấp nhiều cơ chế và kỹ thuật phổ biến như classification, tokenization, stemming, tagging, parsing, và semantic reasoning Ngoài ra, NLTK còn có các mô phỏng đồ hoạ và dữ liệu mẫu hữu ích, đồng thời hỗ trợ trong Machine Learning bằng cách làm sạch và xử lý dữ liệu đầu vào cho các thuật toán.

Quy trình xử lý và tóm tắt văn bản

Tiền xử lý văn bản là bước quan trọng để cải thiện chất lượng dữ liệu đầu vào Văn bản có thể chứa ký tự thừa, dấu câu thừa và khoảng trắng không cần thiết, ảnh hưởng đến các bước xử lý tiếp theo Do đó, cần chuyển đổi tất cả về chữ cái thường, loại bỏ khoảng trắng thừa và các từ không mang ý nghĩa để tối ưu hóa nội dung.

− Tách câu trong văn bản: Ở bước này, sẽ tách 1 đoạn văn bản cần tóm tắt đã qua xử lý thành 1 danh sách các câu của văn bản.

Để áp dụng phương pháp tóm tắt, cần chuyển đổi các câu văn có độ dài khác nhau thành các vector số thực với độ dài cố định Quá trình này phải đảm bảo rằng sự khác biệt về ý nghĩa giữa hai câu được phản ánh tương ứng với độ sai khác giữa hai vector.

− Xử lý văn bản: Sử dụng các thuật toán K-Means Clustering, LSA và

Text Rank sẽ giúp phân tích ra những cụm câu có ý nghĩa giống nhau, để từ đó chọn lọc và loại bỏ bớt các câu có cùng ý nghĩa.

Sau khi phân loại các cụm theo ý nghĩa, hãy chọn một câu duy nhất từ mỗi cụm để xây dựng đoạn văn bản tóm tắt Danh mục ký hiệu và chữ viết tắt sẽ được sử dụng để hỗ trợ việc này.

Tổng quan về thuật toán sử dụng tóm tắt văn bản

Kmeans là một thuật toán học máy không giám sát, thuộc lĩnh vực phân cụm Thuật toán này nhận đầu vào là các điểm dữ liệu và phân loại chúng thành các cụm tương ứng Mục tiêu của Kmeans là đảm bảo rằng các điểm trong cùng một cụm có mối quan hệ chặt chẽ hơn với nhau so với các điểm thuộc các cụm khác.

Thuật toán Kmeans yêu cầu người dùng cung cấp số lượng cụm cần phân nhóm Kmeans áp dụng khoảng cách Euclid để đo lường mức độ tương đồng giữa hai điểm dữ liệu; hai điểm càng gần nhau thì độ tương đồng giữa chúng càng lớn.

Kmeans là một thuật toán máy học phổ biến, sử dụng hàm để tính tổng khoảng cách từ một điểm đến tâm cụm tương ứng và tối ưu hóa thông qua thuật toán lặp Với cách tiếp cận đơn giản và dễ triển khai, Kmeans mang lại kết quả hiệu quả cho nhiều bài toán khác nhau.

1.5.1.2 Ý tưởng áp dụng thuật toán

Sau khi xử lý và chuẩn hóa dữ liệu đầu vào, việc xác định số cụm là một thách thức lớn Để tối ưu hóa nội dung cho bài báo, hệ thống đã chọn sử dụng 5 cụm Kết quả là bài báo được tóm tắt thành 5 câu, mang lại sự cô đọng và hiệu quả trong truyền tải thông tin.

Bước 1: Khởi tạo 5 điểm dữ liệu trong bộ dữ liệu và tạm thời coi nó là tâm của các cụm dữ liệu của chúng ta.

Bước 2: Với mỗi điểm dữ liệu trong bộ dữ liệu, tâm cụm của nó sẽ được xác định là 1 trong 5 tâm cụm gần nó nhất.

Bước 3: Sau khi xác định tất cả các điểm dữ liệu đã có tâm, tiến hành tính toán lại vị trí của tâm cụm để đảm bảo rằng tâm cụm nằm chính xác ở giữa các điểm trong cụm.

Bước 4: Tiến hành lặp lại bước 2 và bước 3 cho đến khi vị trí của tâm cụm ổn định hoặc tâm của tất cả các điểm dữ liệu không còn thay đổi.

1.5.2 Thuật toán LSA (Latent Semantic Analysis)

LSA, hay Phân tích không gian tiềm ẩn, là một trong những kỹ thuật nổi bật trong Xử lý Ngôn ngữ Tự nhiên (NLP), nhằm xác định các chủ đề trong văn bản thông qua phân tích toán học Kỹ thuật này thuộc loại học tập không giám sát và dựa trên hai yếu tố chính.

- Giả thuyết phân bố, cho rằng các từ có nghĩa giống nhau thường xuyên xuất hiện cùng nhau

- Phân rã giá trị đơn lẻ.

LSA (Latent Semantic Analysis) là một phương pháp phân tích văn bản, trong đó các tài liệu được chia thành nhiều phần khác nhau để so sánh ý nghĩa của chúng Ví dụ, câu “Hôm nay tôi không khoẻ!” có thể được diễn đạt bằng nhiều cách tương tự như “Hôm nay tôi cảm thấy mệt!” Thuật toán LSA sẽ phân tích và tổ chức các từ trong văn bản thành một bảng, từ đó làm nổi bật các ý nghĩa tiềm ẩn của chúng trong nội dung gốc.

1.5.2.2 Ý tưởng áp dụng thuật toán

LSA (Phân tích cấu trúc tiềm ẩn) là một thuật toán trong mô hình chủ đề, có chức năng phân loại các chủ đề Thuật toán này hoạt động dựa trên việc phân tích suy biến ma trận của văn bản đầu vào (A) nhằm xác định không gian tuyến tính con của A, trong khi vẫn bảo toàn hầu hết các biến động của ma trận Tóm lại, LSA giúp giảm chiều dữ liệu đầu vào thông qua phân tích ma trận, từ đó tối ưu hóa quá trình phân loại chủ đề.

Giả sử ma trận A mn ∈R m×n biểu diễn mối quan hệ giữa tài liệu và từ, phép phân tích suy biến (SVD) sẽ chuyển đổi ma trận gốc A thành tích của ba ma trận: ma trận suy biến trái U, ma trận đường chéo S và ma trận suy biến phải V.

Hình : Sơ đồ công thức LSA

Mỗi dòng của U sẽ biểu diễn phân phối của văn bản và mỗi dòng của V là phân phối của mỗi từ theo t topics ẩn.

- Các cột của U và V đại diện cho các topics.

Để xác định sự tương đồng giữa hai văn bản hoặc hai từ, chúng ta cần tính toán độ tương quan của các véc tơ dòng tương ứng trong ma trận U cho văn bản hoặc ma trận V cho từ.

Phép phân tích này giảm được khá nhiều chiều đối với trường hợp bộ văn bản lớn Tuy nhiên nó vẫn tồn tại những nhược điểm đó là:

- Các tính toán hoàn toàn dựa trên phân tích ma trận.

- Các topic được xác định dựa trên các phép chiếu tuyến tính nên mối quan hệ giữa topic-document và topic-term là tuyến tính.

- Chi phí tinh toán của mô hình rất tốn kém nếu kích thước dữ liệu lớn

TextRank là một thuật toán phát triển từ PageRank, được sử dụng để xếp hạng các trang web của Google Thuật toán này gán giá trị cho từng thành phần trong một tập hợp văn bản liên kết với nhau, như trên World Wide Web, nhằm đo lường tầm quan trọng của các liên kết trong tập hợp Nó có thể áp dụng cho bất kỳ tập hợp văn bản nào có trích dẫn và liên kết cụ thể Giá trị mà TextRank gán cho mỗi thành phần E được gọi là PageRank của E, ký hiệu là PR(E).

Hình : Sơ đồ đánh giá giá trị của thuật toán PageRank

Giá trị PageRank được hình thành từ một thuật toán toán học dựa trên webgraph, trong đó các trang web được xem như các đỉnh và các liên kết là các cạnh Khi xây dựng webgraph, các trang từ các cơ quan uy tín như cnn.com hay usa.gov được xem xét Giá trị xếp hạng phản ánh tầm quan trọng của từng trang, và mỗi liên kết đến trang web sẽ được tính như một sự hỗ trợ, góp phần tăng cường giá trị PageRank.

Giá trị PageRank của một trang web được xác định theo cách đệ quy, phụ thuộc vào số lượng và chất lượng các liên kết từ các trang khác (incoming links) Nếu một trang nhận nhiều liên kết từ các trang có PageRank cao, giá trị PageRank của nó cũng sẽ tăng theo Nhiều bài viết đã được công bố dựa trên nghiên cứu ban đầu của Page và Brin về vấn đề này.

Thuật toán TextRank được phát triển để xếp hạng các câu trong văn bản dựa trên độ tương tự giữa chúng Trong mô hình này, mỗi đỉnh đại diện cho một câu, trong khi các cạnh thể hiện mức độ tương đồng giữa các câu Qua đó, thuật toán xác định được các đỉnh có rank cao nhất, tức là các câu quan trọng nhất trong văn bản.

1.5.3.2 Ý tưởng áp dụng thuật toán 1.5.3.3

THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG

Phân tích hệ thống

2.1.1 Biểu đồ phân rã chức năng

Hệ thống tổng hợp & tóm tắt thông tin

Thay đổi thông tin Cập nhật thông tin Xoá & Sửa nội dung bài viết Cập nhật thành viên

Thu thập dữ liệu Xử lý dữ liệu Tạo nội dung bài viết

2.1.2 Biểu đồ Use Case tổng quát

Hình 2.1: Biểu đồ Use Case tổng quát

2.1.3 Xác định actor và chức năng

STT Tác nhân Mô tả tác nhân

1 Guest Là đối tượng chưa có tài khoản trong hệ thống. Đăng kí, tìm kiếm bài viết, xem thông tin trang web.

Amin là người hỗ trợ quản lý, có nhiệm vụ nắm bắt các nghiệp vụ của website, bao gồm việc đăng nhập, tìm kiếm, quản lý người dùng, quản lý bình luận và đánh giá, cũng như quản lý bài viết Ngoài ra, Amin còn thực hiện các thao tác thêm, xóa và sửa tài khoản trong hệ thống.

Người dùng là những cá nhân đã đăng ký tài khoản trong hệ thống, cho phép họ đăng nhập để tìm kiếm bài viết, xem thông tin trên website, bình luận về các bài viết, lưu trữ thông tin bài viết yêu thích, và nhận gợi ý bài viết dựa trên sở thích cá nhân.

Bảng 2.1: Xác định actor và chức năng

2.1.4 Biểu đồ Use case chi tiết 2.1.4.1 Biểu đồ UC User

Hình 2.2: Biểu đồ UC User

Hình 2.3: Biểu đồ UC Guest

2.1.4.3 Biểu đồ UC quản lý tin tức

Hình 2.3: Biểu đồ UC quản lý tin tức

2.1.4.4 Biểu đồ UC quản lý User

2.1.5 Đặc tả các ca sử dụng

1 Use Case đăng ký của Guest

Brief Description Người dùng chưa có tài khoản muốn đăng ký

Hình 2.4: Biểu đồ UC quản lý User

Pre-conditions Chưa có tài khoản

Basic Flows 1 Người dùng chọn đăng ký tài khoản

2 Hệ thống hiển thị from đăng kí

3 Điền đầy đủ thông tin vào form Alternative Flows Nếu người dùng điền sai, thiếu thông tin hệ thống sẽ báo lỗi và gửi lại form đăng ký

Post-conditions Nếu thực hiện đăng ký thành công người dùng có tài khoản trong hệ thống website

Special Requiements Chưa tồn tại username trên hệ thống

Brief Description Người dùng có tài khoản muốn đăng nhập

Basic Flows 1 Người dùng chọn đăng nhập tài khoản

2 Hệ thống hiển thị from đăng nhập

3 Điền đầy đủ thông tin vào form Alternative Flows Nếu người dùng điền sai, thiếu thông tin hệ thống sẽ báo lỗi và gửi lại form đăng nhập

Post-conditions Nếu thực hiện đăng nhập thành công người dùng có thể đăng nhập vào hệ thống website

2.1 Use Case quên mật khẩu

Use Case Quên mật khẩu

Brief Desecription Khi người dùng quên mật khẩu và muốn reset lại mật khẩu

Basic Flows Người dùng đã nhập lại mật khẩu nhiều lần không chính xác

1 Chọn mục “quên mật khẩu”

2 Hệ thống sẽ hiển thị 1 form như sau

+ Tài khoản +Số điện thoại

3 Người dùng nhập đúng thông tin thì hệ thống sẽ gửi lại mật khẩu mới qua số điện thoại.

Alternative Flows Nếu nhập sai thông tin hệ thống sẽ không thể gửi lại mật khẩu cho khách hàng

Post-conditions Khách hàng sử dụng mật khẩu mới

Brief Description Người sử dụng muốn thoát khỏi phiên làm việc

Basic Flows 1 Người dùng chọn Đăng xuất

2 Hệ thống hiển thị yêu cầu đăng xuất

3 Người dùng đồng ý đăng xuất Alternative Flows Nếu người dùng không đồng ý, hệ thống sẽ tiếp tục phiên làm việc.

Post-conditions Nếu thực hiện đăng xuất thành công người dùng kết thúc phiên làm việc của mình.

4 Use Case quản lý thông tin

Use Case Quản lý thông tin

Brief Description Người dùng đã có tài khoản và muốn thay đổi thông tin.

Pre-conditions Đăng nhập tin

2 Hệ thống hiển thị Menu Alternative Flows

Post-conditions Nếu thực hiện thay đổi thành công người dùng có thể cập nhật thông tin mới vào hệ thống.

Special Requiements Tồn tại thông tin trên hệ thống

4.1 Use Case thay đổi mật khẩu

Use Case Thay đổi mật khẩu

Brief Description Người dùng muốn thay đổi mật khẩu

Basic Flows 1 Người dùng chọn thay đổi mật khẩu

2 Hệ thống hiển thị from thay đổi

3 Điền đầy đủ thông tin vào form Alternative Flows Nếu người dùng điền sai, thiếu thông tin hệ thống sẽ báo lỗi và gửi lại form thay đổi

Sau khi thực hiện thay đổi thành công, người dùng có thể đăng nhập vào hệ thống bằng mật khẩu mới Hệ thống sẽ cập nhật mật khẩu mới cho người dùng và đảm bảo thông tin vẫn tồn tại trên hệ thống.

4.2 Use Case thay đổi thông tin cá nhân

Use Case Thay đổi thông tin cá nhân

Brief Description Người dùng có thông tin cá nhân cần thay đổi

Basic Flows 1 Người dùng chọn thay đổi thông tin

2 Hệ thống hiển thị from thay đổi

3 Điền đầy đủ thông tin vào form Alternative Flows Nếu người dùng điền sai, thiếu thông tin hệ thống sẽ báo lỗi và gửi lại form thay đổi

Post-conditions Nếu thực hiện thành công, hệ thống sẽ cập nhật thông tin mới của người dùng Special Requiements Tồn tại thông tin trên hệ thống

5 Use Case xem tin tức

Use Case Xem tin tức

Brief Description Người dùng xem tin trên trang web Pre-conditions

Basic Flows 1 Người dùng chọn vào các mục bài viết

2 Hệ thống hiển thị bài viết Alternative Flows

Post-conditions Người dùng sẽ xem được các bài viết

Brief Description Người dùng tìm kiếm thông tin bài viết theo tiêu đề và các nhãn bài viết Pre-conditions

Basic Flows 1 Hệ thống sẽ hiển thị 1 form với các tiêu chí muốn tìm kiếm

2 Người dùng nhập thông tin trên form và bấm nút tìm kiếm, hệ thống sẽ truy vấn database và hiển thị kết quả tìm kiếm

Alternative Flows Nếu người dùng nhập sai hay thiếu tiêu chí nào thì hệ thống sẽ không hiển thị kết quả

Hệ thống có thể chỉ định tìm kiếm lại hoặc hủy thao tác tìm kiếm

Post-conditions Nếu tìm kiếm thành công thì bài viết sẽ được hiển thị

Brief Description Người dùng bình luận vào bài viết.

Basic Flows 1 Hệ thống sẽ hiển thị 1 form để nhập nội dung bình luận

2 Người dùng nhập thông tin trên form và bấm nút submit, hệ thống sẽ lưu vào database các bình luận

Post-conditions Mỗi khi truy cập bài viết có bình luận, thì các bình luận sẽ được hiện thị

6 Use Case quản lý User

Use Case Quản lý User

Brief Description Admin quản lý các thông tin

Basic Flows 1 Admin chọn phần quản lý User

2 Hệ thống hiện thị menu Alternative Flows

Post-conditions Menu quản lý được hiện thị

Special Requiements Là tài khoản Admin

6.1 Use Case reset mật khẩu

Use Case Reset mật khẩu

Brief Description Admin reset mật khẩu cho User bị quên

Basic Flows 1 Admin chọn reset

Alternative FlowsPost-conditions User được reset về mật khẩu mặc định

Special Requiements Là tài khoản Admin

7 Use Case quản lý tài khoản

Use Case Quản lý tài khoản

Brief Description Admin quản lý các tài khoản trong cơ sở dữ liệu

Basic Flows 1 Admin chọn quản lý tài khoản

2 Admin chọn xoá tài khoản Alternative Flows Không xoá được tài khoản Super

Post-conditions Khi tài khoản bị xoá, người dùng đó không thể đăng nhập được vào hệ thống

Special Requiements Là tài khoản Admin

8 Use Case quản lý bài viết

Use Case Quản lý bài viết

Brief Description Admin quản lý các bài viết trong cơ sở dữ liệu

Basic Flows 1 Admin chọn quản lý bài viết

2 Admin chọn bài viết cần thay đổi

Post-conditions Các thông tin của bài viết và các hành động đối với bài viết được hiện thị

Special Requiements Là tài khoản Admin

8.1 Use Case sửa thông tin bài viết

Use Case Sửa thông tin bài viết

Pre-conditions Admin có thể sửa thông tin bài viết

Basic Flows 1 Sau khi chọn mục “Thông tin bài viết” trong phần “Quản lý bài viết”

2 Chọn biểu tượng hình “bút chì” để sửa thông tin bài viết, hệ thống sẽ hiển thị form:

+ Tiều đề + Tag + Date + Mô tả + Nội dung

3 Khi Admin chọn nút xác nhận, hệ thống sẽ cập nhật thông tin vào database

Alternative Flows Nếu người dùng nhập thiếu thông tin, hệ thống sẽ báo lỗi và gửi lại form.Người dùng có thể không nhập thông tin và chọn hủy

Post-conditions Cập nhật thông tin bài viết

8.2 Use Case xóa bài viết

Use Case Xóa bài viết

Brief Desecription Admin có thể xóa những bài viết

Basic Flows 1 Sau khi chọn mục “Thông tin bài viết” trong phần “Quản lý bài viết”

2 Hệ thống sẽ hiện biểu tượng

3 Sau khi chọn biểu tượng đó, dữ liệu của bài viết sẽ bị xóa khỏi database

Post-conditions Bài viết sẽ không còn hiển thị trên hệ thống

Thiết kế giao diện người dùng

Giao diện người dùng là yếu tố quan trọng giúp người dùng tiếp cận và sử dụng hiệu quả kết quả từ mô hình Chúng tôi đã phát triển môi trường web dựa trên nền tảng Java với Framework Spring Boot, mang đến giao diện tối ưu cho việc giao tiếp giữa Front-end và Back-end Điều này cũng giúp đội ngũ quản trị dễ dàng quản lý và kiểm duyệt nội dung.

2.2.1 Các chức năng chính 2.2.1.1 Admin có phần đăng nhập quản lý bài viết(thêm sửa xóa) 2.2.1.2 Hiển thị ra trang chủ các bài viết theo sắp xếp thời gian mới nhất 2.2.1.3 Hiển thị ra trang chủ các bài viết theo sắp xếp thời gian mới nhất

− Khách đã đăng ký tài khoản: User

− Khách chưa đăng ký tài khoản: Guest

− Người quản trị cấp cao nhất: Amin

Sau khi được xử lý, các nội dung sẽ được phân loại và trình bày trên trang web theo các thẻ đã được gán trước đó Các bài báo sẽ được phân loại vào những chỉ mục đã xác định từ trước.

Các bài viết sẽ được trình bày ngắn gọn có cấu trúc gồm:

− Tiêu đề (đính kèm là link bài gốc)

− Ảnh đại diện cho bài viết

− Nội dung bài viết (30% bài viết gốc)

− Thanh chức năng text to speech

2.2.4 Cấu trúc trang web thực tế 2.2.4.1 Trang chủ

2.2.4.2 Trang tin tức theo nhãn

2.2.4.3 Trang thông tin chi tiết từ bài

Hình : Trang hiển thị thông tin theo nhãn

Hình : Trang thông tin chi tiết

Chuẩn bị dữ liệu đầu vào

Các nội dung được lấy từ các nguồn chính thống như: tuoitre.vn; VnExpress.vn; Zing.vn; thanhnien.vn; Vietnamnet.vn; laodong.vn; dantri.com.vn

2.3.1.1 Phân tích dữ liệu từ website:

Các nội dung của báo điện tử thường sẽ có cấu trúc như sau:

Mô tả bài báo Ảnh đại diện của bài báo Nội dung bài báo

Hình 2.5: Hình ảnh từ báo Tuổi trẻ

2.3.1.2 Bóc tách dữ liệu từ mã nguồn của web:

2.2.1.3.1 Xác định thành phần cần thu thập

- Ảnh đại diện của bài viết

Hình 2.6: Hình ảnh từ báo VnExpress

2.2.1.3.2 Phân tích và bóc tách dữ liệu từ mã nguồn

Mỗi trang web có cấu trúc mã nguồn riêng biệt dựa trên các thành phần đã được liệt kê Trong tài liệu này, chúng tôi sẽ tập trung vào việc phân tích và bóc tách dữ liệu từ mã nguồn của trang tuoitre.vn.

2.2.1.3.3 Đối với Link bài viết

Các bài viết sẽ được hiển thị trên trang chủ và các trang con dưới dạng tiêu đề kèm theo liên kết bài viết bằng thẻ , với thuộc tính href chứa đường dẫn đến bài viết Để thực hiện điều này, sử dụng thư viện bs4 và requests của Python để xử lý các bước cần thiết.

- Bước 1: Gửi một request với tham số là link trang chủ

- Bước 2: Lấy nội dung mã nguồn của request bằng phương thức content của thư viện request.

- Bước 3: Sử dụng thư viện bs4 để định dạng lại cho nội dung mã nguồn lấy được từ request.

- Bước 4: Sử dụng phương thức findAll() của thư viện bs4 để có thể tìm kiếm được tất cả các thẻ

chứa link trỏ đến bài viết.

- Bước 5: Sử dụng phương thức find() của thư viện bs4 để tìm tất các link trỏ đến bài viết nằm trong thẻ .

# Nạp thư viện from bs4 import BeautifulSoup import requests

# Gửi request cho trang https://tuoitre.vn news = requests.get(‘https://tuoitre.vn’)

# Định dạng lại mã nguồn lấy được từ request soup = BeautifulSoup(news.content, "html.parser")

# Tìm tất cả các thẻ chứa tiêu đề titles = soup.findAll('h2', class_='title-name')

# Tìm tất cả các thẻ và lấy thuộc tính href chứa link trỏ đến bài viết links = [link.find('a').attrs["href"] for link in titles]

2.2.1.3.4 Đối với các thành phần khác

Các bài viết thường tuân theo một mẫu nhất định, giúp xác định rõ các thẻ chứa tiêu đề, thời gian đăng, mô tả, ảnh đại diện và nội dung bài viết Sử dụng thư viện bs4, chúng ta có thể tách các thành phần này ra khỏi mã nguồn và chuyển đổi chúng thành văn bản thuần để dễ dàng xử lý.

# Lấy tiêu đề bài viết title = soup.find("h1", class_="article-title").text

# Lấy ngày đăng bài viết date = soup.find("div", class_="date-time").text

# Lấy mô tả bài viết abstract = soup.find("h2", class_="sapo").text

# Lấy nội dung bài viết body = soup.find("div", id="main-detail-body").text

# Lấy ảnh đại diện bài viết image = body.img['src']

2.3.2 Bóc tách & Lọc dữ liệu về dạng chuẩn

Văn bản đầu vào thường chứa nhiều ký tự thừa, dấu câu và khoảng trắng không cần thiết, cùng với các từ viết tắt và chữ viết hoa Những yếu tố này có thể ảnh hưởng đến các bước xử lý tiếp theo, vì vậy cần thiết phải chuẩn hóa văn bản Chúng ta sẽ chuyển đổi toàn bộ văn bản về chữ cái thường và loại bỏ các khoảng trắng thừa để đảm bảo tính chính xác và hiệu quả trong quá trình xử lý.

Xử lý dữ liệu đã chuẩn hoá

Văn bản sẽ được tách ra từ các thẻ HTML nhờ vào thư viện bs4, giúp loại bỏ các thành phần dư thừa như tên thẻ và các yếu tố khác trong file HTML.

2.2.1.5 Lọc dữ liệu về dạng chuẩn

Văn bản đã được loại bỏ các ký tự đặc biệt, ký tự xuống dòng và những ký tự không có ý nghĩa, giúp giữ nguyên nội dung ban đầu một cách hiệu quả mà không làm thay đổi nhiều nội dung của văn bản.

2.4 Xử lý dữ liệu đã chuẩn hoá

2.4.1 Tách câu trong văn bản 2.4.2 Tách từ trong câu 2.4.3 Sử dụng kỹ thuật chuyển từ thành vector số thực Để phục vụ cho phương pháp tóm tắt ở bước tiếp theo, cần chuyển các câu văn (độ dài ngắn khác nhau) thành các vector số thực có độ dài cố định, sao cho vẫn phải đảm bảo được "độ khác nhau" về ý nghĩa giữa 2 câu cũng tương tự như độ sai khác giữa 2 vector tạo ra

2.4.4 Xây dựng đoạn văn bản tóm tắt

Việc áp dụng ba thuật toán để xử lý văn bản cho ra các đoạn văn có nội dung tương đồng Tuy nhiên, cần xác định mức độ giống nhau so với văn bản gốc để quyết định nội dung nào sẽ được sử dụng từ thuật toán nào.

Việc xử lý nội dung bài báo trên các trang khác nhau giúp lọc và loại bỏ các bài viết trùng lặp, từ đó tiết kiệm tài nguyên hệ thống.

KẾT QUẢ THỰC NGHIỆM

Nộp bản cứng

Sinh viên (hoặc nhóm sinh viên với tối đa 3 thành viên làm chung một đề tài) nộp

01 quyển đồ án TTCS tại văn phòng khoa CNTT trước ngày bảo vệ ít nhất 03 ngày Mỗi quyển đồ án phải có các đặc điểm sau:

 Được in một mặt hoặc hai mặt nhằm tiết kiệm không gian lưu trữ.

 Được đóng bìa mềm và có bìa bóng kính Lưu ý: không dùng bìa cứng.

 Quyển phải có chữ ký của sinh viên sau Lời cam đoan và của giảng viên hướng dẫn.

Sinh viên cần nộp bản mềm đồ án TTCS theo hướng dẫn của Giảng viên Mỗi sinh viên hoặc nhóm sinh viên phải đảm bảo nộp đầy đủ nội dung của đồ án, bao gồm file mềm dạng docx và pdf, cùng với project chứa mã nguồn và hướng dẫn cài đặt Tất cả tài liệu phải được đặt trong một thư mục và đặt tên theo định dạng: manhom_tendetai_tengvhd_nam.rar Sinh viên hoặc nhóm sinh viên gửi cho Giảng viên hướng dẫn dưới dạng link đến file đã tải lên cloud (như Google Drive, Microsoft OneDrive, v.v.) hoặc có thể copy trực tiếp cho Giảng viên.

Bản quyền kết quả nghiên cứu

Đồ án TTCS của sinh viên thường thuộc một trong hai kiểu sau đây:

Sinh viên có trách nhiệm thực hiện nhiệm vụ để hoàn thành quá trình học tập và tự tìm kiếm điều kiện làm việc cho đồ án của mình Họ có quyền khai thác và sử dụng đồ án cho các mục đích khác Khoa Công nghệ thông tin giữ quyền sử dụng các kết quả từ đồ án và cam kết chia sẻ những kết quả này với tất cả những ai quan tâm và có yêu cầu.

Thực hiện một đề tài hoặc nhiệm vụ là phần quan trọng trong chiến lược và chương trình khoa học của giảng viên hướng dẫn, cũng như trong hoạt động lao động sản xuất của cơ sở đào tạo.

Trong môi trường đào tạo, các cơ sở như trung tâm, viện nghiên cứu và công ty cung cấp các điều kiện làm việc cần thiết cho sinh viên, bao gồm máy móc, sách vở, và truy cập internet Tuy nhiên, toàn bộ bản quyền của đồ án không thuộc về sinh viên, mà sinh viên chỉ là người tham gia thực hiện Do đó, họ không được phép sử dụng sản phẩm ở nơi khác với mục đích khác Giảng viên hướng dẫn đóng vai trò quan trọng trong việc định hướng, cung cấp tài liệu tham khảo và tạo điều kiện về cơ sở vật chất như chỗ ngồi, máy tính và các phương tiện thông tin liên lạc để sinh viên hoàn thành công việc.

Ngày đăng: 24/12/2023, 14:41

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w