In this assignment you will implement, in Python, the N-Gram approach to action
prediction. The outline of the class definition(s) mirror those given in the textbook.
NGrams.zip contains a stub of your code that you must base your solution on. The
contents of NGrams.zip:
hierarchicalOfflineNGram.py - you need to fill this in
hierarchicalOnlineNGram.py - you need to fill this in
match.py - a simple game that the computer tries to predict the key that human
typed - A or B. This code uses hierarchicalOnlineNGram.py to do its prediction. This
file is provided to see how well your code can predict your choices. I found it difficult
to beat the N-Gram predictor (i.e., beat is > 50%) for games that are at least 150
moves.
The specific problems that you are to solve:
1. (70 pts) Complete class definition: hierarchicalOfflineNGram. Read the
documentation for a description of the methods. Look at the main procedure in this
file to see how the code is to be used.
2. (30 pts) Complete class definition: hierarchicalOnlineNGram. Read the
documentation for a description of the methods. Look at the main procedure in this
file to see how the code is to be used.