Przeglądaj źródła

可视化设计说明

zhang 2 tygodni temu
rodzic
commit
eb6a8e604d

BIN
.DS_Store


+ 0 - 1
visualization/.superpowers/brainstorm/52647-1784195885/state/server-info

@@ -1 +0,0 @@
-{"type":"server-started","port":55457,"host":"127.0.0.1","url_host":"localhost","url":"http://localhost:55457/?key=a3be5e873ced090c1982c9ef16baa747bed1265f6e70aff99737433ae1887e6c","screen_dir":"/Users/apple/code/service/SupplyAgent/visualization/.superpowers/brainstorm/52647-1784195885/content","state_dir":"/Users/apple/code/service/SupplyAgent/visualization/.superpowers/brainstorm/52647-1784195885/state","idle_timeout_ms":14400000}

+ 1 - 0
visualization/.superpowers/brainstorm/52647-1784195885/state/server-stopped

@@ -0,0 +1 @@
+{"reason":"idle timeout","timestamp":1784221168485}

+ 1038 - 56
visualization/全局需求热力图设计说明.md

@@ -1,80 +1,1062 @@
 # 全局需求热力图设计说明
 
-## 目标
+## 1. 文档定位
 
-从全局分类树中持续识别并输出大量具有外部搜索意义的平台需求。页面首先回答“全局哪里热、哪里冷”,同时直接给出需求结果;点击和下钻只用于追溯,不是产生需求的前置操作。
+本文档是当前全局需求热力图及其背后业务框架的统一设计基线,集中记录:
 
-## 全局图
+- 项目要解决的业务问题;
+- 上游数据及先验、后验口径;
+- 全局分类树、图关系和多挂靠规则;
+- 平台需求的定义、生成与筛选原则;
+- 热度 Score、可信度和颜色规则;
+- 内容、语言证据与真实线上反馈闭环;
+- 当前可视化页面的布局、交互和 Reason 规则;
+- 当前人工模拟版本采用的计算方式;
+- 后续服务化时必须保留的业务约束。
 
-采用从左到右的分层冰柱热力图:
+当前页面是在人工模拟最终服务框架要完成的工作。它用于验证整体业务思路和产品形态,不代表所有计算权重、配额及规则已经成为最终生产标准。
 
-- 横向表示树的层级。
-- 纵向完整容纳各个分支。
-- 节点面积表示该节点所覆盖的子树规模。
-- 节点颜色表示 `0~1` 的热度 Score。
-- 冷区和暂无数据区域必须保留,作为全局比较基线。
-- 全局状态不强制显示全部节点名称;悬停和下钻后再显示名称、关系和详细证据。
-- 不为 2205 个节点绘制大量显式曲线,避免视觉噪声。
-- 全局适配只是初始视野,不锁死画布尺寸;普通滚轮和单指负责浏览纵向长树,`Ctrl/⌘ + 滚轮`、双指和按钮负责缩放。
-- 横轴选择层级时只隐藏更上层列,不把节点平铺成列表;被选层级仍作为多棵子树的根,后续父子层级继续向右展开。
-- 从需求挂靠点定位时保留祖先语境;需求详情中的完整路径节点可继续切换到任一父节点,并展示该父节点的整棵子树。
-- 横轴层级可以被选择为新的观察起点。例如选择三级后,根、一、二级不再占据画布宽度。
-- 点击任意节点都提供完整祖先路径、“上一级”入口和同父级兄弟节点对比,不针对某个示例节点硬编码。
-
-## 指标表达
-
-页面不使用 P/H、百分位等技术表达,只展示:
-
-- 热度 Score:`0~1`,综合四项先验与真实 ROV / VOV。
-- 判断可信度:`0~1`,表达数据覆盖和多项证据的一致程度。
-- 数据完全缺失必须单独标记,不得直接等同于热度 0。
-
-颜色建议:
-
-- `0.80~1.00`:高热。
-- `0.60~0.79`:升温。
-- `0.40~0.59`:绿色,中等。
-- `0.20~0.39`:深蓝色,偏冷。
-- `0~0.19`:浅蓝色,冷区。
-- 数据完全缺失:灰色。
+---
+
+## 2. 项目目标
+
+SupplyAgent 是一个面向平台内容供给的需求汇总工具。
+
+它的核心目标不是只找出几个热门词,而是:
+
+> 汇总来自内外部、近期与远期周期、先验判断与后验反馈的需求信号,将其统一挂靠到一棵全局分类树上,形成一张可追溯、可解释、可持续反馈的需求关系图,最终输出数百条可直接用于平台内容供给的需求。
+
+最终结果同时服务两个视角:
+
+1. 从全局树图观察平台需求版图、冷热分布、层级、覆盖、空白和交织关系。
+2. 从系统生成的需求清单直接开展内容搜索、内容生产、供给调度和效果验证。
+
+最终交付不是一张扁平需求表,而是:
+
+- 一棵稳定的全局分类树;
+- 数百条具有外部搜索意义的平台需求;
+- 每条需求在树上的一个或多个挂靠点;
+- 需求、分类、元素、内容和语言证据之间的关系;
+- 需求背后的先验信息与后验反馈;
+- 内容上线表现反向更新需求强度的闭环。
+
+页面首先回答两个问题:
+
+- 全局哪里热、哪里冷?
+- 基于当前全部数据,系统形成了哪些需求?
+
+点击和下钻主要用于追溯和理解,不是产生需求的前置操作。
+
+---
+
+## 3. 核心业务原则
+
+### 3.1 一棵全局树
+
+系统只有一棵正式全局分类树,不为人物、事件、情感或行为分别建立互相割裂的业务树。
+
+人物、事件、历史时期、情感、知识、行为、内容形态等概念可以位于同一棵树的不同分支。真实用户需求通过多个挂靠点把这些分支连接起来。
+
+### 3.2 以树确定归属,以图表达交织关系
+
+树内父子关系负责表达:
+
+- 层级;
+- 上下位关系;
+- 统计汇总路径;
+- 业务覆盖;
+- 正式分类治理。
 
-## 需求定义
+图上的关系负责表达:
 
-需求是可以在外部平台表达真实搜索意图的词或语言:
+- 一个需求同时涉及哪些分类分支;
+- 人物、事件、行为、情感等元素如何共同组成需求;
+- 不同需求之间是否存在包含、相似、重合或关联;
+- 哪些上游事实和内容共同支持同一需求;
+- 内容表现如何反向影响需求和分类节点。
 
-- “战争”是宽泛需求,范围较大不代表不是需求。
+因此整体上是一张图结构,但以全局分类树作为稳定骨架。
+
+### 3.3 每条需求必须挂靠到树上
+
+每条正式平台需求至少挂靠一个真实存在的分类树节点。
+
+需求允许有多个挂靠点。多个挂靠点共同表达需求的完整语义,不强制要求业务语义上的主次。
+
+例如:
+
+> 毛泽东在抗日战争和解放战争时期的诗词创作
+
+可能同时涉及:
+
+- 历史人物;
+- 人物故事;
+- 个人经历;
+- 抗日战争相关历史分类;
+- 解放战争相关历史分类;
+- 诗词创作或写诗相关分类;
+- 历史解读。
+
+如果统计时必须避免重复计数,可以额外设置“统计主归属节点”或明确分摊规则。统计主归属只用于统计,不代表其他挂靠关系在业务上不重要。
+
+### 3.4 用户搜索意图优先
+
+是否形成需求,首先判断该词或语言能否表达真实的外部搜索意图,而不是只判断它是否具体或是否热门。
+
+- “战争”可以在外部平台搜索,是宽泛需求;范围大不代表不好。
 - “抗日战争”是主题级需求。
 - “毛泽东在抗日战争中的经历”是具体需求。
-- “表象”是分类结构词,不是需求。
+- “从抗日战争到解放战争,毛泽东诗词主题发生了什么变化”是长尾需求。
+- “表象”通常只是结构分类词,不是需求。
 - “转发”单独出现通常是孤立动作,不是需求。
 - “视频怎么转发给朋友”具有完整问题语义,是需求。
 
-需求粒度分为宽泛、主题级、具体、长尾。粒度只描述范围,不评价需求好坏。
+需求粒度分为:
+
+- 宽泛;
+- 主题级;
+- 具体;
+- 长尾。
+
+粒度只描述需求范围,不评价需求质量。
+
+### 3.5 热度不直接决定需求是否成立
+
+需求判断不能使用单一热度阈值一刀切。
+
+- 某个维度缺失,不等于需求不存在。
+- 热度很高但没有独立搜索意义的结构词,不形成需求。
+- 热度较低但搜索意图明确的词,可以形成需求或探索需求。
+- 只有 A 维度没有 B 维度,可能形成需求,也可能不形成需求,必须结合名称、树位置、元素和其他证据判断。
+- 宽泛词可以作为父级需求继续下挂具体需求。
+- 无后验数据的新需求必须获得被验证的机会,不能因为尚未上线而被永久压制。
+
+### 3.6 数据驱动为主,自由推演为辅
+
+平台需求必须主要依赖上游输入数据。
+
+建议总体控制为:
+
+- `80%~90%`:上游数据直接支持的核心需求;
+- `10%~20%`:基于已有节点、元素、视频、语言证据和关联关系形成的邻近机会需求。
+
+模型不得:
+
+- 凭空创造上游没有依据的人物、事件、情感或主题;
+- 用模型常识替代真实数据;
+- 将弱关联包装成确定事实;
+- 把推演结果与上游直接支持的需求混淆展示。
+
+推演需求必须说明:
+
+- 由哪些已有数据和关联组合而来;
+- 上游是否直接出现过完整表达;
+- 哪些部分属于模型推断;
+- 当前属于核心需求还是机会需求;
+- 推断置信度和待验证状态。
+
+### 3.7 原始事实与模型推断分离
+
+上游当前主要提供“关联”关系。
+
+系统必须永久保留原始“关联”边及其来源,不得用模型解释覆盖原始事实。
+
+在证据充分时,系统可以把普通关联扩展解释为:
+
+- 人物参与事件;
+- 事件发生于某历史时期;
+- 人物在某时期进行诗词创作;
+- 作品表达某种情感或精神;
+- 某历史背景影响某内容主题。
+
+所有推断语义关系都必须附带:
+
+- 推断说明;
+- 原始关联证据;
+- 数据来源;
+- 置信度;
+- 是否经过人工确认;
+- 创建和更新时间。
+
+证据不足时继续保留“关联”,不强行扩展语义。
+
+---
+
+## 4. 整体业务对象
+
+全图由以下核心业务对象组成:
+
+1. 正式分类树节点;
+2. 细节元素;
+3. 视频或其他真实内容实例;
+4. 明确语言观点、问题和长段讨论;
+5. 平台需求;
+6. 数据证据、状态和反馈。
+
+### 4.1 正式分类树节点
+
+正式、稳定、可治理的分类节点,保留原始父子关系并从左到右展开。
+
+正式分类树负责业务归属和汇总,不应把所有人物名、视频、观点或长文本都强行变成新的分类层级。
+
+### 4.2 细节元素
+
+分类节点下面可以继续挂载更具体的元素,例如:
+
+- 毛泽东;
+- 抗日战争;
+- 解放战争;
+- 写诗;
+- 战争时期诗词;
+- 革命乐观主义;
+- 家国情怀。
+
+元素主要来自:
+
+- 上游需求数据;
+- 视频解析;
+- 内容标签;
+- 人工治理。
+
+一个元素可以:
+
+- 挂在多个正式分类节点下;
+- 与其他元素保留原始关联;
+- 连接多条真实视频;
+- 被多个平台需求共同引用;
+- 根据出现次数、视频数量和线上表现形成元素强度。
+
+### 4.3 视频或内容实例
+
+视频不是单纯的链接,而是需求提取和效果反馈的事实实例。
+
+每条内容应尽量保留:
+
+- 标题、链接、作者和发布时间;
+- 转写或内容描述;
+- 命中的分类节点和元素;
+- 对应的平台需求;
+- 主承接需求和辅助承接需求;
+- 点赞、评论、分享、收藏等表现;
+- 真实 ROV、真实 VOV;
+- 内容质量和解析可信度;
+- 数据日期和样本状态。
+
+一条需求可以由多条内容承接,一条内容也可能承接多个需求,但需要区分主要承接和辅助承接,避免反馈归因失真。
+
+### 4.4 明确语言观点与问题
+
+从视频或内容中提取可以独立表达的语言单元:
+
+- 明确事实;
+- 观点;
+- 判断;
+- 问题;
+- 可用于需求命名的一句话;
+- 容易理解和传播的内容结论。
+
+例如:
+
+> 战争环境并未中断诗词创作,反而强化了作品的历史表达。
+
+> 毛泽东为什么在战争时期持续进行诗词创作?
+
+语言提取必须保留对应视频、原始片段和提取说明,不能脱离真实内容。
+
+### 4.5 长段讨论
+
+多个视频、元素和短观点可以进一步形成长段讨论,用于表达:
+
+- 完整背景;
+- 不同内容观点之间的共同点和差异;
+- 历史过程与人物行为之间的联系;
+- 为什么形成某条需求;
+- 需求存在的争议或不确定点;
+- 内容供给可以展开的角度;
+- 线上反馈为什么支持或抑制某条需求。
+
+长段讨论不是自由文章,必须引用真实元素、视频和语言证据,并标识事实、推断和不确定点。
+
+### 4.6 平台需求
+
+平台需求是最终核心输出,不等同于分类节点,也不等同于某个原始词。
+
+例如:
+
+- 毛泽东在抗日战争时期创作过哪些诗词;
+- 毛泽东的战争诗词如何反映当时的历史环境;
+- 从抗日战争到解放战争,毛泽东诗词主题发生了什么变化。
+
+这些需求可能共同涉及相同人物、战争和写诗元素,但表达的是不同用户意图,因此应是不同需求节点。
+
+### 4.7 节点下的证据子图
+
+正式分类节点不是下钻终点。节点下可以继续形成:
+
+```text
+正式分类节点
+  ↓
+细节元素
+  ↓
+真实视频或内容
+  ↓
+明确语言观点或问题
+  ↓
+长段讨论
+  ↓
+平台需求
+  ↓
+真实线上反馈
+```
+
+这些对象可以下挂展示,但不应被机械定义成 L6、L7、L8 分类节点。
+
+---
+
+## 5. 图中的主要关系
+
+### 5.1 树内父子关系
+
+正式分类树原有的层级关系,是全图最稳定的结构。
+
+### 5.2 需求多挂靠关系
+
+每条挂靠关系应记录:
+
+- 需求;
+- 挂靠节点;
+- 完整树路径;
+- 挂靠理由;
+- 支持该挂靠的上游数据;
+- 关系置信度;
+- 正式或待审核状态;
+- 生效和更新时间。
+
+### 5.3 原始关联关系
+
+来自上游数据的事实关系,类型统一保留为“关联”,并保留来源、时间和原始表达。
+
+### 5.4 推断语义关系
+
+基于原始关联、树位置和上下文生成的补充关系,只用于:
+
+- 增强解释;
+- 帮助聚类;
+- 提供低权重排序增益;
+- 辅助发现邻近机会需求。
+
+推断边不能取代原始关联边。
+
+### 5.5 分类节点与元素关系
+
+表达某元素下挂在哪些分类节点下。一个元素允许拥有多个分类挂靠点。
+
+### 5.6 元素与视频关系
+
+表达某条视频包含、体现或讨论了哪些元素。
+
+### 5.7 视频与语言关系
+
+表达明确观点、问题和长段讨论来自哪些视频、转写或片段。
+
+### 5.8 语言与需求关系
+
+表达某个观点、问题或讨论支持、形成或验证了哪些平台需求。
+
+### 5.9 需求与内容关系
+
+表达内容承接需求的程度:
+
+- 主承接;
+- 辅助承接;
+- 部分覆盖;
+- 待验证;
+- 已上线;
+- 已形成有效样本。
+
+### 5.10 内容表现回流关系
+
+表达内容真实线上表现如何经过归因校正,反向影响需求强度和相关分类节点。
+
+---
+
+## 6. 上游数据口径
+
+### 6.1 四项先验信息
+
+以下信息用于回答“在上线验证之前,这个方向是否值得关注”:
+
+- 外部热度;
+- 平台持续热度;
+- 去年同期热度;
+- 近期热度。
+
+四项先验信息保持相对正交,允许某一维度存在而其他维度缺失。
+
+### 6.2 两项后验反馈
+
+以下信息用于回答“内容真实承接需求后,需求是否得到验证”:
+
+- 真实 ROV;
+- 真实 VOV。
+
+名称固定使用“真实 ROV / 真实 VOV”。
+
+后验反馈不是页面附属信息,而是系统闭环的一部分。它需要反向影响:
+
+- 需求热度和验证强度;
+- 需求排序;
+- 生命周期;
+- 相关分类节点的局部热度;
+- 下一周期的内容供给策略。
+
+### 6.3 数据缺失
+
+数据完全缺失必须单独标识,不得直接等同于热度 `0`。
+
+需要区分:
+
+- 指标真实为低值;
+- 指标尚未采集;
+- 新需求尚未上线验证;
+- 样本不足;
+- 归因尚未完成。
+
+### 6.4 数据来源优先级
+
+系统主要使用上游输入数据。模型常识只能用于:
+
+- 同义词归一;
+- 解释已有关系;
+- 在已有数据范围内形成邻近推演;
+- 生成明确标识为模型解释的 Reason。
+
+模型常识不能替代数据来源。
+
+---
+
+## 7. 热度 Score 与可信度
+
+### 7.1 页面统一表达
+
+页面不展示 P/H、P80、H80 或全局百分位等难以理解的内部术语。
+
+统一展示:
+
+- 热度 Score:`0~1`;
+- 判断可信度:`0~1`;
+- 原始指标值;
+- 是否具有真实 ROV / VOV;
+- 数据缺失状态。
+
+### 7.2 颜色规则
+
+- `0.80~1.00`:红色,高热;
+- `0.60~0.79`:橙色,升温;
+- `0.40~0.59`:绿色,中等;
+- `0.20~0.39`:深蓝色,偏冷;
+- `0~0.19`:浅蓝色,冷区;
+- 数据完全缺失:灰色。
+
+黄色与橙色区分度不足,因此当前方案不再使用相邻的黄、橙作为主要热度级别。
+
+### 7.3 当前人工模拟的归一化方法
+
+当前页面对每项非零原始指标执行:
+
+1. `log1p` 压缩极端大值;
+2. 使用该指标全局非零样本的 `95%` 分位作为上限;
+3. 归一化到 `0~1`;
+4. 超过上限的值截断为 `1`。
+
+这能减少极端值对全局颜色的支配,但属于当前演示算法,生产版本可以基于真实分布重新校准。
+
+### 7.4 当前先验和后验合成
+
+当前人工模拟采用:
+
+```text
+先验分 =
+外部热度 × 0.30
++ 平台持续热度 × 0.23
++ 去年同期热度 × 0.17
++ 近期热度 × 0.30
+```
+
+后验内部:
+
+```text
+后验分 =
+真实 ROV × 0.50
++ 真实 VOV × 0.50
+```
+
+当先验和后验同时存在时:
+
+```text
+节点基础热度 =
+先验分 × 0.58
++ 后验分 × 0.42
+```
+
+只有一组存在时,使用已有的一组,不把缺失组按零计算。
+
+数据覆盖度会对热度作温和校正:
+
+```text
+校正系数 = 0.50 + 六维覆盖率 × 0.50
+```
+
+覆盖度只校正热度置信程度,不参与“是否为需求”的判断。
+
+这些权重是当前人工模拟参数,不是最终业务定论。
+
+### 7.5 分类节点局部热度
+
+分类节点既显示自身数据,也吸收部分子树信号。
+
+当前人工模拟:
+
+- 取子节点中较强的前 `25%` 信号形成子树信号;
+- 节点有自身数据时:
+
+```text
+展示热度 = 自身热度 × 0.68 + 子树信号 × 0.32
+```
+
+- 节点无自身数据但子树有信号时,使用衰减后的子树热度;
+- 需求挂靠节点缺少直接数据时,可以沿祖先方向继承衰减热度,但必须保留“自身无直接数据”的事实。
+
+这样可以让“居家生活”“家务劳动”“阅读”等模块的局部冷热在全局图中直接可见,同时不把父级热度误认为每个子节点都有直接数据。
+
+### 7.6 当前可信度
+
+可信度用于表达:
+
+- 六维数据覆盖程度;
+- 先验和后验的一致程度;
+- 是否存在直接元素证据。
+
+可信度不是需求价值,也不是热度。
+
+---
+
+## 8. 需求识别与汇总
+
+### 8.1 候选来源
+
+当前人工模拟从两类上游对象提取需求候选:
+
+- 分类节点名称;
+- 分类节点下挂元素名称。
+
+未来还应加入:
+
+- 视频标题和转写;
+- 明确观点或问题;
+- 长段讨论;
+- 人工录入需求;
+- 已有平台需求回流。
+
+### 8.2 搜索意义判断
+
+当前模拟先排除:
+
+- 过短且无法表达意图的词;
+- 纯结构词;
+- 孤立动作;
+- “其他、相关、类别、类型、内容、信息”等泛结构表达;
+- 过高层且只用于分类治理的上层结构节点。
+
+不能因为词较泛就排除。“战争”这类具有外部搜索意义的宽泛词必须保留。
+
+### 8.3 需求合并
+
+同名标准表达合并为唯一需求,并保留:
+
+- 全部来源类型;
+- 全部去重后的树上挂靠点;
+- 每个挂靠点的完整路径;
+- 原始 reason;
+- 指标和数据状态。
+
+更成熟的生产版本应按以下组合判断语义是否相同:
+
+```text
+核心用户意图 + 关键对象 + 范围或约束
+```
+
+例如:
+
+- “毛泽东抗战时期写的诗”
+- “毛泽东在抗日战争阶段创作的诗词”
+
+可以合并并保留原始表达。
+
+但以下两条不应简单合并:
+
+- 毛泽东在抗日战争时期创作过哪些诗词;
+- 毛泽东的抗战诗词表达了什么情感。
+
+前者关注作品事实,后者关注作品解读。
+
+### 8.4 当前需求热度与排序
+
+需求有多个挂靠点时,当前人工模拟取挂靠点中较高的可用热度作为需求热度,并综合:
+
+- 需求热度;
+- 平均可信度;
+- 挂靠点数量;
+- 是否直接来自元素。
+
+当前排序参数为:
+
+```text
+优先级 =
+需求热度 × 0.56
++ 可信度 × 0.24
++ 多挂靠增益 × 0.12
++ 元素来源增益 × 0.08
+```
+
+该排序用于演示全局结果组织,不应被理解为生产环境的最终推荐公式。
+
+### 8.5 当前数百条输出策略
+
+系统最终重点是批量形成大量有用需求,不要求用户逐个点击节点后才生成。
+
+当前人工模拟把候选分为:
+
+- 有数据支持且热度达到基础条件的主队列;
+- 冷区或数据缺失但搜索意图明确的探索队列。
+
+当前页面最多从主队列选取约 `650` 条,从探索队列选取约 `250` 条,并强制保留业务确认过的宽泛需求,形成数百条输出。
+
+这些数量是为了验证产品规模感,不是固定生产配额。
+
+### 8.6 冷区必须保留
+
+冷区有三项业务价值:
+
+- 提供与热点的全局对比;
+- 发现先验低但可能有真实搜索意义的长尾需求;
+- 为后续真实 ROV / VOV 的反向验证保留观察对象。
+
+因此不能只显示热点,也不能只输出“多维同时很高”的需求。
+
+---
+
+## 9. Reason 与可追溯性
+
+每条需求必须分别展示两类信息。
+
+### 9.1 上游数据事实
+
+包括:
+
+- 全部树上挂靠路径;
+- 主要数据观察位置;
+- 四项先验原始值;
+- 真实 ROV / VOV;
+- 数据缺失情况;
+- 相关元素;
+- 上游原始 reason;
+- 数据来源和日期。
+
+### 9.2 模型 Reason
+
+包括:
+
+- 为什么该表达具有搜索意义;
+- 为什么属于当前需求粒度;
+- 当前处于高热、升温、中等、偏冷、冷区或待验证状态;
+- 为什么某项数据缺失仍允许形成需求;
+- 为什么具有多个挂靠点;
+- 哪些内容属于模型推断;
+- 后续需要什么验证。
+
+模型 Reason 必须明确标识,不得伪装成上游原始 reason。
+
+---
+
+## 10. 需求—内容—线上表现闭环
+
+真实线上反馈是需求汇总系统的核心后验闭环:
+
+```text
+平台需求
+  ↓
+搜索、匹配或生产内容
+  ↓
+内容上线和分发
+  ↓
+获得真实线上表现
+  ↓
+校正并归因到需求
+  ↓
+更新需求强度和生命周期
+  ↓
+影响下一周期内容供给
+```
+
+### 10.1 需求与内容映射
+
+每条上线内容至少需要说明:
+
+- 主要承接哪个需求;
+- 是否辅助承接其他需求;
+- 对需求的覆盖程度;
+- 上线时间;
+- 是否形成有效样本。
+
+### 10.2 内容表现不能直接等同于需求表现
+
+真实内容表现还受以下因素影响:
+
+- 内容质量;
+- 标题和封面;
+- 表达方式;
+- 分发流量;
+- 发布时间;
+- 平台环境;
+- 同类内容竞争;
+- 供给数量;
+- 样本量。
+
+因此真实 ROV / VOV 需要经过归因校正,再反向影响需求强度。
+
+不能因为一条质量较差的内容表现不好,就直接判断需求不存在。
+
+### 10.3 后验反馈的作用
+
+真实反馈应当能够:
+
+- 验证新需求是否真实成立;
+- 提高持续表现良好需求的强度;
+- 降低持续表现较差需求的优先级;
+- 判断是否已经过度供给;
+- 发现先验不高但后验表现好的潜在需求;
+- 影响相关分类节点的局部热度;
+- 影响下一周期主题配额和供给策略。
+
+---
+
+## 11. 全局可视化结构
+
+### 11.1 页面总体结构
+
+当前页面由四个区域组成:
+
+1. 顶部:项目定位、数据规模、热度图例和核心原则;
+2. 主区域左侧:完整分类树冰柱热力图;
+3. 主区域右侧:系统批量形成的需求清单及挂靠路径;
+4. 页面下方:分类节点或需求的事实、模型 Reason 和完整路径节点信息。
+
+页面使用宽屏布局,尽量减少左右无效留白,让热力图获得主要横向空间。
+
+### 11.2 从左到右的冰柱树
+
+采用从左到右的分层冰柱热力图:
+
+- 横向表示树的层级;
+- 左侧是父节点,右侧是子节点;
+- 纵向完整容纳不同分支;
+- 节点纵向面积表示所覆盖的子树规模;
+- 节点颜色表示热度 Score;
+- 父子关系通过相邻列和共享纵向区间表达;
+- 不为数千节点绘制大量显式曲线,避免关系线遮挡全局冷热。
+
+需求与多个挂靠点之间的关系则在右侧路径区和定位交互中明确展示。
+
+### 11.3 全局热冷对比
+
+全局视图必须同时展示:
+
+- 红色和橙色热点;
+- 绿色中间区域;
+- 深蓝和浅蓝冷区;
+- 灰色无直接数据区。
+
+全局状态不强制显示所有节点名称。节点过小时可以只保留颜色和位置,悬停、缩放或聚焦后再显示名称、Score 和证据。
+
+### 11.4 层级选择
+
+横轴可选择任意层级作为新的观察起点。
+
+例如选择第三级后:
+
+- 根节点、一级和二级不再占据横向空间;
+- 第三级节点成为多棵可见子树的根;
+- 第三级之后的父子层级继续向右展开;
+- 节点不能平铺成失去树感的列表;
+- 所有符合范围的子树都必须保留。
+
+### 11.5 纵向长树
+
+当层级深、每层节点多时,不能通过压缩所有节点高度强行塞进固定画布。
+
+当前规则:
+
+- 全局初始状态适配当前视口;
+- 选择深层级或聚焦分支后,画布可纵向拉长;
+- 使用普通滚轮或单指上下浏览;
+- 保留完整父子层级,不丢失节点;
+- 纵向滚动时右侧需求清单保持独立可用。
+
+### 11.6 缩放和移动
+
+- 普通滚轮:纵向浏览长树;
+- 单指触摸拖动:浏览长树;
+- `Ctrl/⌘ + 滚轮`:缩放;
+- 双指:缩放;
+- `+ / − / 适配`:显式缩放控制;
+- 鼠标拖动画布:平移视图;
+- 双击:局部放大。
+
+缩放控件固定在树视口右下角,不随长画布滚动消失。
+
+### 11.7 节点下钻
+
+点击任意分类节点后:
+
+- 聚焦该节点及其完整子树;
+- 显示完整祖先面包屑;
+- 可以点击“上一级”;
+- 可以直接点击面包屑中的任一祖先;
+- 显示同父级兄弟节点对比;
+- 展示节点自身热度、可信度、元素和相关需求。
+
+“节日”只是示例,所有节点使用同一套通用规则,不针对具体节点硬编码。
+
+### 11.8 需求多挂靠定位
+
+点击右侧需求后:
+
+- 展示全部去重后的挂靠路径;
+- 每个挂靠点可以直接定位;
+- 当前选中挂靠点明确高亮;
+- 左侧树定位到目标节点;
+- 保留目标节点上方约 `2~3` 层祖先语境;
+- 同时保留目标附近的兄弟和子节点;
+- 面包屑显示目标的完整路径。
+
+### 11.9 需求路径父级导航
+
+需求详情下方展示完整路径节点卡片。
+
+点击任一路径节点后:
+
+- 当前需求保持选中;
+- 需求的全部挂靠路径继续可见;
+- 左侧切换到该父节点的整棵子树;
+- 面包屑同步更新;
+- 下方继续显示该节点的父级路径信息;
+- “上一级”可以连续向上,不会丢失需求上下文。
+
+### 11.10 搜索和筛选
+
+当前页面支持:
+
+- 搜索分类节点;
+- 搜索需求;
+- 按宽泛、主题级、具体、长尾筛选;
+- 在聚焦分支时只显示与当前分支相关的需求;
+- 回到全局后恢复全部结果。
+
+---
+
+## 12. 业务流程
+
+完整业务链路是持续循环,不是一次性的线性任务:
+
+```text
+上游需求信号
+  ↓
+数据归一和来源保留
+  ↓
+需求元素识别
+  ↓
+挂靠全局分类树
+  ↓
+保留原始关联并构建关系图
+  ↓
+连接真实视频和内容
+  ↓
+提取明确观点、问题和长段讨论
+  ↓
+生成并合并唯一平台需求
+  ↓
+计算先验热度和可信度
+  ↓
+形成全局需求地图与数百条需求
+  ↓
+搜索或生产承接内容
+  ↓
+内容上线并产生真实 ROV / VOV
+  ↓
+校正并归因到需求
+  ↓
+更新需求强度、局部热度和生命周期
+  ↓
+影响下一周期排序和内容供给
+```
+
+---
+
+## 13. 分类树治理
+
+### 13.1 优先使用现有正式节点
+
+需求挂靠优先使用现有正式分类节点。
+
+### 13.2 表达缺口进入候选治理
+
+如果现有树无法准确表达需求:
+
+1. 先挂到当前最可靠的上级节点;
+2. 标记表达缺口;
+3. 进入候选节点治理区;
+4. 由人工审核是否新增正式节点。
+
+模型或 Agent 不应直接修改正式分类树。
+
+### 13.3 稳定骨架与丰富证据分离
+
+人物、视频、语言观点和长讨论优先作为节点下证据对象存在,不应为了展示细节不断扩张正式树层级。
+
+---
+
+## 14. 业务质量控制
+
+### 14.1 可追溯
+
+每条需求都能回到:
+
+- 原始名称;
+- 来源;
+- 分类路径;
+- 元素;
+- 视频和内容;
+- 语言证据;
+- 原始关联;
+- 原始 reason;
+- 指标与数据日期;
+- 模型推断说明。
+
+### 14.2 可解释
+
+热度、可信度、需求成立原因、数据缺失和推断部分必须分别说明。
+
+### 14.3 防止过度聚合
+
+相同人物或主题不代表相同用户意图。作品事实、情感解读、历史背景和人物经历不能仅因对象相同就合并。
+
+### 14.4 防止过度拆分
+
+同义表达、简称、别名和轻微语序差异应归一到同一需求,并保留原始表达。
+
+### 14.5 防止自由推演失控
+
+没有上游数据、元素、内容或关联依据的需求不能进入正式结果。
+
+### 14.6 防止后验误判
+
+单条内容表现差不能直接否定需求,必须结合内容质量、流量、样本和多条内容一致性进行归因。
+
+### 14.7 防止热度遮蔽冷区机会
+
+热度影响优先级,但不能成为需求存在与否的唯一开关。
+
+---
+
+## 15. 当前页面数据与实现状态
+
+当前可视化读取:
+
+- `visualization/全局分类树.html`:上游全局树和数据;
+- `visualization/pages/全局分类树-需求热度与关系分析.html`:页面结构;
+- `visualization/pages/global-tree-analysis.js`:当前人工模拟逻辑;
+- `visualization/pages/global-tree-analysis.css`:视觉与布局。
+
+当前示例数据规模会显示在页面顶部,包括:
+
+- 分类节点数量;
+- 上游元素数量;
+- 系统形成的需求数量;
+- 经过判断的候选数量;
+- 有直接热度数据的节点数量;
+- 数据日期。
+
+这些数字来自当前输入文件,不是写死的产品目标。
+
+---
+
+## 16. 可视化服务
+
+启动方式:
+
+```bash
+./visualization/run.sh
+```
+
+打开:
+
+```text
+http://localhost:8765/
+```
+
+正式全局需求地图入口:
+
+```text
+http://localhost:8765/view/全局分类树-需求热度与关系分析.html
+```
+
+参考图保存在:
 
-## 需求判断
+- `visualization/assets/tree.jpeg`
+- `visualization/assets/tree2.png`
+- `visualization/assets/case.jpeg`
+- `visualization/assets/liubai.png`
 
-需求是否成立不能由固定维度组合机械决定:
+参考图用于理解
 
-- 某个维度缺失,可能代表数据空白,不等于需求不存在。
-- 热度很高但缺少独立搜索意义的结构词,不形成需求。
-- 热度较低但搜索意图明确的词,可以成为需求或探索需求。
-- 宽泛词可以成为父级需求,并继续下挂具体子需求。
-- 需求可以拥有多个树上挂靠点。
+- 树的局部形态;
+- 分类节点下挂细节元素;
+- 元素如何连接具体视频;
+- 视频如何扩展为明确语言和长段讨论;
+- 全局热力图的空间利用
 
-## Reason
+---
 
-每条需求都输出两类说明:
+## 17. 当前版本已经确认的设计结论
 
-- 数据事实:上游分类位置、四项先验、真实 ROV / VOV、元素及原始 reason。
-- 模型解释:为什么该词具有搜索意义、为什么采用当前粒度、数据缺失如何处理、为什么形成或不形成需求。
+以下结论应作为后续迭代的默认基线:
 
-模型解释必须明确标识,不能伪装成上游原始数据。
+1. 整体是一张图,但必须以一棵全局分类树为骨架。
+2. 每条需求必须挂树,且允许多个挂靠点。
+3. 多挂靠路径、父子层级和关系必须可追溯。
+4. 上游原始关系目前主要是“关联”,推断新语义必须附带说明。
+5. 四项先验是外部热度、平台持续热度、去年同期热度、近期热度。
+6. 两项后验固定称为真实 ROV、真实 VOV。
+7. 后验反馈必须反向影响需求强度和下一周期供给。
+8. 热度统一归一化为 `0~1` Score。
+9. 冷区和无数据区必须保留,不能只展示热点。
+10. 热度不直接决定是否形成需求。
+11. “战争”这类宽泛但可搜索的词可以是需求。
+12. “表象、转发”等缺少完整搜索意义的孤立词通常不是需求。
+13. 需求主要依赖上游数据,模型只做少量、可解释的邻近推演。
+14. 最终重点是批量输出数百条有用需求,而不是要求用户逐节点判断。
+15. 全局图从左到右展示层级,父节点在左、子节点在右。
+16. 选择某一层级后只隐藏更上层,不能把节点平铺并丢失树结构。
+17. 深层树使用纵向长画布和滚动,不能通过无限压缩节点解决。
+18. 点击需求挂靠点时必须显示完整路径并可直接定位。
+19. 定位需求后必须保留祖先语境、兄弟和子树。
+20. 沿父级路径导航时必须持续保留当前需求上下文。
+21. 分类节点下可以继续展示元素、视频、语言观点、长段讨论和需求,但这些不等于新的正式分类层级。
+22. 上游事实和模型 Reason 必须分开展示。
 
-## 页面结构
+---
 
-1. 顶部:全局概览、热度图例和数据覆盖说明。
-2. 主区域左侧:完整分层冰柱热力图。
-3. 主区域右侧:系统批量生成的需求清单。
-4. 下钻状态:放大选中分支,展示子需求、多个挂靠点、数据事实和模型 Reason。
+## 18. 一句话总结
 
-视觉语言参考现有“05 · 最终输出结构”:蓝色主框架、橙色需求结果、紫色证据说明、充足留白和少量必要关系线。
+> 以一棵全局分类树作为稳定骨架,把上游元素、内容、语言证据和数百条平台需求组织成可多点挂靠的关系图;用 `0~1` 热力展示全局冷暖,用真实 ROV / VOV 持续校正需求强度,并让每一条需求都可搜索、可解释、可追溯、可下钻和可反馈。