You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

BERT Sentiment Analysis on Amazon Polarity:

This model fine-tunes the bert-base-uncased model from Google on the Amazon Polarity dataset to classify customer reviews into positive or negative sentiment.


Model Details:-

Model Description:

  • Developed by: Ganesh Arihanth
  • Finetuned from model: google-bert/bert-base-uncased
  • Language(s): English
  • License: MIT
  • Model type: Transformer-based sentiment classifier
  • Dataset used: fancyzhx/amazon_polarity
  • Pipeline type: text-classification

Model Sources:

Results:

Metric Value
Accuracy 96.5%
F1 Score 96.36%
Precision ~96.3%
Recall ~96.4%

Uses:-

Direct Use:

  • Binary sentiment classification (positive/negative) of product reviews
  • Customer feedback analysis
  • E-commerce analytics dashboards

Downstream Use:

  • Chatbots or virtual assistants for feedback and understanding
  • Review filtering systems
  • Business intelligence tools for automated sentiment insights

Out-of-Scope Use:

  • Not suitable for non-English text without re-training
  • Not suitable for detecting sarcasm or highly nuanced sentiment
  • Not trained for offensive content detection

Bias, Risks, and Limitations:-

  • Trained only on Amazon product reviews; may not generalise well to other domains
  • Risk of overfitting to Amazon-specific language
  • May perform poorly on concise, ambiguous, or sarcastic reviews

Recommendations:-

  • Evaluate on your domain-specific test set before deployment
  • Retrain or fine-tune further if accuracy is low on your data

How to Use:-

import torch
from transformers import BertTokenizerFast, BertForSequenceClassification

# Set the device (use GPU if available)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")

# Load the saved model and tokenizer
model_path = "GaneshArihanth/bert-amazon-sentiment"  # Change to your actual HF repo path
tokenizer = BertTokenizerFast.from_pretrained(model_path)
model = BertForSequenceClassification.from_pretrained(model_path)
model.to(device)
model.eval()

# Function to predict sentiment
def predict_sentiment(text):
    inputs = tokenizer(
        text,
        padding="max_length",
        truncation=True,
        max_length=128,
        return_tensors="pt"
    )
    input_ids = inputs["input_ids"].to(device)
    attention_mask = inputs["attention_mask"].to(device)

    with torch.no_grad():
        outputs = model(input_ids, attention_mask=attention_mask)
        logits = outputs.logits
        prediction = torch.argmax(logits, dim=-1).item()

    sentiment = "Positive ๐Ÿ˜Š" if prediction == 1 else "Negative ๐Ÿ˜–"
    return sentiment

# Example usage
while True:
    user_input = input("Enter a review (or 'exit' to quit): ")
    if user_input.lower() == "exit":
        break
    result = predict_sentiment(user_input)
    print(f"Predicted Sentiment: {result}")

Training Procedure:-

  • Hardware: NVIDIA RTX 3060 (12GB VRAM)
  • Batch Size: 64
  • Epochs: 2
  • Optimizer: AdamW
  • Learning Rate: 2e-5
  • Max Sequence Length: 512
  • Mixed Precision: Enabled (FP16)
  • Framework: PyTorch + Hugging Face Transformers

Technical Specifications:-

Model Architecture

  • Model: BERT (base, uncased)

  • Parameters: 110M

  • Layers: 12

  • Heads: 12

  • Hidden Size: 768

  • Task Objective: Binary classification using [CLS] token

Infrastructure

  • Environment: Python 3.10+, PyTorch, Hugging Face Transformers

  • Device: RTX 3060 with CUDA


Downloads last month
0
Safetensors
Model size
109M params
Tensor type
F32
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ 1 Ask for provider support

Model tree for GaneshArihanth/SentimentAnalysis-Bert

Finetuned
(5288)
this model

Dataset used to train GaneshArihanth/SentimentAnalysis-Bert