Dự án môn học Xử lý ngôn ngữ tự nhiên (NLP), xây dựng ứng dụng Web trích xuất các thuật ngữ chuyên ngành công nghệ (ví dụ: "trí tuệ nhân tạo", "mô hình ngôn ngữ", "big data"...) từ văn bản tiếng Việt.
Dự án so sánh hiệu quả giữa các phương pháp Machine Learning truyền thống và Deep Learning.
Dự án được tổ chức thành 3 thư mục chính:
NLP-app/
├── database/ # DỮ LIỆU
│ └── (Chứa 2000 câu văn bản tiếng Việt thô/raw data)
│
├── training/ # HUẤN LUYỆN MÔ HÌNH
│ ├── combined_data.json # File dữ liệu 2099 câu văn bản tiếng việt đã gắn nhãn
│ ├── DATA TEST POS TAGGING.xlsx #File 120 câu văn bản tiếng việt dùng để test mô hình
│ ├── POS_TAGGING.ipynb # Code chính phụ trách việc huấn luyện và chấm điểm mô hình
│ ├── ket_qua_chi_tiet.txt # Điểm của 4 mô hình ML và 1 mô hình DL sau huấn luyện
│ ├── TEST_POS_SVM_GOLD.json
│ └── deployment_resources/# Chứa các file mô hình đã huấn luyện
│ ├── bilstm.h5 # Model Bi-LSTM
│ ├── svm_final.joblib # Model SVM
│ ├── rf_final.joblib # Model Random Forest (Cần tải thủ công)
│ ├── label_encoder.joblib
│ ├── logreg_final.joblib
│ ├── max_len.json
│ ├── nb_final.joblib
│ ├── phrase_vocab.pkl
│ ├── tag2idx.json
│ ├── word2idx.json
│ └── vec_full.joblib
│
├── application/ # ỨNG DỤNG DEMO (STREAMLIT)
│ ├── app.py # File chính để chạy ứng dụng
│ ├── requirements.txt # Danh sách thư viện cần thiết
│ └── deployment_resources/# Chứa các file mô hình đã huấn luyện
│ ├── bilstm.h5 # Model Bi-LSTM
│ ├── svm_final.joblib # Model SVM
│ ├── rf_final.joblib # Model Random Forest (Cần tải thủ công)
│ ├── label_encoder.joblib
│ ├── logreg_final.joblib
│ ├── max_len.json
│ ├── nb_final.joblib
│ ├── phrase_vocab.pkl
│ ├── tag2idx.json
│ ├── word2idx.json
│ └── vec_full.joblib
│
├── venv/ # Môi trường ảo (Không lưu trên Git)
└── README.md # Hướng dẫn sử dụng
Hệ thống đáp ứng yêu cầu sử dụng 3 mô hình Machine Learning và 1 mô hình Deep Learning:
- Machine Learning:
- Support Vector Machine (SVM)
- Logistic Regression
- Random Forest
- Naive Bayes
- Deep Learning:
- Bi-LSTM (Bidirectional Long Short-Term Memory)
Để đảm bảo tương thích với các mô hình đã huấn luyện (đặc biệt là TensorFlow), bắt buộc sử dụng:
- Python: Phiên bản 3.10 (Khuyên dùng 3.10.11).
- Hệ điều hành: Windows, macOS, hoặc Linux.
git clone https://github.com/Sunphuynx/NLP-app.git
cd NLP-app
- Windows:
# Đảm bảo dùng Python 3.10
py -3.10 -m venv venv
.\venv\Scripts\activate
- macOS / Linux:
python3.10 -m venv venv
source venv/bin/activate
Lưu ý file requirements.txt nằm trong thư mục application:
pip install -r application/requirements.txt
Do giới hạn của GitHub, file mô hình Random Forest (rf_final.joblib) (>100MB) không có sẵn trong mã nguồn này.
- Liên hệ nhóm phát triển hoặc truy cập Link Google Drive này để tải file
rf_final.joblib. - Copy file tải về vào thư mục:
application/deployment_resources/
Do mã nguồn ứng dụng nằm trong thư mục application, bạn cần di chuyển vào đó trước khi chạy:
cd application
streamlit run app.py
Trình duyệt sẽ tự động mở tại http://localhost:8501.
1. Lỗi ModuleNotFoundError: No module named 'numpy._core'
- Nguyên nhân: Xung đột giữa model train bằng Numpy 2.0 và App chạy Numpy 1.x.
- Khắc phục: Mã nguồn
app.pyhiện tại đã được xử lý để tương thích. Nếu vẫn bị, hãy đảm bảo bạn đang cài đúng các phiên bản trongrequirements.txt.
2. Lỗi không tìm thấy file app.py
- Hãy chắc chắn bạn đã chạy lệnh
cd applicationtrước khi gõstreamlit run app.py.
3. WordCloud bị lỗi ô vuông (□□□)
- Máy thiếu font tiếng Việt. Hãy tải file font
Roboto.ttfvà bỏ vào thư mụcapplication/deployment_resources/.
Nhóm thực hiện:
- [Phạm Duy Hoàng]
- [Phùng Chí Tâm]
- [Nguyễn Minh Khoa]
- [Biện Bùi Duy Quang]