/story-generation

Code for Improving Neural Story Generation by Targeted Common Sense Grounding

Primary LanguagePythonMIT LicenseMIT

Improving Neural Story Generation by Targeted Common Sense Grounding

This repository contains the code to replicate the paper "Improving Neural Story Generation by Targeted Common Sense Grounding".

Environment Setup

We use Docker to ensure a consistent development environment. First, ensure Docker and NVIDIA-Docker is installed.

Build Docker image:

docker build -t storygen .

Run bash shell in image:

docker run --rm -w /src -v $(pwd):/src storygen /bin/bash

Now you can run scripts within the shell.

For all scripts you will need to download the corresponding datasets before running.

Training

To train a model, run the following. See --help for CLI argument options.

python train.py [experiment_name]

Evaluation

Generate text from model

python -m analysis.generate.py

Compute perplexity from model

python -m analysis.eval_ppl.py

Compute prompt ranking accuracy from model

python -m analysis.eval_prompt_rank.py

Compute common sense reasoning accuracy from model

python -m analysis.eval_csr.py

Attribution

If you use this code in your research, cite our paper via the following BibTeX.

@inproceedings{mao2019emnlp,
  title={Improving Neural Story Generation by Targeted Common Sense Grounding},
  author={Mao, Huanru Henry and Majumder, Bodhisattwa Prasad and McAuley, Julian and Cottrell, Garrison W.},
  booktitle={EMNLP},
  year={2019}
}