A package for financial news sentiment analysis and entity extraction
Project description
Sentiscope
Sentiscope is a powerful Python package for analyzing sentiment and extracting entities from financial news articles. It leverages multiple state-of-the-art sentiment analysis models and named entity recognition techniques to provide comprehensive insights into financial news.
Features
- Fetch financial news articles for specific sectors using NewsAPI
- Perform sentiment analysis using multiple models:
- FinBERT
- VADER
- ESG-BERT
- FinBERT-Tone
- Flair
- Extract named entities using:
- NLTK
- Flair
Installation
pip install sentiscope
Quick Start
from sentiscope import SentimentAnalyzer, NewsFetcher, EntityExtractor
# Initialize components
sentiment_analyzer = SentimentAnalyzer()
news_fetcher = NewsFetcher(api_key="your_newsapi_key_here")
entity_extractor = EntityExtractor()
# Fetch news
news = news_fetcher.fetch_financial_news("Banking")
# Analyze sentiment and extract entities
for article in news:
finbert_sentiment = sentiment_analyzer.analyze_sentiment_finbert(article['description'])
vader_sentiment = sentiment_analyzer.analyze_sentiment_vader(article['description'])
entities = entity_extractor.extract_entities_flair(article['description'])
print(f"Title: {article['title']}")
print(f"FinBERT Sentiment: {finbert_sentiment}")
print(f"VADER Sentiment: {vader_sentiment}")
print(f"Entities: {entities}")
print("---")
Detailed Usage
Sentiment Analysis
Sentiscope offers multiple sentiment analysis models:
text = "The company reported strong earnings, beating market expectations."
finbert_sentiment = sentiment_analyzer.analyze_sentiment_finbert(text)
vader_sentiment = sentiment_analyzer.analyze_sentiment_vader(text)
esgbert_sentiment = sentiment_analyzer.analyze_sentiment_esgbert(text)
finbert_tone_sentiment = sentiment_analyzer.analyze_sentiment_finbert_tone(text)
flair_sentiment = sentiment_analyzer.analyze_sentiment_flair(text)
News Fetching
Fetch financial news for specific sectors:
news = news_fetcher.fetch_financial_news("Technology")
Models
Sentiscope uses the following pre-trained models:
- FinBERT: Fine-tuned BERT for financial sentiment analysis
- ESG-BERT: BERT model for environmental, social, and governance (ESG) sentiment
- FinBERT-Tone: BERT model for financial sentiment tone analysis
- Flair: General-purpose sentiment analysis and named entity recognition
- VADER: Rule-based sentiment analysis tool
Dependencies
- transformers
- torch
- nltk
- flair
- requests
Note
This package requires an API key from NewsAPI to fetch financial news articles. You can obtain a key by registering at https://newsapi.org.
License
This project is licensed under the MIT License.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
If you encounter any issues or have questions, please file an issue on the GitHub repository.
Acknowledgements
Sentiscope is built on top of several open-source projects and pre-trained models. We are grateful to the developers and researchers who have made their work available to the community.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for SENTISCOPE-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96471b39a22586ba2e82c978251cc2fa680478607a84058a49e986e59dde944e |
|
MD5 | 584be9c9c2bb77e57fce908ecadf1d05 |
|
BLAKE2b-256 | 078386e7a35ba18b223202417ee8ebead2e377c681cf32259b86fb6244a488c1 |