Transform your online shopping experience with intelligent, conversational product research that replaces overwhelming search results with personalized, context-aware recommendations.
Curi is an intelligent conversational product research tool that addresses key pain points in online beauty shopping:
- Poor search relevance → Context-aware recommendations
- Choice overload → Curated, personalized suggestions
- Distrust in sponsored content → Real user insights and expert guidance
- Complex decision-making → Natural language queries and simplified results
- Ask questions like you're talking to a knowledgeable beauty consultant
- "I need a gentle cleanser for sensitive skin"
- "Find me anti-aging products for dry skin"
- "Recommend moisturizers that won't break me out"
- Semantic Search: Understands product descriptions, reviews, and user needs
- Collaborative Filtering: Recommends products based on similar users' preferences
- Context-Aware: Considers skin type, concerns, brand preferences, and effects
- Real User Insights: Extracts key themes and sentiments from reviews
- Product Details: Names, brands, categories, specifications
- User Ratings: Average ratings and review counts
- Review Analysis: Sentiment analysis and key insights
- Similar Products: Find alternatives and complementary items
- Chat-like Experience: Natural conversation flow
- Product Cards: Clean, informative product displays
- Interactive Elements: View details, find similar products
- Data Visualization: Rating distributions and brand insights
This MVP uses three comprehensive beauty product datasets:
-
Product Metadata (
meta_All_Beauty.jsonl): 203MB- Product titles, descriptions, features
- Brand information and categories
- Average ratings and review counts
- Product specifications and details
-
User Reviews (
All_Beauty.jsonl): 311MB- Detailed review text and titles
- User ratings and timestamps
- Verified purchase status
- Helpful vote counts
-
User Ratings (
ratings_Beauty.csv): 82MB- User-product interaction matrix
- 2+ million ratings for collaborative filtering
-
Data Processor (
data_processor.py)- Loads and preprocesses all data sources
- Builds TF-IDF matrices for semantic search
- Creates similarity matrices for recommendations
- Handles data persistence for faster loading
-
Conversational Engine (
conversational_engine.py)- Natural language processing and intent extraction
- Feature extraction (skin type, concerns, preferences)
- Query enhancement and smart filtering
- Review analysis and insight generation
-
Web Application (
app.py)- Streamlit-based modern interface
- Real-time chat interactions
- Product visualization and recommendations
- Data insights and analytics
- Python 3.8+
- Streamlit: Web application framework
- Scikit-learn: Machine learning and similarity calculations
- NLTK & TextBlob: Natural language processing
- Pandas: Data manipulation and analysis
- Plotly: Interactive data visualization
- Python 3.8 or higher
- 4GB+ RAM (for data processing)
- 1GB+ free disk space
-
Clone or download the project files
# Ensure you have the data files in the project directory: # - meta_All_Beauty.jsonl # - All_Beauty.jsonl # - ratings_Beauty.csv
-
Install dependencies
pip install -r requirements.txt
-
Run the application
streamlit run app.py
-
Open your browser
- Navigate to
http://localhost:8501 - The app will load data on first run (may take 2-5 minutes)
- Navigate to
Try these natural language queries to see Curi in action:
- "I need a gentle cleanser for sensitive skin"
- "Find me anti-aging products"
- "Recommend moisturizers for dry skin"
- "Show me products for acne-prone skin"
- "I want hydrating serums"
- "Find products that help with dark spots"
- "Recommend CeraVe products"
- "Show me The Ordinary serums"
- "Find La Roche-Posay moisturizers"
- "I want products that are gentle"
- "Find strong exfoliators"
- "Show me soothing products"
-
Natural Language Processing
- Understands beauty-related queries
- Extracts skin type, concerns, preferences
- Enhances queries with context
-
Intelligent Recommendations
- Semantic search based on product descriptions
- Collaborative filtering from user ratings
- Similar product suggestions
-
User Insights
- Sentiment analysis of reviews
- Key theme extraction
- Positive/negative insight highlighting
-
Modern Interface
- Chat-like interaction
- Product cards with ratings
- Interactive details and similar products
-
Advanced NLP
- More sophisticated intent recognition
- Better context understanding
- Multi-turn conversations
-
Enhanced Recommendations
- Price-based filtering
- Ingredient analysis
- Personalized user profiles
-
Additional Features
- Product comparison tools
- Shopping list creation
- Price tracking and alerts
The application processes data in stages:
-
Initial Load (2-5 minutes on first run)
- Loads all data sources
- Preprocesses and cleans data
- Builds TF-IDF matrices
- Creates similarity matrices
-
Cached Loading (30 seconds on subsequent runs)
- Loads preprocessed data from cache
- Maintains all similarity matrices
-
Real-time Processing
- Natural language query processing
- Dynamic recommendation generation
- Review analysis and insights
- Natural language input
- Conversational responses
- Product recommendations
- Interactive product cards
- Quick actions (popular products, clear chat)
- Example queries for inspiration
- Data statistics and insights
- Product rating distributions
- Top brands by product count
- Real-time data insights
- Update
data_processor.pyto load new data - Modify preprocessing in
preprocess_data() - Update feature extraction in
create_product_features()
- Add new keywords to
beauty_keywordsinconversational_engine.py - Enhance intent patterns in
extract_intent() - Improve feature extraction in
extract_features()
- Modify CSS styles in
app.py - Add new visualization components
- Enhance product card displays
-
Memory Issues
- Ensure 4GB+ RAM available
- Close other applications
- Consider reducing data sample size
-
Slow Loading
- First run takes 2-5 minutes
- Subsequent runs use cached data
- Check disk space for cache files
-
Data Loading Errors
- Verify all three data files are present
- Check file permissions
- Ensure sufficient disk space
-
For Development
- Use smaller data samples for faster iteration
- Reduce TF-IDF features in
data_processor.py - Limit similarity matrix size
-
For Production
- Use preprocessed data cache
- Implement database storage
- Add Redis caching for recommendations
This MVP demonstrates:
- Natural Language Understanding: Successfully interprets beauty-related queries
- Personalized Recommendations: Provides relevant, context-aware suggestions
- User Trust: Shows real user insights and ratings
- Simplified Experience: Reduces choice overload with curated results
To enhance this MVP:
-
Data Enhancement
- Add more product metadata
- Include pricing information
- Add ingredient lists
-
NLP Improvements
- Better intent recognition
- More sophisticated query understanding
- Multi-language support
-
UI/UX Enhancements
- Mobile-responsive design
- Advanced filtering options
- Product comparison tools
This project is for educational and demonstration purposes. The beauty product data is sourced from Amazon product reviews and is used in accordance with fair use principles.
Built with ❤️ for transforming the online shopping experience