Financial Sentiment Analysis with FinBERT
This repository contains a financial sentiment analysis model fine-tuned on ProsusAI/finbert
. The model classifies financial text (like tweets or news headlines) into three categories: Bullish, Bearish, or Neutral.
The project includes scripts for data preprocessing, model training with hyperparameter optimization, and a Streamlit web application for interactive predictions.
Model Card
Model Description
This model is a BertForSequenceClassification
based on the ProsusAI/finbert
architecture. It has been fine-tuned to predict the sentiment of financial text. The model was trained on a dataset of financial tweets and headlines, and it outputs one of three labels: Bullish
, Bearish
, or Neutral
.
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
MODEL_PATH = "path to your model"
tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
model = AutoModelForSequenceClassification.from_pretrained(MODEL_PATH)
pipe = pipeline("text-classification", model=model, tokenizer=tokenizer)
# Analyze sentiment
results = pipe("Adobe price target raised to $350 vs. $320 at Canaccord")
print(results)
# [{'label': 'Bullish', 'score': 0.9...}]
Training Data
The model was trained on the Twitter Financial News Sentiment dataset. The text data undergoes a comprehensive cleaning process (data_preprocessing.py
) which includes:
- Downloads last month
- 33