Course project for CMPS 140/240 at UCSC.
Python Java Shell
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
corpora Add is_negated method to nlu. Mar 17, 2011
README.rst Fix progress bar bug in allrecipes. Mar 7, 2011
chat_interface.html Merge branch 'master' of… Mar 13, 2011 Fixed bug and updated search_message. Feb 21, 2011 Add comment support to ontology importer. Mar 14, 2011



This is Creative Cooking Assistant, a course project for CMPS 140/240 (Winter 2011) at UCSC.

Team Members

Graduate Students

  • Marcelo Siero
  • Gregory Jackson

Undergraduate Students

  • Ryan Andonian
  • Chris Reynolds
  • Andy Nguyen
  • Josh Rosen
  • Mike Wilson


Our project has been tested with Python 2.6. Our project requires a few python libraries, which are listed in requirements.txt. To install the required libraries using pip, run pip install -r requirements.txt. Or run sudo make install_requirements'

The NLG requires Java.

Running the System

To run the command line chat interface, run python You can also use 'make run'.

The project includes an experimental web server, which can be used by running python and browsing to http://localhost:8080.

Most of these tools accept command line options; try running these programs with --help for more information.

To rebuild the database, first import the ontology by running python Then, use python [filenames of allrecipes html files] to add recipes from pages.

To update the NLU's ingredients and cuisine wordlists, run python and python To get a fresh database from the server, rebuild the ingredients, and regenerate the pickled objects, use make refresh.

Coding standards

We use the official Python coding standard, PEP8. The tool to validate code against PEP8. In addition, we use Pylint to perform other code quality checks. The included pylintrc file allows Pylint's checks to be modified as needed.


In addition to the tests in the tests directory, some modules contain doctests. The doctests in an individual file can be run using the python -m doctest command. Or, py.test can run the doctests (in addition to other tests) using the py.test --doctest-modules command. Or all tests can be run by using make test.

The tests directory contains two scripts for evaluating the system. The tests the ingredient part extraction code against a number of handwritten examples hosted in a Google Docs spreadsheet. The script generates statistics on the number of ingredients, recipes, and ontology nodes in a database and finds ingredients that are missing from the ontology.