← Back to projects

Three-Class Sentiment Analysis in Movie Reviews

Python Deep Learning NLP PyTorch BERT

The Problem

Standard sentiment analysis treats reviews as binary (positive/negative), but real opinions are more nuanced. A 3-star review isn't negative; it's neutral. Reframing sentiment as a three-class problem (bad/neutral/good) better reflects how people actually express opinions, but it's significantly harder for models to learn.

What I Built

A comprehensive evaluation of five deep learning architectures on 50,000 IMDb reviews reclassified into three sentiment categories. Includes systematic ablation studies isolating the contribution of each architectural component.

Architectures Evaluated

ModelMacro-F1Key Characteristic
LSTM0.721Sequential processing, captures long-range dependencies
BiLSTM0.738Bidirectional context, better phrase understanding
CNN0.712N-gram feature extraction, fast inference
GRU0.729Simpler gating, fewer parameters than LSTM
BERT0.784Pre-trained contextual embeddings, attention mechanism

Ablation Studies

Rather than just reporting final scores, I isolated individual components to understand what actually drives performance:

Key Findings

Links

GitHub Repository | Research Paper (PDF)