Business Context
ShopSphere, an online retail platform, receives customer feedback from app reviews, post-purchase surveys, chat transcripts, and support emails. The customer experience team wants an NLP pipeline that summarizes major issues, measures sentiment, and surfaces actionable themes by product area.
Data
- Volume: 350,000 feedback records collected over 12 months
- Text length: 5-800 words (median: 42 words)
- Language: English only for the first version
- Sources: star-rated reviews, free-text survey responses, support conversations
- Labels available: 120,000 records have historical sentiment labels; the rest are unlabeled
- Distribution: Positive 58%, Neutral 19%, Negative 23%
Success Criteria
A good solution should achieve macro-F1 >= 0.82 on sentiment classification, produce interpretable topic clusters for negative feedback, and support weekly reporting on top complaint drivers by product category.
Constraints
- Inference should run in batch on a single CPU machine for weekly reporting
- The approach must be explainable enough for non-technical stakeholders
- Personally identifiable information should be removed before modeling
Requirements
- Build a preprocessing pipeline for noisy customer feedback text
- Train a sentiment classifier for positive, neutral, and negative feedback
- Extract recurring themes from negative feedback using topic modeling or clustering
- Show how you would aggregate results by product line, channel, or time period
- Provide evaluation metrics, error analysis, and examples of likely failure cases
- Implement the solution in modern Python using common NLP libraries