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.


Convert Shakespeare in its original spelling to modern spelling..


Implement a syntactic parser for a virtual travel agent.


Detect named entities in Tweets.


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