第 1 卷(人物主线):第 1–3 集 + 人物表
主角线:Guspu Frillyknots / Ral Fastenhatchets / Alath Blottedmine 由线索挖掘器自动选定,按因果链切集,经 5 维度自评闸门(≥12 分)后入库。
This commit is contained in:
+11
-10
@@ -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()
|
||||
|
||||
|
||||
# 人物重要度阈值:参与事件数达到这个量级才算"要角"
|
||||
|
||||
Reference in New Issue
Block a user