# How解构结果可视化工具
将How解构结果生成交互式HTML可视化页面,展示帖子详情、灵感点、匹配结果和历史来源。
---
## 快速开始
```bash
python script/data_processing/visualize_how_results.py
```
生成的HTML文件位置:
```
data/data_1117/当前帖子_how解构结果_可视化.html
```
在浏览器中打开该文件即可查看可视化结果。
---
## 功能特性
### 1. 多帖子标签页
- 支持多个帖子的切合展示
- 每个帖子一个标签页,点击切换
- 标签显示帖子标题
### 2. 智能目录导航
- **左侧固定目录**
- 帖子详情快速跳转
- 灵感点列表导航
- How步骤快速定位
- **自动激活高亮**
- 滚动时自动追踪当前位置
- 目录项高亮显示当前浏览区域
- 紫色背景标识激活项
### 3. 紧凑帖子卡片
- **主帖子卡片**(左上方固定显示)
- 缩略图预览(保持宽高比)
- 标题、正文预览
- 作者、发布日期
- 点赞、评论、收藏数
- **点击展开详情**
- 模态框显示完整内容
- 图片轮播查看
- 完整正文和统计数据
- 链接跳转至小红书原帖
### 4. 灵感点详情
- **右上方固定显示**
- 灵感点名称(黄色徽章)
- 灵感点描述
- 包含的特征列表
### 5. 特征分类展示
- **简洁格式**: `[大类/中类/小类] 特征名称`
- 灰色小字,不喧宾夺主
- 显示在人设特征名称前
### 6. How步骤分组
- **三级折叠结构**
- 第一级:步骤名称(可折叠)
- 第二级:特征匹配结果(可折叠)
- 第三级:具体匹配项(可折叠)
- **步骤信息展示**
- 步骤名称
- 来源灵感点
- 特征数量统计
### 7. 匹配结果详情
- **匹配头部信息**
- 人设特征名称和分类
- 关系类型徽章(完全相同/包含/部分重叠等)
- 匹配分数
- **展开内容**
- 匹配解释说明
- 历史帖子来源卡片
### 8. 历史帖子来源
- **卡片式展示**
- 帖子缩略图
- 帖子标题
- 灵感点名称和描述
- 发布日期
- 点赞、收藏数
- 查看原帖链接
- **点击查看详情**
- 所有历史帖子卡片均可点击
- 弹出模态框显示完整内容
---
## 数据来源
### 输入数据
| 数据文件 | 用途 | 说明 |
|---------|------|------|
| `data/data_1117/当前帖子_how解构结果/*.json` | How解构结果 | 包含帖子详情、灵感点、How步骤、匹配结果 |
| `data/data_1117/特征名称_分类映射.json` | 特征分类 | 287个特征的分类层级(灵感点/关键点/目的点) |
| `data/data_1117/特征名称_帖子来源.json` | 历史来源 | 275个特征的历史帖子来源 |
### 输出文件
```
data/data_1117/当前帖子_how解构结果_可视化.html
```
单个HTML文件,包含所有数据、样式和交互逻辑。
---
## How解构结果数据结构
### 主要结构
```json
{
"帖子详情": {
"title": "帖子标题",
"images": ["图片URL1", "图片URL2"],
"body_text": "正文内容",
"like_count": 1000,
"comment_count": 50,
"collect_count": 200,
"channel_account_name": "作者名",
"publish_time": "2025-11-17 10:00:00",
"link": "小红书链接"
},
"how解构结果": {
"灵感点列表": [
{
"名称": "灵感点名称",
"描述": "灵感点描述",
"how步骤列表": [
{
"步骤名称": "步骤1",
"特征列表": [
{
"特征名称": "特征A",
"匹配结果": [
{
"人设特征名称": "人设特征X",
"匹配结果": {
"relation": "same",
"score": 0.95,
"explanation": "匹配说明"
}
}
]
}
]
}
]
}
]
}
}
```
### 关系类型说明
| relation | 中文标签 | 颜色 | 说明 |
|----------|---------|------|------|
| same | 完全相同 | 绿色 | 语义完全一致 |
| contains | 包含 | 蓝色 | A包含B |
| overlap | 部分重叠 | 橙色 | 有交集但不完全相同 |
| related | 相关 | 紫色 | 语义相关 |
| unrelated | 无关 | 灰色 | 不相关 |
---
## 特征分类映射
### 数据结构
```json
{
"灵感点": {
"猫咪": {
"所属分类": ["猫咪物体", "物体", "实质"]
}
},
"关键点": {
"特征名": {
"所属分类": ["小类", "中类", "大类"]
}
},
"目的点": {
"种草产品": {
"所属分类": ["品牌种草", "创作者"]
}
}
}
```
### 显示格式
- 原始数据:`["猫咪物体", "物体", "实质"]`(从小类到大类)
- 可视化显示:`[实质/物体/猫咪物体]`(从大类到小类)
---
## 历史帖子来源
### 数据结构
```json
{
"灵感点": [
{
"特征名称": "猫咪",
"特征来源": [
{
"点的名称": "镜子里猫咪的反差萌表情",
"点的描述": "创作者在给两只穿着同款毛衣的猫拍照时...",
"帖子id": "69002ba70000000007008bcc",
"帖子详情": {
"title": "算了 跟你们没猫的说不清楚",
"images": ["图片URL"],
"like_count": 1847,
"publish_time": "2025-10-28 10:34:16",
"link": "小红书链接"
}
}
]
}
]
}
```
### 用途
- 展示该特征在历史帖子中的应用案例
- 帮助理解特征的实际使用场景
- 提供参考素材和灵感
---
## 交互功能
### 1. 目录导航
- **点击跳转**:点击目录项快速定位到对应区域
- **自动高亮**:滚动时自动更新目录激活状态
- **固定悬浮**:目录固定在左侧,始终可见
### 2. 折叠展开
- **步骤折叠**:点击步骤标题展开/收起该步骤下的所有特征
- **特征折叠**:点击特征区域标题展开/收起匹配结果
- **匹配项折叠**:点击匹配项标题查看详细说明和历史来源
### 3. 帖子详情
- **主帖子**:点击左上角紧凑卡片查看完整详情
- **历史帖子**:点击历史来源卡片查看完整详情
- **图片轮播**:模态框中支持左右切换查看多张图片
- **关闭模态框**:点击背景或关闭按钮
### 4. 外部链接
- **查看原帖**:点击"查看原帖"链接跳转至小红书
- **链接阻止冒泡**:点击链接不会触发卡片的点击事件
---
## 样式设计
### 颜色方案
- **主色调**:紫色系(#667eea, #764ba2)
- **辅助色**:橙色(#fbbf24)用于灵感点
- **关系颜色**:
- 完全相同:绿色
- 包含:蓝色
- 部分重叠:橙色
- 相关:紫色
### 布局结构
```
+------------------+----------------------------------------+
| | Tab导航(多帖子切换) |
+------------------+----------------------------------------+
| | +----------------+------------------+ |
| | | 帖子详情卡片 | 灵感点详情 | |
| 目录导航 | | (点击展开) | (固定展示) | |
| (固定左侧) | +----------------+------------------+ |
| | |
| - 帖子详情 | How步骤分组 |
| - 灵感点1 | +----------------------------------+ |
| - 步骤1 | | ▼ 步骤1 (来自: 灵感点1) | |
| - 步骤2 | | [特征A] 匹配结果 | |
| - 灵感点2 | | ▶ [分类] 人设特征X [关系] 分数 | |
| | +----------------------------------+ |
+------------------+----------------------------------------+
```
---
## 使用场景
### 场景1:分析How解构质量
1. 查看帖子被拆解成哪些灵感点
2. 了解每个灵感点的步骤结构
3. 检查特征匹配的准确性
### 场景2:理解特征应用
1. 点击展开匹配项查看详细说明
2. 查看历史帖子来源卡片
3. 学习特征在实际内容中的应用方式
### 场景3:对比不同帖子
1. 切换标签页查看不同帖子的解构结果
2. 对比相同灵感点在不同帖子中的表现
3. 发现内容创作的共性和差异
---
## 性能优化
### 1. 图片懒加载
- 历史帖子卡片的图片使用 `loading="lazy"`
- 减少初始加载时间
### 2. 滚动节流
- 目录激活状态更新使用50ms节流
- 避免频繁触发DOM操作
### 3. 默认折叠
- 步骤默认展开,便于快速浏览
- 匹配项默认折叠,减少页面高度
---
## 常见问题
### Q1: 为什么有些特征没有分类信息?
**A**: 只有在`特征名称_分类映射.json`中存在的特征才会显示分类。如果是新增特征,需要先更新分类映射文件。
### Q2: 为什么有些特征没有历史来源?
**A**: 只有在`特征名称_帖子来源.json`中存在的特征才会显示历史来源。并非所有特征都有历史应用案例。
### Q3: 如何更新可视化?
**A**: 当解构结果更新后,重新运行脚本:
```bash
python script/data_processing/visualize_how_results.py
```
### Q4: 能否导出可视化结果?
**A**: 生成的HTML文件是完全独立的,可以:
- 直接分享给他人在浏览器中查看
- 部署到Web服务器
- 保存为PDF(浏览器打印功能)
---
## 版本历史
### v1.0 (2025-11-17)
- 初始版本
- 多帖子标签页支持
- 智能目录导航和自动激活
- 紧凑帖子卡片设计
- 特征分类层级显示
- 历史帖子来源展示
- 三级折叠结构
- 点击查看帖子详情
---
## 相关脚本
- `match_inspiration_features.py` - 灵感点特征匹配脚本
- `visualize_inspiration_points.py` - 灵感点可视化脚本(另一个可视化工具)
---
## 技术栈
- **Python 3.x**: 数据处理和HTML生成
- **原生HTML/CSS/JavaScript**: 前端交互
- **无外部依赖**: 生成的HTML文件完全独立,无需网络请求