Full-text extraction pipeline for ALD process parameters (v2.6)
Abstract
Code that builds the ALD process parameter database from the scientific literature: corpus retrieval and full-text acquisition, topical screening, extraction of eight process parameters from the complete article text with an open-weight large language model, per-field value selection and a second pass over empty fields, deterministic recovery of provenance spans, evaluation against a frozen held-out benchmark, and figure generation. Two scoring codes are released. scorer_fixed.py is the frozen code used for the earlier evaluation of this corpus. 21_scorer_aligned.py corrects three defects found in it: temperatures reported in kelvin were compared without conversion, chemical names were compared without alias resolution, and the numeric parser took digits from chemical formulae. The third defect applies to the gold annotations as well as to the predictions. Every score in the accompanying manuscript is reported under both codes. Version 2.6 adds the search scripts of rounds 1–3 to 01_corpus/ (the originals carried an API key, so the deposited copies read SCOPUS_API_KEY from the environment and are otherwise unchanged) and, in 10_analysis_v7/, the scripts that produced the manuscript and Supplementary Information edits of 27 September 2026 as auditable diffs: 265, 267, 270, 271 (identification counts from the search ledgers), 273, 275 and 277, with the bundling scripts 266 and 278. Version 2.5 adds 10_analysis_v7/265_value_normalise.py, which converts each numeric value of the released table to the unit in its unit column and writes the value_normalised and normalisation columns of data release v2.5; run without arguments, it prints every cell it could not convert. Version 2.4 adds the scripts that extend the double annotation from 25 articles to the whole 83-article test set and compute what the manuscript reports from it, all in 10_analysis_v7/ with their original names. 209_agreement_artifact_83.py builds the released comparison table over both annotation rounds and keeps only the articles in the evaluation split manifest. 204, 206 and 207 compute the agreement counts on the three bases the text distinguishes: all filled cells, the eight scored fields, and cells filled by one annotator only. 205_score_against_annotator2.py re-scores the released predictions against the second annotation instead of the first. 208_manuscript_v30_double_annotation.py applies the resulting manuscript and Supplementary Information edits of 22 September 2026 as an auditable diff. 98_annotation_artifacts.py, which builds one round's comparison sheet and which 209 imports, was missing from earlier deposits and is included here. Version 2.3 adds the scripts written after version 2.2 that produce numbers or figures in the current manuscript, all in 10_analysis_v7/ with their original names. 190_material_and_subset.py scores the material field, which the eight benchmark fields omit, and crosses the two flags released with every value (agreement between two models, and a recovered provenance span) to isolate the part of the table that needs least checking. 191_atomiclimits_overlap.py measures the overlap with the community-curated ALD Database and the field agreement on the shared articles. 186_figure6a_coreactant.py and 187_deck_v23_figures.py produce the corrected figures: 'Co-reactant' in Figure 6(a), a temperature axis truncated at 400 degrees C in Figure 7, and Figure 5 without its single-bar panel. 195_source_data_v23.py renames the Source Data sheets to the new Figure 5 panel letters. 183, 184, 188, 192, 196 and 202 apply the manuscript and Supplementary Information edits of 21 September 2026, each as an auditable diff against the previous version. Packaging scripts that only copy files into the submission folder are not deposited. Version 2.2 added the analysis scripts written after version 2.1: the same-model input-length ablation, the Al2O3 temperature-GPC trend split by reactor label, the condition-level extraction and its strict relation scoring, the two-model agreement flag released as a column of the dataset, the repeated-run and prompt-variant checks, the removal of literal null values from the extraction output, and the script that builds Figure 1. Version 2.1 added the analysis stage that produced the numbers and figures of the manuscript, which the version 2.0 package did not contain. It also added 92_repair_gold.py, which reproduces the correction of the gold standard released as version 1.1 of that file and writes a row-by-row report of what was re-paired, and 91_annotator_agreement.py, which computes agreement between the two annotators. The evaluation split shipped in 06_evaluation is the corrected 83-article split. The regular-expression and named-entity extractors of the earlier version of this pipeline are retained as the comparison baseline, not as the production extractor. 10_analysis_v7/32_consistency_check_v7.py recomputes every number reported in the manuscript from the released files and checks it against the manuscript text. Accompanying dataset: ALD process parameter database, deposited separately under CC BY 4.0 at https://doi.org/10.5281/zenodo.22995040