A News app with Sentiment analysis, Recommendations and Data Visualization.
A React frontend for my backend service and REST API which polls popular RSS news feeds for articles and performs sentiment analysis on headlines and descriptions.
- Classify news articles with their sentiment score from 1 to -1, positive/neutral/negative.
- User voting system for sentiment, inspired by hotukdeals and Reddit
- Articles filtering by metadata - sentiment rating, source and topic.
- Beautiful data visualization with MongoDB Atlas Charts.
- Recommendation system using OpenAI text embeddings - filter by semantically similar articles
- Generates a joint text embedding of article titles, genre, description which is stored in a Pinecone vector database
- Similar embeddings are queried and ranked based on the cosine distance between these vectors.
- MongoDB Realm
- React
- Redux
- Mantine React Framework
- FastAPI
- Python transformers
- Pinecone - vector database
Article headlines and descriptions are given a positivity score between -1 and 1. The model used is based on BERT,
via the transformers python package.
Sentiment results are stored with article metadata on a MongoDB database which is exposed to the web app.
For a more detailed technical breakdown and summary, visit Antony90/rss-news-sentiment-analysis.
- Node.js
- Antony90/rss-news-sentiment-analysis to populate the database with articles.
-
Run the web server locally
npm run start -
Start the backend service to collect news articles.