Code for "Jhamtani H., Gangal V., Hovy E. and Nyberg E. Shakespearizing Modern Language Using Copy-Enriched Sequence to Sequence Models" Workshop on Stylistic Variation, EMNLP 2017
Code has been tested with Tensorflow version 1.1.0
- If you use this code or the processed data, please consider citing Jhamtani H., Gangal V., Hovy E. and Nyberg E. Shakespearizing Modern Language Using Copy-Enriched Sequence to Sequence Models" Workshop on Stylistic Variation, EMNLP 2017
- If you use the data, please consder citing "Wei Xu, Alan Ritter, William B Dolan, Ralph Grish- man, and Colin Cherry. 2012. Paraphrasing for style. In 24th International Conference on Computational Linguistics, COLING 2012."
Instructions to run:
Preprocessing:
- Change working directory to code/main/
- Create a new directory named 'tmp'
- python mt_main.py preprocessing
Pointer model:
- First run pre-processing
- Change working directory to code/main/
- python mt_main.py train 10 pointer_model
For inference: - Change working directory to code/main/
- python mt_main.py inference tmp/pointer_model7.ckpt greedy
Normal seq2seq model:
- First run pre-processing
- Change working directory to code/main/
- python mt_main.py train 10 seq2seq
For inference: - Change working directory to code/main/
- python mt_main.py inference tmp/seq2seq5.ckpt greedy
Post-Processing: There are two post-processing actions which one may be interested in performing:
- Visualizing attention matrices
- Replacing UNKS in hypothesis with their highest-aligned (attention) input tokens. For both of these actions, refer to the running instructions in code/main/post_process.py (comments commencing the file). The file can be run in two modes, to perform 1 (write) and 2 (postProcess) respectively*. *Not elaborated on here to preserve conciseness and clarity.
Baseline (Dictionary):
- Change working directory to code/baselines/
- python dictionary_baseline.py ../../data/shakespeare.dict ../../data/test.modern.nltktok ../../data/test.dictBaseline
- The test.dictBaseline file contains the output (Shakespearean) of the dictionary baseline.
- To evaluate BLEU:
- Change working directory to code/main/
- perl multi-bleu.perl -lc ../../data/test.original.nltktok < ../../data/test.dictBaseline
Baseline (statistical MT)
- Please follow instructions in "Wei Xu, Alan Ritter, William B Dolan, Ralph Grish- man, and Colin Cherry. 2012. Paraphrasing for style. In 24th International Conference on Computational Linguistics, COLING 2012."