Skip to main content

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

SENTISCOPE-0.2.1.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

SENTISCOPE-0.2.1-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file SENTISCOPE-0.2.1.tar.gz.

File metadata

  • Download URL: SENTISCOPE-0.2.1.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.13

File hashes

Hashes for SENTISCOPE-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c080438bd2e03ed8486c7b86ed9b71ebad3bbe785bca9acf99ed60f51596b3d0
MD5 745f7783610441a8d27068eea8016be3
BLAKE2b-256 343b87bcfd3242794f9dd4114f26f31d3e81307a6ccedc5a7dafe9287bb8266e

See more details on using hashes here.

File details

Details for the file SENTISCOPE-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: SENTISCOPE-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.13

File hashes

Hashes for SENTISCOPE-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 96471b39a22586ba2e82c978251cc2fa680478607a84058a49e986e59dde944e
MD5 584be9c9c2bb77e57fce908ecadf1d05
BLAKE2b-256 078386e7a35ba18b223202417ee8ebead2e377c681cf32259b86fb6244a488c1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page