|
|
@@ -119,21 +119,20 @@ def main():
|
|
|
q = " ".join([f_] + ([seg] if seg else []) + [zy_, suf])
|
|
|
return {"parts": {"形式": f_, "阶段": st or "/", "动作": ac or "/", "作用": zy_, "知识类型": suf}, "query": q}
|
|
|
|
|
|
- # 每家族:生成器 + 用到的轴(给前端标列)
|
|
|
- # 业务阶段=脊柱,每族必带;模态+知识类型固定收尾;前面配 实质/形式/目的 之一或组合
|
|
|
+ # 每家族:生成器 + 用到的轴。家族名 = axes 用「×」连接,直接反映正交结构(见下方循环)。
|
|
|
+ # axes 顺序即前端列顺序;业务阶段=脊柱每族必带,模态+知识类型收尾
|
|
|
families = [
|
|
|
- {"key": "f1", "name": "实质 × 业务阶段", "axes": ["实质", "模态", "业务阶段", "知识类型"],
|
|
|
+ {"key": "f1", "axes": ["实质", "模态", "业务阶段", "知识类型"],
|
|
|
"gen": lambda i: {"parts": {"实质": shi(i), "业务阶段": pick(INTENT), "模态": pick(MODALITY), "知识类型": pick(KTYPE)}}},
|
|
|
- {"key": "f2", "name": "形式 × 业务阶段", "axes": ["形式", "模态", "业务阶段", "知识类型"],
|
|
|
+ {"key": "f2", "axes": ["形式", "模态", "业务阶段", "知识类型"],
|
|
|
"gen": lambda i: {"parts": {"形式": xing(i), "业务阶段": pick(INTENT), "模态": pick(MODALITY), "知识类型": pick(KTYPE)}}},
|
|
|
- {"key": "f3", "name": "实质 × 形式 × 业务阶段", "axes": ["实质", "形式", "模态", "业务阶段", "知识类型"],
|
|
|
+ {"key": "f3", "axes": ["实质", "形式", "模态", "业务阶段", "知识类型"],
|
|
|
"gen": lambda i: {"parts": {"实质": shi(i), "形式": xing(i), "业务阶段": pick(INTENT), "模态": pick(MODALITY), "知识类型": pick(KTYPE)}}},
|
|
|
- {"key": "f4", "name": "(作用/感受/意图) × 业务阶段", "axes": ["作用/感受/意图", "模态", "业务阶段", "知识类型"],
|
|
|
+ {"key": "f4", "axes": ["作用/感受/意图", "模态", "业务阶段", "知识类型"],
|
|
|
"gen": lambda i: {"parts": {"目的": pick(POOL), "业务阶段": pick(INTENT), "模态": pick(MODALITY), "知识类型": pick(KTYPE)}}},
|
|
|
- {"key": "f5", "name": "纯业务阶段", "axes": ["模态", "业务阶段", "知识类型"],
|
|
|
+ {"key": "f5", "axes": ["模态", "业务阶段", "知识类型"],
|
|
|
"gen": lambda i: {"parts": {"业务阶段": pick(INTENT), "模态": pick(MODALITY), "知识类型": pick(KTYPE)}}},
|
|
|
- {"key": "f6", "name": "形式 × 阶段 × 动作 × 作用(老正交·去实质)",
|
|
|
- "axes": ["形式", "阶段", "动作", "作用", "知识类型"], "gen": gen6},
|
|
|
+ {"key": "f6", "axes": ["形式", "阶段", "动作", "作用", "知识类型"], "gen": gen6},
|
|
|
]
|
|
|
# 各部件按固定顺序拼成原串(内容维度在前,模态贴题材后,业务阶段+知识类型收尾)
|
|
|
order = ["实质", "形式", "目的", "模态", "业务阶段", "知识类型"]
|
|
|
@@ -144,6 +143,7 @@ def main():
|
|
|
"阶段": OLD_STAGES, "动作": ACTIONS, "作用": F6_ZY}, # 第六家族的老轴
|
|
|
"families": []}
|
|
|
for fam in families:
|
|
|
+ name = " × ".join(fam["axes"]) # 家族名直接反映正交结构
|
|
|
seen, items = set(), []
|
|
|
while len(items) < PER and len(seen) < PER * 40:
|
|
|
g = fam["gen"](len(items)) # 序号轮转实质/形式批
|
|
|
@@ -157,8 +157,8 @@ def main():
|
|
|
for it, v in zip(items, verdicts):
|
|
|
it.update(v)
|
|
|
kept = sum(1 for it in items if it["keep"])
|
|
|
- print(f"[{fam['name']}] 生成 {len(items)} 条, 筛后保留 {kept}")
|
|
|
- out["families"].append({"key": fam["key"], "name": fam["name"], "axes": fam["axes"], "items": items})
|
|
|
+ print(f"[{name}] 生成 {len(items)} 条, 筛后保留 {kept}")
|
|
|
+ out["families"].append({"key": fam["key"], "name": name, "axes": fam["axes"], "items": items})
|
|
|
|
|
|
OUT.parent.mkdir(parents=True, exist_ok=True)
|
|
|
OUT.write_text(json.dumps(out, ensure_ascii=False, indent=1), encoding="utf-8")
|