第 1 卷(人物主线):第 1–3 集 + 人物表

主角线:Guspu Frillyknots / Ral Fastenhatchets / Alath Blottedmine
由线索挖掘器自动选定,按因果链切集,经 5 维度自评闸门(≥12 分)后入库。
This commit is contained in:
Chen Yi
2026-10-05 19:28:49 +08:00
parent 594cf48a1a
commit e0073e90bd
24 changed files with 2070 additions and 79 deletions
+11 -10
View File
@@ -93,22 +93,23 @@ def category(event: Event) -> str:
def prominence(world: World) -> Counter[int]:
"""每个人物被卷入的事件次数——用来衡量他在史料里有多重要。"""
"""每个人物被卷入的事件次数——用来衡量他在史料里有多重要。
改用字段分类器后覆盖了 40+ 个人物字段(旧版只数 6 个),数值尺度整体变大,
因此 PROMINENT 阈值必须按新尺度重校。结果缓存在 World 上,避免反复重算。
"""
cached = getattr(world, "_prominence", None)
if cached is not None:
return cached
counts: Counter[int] = Counter()
for e in world.events:
seen: set[int] = set()
for tag in ("hfid", "slayer_hfid", "target_hfid", "source_hfid", "deity", "worshipper_hfid"):
for fid in e.ids(tag):
seen.add(fid)
counts.update(seen)
counts.update(e.figure_ids())
world._prominence = counts # type: ignore[attr-defined]
return counts
def _participants(event: Event) -> list[int]:
out: list[int] = []
for tag in ("hfid", "slayer_hfid", "target_hfid", "source_hfid", "deity"):
out.extend(event.ids(tag))
return out
return event.figure_ids()
# 人物重要度阈值:参与事件数达到这个量级才算"要角"