An open API service indexing awesome lists of open source software.

https://github.com/akshadk7/review-sphere

A dynamic review management platform integrating NLP-powered sentiment analysis, clustering, and recommendation systems to enhance user insights and product feedback.
https://github.com/akshadk7/review-sphere

autotagging clustering natural-language-processing recommender-system sentiment-analysis

Last synced: 27 days ago
JSON representation

A dynamic review management platform integrating NLP-powered sentiment analysis, clustering, and recommendation systems to enhance user insights and product feedback.

Awesome Lists containing this project

README

          

# **ReviewSphere**

_A dynamic review management platform integrating NLP-powered sentiment analysis, clustering, and recommendation systems to enhance user insights and product feedback._

---

## Features

- **Sentiment Analysis**
Automatically detect and classify reviews as positive or negative using a threshold-based sentiment model.
- **Tag Extraction**
Extract the most common tags from user reviews using Named Entity Recognition (NER).
- **Review Clustering**
Group similar reviews using K-Means clustering, enabling better insights into customer opinions.
- **Recommendation Engine**
Suggest products to users based on their review history and preferences.
- **Data Visualization**
- View common tags in a horizontal stack and a pie chart.
- Explore overall sentiment in bar and pie charts.
- **User-Friendly Interface**
- Add, view, and manage reviews through an interactive UI.
- See scrollable lists of reviews sorted by timestamps.

---

## Requirements

- Python 3.7+
- Libraries: `sqlite`, `uvicorn`, `fastapi`, `streamlit`, `spacy`, `scikit-learn`

---

## Tech Stack

### **Backend**

- **FastAPI**: Handles API endpoints and CRUD operations.
- **SQLite**: Lightweight database for persisting product, review, and user data.
- **Spacy**: Used for Named Entity Recognition (NER) and generating text embeddings for clustering.
- **TextBlob**: Provides sentiment analysis of review text.
- **Scikit-Learn**: Implements K-Means clustering for grouping reviews.

### **Frontend**

- **Streamlit**: Offers a clean, interactive UI for submitting and visualizing review data.

---

## Folder Structure

````plaintext
Review-Sphere/

├── backend/
│ ├── app/
│ │ ├── __init__.py
│ │ ├── main.py # FastAPI entry point
│ │ ├── database.py # Database models and operations
│ │ ├── models.py # Database schema initialization
│ │ ├── nlp_utils.py # NLP and clustering utilities
│ ├── requirements.txt # Backend dependencies
│ └── uvicorn_runner.py # Script to start FastAPI server

├── frontend/
│ ├── app.py # Streamlit frontend application
│ ├── requirements.txt # Frontend dependencies

└── store.db # SQLite database

````
---

## Installation

### **1. Backend Setup**
1. Create a virtual environment
```bash
conda create --name env_name
conda activate env_name
```

2. Navigate to the `backend` directory:
```bash
cd backend
```
3. Install dependencies:
```bash
pip install -r requirements.txt
```
4. Start the FastAPI server:
```bash
uvicorn app.main:app --reload
```

### **2. Frontend Setup**
1. Navigate to the `frontend` directory:
```bash
cd frontend
```
2. Install dependencies:
```bash
pip install -r requirements.txt
```
3. Run the Streamlit app:
```bash
streamlit run app.py
```

### **3. Using the Application**
- Open your browser at the URL provided by Streamlit (default : [http://localhost:8501](http://localhost:8501)).
- Select a product from the dropdown, submit reviews, and explore visualizations for sentiment analysis, tags, and clusters.
- View personalized recommendations for similar products.

---

## Future Enhancements
- **Deep Learning Integration**: Replace traditional models with Transformer-based architectures for improved sentiment analysis and tagging.
- **Collaborative Filtering**: Enhance the recommendation engine with collaborative filtering for better user-product matching.
- **Language Support**: Add support for multiple languages in reviews.
- **Customizable Dashboards**: Allow users to create custom reports and dashboards.

---

## Contributing

Contributions are welcome! Please fork the repository, create a branch, and submit a pull request.

---

## License

This project is licensed under the MIT License. See the LICENSE file for details.

---

Enjoy Reviewing the world of Recommendations! 🚀
````