|
|
vor 2 Wochen | |
|---|---|---|
| lib | vor 2 Wochen | |
| script | vor 2 Wochen | |
| scripts | vor 2 Wochen | |
| .gitignore | vor 2 Wochen | |
| README_可视化.md | vor 2 Wochen | |
| README_索引构建.md | vor 2 Wochen | |
| analyze_inspiration_results.py | vor 2 Wochen | |
| build_category_index.py | vor 2 Wochen | |
| build_note_to_all_index.py | vor 2 Wochen | |
| build_point_to_note_index.py | vor 2 Wochen | |
| extract_inspirations.py | vor 2 Wochen | |
| how_decode_v1.py | vor 2 Wochen | |
| run_inspiration_analysis.py | vor 2 Wochen | |
| run_step3_from_analysis.py | vor 2 Wochen | |
| step1_inspiration_match.py | vor 2 Wochen | |
| step2_incremental_match.py | vor 2 Wochen | |
| step3_generate_inspirations.py | vor 2 Wochen | |
| step4_search_result_match.py | vor 2 Wochen | |
| test_relation_analyzer.py | vor 2 Wochen | |
| visualize_inspiration_points.py | vor 2 Wochen | |
| visualize_inspiration_points_backup.py | vor 2 Wochen |
将灵感点分析数据(包括匹配结果、搜索结果等)生成交互式HTML可视化页面。
python visualize_inspiration_points.py
生成的HTML文件位置:
data/阿里多多酱/out/人设_1110/how/灵感点可视化.html
在浏览器中打开该文件即可查看可视化结果。
步骤1:灵感点匹配灵感分类(基于step1数据)
步骤2:搜索结果展示(基于search数据)
all_step1_灵感人设匹配_gemini-2.5-pro.jsonall_step4_搜索结果匹配_gemini-2.5-pro.json可折叠面板
卡片点击详情
分数详情弹窗
图片轮播
| 文件路径 | 用途 | 数据内容 |
|---|---|---|
data/阿里多多酱/out/人设_1110/how/灵感点/[灵感点名称]/all_summary_完整流程_gemini-2.5-pro.json |
灵感点摘要 | 灵感点的基本信息、描述、维度等 |
data/阿里多多酱/out/人设_1110/how/灵感点/[灵感点名称]/all_step1_灵感人设匹配_gemini-2.5-pro.json |
步骤1匹配 | 灵感点与灵感要素的匹配结果 |
data/阿里多多酱/out/人设_1110/how/灵感点/[灵感点名称]/search/all_search_*.json |
搜索结果 | 以灵感要素为关键词搜索的小红书帖子 |
data/阿里多多酱/out/人设_1110/how/灵感点/[灵感点名称]/search/all_step4_搜索结果匹配_gemini-2.5-pro.json |
步骤4匹配 | 搜索结果帖子与灵感点的匹配分数 |
data/阿里多多酱/out/人设_1110/分类索引_完整.json |
分类索引 | 灵感分类、目的分类、关键点分类的完整索引 |
data/阿里多多酱/out/人设_1110/点到帖子映射.json |
点映射 | 灵感点/目的点/关键点到帖子的映射 |
data/阿里多多酱/out/人设_1110/帖子到分类和点映射.json |
帖子映射 | 帖子ID到分类和点的映射 |
data/阿里多多酱/out/人设_1110/how/灵感点可视化.html
单个HTML文件包含所有数据和样式,可直接在浏览器中打开。
文件: all_step1_灵感人设匹配_gemini-2.5-pro.json
{
"灵感": "内容植入品牌推广",
"匹配结果列表": [
{
"输入信息": {
"B": "内容植入品牌推广",
"A": "将品牌/产品信息融入内容",
"A_Context": "所属视角: 灵感触发源\n一级分类: 商业合作的要求"
},
"匹配结果": {
"score": 0.9,
"score说明": "...",
"相同部分": {"内容": "...", "品牌": "..."},
"增量部分": {"推广": "..."}
},
"业务信息": {
"灵感": "内容植入品牌推广",
"匹配要素": "将品牌/产品信息融入内容"
}
}
]
}
关键字段:
输入信息.A: 灵感要素名称(用于展示和搜索)输入信息.A_Context: 灵感要素的分类层级匹配结果.score: 灵感点与灵感要素的匹配分数文件: all_step4_搜索结果匹配_gemini-2.5-pro.json
{
"输入信息": {
"灵感": "内容植入品牌推广",
"搜索关键词": "将品牌/产品信息融入内容",
"搜索结果数": 20
},
"匹配结果列表": [
{
"输入信息": {
"B": "内容植入品牌推广",
"A": "🔥 Gpt 4o 将品牌符号融入场景,附步骤!",
"A_Context": "..."
},
"匹配结果": {
"score": 0.75,
"score说明": "...",
"相同部分": {"内容植入": "...", "品牌推广": "..."},
"增量部分": {"品牌推广": "..."}
},
"业务信息": {
"灵感": "内容植入品牌推广",
"channel_content_id": "6842c7d3000000002001f6c4",
"title": "🔥 Gpt 4o 将品牌符号融入场景,附步骤!",
"likes": 801
}
}
]
}
关键字段:
输入信息.A: 帖子标题匹配结果.score: 帖子与灵感点的匹配分数业务信息.channel_content_id: 帖子ID(用于关联搜索结果)问题背景:步骤1和步骤4使用相同的数据结构(相同部分、增量部分、score等),在同一个循环中处理时容易导致变量覆盖。
解决方案:使用不同的变量名前缀
步骤1变量(灵感点匹配):
score = match_result.get("score", 0)
score_explain = match_result.get("score说明", "")
same_parts = match_result.get("相同部分", {})
increment_parts = match_result.get("增量部分", {})
步骤4变量(搜索结果匹配):
note_score = score_info["score"]
note_score_explain = score_info.get("score说明", "")
note_same_parts = score_info.get("相同部分", {})
note_increment_parts = score_info.get("增量部分", {})
问题:JSON文件中某些字段可能为null,Python读取后为None,调用.items()或.keys()会报错。
解决方案:使用or {}或or ""确保默认值
same_parts = match_result.get("相同部分", {}) or {}
score_explain = match_result.get("score说明", "") or ""
or {}和or ""确保安全处理None值打开可视化页面,查看:
在步骤2中查看:
通过可视化页面:
A: 只有在all_step4_搜索结果匹配_gemini-2.5-pro.json文件中的帖子才有匹配分数。如果搜索结果较多,step4可能只对部分帖子进行了匹配分析。
A:
A: 搜索功能依赖于step1匹配到的灵感要素。如果某个灵感点没有匹配到合适的灵感要素,或者没有执行搜索步骤,就不会有搜索结果。
A: 当数据文件更新后,重新运行脚本即可:
python visualize_inspiration_points.py