Papers › NapSS: Paragraph-level Medical Text Simplification via Narrative Prompting and...

NapSS: Paragraph-level Medical Text Simplification via Narrative Prompting and Sentence-matching Summarization

11 Feb 2023arXiv:2302.05574archive 2025-07-28

Junru Lu, Jiazheng Li, Byron C. Wallace, Yulan He, Gabriele Pergola

Accessing medical literature is difficult for laypeople as the content is written for specialists and contains medical jargon. Automated text simplification methods offer a potential means to address this issue. In this work, we propose a summarize-then-simplify two-stage strategy, which we call NapSS, identifying the relevant content to simplify while ensuring that the original narrative flow is preserved. In this approach, we first generate reference summaries via sentence matching between the original and the simplified abstracts. These summaries are then used to train an extractive summarizer, learning the most relevant content to be simplified. Then, to ensure the narrative consistency of the simplified text, we synthesize auxiliary narrative prompts combining key phrases derived from the syntactical analyses of the original text. Our model achieves results significantly better than the seq2seq baseline on an English medical corpus, yielding 3%~4% absolute improvements in terms of lexical similarity, and providing a further 1.1% improvement of SARI score when combined with the baseline. We also highlight shortcomings of existing evaluation methods, and introduce new metrics that take into account both lexical and high-level semantic similarity. A human evaluation conducted on a random sample of the test set further establishes the effectiveness of the proposed approach. Codes and models are released here: https://github.com/LuJunru/NapSS.

PaperPDFCodeCode Syntology ran

In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.

For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="2302.05574")

Code

Syntology Ran 6 of 24 code samples harvested from 2 repositories linked to this paper; 18 have no recorded run. Of those that ran: 1 ran · honoured contract; 3 ran · our draft was wrong; 2 ran with no contract checked.

By repository: official repository: 14 samples from 1 repository, 3 ran; found in paper text by Syntology: 10 samples from 1 repository, 3 ran. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.

lujunru/napss officialmentioned in papermentioned on GitHubpytorchMIT report

Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.

Code Syntology ran Syntology

24 samples harvested; 6 ran; 1 honoured the contract we drafted; 18 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.

1ran · honoured contract
3ran · our draft was wrong
2ran
18unverified

Licence: 0 of the 24 samples are pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.

Harvested from 2 repositories linked to this paper, official or community; each sample names its own and says which. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.

Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.

Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.

count_trainable_parameters LuJunru/NapSS/modeling/callbacks.py official repository ran MIT (permissive) · a3826392847cbef3 · report
get_early_stopping_callback LuJunru/NapSS/modeling/callbacks.py official repository ran MIT (permissive) · 295d9fdc5ce0b054 · report
shift_tokens_right LuJunru/NapSS/modeling/utils.py official repository ran · our draft was wrong fingerprinted MIT (permissive) · e00ccf7847d12b59 · report
abs_length LuJunru/NapSS/prepare_data/process.py official repository unverified MIT (permissive) · 6e4e375353d94915 · report
add_newline_to_end_of_each_sentence LuJunru/NapSS/modeling/sentence_splitter.py official repository unverified MIT (permissive) · c66ab1dac5e4762c · report
create_weight_vector LuJunru/NapSS/modeling/finetune.py official repository unverified MIT (permissive) · f4d3f88ead3ef8e6 · report
get_abstract LuJunru/NapSS/modeling/train_logr_cochrane.py official repository unverified MIT (permissive) · 63e60d2c27206a83 · report
get_checkpoint_callback LuJunru/NapSS/modeling/callbacks.py official repository unverified MIT (permissive) · 01cc9caede179564 · report
get_doi LuJunru/NapSS/prepare_data/scrape.py official repository unverified MIT (permissive) · 4b39339b1136b5aa · report
get_pls LuJunru/NapSS/modeling/train_logr_cochrane.py official repository unverified MIT (permissive) · 4a073f12f4c9fbed · report
label_smoothed_nll_loss LuJunru/NapSS/modeling/utils.py official repository unverified MIT (permissive) · e386d3a24af4d168 · report
lmap LuJunru/NapSS/modeling/utils.py official repository unverified MIT (permissive) · 7c43af131a6f39a6 · report
pls_length LuJunru/NapSS/prepare_data/process.py official repository unverified MIT (permissive) · de410425f99f8d57 · report
res_para LuJunru/NapSS/prepare_data/process.py official repository unverified MIT (permissive) · 0dc1d3e997580e88 · report
convert_to_unicode google-research/bert/tokenization.py found in paper text by Syntology ran · our draft was wrong fingerprinted Apache-2.0 (permissive) · 1923fc05163d207d · report
gelu google-research/bert/modeling.py found in paper text by Syntology ran · honoured contract fingerprinted Apache-2.0 (permissive) · d08f324f950148de · report
get_activation google-research/bert/modeling.py found in paper text by Syntology ran · our draft was wrong Apache-2.0 (permissive) · 5842ee67106321d6 · report
create_float_feature google-research/bert/create_pretraining_data.py found in paper text by Syntology unverified Apache-2.0 (permissive) · b24b3b9c700da839 · report
create_int_feature google-research/bert/create_pretraining_data.py found in paper text by Syntology unverified Apache-2.0 (permissive) · dd3ef48a15aec0cd · report
file_based_input_fn_builder google-research/bert/run_classifier.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 1b46c9ce24fc6db3 · report
get_assignment_map_from_checkpoint google-research/bert/modeling.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 50958618b65e514e · report
input_fn_builder google-research/bert/extract_features.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 47a3c792cebb6603 · report
load_vocab google-research/bert/tokenization.py found in paper text by Syntology unverified Apache-2.0 (permissive) · ff83ccc8b0b6462d · report
printable_text google-research/bert/tokenization.py found in paper text by Syntology unverified Apache-2.0 (permissive) · 0e5615f8994003cf · report

Tasks

Semantic SimilaritySemantic Textual SimilaritySentenceText Simplification

Results from the paper archive 2025-07-28

No leaderboard rows for this paper in the archive.

Methods

LSTMSeq2SeqSigmoid ActivationTanh ActivationTest

Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections