This is a reverse dictionary application using the Webster's unabridged dictionary based on
- LSTM
- RNN (Recursive Neural Networks)
-
Python 3 Dependencies: Tensorflow
-
Syntaxnet
-
Docker (optional; for running syntaxnet)
- Make a folder named data in the root directory
- Place the websters dictionary from this link: https://raw.githubusercontent.com/matthewreagan/WebstersEnglishDictionary/master/WebstersEnglishDictionary.txt into the data folder
- Rename the file as websters_def.txt
- From data_preprocess run make_data.py
For LSTM: To randomise and augment the data run make_random.py in the data_preprocess folder
For RNN: To make the parsed trees run make_parse_tree.py (config.py in the root directory contains the input and output file locations)
-
LSTM In ml folder run train_log_loss.py
-
RNN In ml folder run train_recursive_nn.py
-
RNN 2 In ml folder run train_recursive_nn_2.py
config.py contains the parameters and the model and data file paths
-
LSTM In test folder run test_end2end.py
-
RNN In ml folder run test_parsed.py
-
RNN 2 In ml folder run test_parsed_2.py
In model_recursive_nn_2.py in getWeightage take the product of the outputs instead of maxpool