快速开始¶
本指南将引导您完成诺贝尔奖知识图谱项目的环境搭建和流水线运行。
前置条件¶
| 要求 | 版本 | 用途 |
|---|---|---|
| Python | >= 3.12 | 运行环境 |
| uv | 最新版 | 包管理工具 |
| OpenAI API Key | — | LLM 概念抽取(阶段 2b) |
安装步骤¶
1. 克隆仓库¶
2. 安装依赖¶
uv add polars pandas pyarrow networkx pyvis plotly requests openai pyyaml python-dotenv tqdm scikit-learn pymupdf
3. 配置环境变量¶
在项目根目录创建 .env 文件:
4. 验证数据¶
确认数据目录包含所需文件:
ls data/26963326/db_data/
# 期望:author.csv, award_info.csv, institution.csv, laureate.csv, ...
ls data/26963326/json/
# 期望:award_details.json, laureate_info.json, publication_records.json
运行流水线¶
完整运行¶
将依次执行全部 6 个阶段:
- 阶段 1 — 数据加载与清洗
- 阶段 1.5 — 内容富化(Semantic Scholar + OA PDF)
- 阶段 2a — OpenAlex 概念富化
- 阶段 2b — LLM 概念抽取
- 阶段 3+4 — 知识图谱构建
- 阶段 5 — 可视化
- 阶段 6 — 洞见分析
运行特定阶段¶
# 仅运行数据加载
uv run python main.py --phase 1
# 仅运行图谱构建
uv run python main.py --phase 3
# 仅运行可视化
uv run python main.py --phase 5
跳过可选步骤¶
# 跳过 LLM 抽取(节省 API 费用)
uv run python main.py --skip-llm
# 跳过内容富化
uv run python main.py --skip-enrich
运行单个模块¶
每个模块也可以独立运行:
uv run python -m src.data_loader
uv run python -m src.openalex_enricher
uv run python -m src.concept_extractor
uv run python -m src.graph_builder
uv run python -m src.visualize
uv run python -m src.insight_analyzer
查看输出¶
可视化¶
启动本地 HTTP 服务查看交互式 HTML 可视化:
在浏览器中打开:
- 网络图:http://localhost:8765/network.html
- 时间轴:http://localhost:8765/timeline.html
- 热力图:http://localhost:8765/heatmap.html
报告¶
洞见报告以 Markdown 格式生成:
知识图谱¶
图谱数据以多种格式存储:
# 完整图谱(JSON)
output/graph/knowledge_graph.json
# 单独的节点/边文件
output/graph/nodes.json
output/graph/edges.json
# GraphML 格式(适用于 Gephi、Cytoscape 等)
output/graph/knowledge_graph.graphml
# 简化概念图(仅概念节点)
output/graph/concept_graph_simplified.json
output/graph/concept_graph_simplified_nodes.json
output/graph/concept_graph_simplified_edges.json
output/graph/concept_graph_simplified.graphml
样本模式¶
默认情况下,流水线在样本模式下运行,使用跨 4 个领域的 5 位代表性得主:
| ID | 姓名 | 领域 | 年份 |
|---|---|---|---|
| 745 | A. Michael Spence | 经济学 | 2001 |
| 102 | Aage N. Bohr | 物理学 | 1975 |
| 779 | Aaron Ciechanover | 化学 | 2004 |
| 114 | Abdus Salam | 物理学 | 1979 |
| 843 | Ada E. Yonath | 化学 | 2009 |
这会生成一个可管理规模的图谱(约 97 个节点、181 条边),适合开发和测试。
常见问题¶
缺少 API Key
如果出现 OpenAI API key not found 错误,请确保 .env 文件包含有效的 OPENAI_API_KEY。
大型 JSON 文件
publication_records.json 文件大小为 2.3 GB。流水线使用流式/样本加载来保持合理的内存使用。
速率限制
OpenAlex API 和 Semantic Scholar API 有速率限制。流水线内置了自动限速和缓存机制来优雅地处理这一问题。