|
|
2 nedēļas atpakaļ | |
|---|---|---|
| lib | 3 nedēļas atpakaļ | |
| script | 2 nedēļas atpakaļ | |
| scripts | 3 nedēļas atpakaļ | |
| .gitignore | 2 nedēļas atpakaļ | |
| README_索引构建.md | 2 nedēļas atpakaļ | |
| analyze_inspiration_results.py | 2 nedēļas atpakaļ | |
| build_category_index.py | 2 nedēļas atpakaļ | |
| build_note_to_all_index.py | 2 nedēļas atpakaļ | |
| build_point_to_note_index.py | 2 nedēļas atpakaļ | |
| extract_inspirations.py | 3 nedēļas atpakaļ | |
| how_decode_v1.py | 3 nedēļas atpakaļ | |
| run_inspiration_analysis.py | 2 nedēļas atpakaļ | |
| run_step3_from_analysis.py | 2 nedēļas atpakaļ | |
| step1_inspiration_match.py | 2 nedēļas atpakaļ | |
| step2_incremental_match.py | 2 nedēļas atpakaļ | |
| step3_generate_inspirations.py | 2 nedēļas atpakaļ | |
| visualize_inspiration_points.py | 2 nedēļas atpakaļ | |
| visualize_inspiration_points_backup.py | 2 nedēļas atpakaļ |
本目录包含三个索引构建脚本,用于从人设数据和 what 解构结果中构建不同维度的索引,方便快速查询和分析。
# 构建所有三个索引文件
python build_category_index.py --persona-dir data/阿里多多酱/out/人设_1110
python build_point_to_note_index.py --what-dir data/阿里多多酱/out/人设_1110/what解构结果
python build_note_to_all_index.py --persona-dir data/阿里多多酱/out/人设_1110
脚本: build_category_index.py
用途: 按分类维度组织帖子(灵感分类、目的分类、关键点分类)
数据来源:
人设.jsonwhat解构结果/what解构结果/结构:
{
"灵感分类": {
"职场疲惫共鸣": {
"分类层级": "二级分类",
"分类名称": "职场疲惫共鸣",
"分类定义": "关于工作压力、倦怠及身份认同的普遍情绪宣泄。",
"分类路径": [
{"视角名称": "灵感触发源", "视角描述": "..."},
{"分类名称": "个人感受与思考", "分类定义": "..."},
{"分类名称": "职场疲惫共鸣", "分类定义": "..."}
],
"帖子ID列表": ["68d1ebb8...", "68d00894..."],
"帖子详情列表": [{...}, {...}]
}
},
"目的分类": {...},
"关键点分类": {...}
}
使用场景:
统计:
脚本: build_point_to_note_index.py
用途: 按具体点组织帖子,提供双向映射(点→帖子,帖子→点)
数据来源: 全部来自 what解构结果/
结构:
{
"点到帖子映射": {
"灵感点": {
"职场投入产出不平衡": {
"灵感点": "职场投入产出不平衡",
"维度": "职场观察",
"描述": "观察到职场中普遍存在的现象...",
"帖子ID列表": ["68d00894..."],
"帖子详情列表": [{...}]
}
},
"目的点": {...},
"关键点": {...}
},
"帖子到点映射": {
"68d00894...": {
"灵感点列表": [
{
"灵感点": "职场投入产出不平衡",
"来源字段": "共性差异",
"维度": "职场观察",
"描述": "..."
}
],
"目的点列表": [...],
"关键点列表": [...],
"帖子详情": {...}
}
}
}
使用场景:
统计:
脚本: build_note_to_all_index.py
用途: 按帖子ID组织,包含每个帖子的完整信息(分类 + 点 + 详情)
数据来源:
人设.jsonwhat解构结果/结构:
{
"68d00894...": {
"帖子ID": "68d00894...",
"所属分类": [
{
"分类类型": "灵感分类",
"视角名称": "灵感触发源",
"一级分类": "个人感受与思考",
"二级分类": "职场疲惫共鸣",
"分类定义": "..."
}
],
"灵感点列表": [
{
"灵感点": "职场投入产出不平衡",
"来源字段": "共性差异",
"维度": "职场观察",
"描述": "..."
}
],
"目的点列表": [...],
"关键点列表": [...],
"帖子详情": {
"channel_content_id": "68d00894...",
"title": "上班要显贵 就不能太基础",
"body_text": "...",
"like_count": 768,
"images": [...],
"content_type": "normal",
"publish_time": "2025-09-22 10:01:05"
}
}
}
使用场景:
统计:
构建按分类维度组织的索引。
基本使用:
python build_category_index.py --persona-dir data/阿里多多酱/out/人设_1110
参数说明:
--persona-dir: 人设目录路径(必填)--output: 输出文件路径(可选,默认: {persona_dir}/分类索引_完整.json)--no-details: 不获取帖子详情(可选,只构建索引结构)示例:
# 基本使用(包含帖子详情)
python build_category_index.py --persona-dir data/阿里多多酱/out/人设_1110
# 只构建索引结构,不获取详情(速度快)
python build_category_index.py --persona-dir data/阿里多多酱/out/人设_1110 --no-details
# 自定义输出文件
python build_category_index.py --persona-dir data/阿里多多酱/out/人设_1110 --output my_index.json
构建点到帖子的双向映射索引。
基本使用:
python build_point_to_note_index.py --what-dir data/阿里多多酱/out/人设_1110/what解构结果
参数说明:
--what-dir: what解构结果目录路径(必填)--output: 输出文件路径(可选,默认: {what_dir}/../点到帖子映射.json)--no-details: 不获取帖子详情(可选)示例:
# 基本使用
python build_point_to_note_index.py --what-dir data/阿里多多酱/out/人设_1110/what解构结果
# 只构建索引结构
python build_point_to_note_index.py --what-dir data/阿里多多酱/out/人设_1110/what解构结果 --no-details
# 自定义输出文件
python build_point_to_note_index.py --what-dir data/阿里多多酱/out/人设_1110/what解构结果 --output custom.json
构建帖子ID到分类和点的完整映射。
基本使用:
python build_note_to_all_index.py --persona-dir data/阿里多多酱/out/人设_1110
参数说明:
--persona-dir: 人设目录路径(必填)--output: 输出文件路径(可选,默认: {persona_dir}/帖子到分类和点映射.json)--no-details: 不获取帖子详情(可选)示例:
# 基本使用
python build_note_to_all_index.py --persona-dir data/阿里多多酱/out/人设_1110
# 只构建索引结构
python build_note_to_all_index.py --persona-dir data/阿里多多酱/out/人设_1110 --no-details
# 自定义输出文件
python build_note_to_all_index.py --persona-dir data/阿里多多酱/out/人设_1110 --output custom.json
| 查询需求 | 使用哪个索引 | 示例查询 |
|---|---|---|
| 查看某个分类下的所有帖子 | 分类索引_完整.json |
"职场疲惫共鸣"分类有哪些帖子? |
| 查看某个具体点的所有帖子 | 点到帖子映射.json → 点到帖子映射 |
"职场投入产出不平衡"这个灵感点有哪些帖子? |
| 查看某个帖子的所有分类 | 帖子到分类和点映射.json |
帖子 68d00894 属于哪些分类? |
| 查看某个帖子的所有点 | 帖子到分类和点映射.json |
帖子 68d00894 有哪些灵感点/目的点/关键点? |
| 反查:帖子有哪些点 | 点到帖子映射.json → 帖子到点映射 |
帖子 68d00894 有哪些点? |
| 获取帖子的完整信息 | 帖子到分类和点映射.json |
帖子 68d00894 的详情、分类、点是什么? |
人设.json
↓
build_category_index.py → 分类索引_完整.json
(灵感分类)
what解构结果/
↓
build_category_index.py → 分类索引_完整.json
(目的分类 + 关键点分类)
↓
build_point_to_note_index.py → 点到帖子映射.json
(灵感点 + 目的点 + 关键点)
人设.json + what解构结果/
↓
build_note_to_all_index.py → 帖子到分类和点映射.json
(完整映射)
所有脚本都会利用帖子详情的缓存机制:
null(而非空字符串或 0)publish_timestamp: 毫秒时间戳publish_time: "YYYY-MM-DD HH:MM:SS"video 字段自动判断content_type = "video"content_type = "normal"A: 它们从不同维度组织相同的数据:
A: 不同的查询场景需要不同的数据组织方式:
A: 重新运行对应的脚本即可:
# 更新所有索引
python build_category_index.py --persona-dir data/阿里多多酱/out/人设_1110
python build_point_to_note_index.py --what-dir data/阿里多多酱/out/人设_1110/what解构结果
python build_note_to_all_index.py --persona-dir data/阿里多多酱/out/人设_1110
--no-details 什么时候使用?A: 适用于以下场景:
A: 通过 script.detail.get_xiaohongshu_detail() 接口获取:
data/detail/xiaohongshu_detail/{note_id}/| 数据类型 | 来源文件 | 提取字段 |
|---|---|---|
| 灵感分类 | 人设.json |
灵感点列表 → 模式列表 → 二级细分 |
| 目的分类 | what解构结果/*.json |
三点解构.目的点.main_purpose / secondary_purposes |
| 关键点分类 | what解构结果/*.json |
三点解构.关键点.key_points |
| 具体灵感点 | what解构结果/*.json |
三点解构.灵感点.{全新内容,共性差异,共性内容} |
| 具体目的点 | what解构结果/*.json |
三点解构.目的点.main_purpose / secondary_purposes |
| 具体关键点 | what解构结果/*.json |
三点解构.关键点.key_points |
| 帖子详情 | 详情接口 | get_xiaohongshu_detail(note_id) |
from script.detail import get_xiaohongshu_detail
确保 script/detail/ 模块可用。
默认输出位置:
data/阿里多多酱/out/人设_1110/
├── 人设.json # 输入
├── what解构结果/ # 输入
├── 分类索引_完整.json # 输出1
├── 点到帖子映射.json # 输出2
└── 帖子到分类和点映射.json # 输出3