Inspiration
There’s simply no quality control for most online recipes. One day, we came across a NY Times beef stew recipe with 5.0 stars at over 17,000 ratings. You think it’d be perfect, right? Nope, every review essentially boiled down to “It was great after I added XXX” or “Wonderful after I subbed YYY for XXX.” After reading through all these suggestions, it barely resembled the original recipe. But what if we could aggregate the most common modifications together, succinctly summarize them, and conveniently display it to the user? Sous Chef is a Google Chrome extension aimed at helping home cooks in a hurry by using NLP to analyze and summarize reviews and modifications.
What it does
Sous Chef is a Chrome extension that uses NLP with the co:here API to extract, identify, and summarize the top review suggestions based on user reviews of a recipe.
From the user’s perspective: they first open up a recipe website. Think food.com, allrecipes.com, etc. While scrolling through the recipe, the extension displays summaries of the top recommended modifications based on the review data. The user can then click on each modification to read the full review to learn more.
Behind the scenes: when a user opens a recipe website, our extension uses web scraping to extract reviews and ratings. It then uses classification through the co:here API to identify which reviews are suggestions rather than general comments. Then, it sorts through this data to obtain the suggestions with the highest rating. It then feeds these back into another co:here model to summarize them before sending it back to the extension for the user to interact with.
How we built it
Sorted through 600+ reviews from a food.com review dataset. Labeled them as suggestions or non suggestions and wrote summaries of the suggestions. Fed all that data into a co:here NLP model.
Wrote a Google Chrome extension using HTML, CSS, Javascript and JQuery. When the extension detects the user has moved onto a recipe website, it passes the website URL to a backend Flask endpoint. The endpoint takes reviews from the website and classifies them with the labels “suggestions” or “non-suggestions” using the co:here API. The top suggestions are fed back into co:here to summarize them. The suggestions are passed back to the Chrome extension to be displayed.
Challenges we ran into
-Interpretability of co:here NLP models (since we don’t really see what’s happening behind the scenes)
-Fine tuning (which would update weights of existing co:here model) somehow had significantly decreased confidence compared to standard modeling
-Annoying nuances in writing Chrome extensions
-Annoyances in web scraping with Selenium and BeautifulSoup
-Lots of fun debugging due to lack of sleep
Accomplishments that we're proud of
-Accuracy of NLP and smooth integration using co:here
-Streamlined User Experience:
-Easy-to-use Chrome extension
-Concise and accurate suggestions
What we learned
-How to create a Chrome extension!
-How to effectively integrate co:here into our product
-Applying NLP to real-world problems
What's next for Sous Chef
-Compatibility with other food websites
-Addition of parameters for user to interactively filter recommendations (i.e. ingredient type)
-Incorporation of recipe step that each recommendation refers to + visual aid
Log in or sign up for Devpost to join the conversation.