Trong đề tài này, mô hình học máy mà bọn em muốn sử dụng đó là mô hình xử lý dữ liệu ngôn ngữ ở mức độ văn bản.. Với mô hình này, các thư viện đã sẽ được đề cập ở phần sau, chúng em sẽ t
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à một ngôn ngữ lập trình hướng đối tượng, cao cấp và 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 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 Ngôn ngữ này hỗ trợ kiểu dữ liệu động và cơ chế cấp phát bộ nhớ tự động, cùng với cấu trúc dữ liệu mạnh mẽ, giúp lập trình viên dễ dàng tiếp cận và sử dụng hiệu quả.
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 nhằm mục đích hỗ trợ việc 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 các extension dễ dàng 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 mang lại sự tiện lợi trong quá trình 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 và xác thực Để phát triển hệ thống hiệu quả, việc sử dụng các nguồn thông tin đáng tin cậy từ các báo uy tín và cơ quan có thẩm quyền là rất quan trọng Các nguồn thông tin đầu vào cần được cung cấp từ các trang báo 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 trong 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 thông qua các thuật toán để thực hiện nhiệm vụ cụ thể như phân loại, phân lớp và hồi quy Giai đoạn huấn luyện sử dụng dữ liệu đầu vào để tạo ra mô hình nhằm dự đoán đầu ra Kết quả đầu ra phụ thuộc vào mục tiêu ban đầu và cách thức thực hiện Quy trình học máy bao gồm nhiều bước quan trọng.
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à bước quan trọng tùy thuộc vào loại dự án mà bạn muốn thực hiện Đối với các dự án học máy, việc sử dụng dữ liệu thực từ các cảm biến sẽ giúp xây dựng hệ thống IoT hiệu quả Dữ liệu có thể được thu thập từ nhiều nguồn khác nhau như tập tin, cơ sở dữ liệu và cảm biến, mang lại sự đa dạng và phong phú cho dự á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ô, được 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 được xử lý kỹ lưỡng trước khi đưa vào mô hình học máy.
Mục tiêu chính của chúng ta là xây dựng một mô hình phù hợp cho loại dữ liệu, nhằm đạt hiệu suất tối ưu thông qua việc áp dụng các thuật toán phân loại và phân lớp.
Để huấn luyện và kiểm thử mô hình, chúng ta chia quá 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ử Dữ liệu huấn luyện được sử dụng để huấn luyện bộ phân lớp, trong khi dữ liệu xác nhận giúp tinh chỉnh các tham số 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 Quá trình này không chỉ tìm ra mô hình phù hợp mà còn đánh giá khả năng hoạt động 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 để cải thiện khả năng tương tác giữa con người và máy tính Mục tiêu là giúp máy tính hiểu và bắt chước ngôn ngữ con người Một số ứng dụng phổ biến hiện nay bao gồm Siri, Cortana và Google Now.
NLTK (Natural Language Toolkit) là một thư viện Python hỗ trợ xử lý ngôn ngữ tự nhiên, giúp đơn giản hóa và tăng tốc quá trình này Đượ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ông cụ như classification, tokenization, stemming, tagging, parsing và semantic reasoning Ngoài việc hỗ trợ xử lý ngôn ngữ, NLTK còn cung cấp mô phỏng đồ hoạ và dữ liệu mẫu hữu ích, đồng thời được ứng dụng trong Machine Learning để 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 trong quá trình xử lý dữ liệu, nhằm loại bỏ các ký tự thừa, dấu câu không cần thiết, và khoảng trắng dư thừa Việc chuyển đổi tất cả các chữ cái về dạng thường và loại bỏ các từ viết tắt hoặc không mang ý nghĩa sẽ giúp cải thiện chất lượng văn bản đầu vào, từ đó đảm bảo hiệu quả cho các bước xử lý tiếp theo.
− 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ác câu văn cần được chuyển đổi thành các vector số thực có độ dài cố định Việc này đảm bảo rằng sự khác biệt về ý nghĩa giữa các câu được phản ánh tương ứng với độ sai khác giữa các 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.
Để xây dựng một đoạn văn tóm tắt hiệu quả, trước tiên cần phân loại các cụm theo ý nghĩa, sau đó chọn ra một câu duy nhất trong mỗi cụm để tạo thành văn bản tóm tắt Việc này giúp làm nổi bật những ý chính và duy trì tính mạch lạc cho nội dung.
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 vào các điểm dữ liệu và phân nhóm chúng thành các cụm, sao cho các điểm trong cùng một cụm có mối quan hệ chặt chẽ với nhau hơn so với các điểm thuộc các cụm khác.
Thuật toán Kmeans yêu cầu chỉ định số lượng cụm trước khi thực hiện Phương pháp này sử dụng khoảng cách Euclid để đánh giá mức độ tương đồng giữa hai điểm dữ liệu; điểm nào càng gần nhau thì mức độ tương đồng càng cao.
Kmeans là một thuật toán phân cụm nổi bật, hoạt động bằng cách tính tổng khoảng cách từ mỗi điểm đến tâm cụm tương ứng và tối ưu hóa qua thuật toán lặp Với cách tiếp cận đơn giản và dễ triển khai, Kmeans đã chứng minh hiệu quả vượt trội trên nhiều bài toán khác nhau Hiện nay, Kmeans vẫn giữ vị trí trong top những thuật toán Machine Learning phổ biến nhất.
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 lựa chọn số cụm là một thách thức Để đạt được hiệu quả tối ưu cho bài báo, hệ thống sử dụng 5 cụm, tương ứng với việc tóm tắt bài báo thành 5 câu.
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 hoàn tất việc xác định tâm cho tất cả các điểm dữ liệu, 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 được đặt chính xác ở giữa các điểm trong cụm.
Bước 4: Tiến trình lặp lại bước 2 và bước 3 sẽ diễn ra cho đến khi vị trí tâm cụm ổn định hoặc khi 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 Tìm kiếm Ẩn, là một trong những kỹ thuật phổ biến nhất trong Xử lý Ngôn ngữ Tự nhiên (NLP), giúp xác định các chủ đề trong văn bản thông qua việc phân tích các thành phần của nó bằng 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à phương pháp phân tích văn bản, giúp tái tạo và phân chia tài liệu thành nhiều phần khác nhau, mỗi phần thể hiện cách diễn đạt khác nhau nhưng vẫn giữ nguyên ý nghĩa 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 hoạt động bằng cách phân chia các từ trong văn bản và tạo ra một bảng chứa các ý nghĩa tiềm ẩn, từ đó so sánh và phân tích ý nghĩa của chúng trong ngữ cảnh ban đầu.
1.5.2.2 Ý tưởng áp dụng thuật toán
LSA (Latent Semantic Analysis) là một thuật toán trong mô hình chủ đề, được sử dụ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 mà vẫn giữ lại hầu hết các biến động quan trọng 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ừ đó cải thiện khả năng nhận diện và phân loại chủ đề.
Giả sử ma trận A biểu diễn mối quan hệ giữa tài liệu và từ vựng, với kích thước m x n Phép phân tích suy biến sẽ chuyển đổi ma trận 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, theo công thức cụ thể.
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 các văn bản hoặc ma trận V cho các 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 được phát triển dựa trên PageRank, nhằm 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 tập hợp văn bản liên kết, như trên World Wide Web, để đo lường tầm quan trọng tương đối của các liên kết TextRank 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à thuật toán này gán cho 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 của các cơ quan có thẩm quyền như cnn.com hay usa.gov được xem xét để xác định giá trị xếp hạng Giá trị này phản ánh tầm quan trọng của từng trang cụ thể, và mỗi liên kết đến trang web sẽ được tính như một sự hỗ trợ, góp phần làm tăng giá trị PageRank.
Giá trị PageRank của một trang web được xác định thông qua một quy trình đệ quy, phụ thuộc vào số lượng và chất lượng của các liên kết từ các trang khác (incoming links) Nếu một trang nhận được nhiều liên kết từ các trang có PageRank cao, thì giá trị PageRank của nó cũng sẽ tăng cao Nhiều bài viết đã được công bố dựa trên nghiên cứu gốc của Page và Brin về hệ thống này.
Thuật toán TextRank được phát triển để xếp hạng câu trong văn bản dựa trên mức độ tương tự giữa các câu Mỗi câu được biểu diễn dưới dạng một đỉnh, trong khi các cạnh nối thể hiện độ tương đồng giữa chúng Qua đó, thuật toán xác định những đỉ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
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.
2 Amin là công cụ hỗ trợ quản lý hiệu quả cho website, giúp nắm bắt các nghiệp vụ như đăng nhập, tìm kiếm, quản lý người dùng, bình luận và đánh giá Ngoài ra, 2 Amin còn cho phép quản lý bài viết, cũng như 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, có khả năng đăng nhập để tìm kiếm bài viết, xem thông tin trên website, bình luận về nội dung 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 của họ.
Bảng 2.1: Xác định actor và chức năng
2.1.4 Biểu đồ Use case chi tiết
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 mật khẩu thành công, người dùng sẽ có thể đăng nhập vào hệ thống bằng mật khẩu mới Hệ thống sẽ tự động cập nhật mật khẩu mới cho người dùng, đồng thời đảm bảo rằng thông tin của người dùng vẫn được lưu trữ an toàn 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
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
Post-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
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 đóng vai trò quan trọng trong việc giúp người dùng tiếp cận và sử dụng kết quả từ mô hình Chúng tôi đã phát triển một môi trường web dựa trên nền tảng Java với Framework Spring Boot, mang lại giao diện tối ưu cho việc tương tác 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.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 xử lý, nội dung sẽ được phân loại và trình bày trên trang web dựa trên các thẻ đã được gán Các bài báo sẽ được sắp xếp vào các chỉ mục đã xác định trước, đảm bảo tính tổ chức và dễ dàng tìm kiếm cho người dùng.
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.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 đã liệt kê Do đó, tài liệu này sẽ tập trung vào việc phân tích và trích xuất 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à request trong Python để xử lý.
- 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 có cấu trúc thống nhất, 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 Thư viện bs4 được sử dụng để tách các thành phần này từ mã nguồn và chuyển đổi chúng về dạng văn bản thuần, sẵn sàng cho quá trình tiền 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ự, dấu câu và khoảng trắng thừa, cũng như 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ý sau này, vì vậy việc làm sạch văn bản là cần thiết Chúng ta cần chuyển đổi văn bản về dạng 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 trong quá trình xử lý.
Xử lý dữ liệu đã chuẩn hoá
Văn bản sẽ được trích xuất từ các thẻ HTML nhờ thư viện bs4, giúp loại bỏ các thành phần 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 Quá trình này giúp giữ nguyên nội dung ban đầu của văn bản mà không làm thay đổi nhiều.
2.4 Xử lý dữ liệu đã chuẩn hoá
2.4.1 Tách câu trong văn bản
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
Áp dụng ba thuật toán để xử lý văn bản cho phép tạo 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 phải gửi đầy đủ nội dung của đồ án, bao gồm file docx và pdf, mã nguồn cùng hướng dẫn cài đặt, tất cả trong một thư mục Tên thư mục phải theo định dạng: manhom_tendetai_tengvhd_nam.rar Nộp cho Giảng viên hướng dẫn qua link file trên cloud (Google, Microsoft, v.v.) hoặc copy trực tiếp.
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 kết quả đồ á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ả của đồ án và cam kết chia sẻ thông tin trong bản đồ án 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ụ trong khuôn khổ chiến lược và chương trình khoa học là một phần quan trọng trong công việc của giảng viên hướng dẫn tại cơ sở đào tạo.
Các cơ sở đào tạo, viện nghiên cứu và công ty cung cấp điều kiện làm việc như máy móc, sách vở, và truy cập internet cho sinh viên Trong trường hợp này, bản quyền của đồ án thuộc về cơ sở cung cấp, không phải sinh viên, người chỉ tham gia thực hiện và không được sử dụng cho mục đích khác Giảng viên hướng dẫn có 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 cơ sở vật chất cần thiết như chỗ ngồi, máy tính và phương tiện liên lạc để sinh viên hoàn thành công việc.