Spaces:
Sleeping
Sleeping
File size: 1,480 Bytes
74e6b83 | 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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | """Filter BhashaBench-Krishi (English) to dairy/poultry questions only.
Reads: data/raw/bbk_english.parquet
Writes: data/processed/bbk_dairy_poultry.parquet
data/processed/bbk_dairy_poultry.csv (for human inspection)
Usage:
python scripts/extract_dairy_split.py
"""
from pathlib import Path
import pandas as pd
ROOT = Path(__file__).resolve().parent.parent
SRC = ROOT / "data" / "raw" / "bbk_english.parquet"
OUT_DIR = ROOT / "data" / "processed"
OUT_PARQUET = OUT_DIR / "bbk_dairy_poultry.parquet"
OUT_CSV = OUT_DIR / "bbk_dairy_poultry.csv"
KEEP_PATTERN = r"dairy|poultry"
def main() -> None:
if not SRC.exists():
raise SystemExit(f"Missing {SRC}. Run scripts/fetch_bbk.py first.")
df = pd.read_parquet(SRC)
mask = df["subject_domain"].str.lower().str.contains(KEEP_PATTERN, regex=True, na=False)
sub = df.loc[mask].reset_index(drop=True)
OUT_DIR.mkdir(parents=True, exist_ok=True)
sub.to_parquet(OUT_PARQUET, index=False)
sub.to_csv(OUT_CSV, index=False)
print(f"Source rows: {len(df)}")
print(f"Filtered rows: {len(sub)} (subject_domain matches /{KEEP_PATTERN}/i)")
print()
print("subject_domain breakdown:")
print(sub["subject_domain"].value_counts().to_string())
print()
print("question_level breakdown:")
print(sub["question_level"].value_counts().to_string())
print()
print(f"Wrote: {OUT_PARQUET}")
print(f"Wrote: {OUT_CSV}")
if __name__ == "__main__":
main() |