"""查找不良关键因子。""" import argparse import pandas as pd from defect_analysis.ml.key_factors import find_key_factors from defect_analysis.schemas import normalize_defect_schema def analyze_csv_key_factors(csv_path, *, target_defect_type=None, target_severity=None, top_n=20): df = pd.read_csv(csv_path, parse_dates=["timestamp"], encoding="utf-8-sig") df = normalize_defect_schema(df) return find_key_factors( df, target_defect_type=target_defect_type, target_severity=target_severity, top_n=top_n, ) def main(): parser = argparse.ArgumentParser(description="查找不良关键因子") parser.add_argument("--csv", default="defect_data.csv", help="缺陷 CSV 文件路径") parser.add_argument("--target-defect-type", help="目标缺陷类型,例如 气泡/划痕/漏光") parser.add_argument("--target-severity", help="目标严重等级,例如 严重") parser.add_argument("--top-n", type=int, default=20) args = parser.parse_args() result = analyze_csv_key_factors( args.csv, target_defect_type=args.target_defect_type, target_severity=args.target_severity, top_n=args.top_n, ) if result.empty: print("未找到显著关键因子,请检查目标条件或增加样本量。") else: print(result.to_string(index=False)) if __name__ == "__main__": main()