Skip to content

Parva101/Topic-based-Sentiment-Analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

ABSA Review Atlas

A GitHub-ready project that fetches business reviews from Google Maps (scrape first, API fallback), surfaces top keywords, and runs aspect-based sentiment analysis with a React dashboard.

Features

  • Business name or Google Maps URL input
  • Scrape Google Maps reviews (Playwright)
  • Fallback to Google Places API when scraping fails (if API key present)
  • Auto keyword/topic suggestions when user doesn’t provide aspects
  • Aspect-level sentiment analysis
  • Interactive charts and review explorer

Project Structure

  • backend/ FastAPI service (scraping + analysis)
  • frontend/ React (Vite) dashboard
  • *.ipynb Original notebooks kept for reference

Prerequisites

  • Python 3.10+
  • Node 18+

Setup

Backend

cd backend
python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt
python -m playwright install

Create backend/.env based on backend/.env.example if you want API fallback. You can also set SCRAPE_FIRST=false to skip scraping and go straight to the API.

Scraping Limitation

The scraper is now limited to Google Travel hotel review URLs, but you can also paste a hotel name and it will auto-navigate to the first Google Travel result. Paste a hotel review URL like: https://www.google.com/travel/hotels/entity/.../reviews?...

Run:

uvicorn main:app --reload --port 8000

Frontend

cd frontend
npm install
npm run dev

The frontend proxies /api to http://localhost:8000 in dev.

Notes on Scraping

Google Maps DOM changes frequently, so scraping can break. The backend always tries scraping first, then uses Places API if a key is available.

Next Steps

  • Add caching and rate limiting
  • Persist analysis results
  • Add user accounts

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors