All posts
PythonFlaskNLPscikit-learnspaCy

ChefMate: NLP + ML Pipeline from User Input to Recipe

November 8, 20256 min read
Noisy ingredient text passes through normalization, fuzzy matching and recipe ranking to produce suggestions.
A simplified conceptual illustration of ingredient normalization and recipe recommendation. The examples illustrate processing stages rather than measured model outputs.

ChefMate: NLP + ML Pipeline from User Input to Recipe

ChefMate is an AI-powered recipe suggestion app I built as a solo developer.

Problem

Ingredient input is usually messy: spelling errors, synonyms, and inconsistent naming.

Pipeline

  1. Normalize ingredients with spaCy
  2. Handle input variation with FuzzyWuzzy
  3. Predict cuisine and recipe candidates with scikit-learn
  4. Return filtered suggestions through a Flask app

Dataset

I trained models using a 643MB recipe dataset and focused heavily on preprocessing quality.

Result

The NLP + fuzzy matching pipeline improved ingredient recognition by around 70% on noisy input scenarios.

Takeaway

For practical ML products, input normalization often drives quality more than model complexity.