Chương 1 được trình bày tại đây, dài khoảng từ 5 đến 10 dòng.1 Tổng quan về ngôn ngữ và các công cụ hỗ trợ 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áp lệ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 động là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).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ười lập trình và chạy các mã nguồn. Visual Studio Code là một trong số đó. Với những extention 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.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ọn lọ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ào sẵ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.3 Tổng quan về học máy 1.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ựa trê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. Chi tiế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ộc và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 trong nhữ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ính xá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 2 Tieu luan thô 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ục tiê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ật toá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 testing model): để huấn luyện một mô hình, ban đầu chúng ta chia mô hình thành 03 giai đoạn bao 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ệu huấ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ọng trong 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.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 con ngườ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 con người. Các ứng dụng thường thấy như hiện nay là Siri, Cortana và Google Now.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ấp cá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à Edward Loper, 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ẫu hữu ích. NLTK cung cấp các xử lý như classification, tokenization, stemming, tagging, 3 Tieu luan parsing, 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 cho các thuật toán Machine Learning.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 ảnh hưở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ác khoảng trắng thừa, các từ không mang ý nghĩa hay không ảnh hương ý nghĩa trong câu nế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à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. − 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 đ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ăn bả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.1 Thuật toán K-Means Clustering 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ểm vớ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. 4 Tieu luan Với thuật toán Kmeans ta cần truyền thêm tham số là số cụm. Kmeans sử dụng Euclid để 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 đơn giả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 Kmeans vẫn luôn nằm trong top những thuật toán Machine Learning phổ biến nhất.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.
Các bước thực hiện: 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 tất cả các điểm dữ liệu đã có tâm, tính toán lại vị trí của tâm cụm để đảm bảo tâm của cụm nằm ở chính giữa cụm. Bước 4: Bước 2 và bước 3 sẽ được lặp đi lặp lại cho tới khi vị trí của tâm cụm không thay đổi hoặc tâm của tất cả các điểm dữ liệu không thay đổi.2 Thuật toán LSA (Latent Semantic Analysis) 1.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ến nhấ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ành phầ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ự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ẻ.