File size: 1,045 Bytes
127b976
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from __future__ import annotations

import argparse
from pathlib import Path

import pandas as pd


def main():
    p = argparse.ArgumentParser(description="Split one metadata file into train/val/test CSV files using the split column.")
    p.add_argument("--metadata", required=True)
    p.add_argument("--out-dir", default="data/metadata")
    args = p.parse_args()

    df = pd.read_csv(args.metadata)
    if "split" not in df.columns:
        raise ValueError("Input metadata must contain a 'split' column.")

    out_dir = Path(args.out_dir)
    out_dir.mkdir(parents=True, exist_ok=True)

    for split in ["train", "val", "dev", "test", "eval"]:
        part = df[df["split"].astype(str).str.lower() == split]
        if len(part) == 0:
            continue
        name = "val" if split == "dev" else "test" if split == "eval" else split
        out = out_dir / f"{name}.csv"
        part.to_csv(out, index=False)
        print(f"Saved {len(part)} rows to {out}")


if __name__ == "__main__":
    main()