Spaces:
Sleeping
Sleeping
| """Build reproducible FEVER and SciFact sample datasets.""" | |
| from __future__ import annotations | |
| import argparse | |
| from pathlib import Path | |
| from data.sample_pipeline import ( | |
| build_data_quality_markdown, | |
| build_fever_sample, | |
| build_quality_report, | |
| build_scifact_sample, | |
| write_sample_jsonl, | |
| ) | |
| from data.build_evidence_corpus import build_evidence_corpus | |
| from evaluation.reporting import write_report | |
| def build_parser() -> argparse.ArgumentParser: | |
| parser = argparse.ArgumentParser(description="Build FEVER and SciFact sample artifacts.") | |
| parser.add_argument("--fever-train", type=int, default=200) | |
| parser.add_argument("--fever-val", type=int, default=50) | |
| parser.add_argument("--fever-test", type=int, default=50) | |
| parser.add_argument("--scifact-train", type=int, default=200) | |
| parser.add_argument("--scifact-val", type=int, default=50) | |
| parser.add_argument("--scifact-test", type=int, default=50) | |
| parser.add_argument("--seed", type=int, default=42) | |
| parser.add_argument("--output-dir", default="data/processed") | |
| parser.add_argument("--reports-dir", default="reports") | |
| return parser | |
| def main() -> None: # pragma: no cover - script entrypoint | |
| args = build_parser().parse_args() | |
| output_dir = Path(args.output_dir) | |
| reports_dir = Path(args.reports_dir) | |
| output_dir.mkdir(parents=True, exist_ok=True) | |
| reports_dir.mkdir(parents=True, exist_ok=True) | |
| fever_train, fever_val, fever_test = build_fever_sample( | |
| train_size=args.fever_train, | |
| val_size=args.fever_val, | |
| test_size=args.fever_test, | |
| seed=args.seed, | |
| ) | |
| scifact_train, scifact_val, scifact_test, scifact_corpus = build_scifact_sample( | |
| train_size=args.scifact_train, | |
| val_size=args.scifact_val, | |
| test_size=args.scifact_test, | |
| seed=args.seed, | |
| ) | |
| write_sample_jsonl(fever_train, output_dir / "fever_train.jsonl") | |
| write_sample_jsonl(fever_val, output_dir / "fever_val.jsonl") | |
| write_sample_jsonl(fever_test, output_dir / "fever_test.jsonl") | |
| write_sample_jsonl(scifact_train, output_dir / "scifact_train.jsonl") | |
| write_sample_jsonl(scifact_val, output_dir / "scifact_val.jsonl") | |
| write_sample_jsonl(scifact_test, output_dir / "scifact_test.jsonl") | |
| build_evidence_corpus( | |
| [*fever_train, *fever_val, *fever_test, *scifact_train, *scifact_val, *scifact_test], | |
| output_dir / "evidence_corpus.jsonl", | |
| ) | |
| all_records = [*fever_train, *fever_val, *fever_test, *scifact_train, *scifact_val, *scifact_test] | |
| quality_report = build_quality_report(all_records) | |
| write_report(quality_report, reports_dir / "data_quality.json") | |
| (reports_dir / "data_quality.md").write_text(build_data_quality_markdown(quality_report), encoding="utf-8") | |
| print("Built sample datasets:") | |
| print(f" FEVER records: {len(fever_train)} / {len(fever_val)} / {len(fever_test)}") | |
| print(f" SciFact records: {len(scifact_train)} / {len(scifact_val)} / {len(scifact_test)}") | |
| print(f" SciFact corpus passages: {len(scifact_corpus)}") | |
| if __name__ == "__main__": # pragma: no cover - script entrypoint | |
| main() | |