跳转至

流水线概览

诺贝尔奖知识图谱通过 6 阶段流水线构建,每个阶段处理数据转换过程的特定方面。

流水线阶段

flowchart LR
    P1[阶段 1<br>数据加载] --> P15[阶段 1.5<br>内容富化]
    P15 --> P2a[阶段 2a<br>OpenAlex 富化]
    P2a --> P2b[阶段 2b<br>LLM 抽取]
    P2b --> P34[阶段 3+4<br>图谱构建]
    P34 --> P5[阶段 5<br>可视化]
    P34 --> P6[阶段 6<br>洞见分析]
阶段 模块 预计耗时 说明
1 data_loader.py ~2 天 加载 CSV/JSON,解码摘要,清洗并输出 Parquet
1.5 content_enricher.py ~1 天 通过 Semantic Scholar、OA PDF 富化论文
2a openalex_enricher.py ~1 天 从 OpenAlex API 添加概念/主题/领域
2b concept_extractor.py ~2 天 通过 GPT-4o-mini 抽取结构化概念
3+4 graph_builder.py ~2 天 构建 NetworkX 有向图,导出 JSON/GraphML
5 visualize.py ~1 天 生成 3 个交互式 HTML 可视化
6 insight_analyzer.py ~1 天 分析图谱,生成 Markdown 洞见报告

运行流水线

完整运行

uv run python main.py

阶段选择

uv run python main.py --phase 1      # 仅数据加载
uv run python main.py --phase 1.5    # 仅内容富化
uv run python main.py --phase 2      # 概念抽取(2a + 2b)
uv run python main.py --phase 3      # 图谱构建
uv run python main.py --phase 5      # 可视化
uv run python main.py --phase 6      # 洞见分析

跳过选项

uv run python main.py --skip-llm     # 跳过 LLM 抽取(阶段 2b)
uv run python main.py --skip-enrich  # 跳过内容富化(阶段 1.5)

数据依赖

每个阶段依赖前序阶段的输出:

flowchart TD
    CSV[CSV 文件] --> P1
    JSONL[publication_records.json] --> P1

    P1[阶段 1] -->|laureates.parquet<br>awards.parquet<br>publications.parquet<br>institutions.parquet| P15[阶段 1.5]

    P15 -->|publications.parquet<br>已富化| P2a[阶段 2a]

    P2a -->|publications.parquet<br>含概念| P2b[阶段 2b]

    P2b -->|concepts.parquet<br>llm_extraction_raw.json| P34[阶段 3+4]
    P1 -->|所有 Parquet 文件| P34

    P34 -->|knowledge_graph.json| P5[阶段 5]
    P34 -->|knowledge_graph.json| P6[阶段 6]

输出汇总

阶段 输出文件 位置
1 laureates.parquetawards.parquetpublications.parquetinstitutions.parquet output/clean_data/
1.5 更新的 publications.parquet output/clean_data/
2a 更新的 publications.parquet output/clean_data/
2b llm_extraction_raw.jsonconcepts.parquet output/concepts/
3+4 knowledge_graph.jsonnodes.jsonedges.jsonknowledge_graph.graphml output/graph/
5 network.htmltimeline.htmlheatmap.html output/viz/
6 insight_report.mdinsight_report.json output/reports/