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
Trang 2Hà Nội, 10-2021
Trang 3LỜI NÓI ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của khoa học công nghệ Công nghệThông tin là một trong những ngành có vị thế dẫn đầu và có vai trò rất lớn trong sựphát triển chung đó Các ứng dụng của công nghệ thông tin được áp dụng trong mọilĩnh vực nghiên cứu khoa học cũng như trong mọi lĩnh vực của đời sống Là một phầncủa Công nghệ Thông tin, Công nghệ web đang có được sự phát triển mạnh mẽ và phổbiến rất nhanh bởi những lợi ích mà nó mang lại cho cộng đồng là rất lớn
Nhận thức được nhu cầu tìm hiểu thông tin, giải trí của xã hội, là sự ra đời củahàng loạt website cho các mục đích thương mại, giải trí, tin tức Để đáp ứng với việccập nhật thông tin hàng ngày, tình hình xã hội, chính trị, thời sự thì website tin tức rađời là một nhu cầu tất yếu
Vì thời gian ngày càng ít, nhưng thông tin thì lại rất nhiều Nên đôi khi, chúng
ta không thể bao trọn được hết các thông tin mà chúng ta cần Khiến cho việc nắm bắtthông tin bị hạn chế Do đó, từ vấn đề trên chúng em đã vận dụng ngôn ngữ Python,Java, MySQL và công cụ Visual Studio Code để xây dựng ứng dụng Website Tổng hợp
và Tóm tắt Tin tức
Với các công nghệ phát triển hiện nay, việc học máy là vấn đề không còn quákhó khăn, nó cho phép chúng ta có thể dạy cho một cỗ máy có thể học hỏi và tự làmđược với yêu cầu đã được đề ra 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 Sau khi được thuthập và phân loại, văn bản sẽ được xử lý và trả về kết quả ở dạng những tin vắn tắt,mang đầy đủ ý nghĩa và nội dung của bản tin gốc Trong đó, yếu tố mang tính ảnhhưởng đó chính là mô hình được hướng đến nhằm xử lý dữ liệu ngôn ngữ tự nhiênNLP Với mô hình này, các thư viện đã sẽ được đề cập ở phần sau, chúng em sẽ triểnkhai và phát triển thêm những tính năng phù hợp hơn, tăng độ chính xác cũng như độtin cậy khi sử dụng mô hình Bên cạnh đó là xử lý bản tin từ văn bản thành giọng nói,giúp cho người dùng tiện lợi hơn rất nhiều trong việc cập nhật tin tức Phát triển xahơn đó là áp dụng mô hình vào để có thể phát triển và xử lý các khối dữ liệu văn bảnlớn hơn như: sách, tài liệu hay các loại truyện, tiểu thuyết Phần nào cho người đọc có
Trang 4cái hình dung rõ hơn về tác phẩm mà mình muốn trải nghiệm Cũng như giúp chongười dùng được tiếp cận một cách nhanh chóng và khái quát vấn đề mình cần tìmhiểu.
Nội dung tiếp theo của đề cương này được chia làm 03 phần như sau:
Chương 1: Tổng quan về ngôn ngữ, các công cụ hỗ trợ và tổng quan về
đề tài Chương này sẽ giới thiệu nền tảng được ứng dụng và phát triển đề tài của chúng
em Cách mà bọn em kết nối và tạo ra hệ thống để đem đến bản tin vắn tắt và gọn Bêncạnh đó là các định nghĩa các nguồn tin Đem lại cái nhìn khát quát nhất của đề tài
Chương 2: Áp dụng phương pháp học máy trong xử lý ngôn ngữ.
Chương này trình bày về các giải pháp và kỹ thuật được sử dụng cho đề tài Với đề tài
là việc thu thập, phân tích và rút gọn các bản tin thành những tin vắn Việc trọng tâmphải để ý đó là áp dụng thuật toán để sử lý câu chữ, sao cho sau khi được rút gọn, bảntin vẫn mang lại đúng nội dung và ý nghĩa
Chương 3: Trình bày về quá trình thực nghiệm và đánh giá các kết quả
thu được trong thực nghiệm So sánh các kết quả này với các tập mẫu được chọn raban đầu Từ đó đánh giá và cải thiện thuật toán
Trang 5LỜI CAM ĐOAN
Lời cam đoan được viết tại đây Xem cách viết lời cam đoan tại Mục Error:Reference source not found
Trang 6MỤC LỤC
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i
DANH MỤC HÌNH VẼ ii
DANH MỤC BẢNG BIỂU iii
TÓM TẮT ĐỒ ÁN iv
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 1
1.1 Tổng quan về ngôn ngữ và các công cụ hỗ trợ 1
1.1.1 Tổng quan về lập trình Python và Laravel 1
1.1.2 Các công cụ hỗ trợ 1
1.2 Tổng quan về các nội dung thông tin được sử dụng 1
1.3 Tổng quan về học máy 2
1.3.1 Giới thiệu học máy 2
1.3.2 Giới thiệu về NLP 3
1.3.3 Giới thiệu về NLTK 3
1.4 Quy trình xử lý và tóm tắt văn bản 4
1.5 Tổng quan về thuật toán sử dụng tóm tắt văn bản 4
1.5.1 Thuật toán K-Means Clustering 4
1.5.2 Thuật toán LSA (Latent Semantic Analysis) 5
1.5.3 Thuật toán Text Rank 7
CHƯƠNG 2 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 9
2.1 Phân tích hệ thống 9
2.1.1 Biểu đồ phân rã chức năng 9
2.1.2 Biểu đồ Use Case tổng quát 10
2.1.3 Xác định actor và chức năng 11
2.1.4 Biểu đồ Use case chi tiết 12
2.1.5 Đặc tả các ca sử dụng 13
2.2 Thiết kế giao diện người dùng 23
2.2.1 Các chức năng chính 23
2.2.2 Phân quyền cho User 23
Trang 72.2.3 Nội dung trên trang 23
2.2.4 Cấu trúc trang web thực tế 24
2.3 Chuẩn bị dữ liệu đầu vào 26
2.3.1 Thu thập dữ liệu 26
2.3.2 Bóc tách & Lọc dữ liệu về dạng chuẩn 29
2.4 Xử lý dữ liệu đã chuẩn hoá 30
2.4.1 Tách câu trong văn bản 30
2.4.2 Tách từ trong câu 30
2.4.3 Sử dụng kỹ thuật chuyển từ thành vector số thực 30
2.4.4 Xây dựng đoạn văn bản tóm tắt 30
CHƯƠNG 3 KẾT QUẢ THỰC NGHIỆM 31
3.1 Nộp bản cứng 31
3.1.1 Nộp bản mềm 31
3.2 Bản quyền kết quả nghiên cứu 31
KẾT LUẬN 33
Kết luận chung 33
Hướng phát triển 33
Kiến nghị và đề xuất 33
TÀI LIỆU THAM KHẢO 34
PHỤ LỤC 35
Phụ lục 1 Mẫu trang bìa chính của đồ án 35
Phụ lục 2 Mẫu trang bìa phụ của đồ án 37
Phụ lục 3 Mẫu nhận xét đồ án 39
Trang 8DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Xem Mục
Trang 9DANH MỤC HÌNH VẼ
Hình 1.1 Sơ đồ khối của hệ thống 3(Xem thêm Mục Error: Reference source not found)
Trang 10DANH MỤC BẢNG BIỂU
Bảng 1.1 Kết quả thí nghiệm 3(Xem thêm Mục Error: Reference source not found)
Trang 11TÓM TẮT ĐỒ ÁN
Tóm tắt đồ án, có độ dài 1-2 trang, được trình bày tại đây Chi tiết xem Mục Error:Reference source not found
Trang 12CHƯƠNG 1 CƠ SỞ LÝ THUYẾT
Tóm tắt nội dung Chương 1 được trình bày tại đây, dài khoảng từ 5 đến 10 dòng
1.1 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, cấp cao, mạnh mẽ, được tạo ra
bởi Guido van Rossum Nó dễ dàng để tìm hiểu, Python hoàn toàn tạo kiểu động và sửdụng cơ chế cấp phát bộ nhớ tự động Python có cấu trúc dữ liệu cấp cao mạnh mẽ vàcách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng Cú pháplệnh của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiểu và cách gõ linh độnglàm cho nó nhanh chóng trở thành một ngôn ngữ lý tưởng để viết script và phát triểnứng dụng trong nhiều lĩnh vực, ở hầu hết các nền tảng
Laravel là một PHP framework mã nguồn mở hoàn toàn miễn phí, được phát
triển bởi Taylor Otwell, phiên bản đầu tiên được cho ra mắt vào năm 2011 Laravel rađời với mục đích hỗ trợ phát triển các ứng dụng web dựa trên mô hình Model – View –Controller (MVC)
1.1.2 Các công cụ hỗ trợ
Hiện tại có rất nhiều các trình hỗ trợ soạn thảo mã nguồn, cho phép mọi ngườilập trình và chạy các mã nguồn Visual Studio Code là một trong số đó Với nhữngextention có thể tích hợp dễ dàng, giúp cho việc lập trình và thực thi mã nguồn tiện lợi,hiệu quả Đó là công cụ mạnh mẽ mà chúng em sẽ sử dụng xuyên suốt đề tài
1.2 Tổng quan về các nội dung thông tin được sử dụng
Với các thông tin hiện tại, chúng ta đang có quá nhiều thông tin để phải chọnlọc Bên cạnh đó là nguồn thông tin cần phải được xác thực từ các bên chính thống Vìvậy, để phát triển bước đầu cho hệ thống, các nguồn thông tin được cung cấp đầu vàosẵn từ trước, đến từ các báo có độ uy tín cao, thông tin xác thực từ các cơ quan cóthẩm quyền như: VnExpress.vn; Zing.vn; thanhnien.vn; Vietnamnet.vn; laodong.vn;tuoitre.vn; dantri.com.vn
Trang 131.3 Tổng quan về học máy
1.3.1 Giới thiệu học máy
Học máy là một tập con của trí tuệ nhân tạo Theo định nghĩa của Wikipedia thì,học máy là một lĩnh vực nhỏ của khoa học máy tính, nó có khả năng tự học hỏi dựatrên dữ liệu đưa vào mà không cần phải lập trình cụ thể
Ý tưởng cơ bản của mọi quy trình học máy là xây dựng mô hình dựa trên một
số thuật toán để thực hiện một nhiệm vụ cụ thể như phân loại, phân lớp, hồi quy Giaiđoạn huấn luyện được thực hiện dựa trên dữ liệu đầu vào và mô hình được xây dựng
để dự đoán đầu ra Kết quả đầu ra phụ thuộc mục tiêu ban đầu và việc thực hiện Chitiết quy trình học máy gồm các bước như sau:
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:
− Thu thập dữ liệu (gathering data): Quá trình thu thập dữ liệu phụ thuộcvào loại dự án mà chúng ta mong muốn xây dựng, ví dụ nếu chúng ta muốn xây dựng
dự án học máy mà sử dụng dữ liệu thực để chúng ta có thể xây dựng một hệ thống IoT
từ các dữ liệu cảm biến khác nhau Dữ liệu chúng ta có thể thu thập từ các nguồn dữliệu khác nhau như một tập tin, cơ sở dữ liệu, cảm biến
− Tiền xử lý dữ liệu (data pre-processing): Tiền xử lý dữ liệu là một trongnhững giai đoạn quan trọng trong học máy, nó giúp xây dựng mô hình học máy chínhxác Tiền xử lý dữ liệu là một quá trình làm sạch dữ liệu thô, dữ liệu được thu thập từnhiều nguồn trong thế giới thực và được chuyển thành một tập dữ liệu sạch Dữ liệu
Trang 14thô ban đầu có một số đặc điểm như dữ liệu bị thiếu sót, không nhất quán, nhiễu vì vậy
dữ liệu này phải được xử lý trước khi đưa vào học máy
− Xây dựng mô hình phù hợp cho loại dữ liệu (researching model): Mụctiêu chính của chúng ta là xây dựng mô hình thực hiện tốt nhất dựa trên một số thuậttoán phân loại và phân lớp
− Huấn luyện và kiểm thử mô hình trên dữ liệu (training and testingmodel): để huấn luyện một mô hình, ban đầu chúng ta chia mô hình thành 03 giai đoạnbao gồm: dữ liệu huấn luyện (training data), dữ liệu xác nhận (validation data) và dữliệu kiểm thử (testing data) Để huấn luyện bộ phân lớp ta sử dụng tập hợp dữ liệuhuấn luyện (training data set), để tinh chỉnh các tham số ta sử dụng tập hợp xác nhận(validation set) và sau đó kiểm tra hiệu suất của bộ phân loại chưa biết sử dụng tập hợp
dữ liệu kiểm thử (test data set) Một lưu ý quan trọng là trong quá trình huấn luyện bộphân lớp là dữ liệu kiểm thử không được sử dụng để huấn luyện
− Đánh giá (evaluation): Đánh giá mô hình là một phần quan trọngtrong quy trình phát triển mô hình, nó giúp tìm ra mô hình tốt nhất để đại diện cho dữliệu của chúng ta và mô hình được chọn sẽ hoạt động tốt như thế nào trong tương lai
1.3.2 Giới thiệu về NLP
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 giữa Trí tuệ nhân tạo (Artificial Intelligence) và Ngôn ngữhọc tính toán (Computational Linguistics) nhằm tập trung xử lý tương tác giữa conngười và máy tính sao cho máy tính có thể hiểu hay bắt chước được ngôn ngữ của conngười Các ứng dụng thường thấy như hiện nay là Siri, Cortana và Google Now
1.3.3 Giới thiệu về NLTK
NLTK hay Natural Language Toolkit - Bộ công cụ ngôn ngữ tự nhiên, là một
thư viện được viết bằng Python hỗ trợ xử lý ngôn ngữ tự nhiên Bằng cách cung cấpcác cơ chế và kỹ thuật xử lý ngôn ngữ phổ biến, nó giúp cho việc xử lý ngôn ngữ tựnhiên trở lên dễ dàng và nhanh chóng hơn Được viết bởi Steven Bird và EdwardLoper, làm việc tại Khoa Máy Tính, Đại Học Pennsylvania, Hoa Kỳ và năm 2001.Ngoài việc hỗ trợ xử lý ngôn ngữ, NLTK còn có các mô phỏng đồ hoạ và dữ liệu mẫuhữu ích NLTK cung cấp các xử lý như classification, tokenization, stemming, tagging,
Trang 15parsing, và semantic reasoning Những ứng dụng này chúng ta sẽ dần được tìm hiểu ởnhững bài viết sau Ngoài việc phục vụ xử lý ngôn ngữ tự nhiên, NLTK còn được sửdụng trong Machine Learning với tác dụng làm sạch dữ liệu, xử lý dữ liệu đầu vào chocác thuật toán Machine Learning.
1.4 Quy trình xử lý và tóm tắt văn bản
− Tiền xử lý văn bản: Văn bản đầu vào của có thể chứa nhiều ký tự thừa,
dấu câu thừa, khoảng trắng thừa, các từ viết tắt, viết hoa, điều này có thể làm ảnhhưởng tới các bước ở sau, nên cần biến đổi hết về các chữ cái thường và loại bỏ cáckhoảng trắng thừa, các từ không mang ý nghĩa hay không ảnh hương ý nghĩa trong câunếu loại bỏ
− 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
− Chuyển các câu sang dạng 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ànhcá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
− 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ọnlọc và loại bỏ bớt các câu có cùng ý nghĩa
− Xây dựng đoạn văn bản tóm tắt: Sau khi đã có các cụm, trong mỗi
cụm (phân loại theo ý nghĩa), sẽ chọn ra 1 câu duy nhất trong cụm đó để tạo nên vănbản được tóm tắt.Danh mục ký hiệu và chữ viết tắt
1.5 Tổng quan về thuật toán sử dụng tóm tắt văn bản
1.5.1 Thuật toán K-Means Clustering
1.5.1.1 Cơ sở thuật toán
Kmeans là một thuật toán học máy không giám sát – Unsupervised Learning.Đầu vào của thuật toán phân cụm nói chung là các điểm dữ liệu và đầu ra là các điểmvới cụm tương ứng của nó sao cho các điểm thuộc cùng một cụm có nhiều mối quan
hệ, liên kết với nhau hơn nhiều so với các điểm khác cụm
Trang 16Với thuật toán Kmeans ta cần truyền thêm tham số là số cụm Kmeans sử dụngEuclid để xác định sự giống nhau giữa hai điểm dữ liệu, hai điểm càng gần nhau thì độtương tự giữa hai điểm này càng cao.
Dựa trên ý tưởng như vậy, Kmeans sử dụng hàm để tính tổng khoảng cách từ 1điểm tới tâm cụm tương ứng của nó và tối ưu dựa trên thuật toán lặp Với ý tưởng đơngiản, dễ triển khai nhưng lại đem lại kết quả tốt trên nhiều bài toán Hiện tại Kmeansvẫn luôn nằm 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 hoá dữ liệu đầu vào, việc chọn số cụm là việc khó khăn.Với khả năng xử lý và tối ưu nhất cho một bài báo, thì số cụm được sử dụng trong hệthống là 5 cụm tương đương với bài báo sau khi được tóm tắt có độ dài là 5 câu
1.5.2 Thuật toán LSA (Latent Semantic Analysis)
1.5.2.1 Cơ sở thuật toán
LSA là một trong những kỹ thuật Xử lý Ngôn ngữ Tự nhiên (NLP) phổ biếnnhất, nó sẽ cố gắng xác định các chủ đề trong văn bản bằng cách phân tích các thànhphần trong văn bản bằng toán học LSA là một kỹ thuật học tập không giám sát dựatrê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ênxuất hiện cùng nhau
- Phân rã giá trị đơn lẻ
Trang 17LSA lấy các tài liệu văn bản có ý nghĩa và tái tạo chúng thành n phần khácnhau, trong đó mỗi phần thể hiện một cách khác nhau để so sánh ý nghĩa của chúngtrong văn bản Như việc biểu đạt một câu nói: “Hôm nay tôi không khoẻ!” bằng mộtcâu nói với ý nghĩa hoàn toàn giống nó những cách nói khác là: “Hôm nay tôi cảmthấy mệt!” Thuật toán LSA sẽ phân chia các từ của văn bản thành một bảng gồm các ýnghĩa tiềm ẩn của từ trong văn bản gốc.
1.5.2.2 Ý tưởng áp dụng thuật toán
LSA là một thuật toán thuộc mô hình chủ đề, phân loại topic Ý tưởng của thuậttoán dựa trên phép phân tích suy biến ma trận biểu diễn văn bản đầu vào (A) để xácđịnh không gian tuyến tính con của A mà vẫn giữ được hầu hết những biến động của
ma trận A Nói cách khác, thuật toán này đi giảm chiều ma trận dữ liệu đầu vào sửdụng phép phân tích ma trận
Giả sử ma trận biểu diễn mối quan hệ giữa document-word là Amn∈Rm×n Về cơbản phép phân tích suy biến sẽ biến đổi ma trận gốc A thành tích của các ma trận suybiế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:
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ânphố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
Trang 18- Để tìm ra 2 văn bản có giống nhau hoặc 2 từ giống nhau chúng ta sẽ tínhtương quan của các véc tơ dòng tương ứng với các văn bản của ma trận U hoặc các véc
tơ dòng tương ứng với từ của ma trận V
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ảnlớ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ốiquan 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
1.5.3 Thuật toán Text Rank
1.5.3.1 Cơ sở thuật toán
TextRank được bắt nguồn từ thuật toán PageRank, thuật toán nhằm xếp hạngcác trang web của Google Thuật toán này chỉ định giá trị nhất định cho mỗi thànhphần của một tập hợp các văn bản liên kết với nhau, ví dụ như World Wide Web Mụcđích "đo" tầm quan trọng tương đối của các liên kết trong tập hợp đó Áp dụng cho bất
kỳ tập hợp văn bản nào có trích dẫn đối ứng và liên kết cụ thể Giá trị (weight) mà nógán cho bất kỳ thành phần E được gọi là PageRank của E và ký hiệu là PR(E)
Hình : Sơ đồ đánh giá giá trị của thuật toán PageRank
Trang 19Giá trị PageRank hình thành từ thuật toán toán học dựa trên webgraph: cáctrang world wide web được coi như các đỉnh và các đường link là các cạnh Khi hìnhthành webgraph người ta có tính đến những trang của các cơ quan có thẩm quyền nhưcnn.com hay usa.gov Giá trị xếp hạng cho thấy tầm quan trọng của từng trang cụ thể.Mỗi đường link tới trang web sẽ được tính như một sự hỗ trợ làm tăng thêm giá trịPagerank.
Giá trị Pagerank của trang được định nghĩa đệ quy và phụ thuộc vào số lượng
và giá trị của các trang mà có link dẫn đến trang đó (incoming links).Một trang web cóchứa nhiều link liên kết từ các trang web có giá trị PageRank cao thì giá trị PageRankcủa trang đó cũng sẽ cao.Có rất nhiều bài viết đã được xuất bản ra công chúng dựa trênnghiên cứu gốc của Page và Brin
Dựa trên ý tưởng này, thuật toán TextRank ra đời nhằm xếp hạng các câu trongmột văn bản dựa trên độ tương tự giữa các câu Mỗi đỉnh sẽ là một câu, cạnh nối là độtương tự giữa hai câu Từ đó xác định được các đỉnh với rank cao nhất - các câu quantrọng nhất
1.5.3.2 Ý tưởng áp dụng thuật toán
1.5.3.3
Trang 20CHƯƠNG 2 THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG
Tóm tắt Chương 2 được trình bày tại đây, dài khoảng từ 5 đến 10 dòng
2.1 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
Quản lý hệ thống
Thay đổi thông
tin Cập nhật thông tin Xoá & Sửa nội dung bài viết thành viênCập nhật
Xử lý dữ liệu
Thu thập dữ liệu Xử lý dữ liệu Tạo nội dung bài viết
Trang 212.1.2 Biểu đồ Use Case tổng quát
Hình 2.1: Biểu đồ Use Case tổng quát
Trang 22Đăng nhập, tìm kiếm, quản lí User, quản lí bình luận và đánh giá, quản
lí bài viết, thêm, xóa và sửa tài khoản trong hệ thống.
đã có tài khoản trong
hệ thống
Đăng nhập, tìm kiếm bài viết, xem thông tin trên website, bình luận về bài viết, lưu thông tin bài viết, gợi ý bài viết theo sở thích.
Bảng 2.1: Xác định actor và chức năng
Trang 232.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
2.1.4.2 Biểu đồ UC Guest
Hình 2.3: Biểu đồ UC Guest
Trang 242.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
Trang 25Pre-conditions Chưa có tài khoản
2 Hệ thống hiển thị from đăng kí
3 Điền đầy đủ thông tin vào formAlternative 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ốngwebsite
Special Requiements Chưa tồn tại username trên hệ thống
2 Use Case đăng nhập
nhập
khoản
2 Hệ thống hiển thị from đăng nhập
3 Điền đầy đủ thông tin vào formAlternative 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
người dùng có thể đăng nhập vào hệthống website
Trang 26Special Requiements
2.1 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
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áchhàng