Phân tích cảm xúc trong văn bản bằng Sklearn trong Python

MỤC LỤC

CƠ SỞ LÝ THUYẾT

Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, phát triển phần mềm, khoa học dữ liệu và máy học (ML). Phần mềm Python được tải xuống miễn phí, tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển. ● Nhờ có tính năng đơn giản, nên việc bảo trì các chương trình được tạo ra bởi Python cũng khá đơn giản và nhanh chóng.

● Khi sử dụng Python, các lập trình viên có thể thoải mải thêm và tùy chỉnh các công cụ, để có thể tối đa hiệu quả trong công việc. Sklearn, hay còn gọi là scikit-learn, là một thư viện học máy phổ biến trong ngôn ngữ lập trình Python. Được thiết kế với mục tiêu cung cấp các công cụ dễ sử dụng và hiệu quả cho việc phân tích dữ liệu và học máy, Sklearn hỗ trợ nhiều thuật toán học máy khác nhau, bao gồm cả học có giám sát và không giám sát.

Thư viện này cũng cung cấp các công cụ đánh giá mô hình, xử lý dữ liệu trước, và lựa chọn đặc trưng, giúp tối ưu hóa quá trình phát triển và đánh giá các mô hình học máy. Sklearn là một công cụ quan trọng trong việc phân tích cảm xúc từ văn bản do khả năng xử lý và phân tích dữ liệu văn bản một cách hiệu quả. Pipeline trong scikit-learn là một công cụ mạnh mẽ giúp tự động hóa quy trình xử lý và phân tích dữ liệu.

Nó cho phép người dùng kết hợp nhiều bước xử lý dữ liệu và mô hình học máy thành một quy trình liền mạch. Điều này giúp giảm thiểu nguy cơ lỗi và tăng hiệu quả khi thực hiện các bước như chuẩn hóa dữ liệu, chọn đặc trưng và huấn luyện mô hình. Pipeline cũng làm cho mã nguồn dễ đọc hơn và dễ bảo trì, đồng thời hỗ trợ việc tinh chỉnh và đánh giá mô hình một cách hiệu quả.

Jupyter Notebook là một ứng dụng web cho phép bạn tạo và chia sẻ tài liệu chứa mã nguồn sống, phương trình, hình ảnh và văn bản giải thích. Nó được sử dụng rộng rãi trong các lĩnh vực như phân tích dữ liệu, học máy, và nghiên cứu khoa học, giúp người dùng ghi chú, thực hiện và chia sẻ mã nguồn Python một cách trực quan và hiệu quả. Jupyter Notebook hỗ trợ nhiều ngôn ngữ lập trình khác nhau và là công cụ không thể thiếu cho việc học tập và nghiên cứu trong lĩnh vực khoa học máy tính.

PHÂN TÍCH HỆ THỐNG

Phần mềm xác định cảm xúc của người dùng thông qua tin nhắn, hoặc các bình luận. 2 Upload Text Data Người dùng có thể upload đoạn chữ và phần mềm sẽ xác định cảm xúc trong đoạn văn đó. Mô tả tóm tắt Phần mềm xác định cảm xúc của người dùng thông qua tin nhắn, hoặc các bình luận.

Dòng sự kiện chính Xác định được cảm xúc của từng user xong đoạn chat Dòng sự kiện phụ Đánh giá mức độ chính xác. Mô tả tóm tắt Phần mềm xác định cảm xúc trong câu văn Điều kiện trước Người dùng input câu văn. Dòng sự kiện chính Xác định được cảm xúc trong câu văn Dòng sự kiện phụ Đánh giá mức độ chính xác.

- Thu thập dữ liệu (Data Collection): Bước này liên quan đến việc thu thập dữ liệu văn bản cần thiết cho phân tích cảm xúc. - Tiền xử lý dữ liệu (Data Preprocessing): Ở giai đoạn này, dữ liệu được làm sạch và chuẩn bị để phân tích. - Đào tạo mô hình (Model Training): Bước này bao gồm việc huấn luyện các mô hình khác nhau như Hồi quy Logistic, Cây quyết định, v.v.

- Đánh giá mô hình (Model Evaluation): Ở đây, hiệu suất của các mô hình được đánh giá để chọn ra mô hình tốt nhất. - Phát triển giao diện (Interface Development): Bước này liên quan đến việc phát triển giao diện người dùng cho hệ thống.

Bảng 3.2 Đặc tả Use-case
Bảng 3.2 Đặc tả Use-case

HIỆN THỰC HỆ THỐNG

    - Vì data được lấy từ các commnet trên các trang mạng xã hội nên cần được xoá cái dấu @ với mục đích để tag người dùng vào bình luận hoặc tin nhắn đó. Logistic Regression là một thuật toán học có giám sát được sử dụng để giải quyết các bài toán phân loại. Thuật toán này dựa trên mô hình hồi quy tuyến tính và sử dụng hàm sigmoid để chuyển đổi đầu ra của mô hình thành xác suất.

    Mô hình Logistic Regression được sử dụng để dự đoán xác suất của một sự kiện xảy ra dựa trên các biến đầu vào. Ví dụ, nếu bạn muốn dự đoán xác suất một khách hàng sẽ mua một sản phẩm cụ thể, bạn có thể sử dụng mô hình Logistic Regression để dự đoán xác suất đó dựa trên các thông tin về khách hàng như tuổi, giới tính, thu nhập, v.v. DecisionTreeClassifier là một thuật toán học có giám sát được sử dụng để giải quyết các bài toán phân loại và hồi quy.

    Thuật toán này xây dựng một cây quyết định bằng cách chia tập dữ liệu thành các tập con dựa trên các thuộc tính của dữ liệu. Quá trình này được lặp lại cho đến khi không thể chia tập dữ liệu thành các tập con nữa hoặc khi đạt được một điều kiện dừng khác. Cây quyết định có thể được sử dụng để giải quyết các bài toán phân loại và hồi quy, tùy thuộc vào loại thuộc tính đầu ra.

    Nếu thuộc tính đầu ra là rời rạc, cây quyết định được sử dụng để giải quyết các bài toán phân loại, trong khi nếu thuộc tính đầu ra là liên tục, cây quyết định được sử dụng để giải quyết các bài toán hồi quy. RandomForestClassifier là một thuật toán học có giám sát được sử dụng để giải quyết các bài toán phân loại và hồi quy. Mỗi cây quyết định được xây dựng trên một tập dữ liệu con được lấy ngẫu nhiên từ tập dữ liệu huấn luyện, và các cây quyết định này được kết hợp lại để tạo ra một mô hình dự đoán chính xác và ổn định.

    Thuật toán RandomForestClassifier có thể được sử dụng để giải quyết các bài toán phân loại và hồi quy, tùy thuộc vào loại thuộc tính đầu ra. Nếu thuộc tính đầu ra là rời rạc, RandomForestClassifier được sử dụng để giải quyết các bài toán phân loại, trong khi nếu thuộc tính đầu ra là liên tục, RandomForestClassifier được sử dụng để giải quyết các bài toán hồi quy. SVC là viết tắt của “Support Vector Classifier”, là một thuật toán học có giám sát được sử dụng để giải quyết các bài toán phân loại.

    Thuật toán này dựa trên mô hình hồi quy tuyến tính và sử dụng các vector hỗ trợ để phân chia các lớp. Thuật toán SVC tìm kiếm một siêu phẳng (hyperplane) trong không gian nhiều chiều để phân chia các điểm dữ liệu thành các lớp khác nhau.