CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.js là một môi trường thực thi mã nguồn mở được xây dựng trên JavaScript Engine của Google Chrome (V8 Engine). Nó cho phép bạn chạy mã JavaScript bên ngoài trình duyệt web, thường được sử dụng để xây dựng các ứng dụng mạng có hiệu suất cao. Dựa trên kiến trúc đơn luồng (single-threaded), không đồng bộ (asynchronous) và sự kiện gần như không chặn (event-driven), Node.js rất phù hợp cho việc xây dựng các ứng dụng mạng như máy chủ web (web servers), các ứng dụng realtime (như chat), ứng dụng API, hay các dịch vụ web. Một số đặc điểm chính của Node.js bao gồm: - Kiến trúc đơn luồng: Node.js sử dụng kiến trúc đơn luồng để xử lý các yêu cầu I/O không đồng bộ, giúp tối ưu hóa hiệu suất.
- Bộ thư viện nền tảng mạnh mẽ: Node.js đi kèm với một bộ thư viện lớn, cung cấp các công cụ để phát triển các ứng dụng mạng phức tạp. - npm (Node Package Manager): Là trình quản lý gói được tích hợp sẵn với Node.js, cho phép bạn dễ dàng cài đặt, quản lý và chia sẻ các gói mã nguồn mở. - Dễ dàng mở rộng: Node.js có thể được mở rộng dễ dàng bằng cách sử dụng các module và thư viện bên ngoài, cũng như thông qua việc phân phối công việc đến các tiến trình phụ (child processes) hoặc các máy chủ mạng khác nhau. 4 - Hỗ trợ cộng đồng mạnh mẽ: Cộng đồng lớn của Node.js cung cấp nhiều tài liệu, hướng dẫn và hỗ trợ thông qua các diễn đàn, các khóa học trực tuyến và các trang web cộng đồng.js đã trở thành một công cụ quan trọng trong việc phát triển các ứng dụng web hiệu suất cao và thường được sử dụng bởi nhiều công ty công nghệ hàng đầu trên thế giới.
ExpressJS ExpressJS là một framework web cho Node.js, được xây dựng để tạo ra các ứng dụng web và API một cách nhanh chóng và dễ dàng. Nó cung cấp một cách tiếp cận linh hoạt để xây dựng các ứng dụng web, từ ứng dụng đơn giản cho đến các ứng dụng phức tạp, với một loạt các tính năng và tiện ích mạnh mẽ. Dưới đây là một số điểm nổi bật về ExpressJS - Minh bạch và tối giản: ExpressJS có cấu trúc đơn giản và dễ hiểu, giúp người phát triển tập trung vào việc xây dựng ứng dụng mà không cần phải bận tâm quá nhiều về cách làm việc bên dưới. - Middleware: ExpressJS sử dụng middleware để xử lý yêu cầu HTTP.
Middleware cho phép bạn thực hiện các chức năng như xác thực, xử lý lỗi, ghi nhật ký và nhiều hơn nữa, tất cả được tổ chức một cách dễ dàng. - Đa tính năng: ExpressJS không chỉ là một framework cho việc xây dựng các ứng dụng web thông thường, mà còn hỗ trợ việc xây dựng các API RESTful, ứng dụng realtime với WebSocket và nhiều hơn nữa. - Cộng đồng đông đảo: ExpressJS có một cộng đồng lớn và tích cực, với nhiều plugin, middleware và tài liệu hữu ích. Điều này làm cho việc học và phát triển với ExpressJS trở nên dễ dàng hơn.
5 - Khả năng mở rộng: ExpressJS cho phép bạn mở rộng ứng dụng của mình bằng cách sử dụng các module và thư viện bên ngoài, giúp tăng tính linh hoạt và mở rộng của ứng dụng. ExpressJS được coi là một trong những lựa chọn phổ biến nhất khi xây dựng các ứng dụng web và API bằng Node.js, và nó đã được sử dụng rộng rãi bởi nhiều công ty lớn và dự án trên toàn thế giới. ReactJS React là một thư viện JavaScript mã nguồn mở được phát triển bởi Facebook, được sử dụng rộng rãi để xây dựng giao diện người dùng (UI) cho các ứng dụng web và di động. Đặc điểm nổi bật của React là khả năng tạo ra các giao diện người dùng động và phản ứng (responsive) mà không cần tải lại trang, cũng như sự dễ dàng tích hợp với các dự án lớn và phức tạp.
Dưới đây là một số đặc điểm chính của React: Components: React được xây dựng xung quanh khái niệm "components". Mỗi thành phần trong React là một khối xây dựng độc lập, tái sử dụng được, có thể được tạo ra và duy trì một cách dễ dàng. Các thành phần này có thể được kết hợp để tạo thành giao diện người dùng phức tạp. Virtual DOM (DOM ảo): React sử dụng một cấu trúc dữ liệu gọi là Virtual DOM để theo dõi các thay đổi trong giao diện người dùng và cập nhật DOM thực tế chỉ khi cần 6 thiết.
Điều này giúp cải thiện hiệu suất bằng cách giảm thiểu số lần truy cập vào DOM thực tế, làm giảm thời gian phản hồi của ứng dụng. JSX (JavaScript XML): React cho phép viết mã JavaScript và HTML (hoặc XML) trong cùng một file, được gọi là JSX. JSX giúp tạo ra mã nguồn dễ đọc, dễ hiểu và dễ bảo trì hơn so với việc viết mã HTML trong các hàm JavaScript. One-Way Data Binding (Ràng buộc dữ liệu một chiều): React thường sử dụng mô hình ràng buộc dữ liệu một chiều để quản lý trạng thái (state) của ứng dụng.
Khi trạng thái của một thành phần thay đổi, React sẽ tự động cập nhật giao diện người dùng tương ứng mà không cần can thiệp trực tiếp từ phía người phát triển. Hỗ trợ cộng đồng mạnh mẽ: Có một cộng đồng lớn và tích cực của các nhà phát triển sử dụng React, cung cấp nhiều tài liệu, hướng dẫn, và các thư viện mở rộng cho việc phát triển ứng dụng. React đã trở thành một công cụ phổ biến trong cộng đồng phát triển web, được sử dụng bởi nhiều công ty công nghệ hàng đầu và được ưa chuộng bởi sự linh hoạt, hiệu suất và cộng đồng hỗ trợ mạnh mẽ. MongoDB MongoDB là một hệ quản trị cơ sở dữ liệu mã nguồn mở, là cơ sở dữ liệu thuộc NoSql và được hàng triệu người sử dụng.
MongoDB là một database hướng tài liệu (document), các dữ liệu được lưu trữ trong document kiểu JSON thay vì dạng bảng như cơ sở dữ liệu quan hệ nên truy vấn sẽ rất nhanh. 7 Điểm đặc biệt của MongoDB là cấu trúc linh hoạt của các bảng, cho phép dữ liệu không cần tuân theo bất kỳ dạng cấu trúc nào. Thay vì sử dụng bảng, MongoDB lưu trữ dữ liệu dưới dạng tài liệu kiểu JSON để tăng tốc độ truy vấn. Thông tin liên quan được lưu trữ cùng nhau để truy cập truy vấn nhanh thông qua ngôn ngữ truy vấn MongoDB MongoDB là lựa chọn cho người lập trình trong những dự án có tính linh hoạt cao bởi vì tính mở rộng, sẵn sàng và dễ sử dụng.
Python Python là một ngôn ngữ lập trình bậc cao, mã nguồn mở và đa nền tảng. Python được Guido van Rossum giới thiệu vào năm 1991 và đã trải qua 3 giai đoạn phát triển khác nhau tương ứng với các version, mới nhất hiện nay là Python version 3x (3.3 vào 9 tháng 4 2024). Python có cú pháp rõ ràng và ngắn gọn, giúp cho việc học và sử dụng ngôn ngữ này trở nên dễ dàng. Các ưu điểm của ngôn ngữ lập trình này: - Cú pháp đơn giản và dễ đọc: Cú pháp của Python rất giống với ngôn ngữ tự nhiên, dễ học và dễ đọc, giúp lập trình viên tập trung vào giải quyết vấn đề hơn là việc ghi nhớ cú pháp phức tạp.
- Đa dụng: Python có thể được sử dụng trong nhiều lĩnh vực khác nhau như phát triển web, khoa học dữ liệu, trí tuệ nhân tạo, tự động hóa, phân tích dữ liệu, và nhiều ứng dụng khác. - Thư viện phong phú: Python có một kho thư viện đồ sộ, hỗ trợ nhiều tác vụ khác nhau. Các thư viện như NumPy, Pandas, TensorFlow, và Django giúp lập trình viên tiết kiệm thời gian và công sức khi phát triển các ứng dụng phức tạp. 8 - Cộng đồng lớn mạnh: Python có một cộng đồng lập trình viên rộng lớn và năng động, cung cấp nhiều tài liệu, hướng dẫn, và hỗ trợ qua các diễn đàn, nhóm thảo luận và các khóa học trực tuyến.
- Đa nền tảng: Python có thể chạy trên nhiều hệ điều hành khác nhau như Windows, macOS, Linux, giúp cho việc phát triển và triển khai ứng dụng trở nên dễ dàng. - Khả năng mở rộng và tích hợp tốt: Python có thể dễ dàng tích hợp với các ngôn ngữ lập trình khác và các công nghệ hiện có, giúp nó trở thành một lựa chọn lý tưởng cho nhiều dự án khác nhau. - Hỗ trợ từ các tổ chức lớn: Nhiều công ty và tổ chức lớn như Google, Facebook, NASA sử dụng Python và đóng góp vào việc phát triển ngôn ngữ này, làm tăng uy tín và sự tin cậy của nó. Xử lý ngôn ngữ tự nhiên Xử lý ngôn ngữ tự nhiên (NLP) là một công nghệ máy học, cung cấp cho máy tính khả năng diễn giải, tương tác và hiểu được ngôn ngữ của con người.
Các tổ chức ngày nay có khối lượng lớn dữ liệu thoại và văn bản từ nhiều kênh liên lạc khác nhau như email, tin nhắn văn bản, bảng tin trên mạng xã hội, tệp video, tệp âm thanh và nhiều hơn nữa. Họ sử dụng phần mềm NLP để tự động xử lý dữ liệu này, phân tích ý định hoặc cảm xúc trong tin nhắn và phản hồi bằng người thật theo thời gian thực. Các bước xử lý của mô hình ngôn ngữ tự nhiên: - Phân tích hình thái: Trong bước này từng từ sẽ được phân tích và các ký tự không phải chữ (như các dấu câu) sẽ được tách ra khỏi các từ. Trong tiếng Anh 9 và nhiều ngôn ngữ khác, các từ được phân tách với nhau bằng dấu cách.
Tuy nhiên trong tiếng Việt, dấu cách được dùng để phân tách các tiếng (âm tiết) chứ không phải từ. - Phân tích cú pháp: Dãy các từ sẽ được biến đổi thành các cấu trúc thể hiện sự liên kết giữa các từ. Sẽ có những dãy từ bị loại do vi phạm các luật văn phạm. - Phân tích ngữ nghĩa: Thêm ngữ nghĩa vào các cấu trúc được tạo ra bởi bộ phân tích cú pháp.
- Tích hợp văn bản: Ngữ nghĩa của một câu riêng biệt có thể phụ thuộc vào những câu đứng trước, đồng thời nó cũng có thể ảnh hưởng đến các câu phía sau. - Phân tích thực nghĩa: Cấu trúc thể hiện điều được phát ngôn sẽ được thông dịch lại để xác định nó thật sự có nghĩa là gì. 10 CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ MÔ HÌNH HÓA YÊU CẦU 2. KHẢO SÁT HIỆN TRẠNG Trang diễn đàn daynhauhoc: https://daynhauhoc.
Website diễn đàn daynhauhoc(1) 11 Hình 2.