Просмотр исходного кода

refactor(query):家族名改为完整正交结构(axes 用 × 连接),去掉简称/标注

6 个家族标题统一 = 全部轴用「×」连接,直接反映正交结构:
实质×模态×业务阶段×知识类型 / 形式×模态×业务阶段×知识类型 / 实质×形式×模态×业务阶段×知识类型 /
作用感受意图×模态×业务阶段×知识类型 / 模态×业务阶段×知识类型 / 形式×阶段×动作×作用×知识类型。
name 由 axes 自动拼接(不再手写简称),f6 去掉「老正交·去实质」标注。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
SamLee 2 недель назад
Родитель
Сommit
84d1ea1a81
1 измененных файлов с 11 добавлено и 11 удалено
  1. 11 11
      scripts/build_creation_demo.py

+ 11 - 11
scripts/build_creation_demo.py

@@ -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")