How Recommendations are Made

Pre-Engine

  • Yummly API for 40 new/random recipes
  • Breakdown recipes' ingredients into flavor compounds (~24 per ingredient) using prepopulated database

In [ ]:
Yummly API Example
"id": "Garlic-Cheese-Chicken-1041442",
"recipeName": "Garlic Cheese Chicken",
"ingredients": ["melted butter",
                "garlic cloves",
                "garlic powder",
                "salt",
                "corn flakes",
                "shredded cheddar cheese",
                "grated parmesan cheese",
                "pepper",
                "boneless skinless chicken breasts"],

In [ ]:
Food Compound Breakdown
'Garlic-Cheese-Chicken-1041442': [37, 79, 132, 165, 177, 243, 250, 260, 
                                  273, 295, 348, 361, 378, 393, 434, 442, 
                                  460, 519, 602, 620, 628, 632, 704, 737, 
                                  767, 778, 793, 867, 886, 957, 965, 971, 
                                  1012, 1021, 1069, 1092]

Engine

  • Compare recipe flavor compounds to user's liked/disliked flavor compounds
  • Normalize for:
    • Number of flavor compounds in recipe
    • Frequency of ingredients (butter, pepper, etc.)
    • Intensity of like/dislike of flavor compounds
  • Score for each recipe based on above comparison

In [ ]:
Top 10 recipes with engine scores
('Mango-Pomegranate-Guacamole-967911', 0.0023206751054852333), 
('Sauteed-Swiss-Chard-984678', 0.0025110071546505233), 
('Flourless-Brownie-Muffins-770880', 0.0028129395218002813), 
('Simple-Guacamole-995370', 0.003872418387741506), 
('Leek_-Mushrooms-And-Tomatoes-Quiche-1021989', 0.005748945147679325), 
('Limoncello-Ice-Cream-Cake-940127', 0.00616682895163908), 
('Vegan-Buffalo-Cauliflower-With-Sweet-Potato-Noodles-_Vegan_-Gluten-Free_-1020823', 0.006724683544303797), 
('Poor-Irish-Soup-Allrecipes', 0.007497565725413826), 
('Dill-Dip-Ii-Allrecipes', 0.010594386351128235), 
('Eggplant-Rolls-with-Spicy-Tomato-Sauce-1049581', 0.012002161160852114)

Post-Engine

  • Pick top scored recipe from list of 40
  • Create confidence score to display to user
  • Get recipe ready to be sent to front-end