news-summarizer / README.md
saranimje's picture
Update README.md
e22e611 verified

A newer version of the Gradio SDK is available: 5.23.3

Upgrade
metadata
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 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.