CSE 40657/60657

There will be five homework assignments due throughout the semester. The recommended language for implementing them is Python 3. Examples, skeleton code, and solutions will use Python 3.5; however, if you prefer to use something else, you are free to.

You probably have Python installed already; if you haven't switched to Python 3 yet, now's the time!

  1. If you need to install Python, the simplest way to get it is probably Miniconda.
  2. If you want to keep packages for this course separated from your system-wide packages, create a virtualenv:
    virtualenv nlp
    source nlp/bin/activate      # sh/ksh/bash/zsh
    #source nlp/bin/activate.csh # csh/tcsh
  3. If you need a refresher on Python, see the tutorial. Or if you're used to Python 2, here is a list of differences.


The following are subject to change.


Use a language model to predict the next character that the user will type. Try it with the provided graphical keyboard whose keys grow and shrink according to their probabilities.


Extend your character predictor to automatically correct spelling errors.


Implement a syntactic parser and use it to turn normal English into Yoda English.


Detect named entities in text and automatically add links to Wikipedia.


Implement a simple machine translation system and test it out on some movie subtitles.