/nlp-wine-recommender

Primary LanguagePythonMIT LicenseMIT

NLP Wine Recommender

Executive Summary

Using a publicly available list of wines and taster reviews, we used a series of Natural Language Processing steps to enrich the data set to include wine type and flavor profiles. Next, a terminal app will take your answers to a series of questions and return wine recommendations. Additional steps were taken to scrape a local grocery store's inventory to see which of these wines were available locally.

See recommender.gif for a screen capture of the terminal app, ProjectPresentation.pdf for presentation, and Write_Up.pdf for full report.

How to Run the Recommender Terminal App

  • Download Repo
  • Run Application Script: filters.py
  • Follow CLI prompts
  • Sample Output: recommendations.txt

Data Sources

Original dataset: winemag-data-130k-v2.csv Source: https://www.kaggle.com/christopheiv/winemagdata130k

Original grape Variety list : grape_list.csv Source: https://en.wikipedia.org/wiki/List_of_grape_varieties

Data Pre-Processing

Step 1: Parsing the grape list

  • Parser script: grape_list_parser.py
  • Output: grape_list_parsed.csv
  • Unit test: grape_list_parser_test.py

Step 2: Match wines with wine type (Red, White, Rosé, Sparkling, Blend)

  • Matching script: grape_id.py
  • Unit test: grape_id_test.py
  • Output: wine_with_type.csv

Step 3: Add Flavor Profile Tags

  • Definitions: 3. NLP Definitions.pdf
  • NLP Test on Subset: Desc_Test_1_Box.ipynb
  • Chunked Categorizer Script: Add_Categories.py
  • Output: wine_with_flavors.csv

Optional Steps

Step 5: Scrape wine list from my local grocer

  • Scraper: grocer_scraper.py (modify for your grocer's website)
  • Output: grocery_list.csv

Step 6: Compare lists to mark locally available wines

  • Comparer Script: grocer_availability.py
  • Output: wine_with_availability.csv

Step 7: Look into wine taster details

  • Notebook: reviewer_analysis.ipynb

This a continuation of a group final project for CS 5010: Python for Data Analysis with contributors Nikki Aaron, Bev Dobrenz, Joseph Wysocki, and Amanda West.