Spaces:
Sleeping
Sleeping
title: News Summarizer | |
emoji: 📰 | |
colorFrom: blue | |
colorTo: green | |
sdk: gradio | |
sdk_version: 5.22.0 | |
app_file: app.py | |
pinned: false | |
# Live Company News Analyzer | |
**A project by Sara Nimje - [Visit Portfolio Website](https://saranimje.github.io/)** | |
This application fetches live news articles for a company, analyzes sentiment, summarizes content, and converts it into Hindi audio. | |
## Objective: | |
I have developed a web-based application that extracts key details from multiple news articles related to a given company. The application performs sentiment analysis, conducts a comparative analysis, and generates a text-to-speech (TTS) output in Hindi. Users can input a company name and receive a structured sentiment report along with an audio summary, making the information more accessible and insightful. | |
# Project Setup | |
## Installation: | |
- Clone this repository - | |
`git clone https://github.com/saranimje/news-summarizer.git ` | |
- Navigate to directory - | |
`cd news-summarizer` | |
- Install Dependencies - | |
`pip install -r requirements.txt` | |
- Run Gradio App - | |
`python app.py` | |
- Run API (Optional) - | |
`uvicorn api:app --reload` | |
# Model Details | |
## Summarization Model | |
- Uses transformers from Hugging Face. | |
- Model: `google/long-t5-tglobal-base` | |
## Sentiment Analysis | |
Uses default sentiment-analysis pipeline from Hugging Face. | |
## Topic Modelling | |
- Uses TF-IDF vectorization with NMF (Non-Negative Matrix Factorization) to extract key topics from news articles. | |
- Utilizes cosine similarity to measure relationships between articles. | |
## Text-to-Speech | |
Uses `gTTS (Google Text-to-Speech)` | |
## Translation | |
Uses `GoogleTranslator` (source: English, target: Hindi). | |
# API Development | |
This project includes a **FastAPI-based API** to fetch news articles and analyze them. | |
## **Endpoints:** | |
**1. Home** | |
- `GET /` | |
- Returns: `{"message": "News Summarization API is running!"}` | |
**2. Fetch News** | |
- `GET /news/?company_name=Tesla&article_number=5` | |
- Returns JSON output containing news articles and analysis. | |
# API Development | |
## Using Postman or Curl: | |
1. Open **Postman** or any API testing tool. | |
2. Send a `GET` request to: | |
` http://127.0.0.1:8000/news/?company_name=Tesla&article_number=5` | |
3. View JSON response with news articles and summaries. | |
## Third-Party API Usage | |
- **News Sources**: Google Search (`googlesearch` Python module). | |
- **Libraries Used**: | |
- `requests` for API calls | |
- `gensim`, `deep_translator`, `nltk` for text processing. | |
- `googlesearch` to fetch news links. | |
- `feedparser` for RSS feeds. |