HipoRank
HipoRank copied to clipboard
(EACL 2021) Discourse-Aware Unsupervised Summarization of Long Scientific Documents
HipoRank
Unsupervised and extractive long document summarization with Hierarchichal and Positional information. Contains code for Discourse-Aware Unsupervised Summarization of Long Scientific Documents accepted at EACL 2021.
Requirements
Libraries
pip install -r requirements.txt
Datasets
Original: https://github.com/armancohan/long-summarization
Val/Test sets used: https://zenodo.org/record/5718829
ROUGE
pyrouge_set_rouge_path /absolute/path/to/ROUGE-1.5.5/directory
Model Files
- Biomed w2v: http://evexdb.org/pmresources/vec-space-models/wikipedia-pubmed-and-PMC-w2v.bin
- PacSum BERT: https://drive.google.com/file/d/1wbMlLmnbD_0j7Qs8YY8cSCh935WKKdsP/view?usp=sharing
- BioBERT: https://github.com/dmis-lab/biobert
- sentence-transformers: https://github.com/UKPLab/sentence-transformers
Directory Structure
hipo_rank
Library to define summarization pipeline as modular components with standard interfaces for ease of experimentation;
hipo_rank/dataset_iteratorsyield document sections and sentences in standard typed format;hipo_rank/embeddersgenerate vector representations for sentences and sections;hipo_rank/similaritiescompute similarities to weigh edges in document graph;hipo_rank/directionsintroduce directionality in document graph based on discourse structure;hipo_rank/scorerscompute node centrality for sentences in document graph;hipo_rank/summarizersgenerate a summary from a document graph with node centrality scores;hipo_rank/evaluatorsevaluate summary with different metrics;
Experiments
exp1_run.pyhyperparameter tuning and ablation study on PubMed val set;exp2_run.pycnndm validation set;exp3_run.pypubmed test set;exp4_run.pyarxiv test set with pubmed hyperparams;exp5_run.pylead baseline;exp6_run.pyeffect of document length;exp7_run.pyhyperparameter tuning on arxiv val set;exp8_run.pypacsum baseline;exp9_run.pysimilarity thresholding;exp10_run.pyshort sentence removal;exp11_run.pyTextRank baseline;
Human evaluation
human_eval_sample.ipynbCode to sample examples for human evaluation;human_eval_samples.jsonlSampled examples for human evaluation;human_eval_data.jsonlResults of human evaluation from Prodigy.ai annotation tool;human_eval_results.ipynbCode to generate human evaluation metrics;
Plotting
plot_ablation.ipynbCode to plot results of ablation study;plot_sentence_positions.ipynbCode to plot sentence positions in original document;