CoolFace
Modelpublic

Driisa/finbert-finetuned-github

sourceHugging Facemitupdated 2y agoView on Hugging Face
1likes12downloads
Model Card

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

ParameterValue
Model ArchitectureFinBERT (based on BERT)
Batch Size8
Learning Rate2e-5
Epochs3
OptimizerAdamW
Evaluation MetricF1-Score, Accuracy

๐Ÿ“Š Model Performance

DatasetAccuracyF1 (Weighted)PrecisionRecall
Financial PhraseBank (Train)95.21%95.23%95.32%95.21%
GitHub Test Set64.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]}")