Reinforcement learning meets summarization: pick sentences, then rewrite them
A 2018 ACL paper that speeds up abstractive summarization by splitting the problem into extraction and rewriting, trained end-to-end with RL.

What it does
This repo implements a two-stage summarizer for the CNN/DailyMail dataset. First, an extractor picks salient sentences from the source article. Then, an abstractor rewrites those sentences into a concise summary. The full system is trained with reinforcement learning to optimize ROUGE scores directly, with an optional reranking step for diversity.
The interesting bit
The pipeline decomposes a hard problem into two tractable ones—select, then rewrite—rather than asking a single model to compress an entire article from scratch. The authors also provide two model versions: the original ACL 2018 checkpoint, and a retrained one using PyTorch 0.4.0 that edges slightly higher on ROUGE.
Key highlights
- Pretrained models and full training pipeline included (word2vec embeddings, pseudo-label generation, ML pretraining, RL fine-tuning)
- Reproducible ROUGE/METEOR scores reported for both validation and test sets
- Supports greedy decoding, beam search, and beam search with reranking
- Requires CNN/DailyMail preprocessing via a separate companion repo
- Linux-only; GPU strongly recommended (CPU “would be way too slow”)
Caveats
- PyTorch 0.4.0 and Python 3.6 are pinned; modern environments will need compatibility work
- ROUGE evaluation requires manual setup of a Perl package and environment variables; the original ROUGE website is down, so you need a mirror
- The “new” pretrained model is not the paper’s original; it’s a post-acceptance retrain with slightly different scores
Verdict
Worth a look if you’re studying neural summarization architectures or need a baseline for extract-then-rewrite methods. Skip if you want a batteries-included, modern summarization tool—this is research code with 2018-era dependencies.