势力分析
势力分析维度将小说中的组织(门派、帮会、家族、国家等)以网络图谱的形式可视化,帮助读者理解角色与组织之间的归属关系以及组织间的层级结构。
组织网络可视化
势力页面基于 react-force-graph-2d 渲染交互式力导向图谱。节点代表组织和关键角色,边表示归属或关联关系。
- 节点大小:按组织成员数或提及次数缩放
- 节点颜色:组织为紫色(org),角色为蓝色(person)
- 边类型:归属关系、合作关系、对立关系等
- 交互:点击节点查看详情,滚轮缩放,拖拽平移
角色归属推断
系统通过两种途径判断角色所属组织:
1. org_events 直接提取
LLM 在逐章分析时,会从原文中提取 org_events(组织事件),明确记录角色加入、离开、晋升等组织相关行为。这是最可靠的归属来源。
2. 地点访问回退计数
当 org_events 未能提供足够的归属信息时,系统会回退到统计角色访问组织类型地点的次数。例如,一个角色频繁出现在"丐帮总舵",即使没有明确的加入事件,也会被推断为丐帮相关人物。
这种双重机制确保了即使 LLM 遗漏了组织归属信息,系统仍能通过行为模式进行合理推断。
组织层级
系统自动识别组织间的层级关系:
- 上下级关系:如"少林寺"下属"达摩院""戒律院"等
- 联盟关系:多个组织间的合作或同盟
- 对立关系:敌对阵营的标注
层级信息来源于 ChapterFact 中提取的 org_events 和关系数据的聚合分析。
图谱边聚合
势力图谱的边采用 Counter 计频机制,而非"最新章节覆盖"策略:
- relation_type:出现频率最高的关系类型
- all_types:按频率排序的所有关系类型列表
- category:关系分类(family / hierarchical / social / hostile / intimate / other)
这种基于频率的聚合方式能更准确地反映角色与组织之间的主要关系类型。
关系分类与统计
API 返回数据包含详细的分类统计信息:
- category_counts:各关系分类的数量统计(如 hierarchical: 15, hostile: 8)
- type_counts:各具体关系类型的数量统计(如 师徒: 12, 敌对: 6)
前端提供分类筛选按钮,支持按 6 种关系类别进行过滤显示。
章节范围筛选
与其他分析维度一致,势力页面支持章节范围筛选:
- 通过
chapter_start和chapter_end参数限定分析范围 - 可观察组织势力在不同阶段的变化
- 适合分析长篇小说中势力格局的演变过程
例如,对《三国演义》可以分别查看前期群雄割据和后期三国鼎立的不同势力格局。