Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Sentence Simplification with Deep Reinforcement Learning

This is an implmentation of the DRESS (Deep REinforcement Sentence Simplification) model described in Sentence Simplification with Deep Reinforcement Learning


The wikismall and wikilarge datasets can be downloaded on Github or on Google Drive.

8 references wikilarge development and test sets can be downloaded here

Copyright of the newsela dataset belongs to Please contact to obtain the dataset

System Output

If you are looking for system output and don't bother to install dependencies and train a model (or run a pre-trained model), the all-system-output folder is for you.


Note that this model is tested using an old version of torch (available here)

Train a Reinforcement Learning Simplification Model

Step 1: Train an Encoder-Decoder Attention Model

CUDA_VISIBLE_DEVICES=$ID th train.lua --learnZ --useGPU \
    --model EncDecAWE \
    --attention dot \
    --seqLen 85 \
    --freqCut 4 \
    --nhid 256 \
    --nin 300 \
    --nlayers 2 \
    --dropout 0.2 \
    --lr $lr \
    --valid $valid \
    --test $test \
    --optimMethod Adam \
    --save $model \
    --train $train \
    --validout $validout --testout $testout \
    --batchSize 32 \
    --validBatchSize 32 \
    --maxEpoch 30 \
    --wordEmbedding $wembed \
    --embedOption fineTune \
    --fineTuneFactor 0 \
    | tee $log

Details see experiments/wikilarge/encdeca/ Note in newsela and wikismall datasets, you should use --freqCut 3.

If you want to generate simplifications from a pre-trained Encoder-Decoder Attention model, use the following command:

CUDA_VISIBLE_DEVICES=3 th generate_pipeline.lua \
    --modelPath $model \
    --dataPath $data.test \
    --outPathRaw $output.test \
    --oriDataPath $oridata.test \
    --oriMapPath $orimap | tee $log.test

Details see experiments/wikilarge/encdeca/generate/

Step 2: Train a Language Model for the Fluency Reward

See details in experiments/wikilarge/dress/

Step 3: Train a Sequence Auto-Encoder for the Relevance Reward

Create dataset scripts/get_auto_encoder_data/ See details in experiments/wikilarge/dress/

Step 4: Train a Reinforcement Learning Model

See details in experiments/wikilarge/dress/ Run a pre-trained DRESS model using this script experiments/wikilarge/dress/generate/dress/

Step 5: Train a Lexical Simplification Model

To train a lexical simplification model, you need to obtain soft word alignments in the training data, which are assigned by a pre-trained Encoder-Decoder Attention model. See details in experiments/wikilarge/dress/

After you obtain the alignments, you can train a lexical simplification model using experiments/wikilarge/dress/

Lastly, you can apply the lexical simplification model with DRESS experiments/wikilarge/dress/generate/dress-ls/

Pre-trained Models


Please be careful about the automatic evaluation.
You can use our released code and models to produce output for different models (i.e., EncDecA, Dress and Dress-Ls). But please make sure your evaluation settings follow the settings in our paper.


The evaluation pipeline accompanied in our code released produces single reference BLEU scores.


To be consistent with previous work, you should use 8 references wikilarge test set (availabel at

Therefore, to get the numbers on wikilarge, you should use scripts that support multi-bleu evalution (e.g., joshua or

Checkout details for BLEU evaluation of wikilarge here


Make sure your FKGL is on corpus level.


The evaluation pipeline accompanied in our code released produces sentence-level SARI scores. You can use this simplification system (available here) to produce corpus level SARI scores.

Checkout details for SARI evaluation here


  author = 	"Zhang, Xingxing
		and Lapata, Mirella",
  title = 	"Sentence Simplification with Deep Reinforcement Learning",
  booktitle = 	"Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing",
  year = 	"2017",
  publisher = 	"Association for Computational Linguistics",
  pages = 	"595--605",
  location = 	"Copenhagen, Denmark",
  url = 	""


DRESS simplification model (EMNLP 2017) described in







No releases published


No packages published