Skip to content

About

# ReviewMind Aspect-Based Sentiment Analysis & Rating Prediction Platform ## Overview ReviewMind is a research-grade and product-oriented NLP system that analyzes user reviews to: - Extract aspects - Determine sentiment per aspect - Predict an overall numerical rating

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

ย 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿง  ReviewMind

Production-Ready Aspect-Based Sentiment Analysis & Rating Prediction Platform

Python PyTorch FastAPI License

An AI-powered system that analyzes user-generated reviews to extract product aspects, determine sentiment per aspect, and predict overall ratings with state-of-the-art accuracy.


๐Ÿ“‹ Table of Contents


๐ŸŽฏ Overview

ReviewMind is an end-to-end Aspect-Based Sentiment Analysis (ABSA) system that combines cutting-edge Large Language Models with traditional machine learning techniques to provide comprehensive review analysis.

What It Does

Given a user review like:

"The product quality is amazing and delivery was super fast,
but the packaging was damaged."

ReviewMind outputs:

{
  "aspects": [
    { "aspect": "quality", "sentiment": "positive" },
    { "aspect": "delivery", "sentiment": "positive" },
    { "aspect": "packaging", "sentiment": "negative" }
  ],
  "rating": 3.8
}

Use Cases

  • ๐Ÿ›’ E-commerce: Analyze product reviews to identify strengths and weaknesses
  • ๐Ÿ“ฑ SaaS: Monitor customer feedback for feature-specific sentiment
  • ๐Ÿจ Hospitality: Track service quality across multiple dimensions
  • ๐Ÿ“Š Market Research: Extract actionable insights from customer feedback
  • ๐Ÿ” Competitive Analysis: Compare sentiment across product categories

โœจ Key Features

๐Ÿค– Hybrid AI Architecture

  • Fine-tuned LLM: Qwen2.5-7B with LoRA/QLoRA for aspect extraction and sentiment classification
  • Ensemble ML: XGBoost + CatBoost + LightGBM with Ridge meta-learner for rating prediction
  • Multi-task Learning: Joint training for aspect detection, sentiment analysis, and rating regression

๐Ÿš€ Production-Ready

  • FastAPI Backend: RESTful API with < 2s inference latency
  • Modular Design: Separated concerns for easy maintenance and extensibility
  • Configuration-Driven: YAML-based hyperparameter management
  • Type-Safe: Dataclass validation throughout the pipeline
  • Comprehensive Logging: Structured logging for debugging and monitoring

๐Ÿ“Š Advanced Feature Engineering

  • 43+ Features: Aspect-based, text-based, quality-based, and interaction features
  • Configurable Lexicons: Domain-specific sentiment dictionaries
  • Quality Scoring: Automatic LLM output quality assessment
  • Weighted Predictions: Confidence-based sample weighting

๐ŸŽ“ Research-Grade

  • Reproducible: Fixed random seeds, versioned datasets, documented experiments
  • Well-Documented: Complete SRS, MDD, DRS, and training plans
  • Extensible: Easy to add new models, features, or evaluation metrics
  • Transparent: Semi-supervised annotation strategy with human validation

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                        Frontend (Next.js)                    โ”‚
โ”‚                  [In Development - Coming Soon]              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                โ”‚ REST API
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     FastAPI Backend                          โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚           ReviewMind Pipeline Orchestrator             โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚         โ”‚                              โ”‚                     โ”‚
โ”‚         โ–ผ                              โ–ผ                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”‚
โ”‚  โ”‚  LLM Component  โ”‚          โ”‚  Ensemble ML       โ”‚       โ”‚
โ”‚  โ”‚  Qwen2.5-7B     โ”‚          โ”‚  Rating Predictor  โ”‚       โ”‚
โ”‚  โ”‚  + LoRA         โ”‚          โ”‚  XGB+Cat+LGB+Ridge โ”‚       โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ”‚
โ”‚         โ”‚                              โ”‚                     โ”‚
โ”‚         โ–ผ                              โ–ผ                     โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚           Feature Extraction & Processing            โ”‚  โ”‚
โ”‚  โ”‚  โ€ข Aspect Parser  โ€ข Text Features  โ€ข Quality Score   โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Component Breakdown

  1. API Layer (api/): FastAPI endpoints for single and batch inference
  2. Pipeline Layer (src/pipeline/): Orchestrates LLM and ensemble models
  3. Model Layer (src/model/): Feature extraction, training, and evaluation
  4. Inference Layer (src/inference/): Production-ready prediction interface
  5. Data Layer (src/data/): Data loading, preprocessing, and validation
  6. Training Layer (src/training/): Model fine-tuning and ensemble training

๐Ÿ“ฆ Installation

Prerequisites

  • Python: 3.10 or higher
  • Hardware:
    • Apple Silicon (M1/M2/M3/M4) with Metal support (recommended)
    • OR NVIDIA GPU with CUDA support
    • Minimum 16GB RAM (24GB recommended for training)
  • OS: macOS, Linux, or Windows with WSL2

Clone Repository

git clone https://github.com/barandincoguz/SentimentAnalysis.git
cd ReviewMind\ Sentiment\ Analysis

Install Dependencies

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install requirements
pip install -r requirements.txt

# Install PyTorch (for Apple Silicon)
pip3 install torch torchvision torchaudio

# Install PyTorch (for CUDA)
# pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

Download Models

# Download base Qwen2.5-7B model
python scripts/download_model.py

# Or manually download fine-tuned model from Hugging Face
# Model will be loaded automatically during first inference

๐Ÿš€ Quick Start

Start API Server

# Start FastAPI server
cd api
uvicorn main:app --reload --host 0.0.0.0 --port 8000

Access API documentation at http://localhost:8000/docs

Make Predictions

Using Python SDK

from src.pipeline.run_pipeline import ReviewMindPipeline

# Initialize pipeline
pipeline = ReviewMindPipeline()

# Analyze a review
review_text = "Amazing product! Quality is top-notch but delivery was slow."
result = pipeline.predict(review_text)

print(f"Rating: {result['rating']}โญ")
print("Aspects:")
for aspect in result['aspects']:
    print(f"  - {aspect['aspect']}: {aspect['sentiment']}")

Using API (curl)

curl -X POST "http://localhost:8000/analyze" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "Great quality but shipping was terrible!",
    "include_aspects": true
  }'

Using API (Python requests)

import requests

response = requests.post(
    "http://localhost:8000/analyze",
    json={"text": "Excellent product, highly recommend!"}
)
result = response.json()
print(result)

Batch Processing

reviews = [
    {"text": "Great product!"},
    {"text": "Poor quality, very disappointed."},
    {"text": "Good value for money."}
]

response = requests.post(
    "http://localhost:8000/analyze/batch",
    json={"reviews": reviews}
)
results = response.json()

๐Ÿค– Model Details

LLM Component: Qwen2.5-7B-Instruct

Base Model: Qwen/Qwen2.5-7B-Instruct

Fine-Tuning Strategy:

  • Method: Parameter-Efficient Fine-Tuning (PEFT) with LoRA
  • LoRA Configuration:
    • Rank (r): 16
    • Alpha: 32
    • Target modules: q_proj, v_proj
    • Dropout: 0.05
  • Quantization: 4-bit QLoRA for efficient training on consumer hardware
  • Precision: bfloat16 computation

Training Configuration:

  • Batch size: 1-2 with gradient accumulation
  • Epochs: 3-5
  • Learning rate: 2e-4 with cosine scheduler
  • Optimizer: AdamW
  • Warmup: 5% of total steps

Model Capabilities:

  • Structured JSON output generation
  • Multi-task learning (aspect extraction + sentiment classification)
  • Multilingual support (English + Turkish)
  • Instruction-following with zero-shot generalization

Ensemble Rating Predictor

Architecture: Stacked Ensemble with Meta-Learning

Base Models:

  1. XGBoost Regressor
    • RandomizedSearchCV for hyperparameter tuning
    • 20 iterations, 5-fold cross-validation
    • Objective: reg:squarederror
  2. CatBoost Regressor
    • MAE loss function
    • Early stopping (50 rounds)
    • Max depth: 6, Iterations: 1000
  3. LightGBM Regressor
    • Leaf-wise growth strategy
    • Early stopping (50 rounds)
    • Num leaves: 31, Iterations: 1000

Meta-Learner: Ridge Regression (ฮฑ=0.5)

  • Combines predictions from base models
  • Trained on out-of-fold predictions
  • Prevents overfitting through regularization

Feature Engineering (43 features):

  • Aspect Features (8): Positive/negative/neutral counts, ratios, net score, entropy
  • Text Features (25): Sentiment keywords, punctuation signals, linguistic markers
  • Quality Features (6): Generic aspect detection, diversity scores
  • Interaction Features (4): Sentiment alignment, confidence scores

๐Ÿ“ก API Documentation

Endpoints

POST /analyze

Analyze a single review

Request:

{
  "text": "Amazing product!",
  "include_aspects": true
}

Response:

{
  "text": "Amazing product!",
  "aspects": [{ "aspect": "quality", "sentiment": "positive" }],
  "rating": 4.8,
  "processing_time": 1.23
}

POST /analyze/batch

Analyze multiple reviews in one request

Request:

{
  "reviews": [{ "text": "Great quality!" }, { "text": "Poor service." }]
}

Response:

{
  "results": [
    {
      "text": "Great quality!",
      "aspects": [...],
      "rating": 4.5
    },
    {
      "text": "Poor service.",
      "aspects": [...],
      "rating": 2.1
    }
  ],
  "total_processed": 2,
  "processing_time": 2.45
}

POST /feedback

Submit feedback for model improvement

Request:

{
  "review_text": "...",
  "predicted_rating": 4.2,
  "actual_rating": 4.0,
  "aspects": [...]
}

Interactive API Docs

Visit http://localhost:8000/docs for Swagger UI documentation with live testing capabilities.


๐ŸŽ“ Training & Fine-Tuning

Fine-Tune LLM

# Prepare training data
python src/data/format_for_training.py

# Start fine-tuning
python src/training/train.py

Data Format:

{
  "instruction": "Analyze the following review...",
  "input": "The product quality is excellent!",
  "output": {
    "aspects": [{ "aspect": "quality", "sentiment": "positive" }],
    "rating": 5.0
  }
}

Train Ensemble Model

# Train rating prediction ensemble
python -m src.training.train_ensemble_refactored

Configuration: Edit configs/ensemble_config.yaml to customize:

  • Data paths
  • Model hyperparameters
  • Feature engineering settings
  • Training parameters

Output:

  • Trained models: models/rating_production/
  • Predictions: predictions_test.csv
  • Feature importance: feature_importance_xgboost.csv
  • Training metadata: training_metadata.pkl

Merge LoRA Adapters

# Merge fine-tuned adapters with base model
python src/utils/merge_models.py

๐Ÿ“Š Dataset

Data Sources

Primary Datasets:

  1. SemEval-2014 Task 4: Restaurant and Laptop reviews with aspect annotations
  2. Amazon Product Reviews: Multi-domain product reviews
  3. Custom Annotated Data: Semi-automatically labeled using weak supervision

Annotation Strategy

Semi-Supervised Approach:

  1. Base LLM generates pseudo-labels for raw reviews
  2. Human validation on stratified sample (20%)
  3. Iterative refinement based on validation feedback
  4. Final dataset: ~10,000 reviews with quality assurance

Aspect Taxonomy

Closed aspect set for consistency:

Aspect Description
quality Product or service quality
price Cost and value for money
delivery Shipping speed and reliability
packaging Packaging condition
usability Ease of use
support Customer service
experience Overall experience

Sentiment Labels

  • positive: Favorable opinion
  • neutral: Mixed or factual statement
  • negative: Unfavorable opinion

Rating Scale

  • Continuous values: 1.0 to 5.0
  • One decimal precision
  • Original scale preserved (no normalization)

Dataset Splits

Split Samples Percentage
Train ~8,000 80%
Validation ~1,000 10%
Test ~1,000 10%

๐Ÿ“ Project Structure

ReviewMind/
โ”œโ”€โ”€ api/                          # FastAPI application
โ”‚   โ”œโ”€โ”€ main.py                   # API endpoints
โ”‚   โ”œโ”€โ”€ schemas.py                # Pydantic models
โ”‚   โ””โ”€โ”€ __init__.py
โ”œโ”€โ”€ configs/                      # Configuration files
โ”‚   โ”œโ”€โ”€ ensemble_config.yaml      # Ensemble model config
โ”‚   โ””โ”€โ”€ model/
โ”‚       โ””โ”€โ”€ qwen2.5-7b-instruct.yaml
โ”œโ”€โ”€ data/                         # Datasets
โ”‚   โ”œโ”€โ”€ raw/                      # Raw review data
โ”‚   โ”œโ”€โ”€ processed/                # Processed training data
โ”‚   โ”œโ”€โ”€ ready/                    # Train/val/test splits
โ”‚   โ”œโ”€โ”€ splits/                   # JSON splits
โ”‚   โ””โ”€โ”€ schema/                   # JSON schemas
โ”œโ”€โ”€ docs/                         # Documentation
โ”‚   โ”œโ”€โ”€ review_mind_software_requirements_specification_srs.md
โ”‚   โ”œโ”€โ”€ review_mind_model_design_document_mdd.md
โ”‚   โ”œโ”€โ”€ review_mind_dataset_requirements_specification_drs.md
โ”‚   โ”œโ”€โ”€ review_mind_training_plan_experiment_design.md
โ”‚   โ”œโ”€โ”€ ensemble_model_README.md
โ”‚   โ”œโ”€โ”€ REFACTORING_SUMMARY.md
โ”‚   โ””โ”€โ”€ BEFORE_AFTER_COMPARISON.md
โ”œโ”€โ”€ models/                       # Model weights
โ”‚   โ”œโ”€โ”€ base/                     # Base Qwen2.5-7B
โ”‚   โ”œโ”€โ”€ finetuned/                # Fine-tuned LoRA adapters
โ”‚   โ”œโ”€โ”€ final/                    # Merged models
โ”‚   โ”œโ”€โ”€ rating/                   # Ensemble models (dev)
โ”‚   โ””โ”€โ”€ rating_production/        # Production ensemble
โ”œโ”€โ”€ scripts/                      # Utility scripts
โ”‚   โ”œโ”€โ”€ download_model.py         # Model downloader
โ”‚   โ”œโ”€โ”€ test_inference.py         # Inference testing
โ”‚   โ””โ”€โ”€ test_refactored_ensemble.py
โ”œโ”€โ”€ src/                          # Source code
โ”‚   โ”œโ”€โ”€ data/                     # Data processing
โ”‚   โ”‚   โ”œโ”€โ”€ ingestion.py
โ”‚   โ”‚   โ”œโ”€โ”€ preprocess.py
โ”‚   โ”‚   โ”œโ”€โ”€ labeler.py
โ”‚   โ”‚   โ”œโ”€โ”€ format_for_training.py
โ”‚   โ”‚   โ””โ”€โ”€ ensemble_data_loader.py
โ”‚   โ”œโ”€โ”€ model/                    # Model components
โ”‚   โ”‚   โ”œโ”€โ”€ config.py
โ”‚   โ”‚   โ”œโ”€โ”€ feature_extractors.py
โ”‚   โ”‚   โ”œโ”€โ”€ ensemble_trainer.py
โ”‚   โ”‚   โ””โ”€โ”€ model_evaluator.py
โ”‚   โ”œโ”€โ”€ training/                 # Training scripts
โ”‚   โ”‚   โ”œโ”€โ”€ train.py              # LLM fine-tuning
โ”‚   โ”‚   โ””โ”€โ”€ train_ensemble_refactored.py
โ”‚   โ”œโ”€โ”€ inference/                # Inference
โ”‚   โ”‚   โ””โ”€โ”€ ensemble_predictor.py
โ”‚   โ”œโ”€โ”€ pipeline/                 # Pipeline orchestration
โ”‚   โ”‚   โ””โ”€โ”€ run_pipeline.py
โ”‚   โ”œโ”€โ”€ tests/                    # Test scripts
โ”‚   โ”‚   โ”œโ”€โ”€ test_model.py
โ”‚   โ”‚   โ”œโ”€โ”€ test_pipeline.py
โ”‚   โ”‚   โ”œโ”€โ”€ interactive_demo.py
โ”‚   โ”‚   โ””โ”€โ”€ interactive_pipeline_tester.py
โ”‚   โ””โ”€โ”€ utils/                    # Utilities
โ”‚       โ”œโ”€โ”€ llm_parser.py
โ”‚       โ””โ”€โ”€ merge_models.py
โ”œโ”€โ”€ frontend/                     # Next.js frontend (Coming Soon)
โ”œโ”€โ”€ requirements.txt              # Python dependencies
โ”œโ”€โ”€ pyproject.toml               # Project metadata
โ””โ”€โ”€ README.md                    # This file

๐Ÿ“ˆ Performance Metrics

Aspect Extraction & Sentiment Classification

Metric Score
Aspect Extraction F1 0.87
Sentiment Accuracy 0.89
Aspect-Sentiment Joint Accuracy 0.82

Rating Prediction

Metric Score
MAE (Mean Absolute Error) 0.31
RMSE (Root Mean Square Error) 0.42
Rยฒ Score 0.88
Accuracy ยฑ0.5 stars 89%
Accuracy ยฑ1.0 stars 97%

Inference Performance

  • Single Review Latency: < 2 seconds
  • Batch Processing (100 reviews): < 15 seconds
  • Memory Usage: ~4GB (with model loaded)
  • Hardware: Apple M4 Pro (14-core CPU, 20-core GPU)

๐Ÿ› ๏ธ Development

Run Tests

# Test LLM inference
python scripts/test_inference.py

# Test ensemble model
python scripts/test_refactored_ensemble.py

# Test full pipeline
python src/tests/test_pipeline.py

# Interactive demo
python src/tests/interactive_demo.py

Code Quality

# Format code
black src/ api/

# Type checking
mypy src/

# Linting
pylint src/ api/

Configuration Management

Edit configs/ensemble_config.yaml for:

  • Hyperparameter tuning
  • Feature engineering adjustments
  • Data path configuration
  • Model selection

All changes take effect without code modifications.


๐Ÿ“š Documentation

Comprehensive documentation available in the docs/ directory:


๐Ÿ—บ๏ธ Roadmap

Phase 1: Backend (Completed โœ…)

  • Fine-tune Qwen2.5-7B for aspect extraction
  • Build ensemble rating prediction model
  • Create FastAPI backend
  • Implement feature engineering pipeline
  • Add comprehensive testing
  • Write documentation

Phase 2: Frontend (In Progress ๐Ÿšง)

  • Next.js application setup
  • Review input interface
  • Results visualization
  • Batch analysis dashboard
  • Historical analytics

Phase 3: Deployment (Planned ๐Ÿ“‹)

  • Docker containerization
  • Kubernetes orchestration
  • CI/CD pipeline
  • Monitoring and logging
  • Load balancing
  • Auto-scaling

Phase 4: Enhancements (Future ๐Ÿ”ฎ)

  • Multilingual expansion (Spanish, French, German)
  • Open aspect discovery
  • Confidence scores per prediction
  • Explainability features (attention visualization)
  • Model distillation for faster inference
  • Mobile app (React Native)

๐Ÿค Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Development Guidelines

  • Follow PEP 8 style guide
  • Add type hints to all functions
  • Write docstrings for public APIs
  • Include tests for new features
  • Update documentation as needed

๐Ÿ“„ License

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


๐Ÿ‘จโ€๐Ÿ’ป Author

Ahmet Baran Dinรงoguz


๐Ÿ™ Acknowledgments

  • Qwen Team for the excellent base model
  • Hugging Face for the Transformers library and model hosting
  • FastAPI for the modern web framework
  • SemEval for providing benchmark datasets
  • Open-source community for inspiration and tools

๐Ÿ“ž Support

For questions, issues, or feature requests:


Made with โค๏ธ for the AI/NLP community

โญ Star this repo if you find it useful!

About

# ReviewMind Aspect-Based Sentiment Analysis & Rating Prediction Platform ## Overview ReviewMind is a research-grade and product-oriented NLP system that analyzes user reviews to: - Extract aspects - Determine sentiment per aspect - Predict an overall numerical rating

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages