How to Run the Program:

One should first unzip the file in a directory and then run the "main.py" using the python. Also I should mention that the train and test files 
should be located in the directory in which the python files are located. The results will be printed in the console. Also, the program will 
build tree text file in which you can see the statistics of unigram, bigram and trigrams of the thre languages English, Spanish and German 
created in the same directory with the names as follows: outEnFile.txt, outEsFile.txt , outDeFile.txt


Code Comments:

The code is written using the Object Oriented Programming. I also tried to use defensive programming preventing users from bad input to the modules.  
I have a class language model For running the program you should just run the main.py in this file at first I hard coded the N-gram of the 
Language Model which is assumed to be built using setting the Parameter N. I have Hard coded N = 3. For implementing the N-gram but if you 
set it to 10 then the program run experiments by building a 10-gram model and running the experiments using this model. So by changing 
Parameter N you will define the order of N-gram of the Language Model. Some Parts of the results in the Experimental results section is obtained 
using the N=15. In the code I have file LanguageModel.py in which I have defined the LanguageModel Class and its related methods. 

