| --- |
| language: "en" |
| tags: |
| - deep-learning |
| - transformers |
| - huggingface |
| license: "mit" |
| datasets: |
| - my_dataset |
| model-name: "my_model" |
| --- |
| |
| # **FinBERT Fine-Tuned on Financial Sentiment (Financial PhraseBank + GitHub Dataset)** |
|
|
| ## **📌 Model Description** |
| This model is a fine-tuned version of **FinBERT** (`ProsusAI/finbert`) trained for **financial sentiment classification**. |
| It can classify financial text into **three categories**: |
| - **Negative (0)** |
| - **Neutral (1)** |
| - **Positive (2)** |
|
|
| ## **📂 Dataset Used** |
| This model was trained on: |
| ✅ **Financial PhraseBank** - A widely used financial sentiment dataset. |
| ✅ **GitHub Generated Sentiment Dataset** - An additional dataset to test the model. |
|
|
| ## **⚙️ Training Parameters** |
| | Parameter | Value | |
| |---------------------|--------| |
| | Model Architecture | FinBERT (based on BERT) | |
| | Batch Size | 8 | |
| | Learning Rate | 2e-5 | |
| | Epochs | 3 | |
| | Optimizer | AdamW | |
| | Evaluation Metric | F1-Score, Accuracy | |
|
|
| ## **📊 Model Performance** |
| | Dataset | Accuracy | F1 (Weighted) | Precision | Recall | |
| |-----------------|----------|--------------|------------|---------| |
| | Financial PhraseBank (Train) | 95.21% | 95.23% | 95.32% | 95.21% | |
| | GitHub Test Set | 64.42% | 64.34% | 70.52% | 64.42% | |
|
|
| ## **🚀 Intended Use** |
| This model is designed for: |
| ✅ **Financial Analysts & Investors** to assess sentiment of financial sentences in ex. reports, news, and stock discussions. |
| ✅ **Financial Institutions** for NLP-based sentiment analysis in automated trading. |
| ✅ **AI Researchers** exploring financial NLP models. |
|
|
| ## **⚠️ Limitations** |
| ⚠️ **May not generalize well to datasets with very different financial language.** |
| ⚠️ **Might require fine-tuning for specific financial domains (crypto, banking, startups).** |
|
|
| ## **📥 Usage Example** |
| You can use the model via Hugging Face Transformers: |
|
|
| ```python |
| from transformers import AutoModelForSequenceClassification, AutoTokenizer |
| |
| model_name = "Driisa/finbert-finetuned-github" |
| |
| # Load model and tokenizer |
| model = AutoModelForSequenceClassification.from_pretrained(model_name) |
| tokenizer = AutoTokenizer.from_pretrained(model_name) |
| |
| # Example input |
| text = "The company's stock has seen significant growth this quarter." |
| |
| # Tokenize and predict |
| inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True, max_length=128) |
| outputs = model(**inputs) |
| |
| # Get predicted class |
| predicted_class = outputs.logits.argmax().item() |
| print(f"Predicted Sentiment: {['Negative', 'Neutral', 'Positive'][predicted_class]}") |
| |