Dự án phân tích cảm xúc tài chính sử dụng mô hình FinBERT để phân loại sentiment của các câu về tài chính.
Dự án này sử dụng mô hình FinBERT (một biến thể của BERT được fine-tune cho lĩnh vực tài chính) để phân tích và phân loại cảm xúc của các câu về tài chính thành 3 loại:
- Positive (Tích cực)
- Negative (Tiêu cực)
- Neutral (Trung tính)
financial-sentiment-analysis/
├── data/
│ └── financial_sentiment_full.txt # Dataset training
├── src/
│ ├── train_finbert.py # Script training model
│ ├── predict.py # Hàm dự đoán sentiment
│ └── app.py # Streamlit web app
├── models/
│ └── finbert-trained/ # Model đã train
├── .gitignore
└── README.md
- Tạo môi trường ảo:
python -m venv venv- Kích hoạt môi trường ảo:
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate- Cài đặt các gói cần thiết:
pip install pandas numpy scikit-learn nltk transformers torch streamlit matplotlib seaborn datasets accelerateChạy script để train model:
python src/train_finbert.pyModel sẽ được lưu vào ./models/finbert-trained/final
Sử dụng script predict:
python src/predict.pyHoặc import trong code:
from src.predict import predict_sentiment
label, confidence = predict_sentiment("The company expects strong revenue growth.")
print(f"{label} ({confidence:.4f})")Chạy web app:
streamlit run src/app.pyWeb app sẽ mở tại http://localhost:8501 với các tính năng:
- 📝 Single Text Analysis: Phân tích sentiment cho một câu
- 📄 Batch Analysis: Phân tích nhiều câu cùng lúc
- 📊 Visualization: Hiển thị kết quả với màu sắc và confidence score
Dataset chứa 2478 mẫu với phân bố:
- Positive: 1254 mẫu
- Negative: 1156 mẫu
- Neutral: 68 mẫu
positive→ 1negative→ 0neutral→ 2
review.Financial.Sentiment.Analysis.mp4
Financial Sentiment Analysis Project