基于开源情报(OSINT)数据构建知识图谱,并利用 Neo4j 图算法发现隐藏模式。
从多个来源获取 OSINT 数据,创建 Neo4j 知识图谱,实现以下功能:
- 实体链接 — 跨平台关联同一人物
- 社区发现 — 识别相关实体的集群
- 中心性分析 — 定位网络中的关键影响者
- 路径分析 — 追踪实体间的连接关系
- 模式识别 — 检测异常与隐藏关联
# 启动 Neo4j 实例(本地)
docker run -d \
--name neo4j \
-p 7474:7474 -p 7687:7687 \
-e NEO4J_AUTH=neo4j/password \
neo4j:5.23
# 数据导入
python3 scripts/osint-graph.py --ingest data/sources.csv
# 运行社区发现算法
python3 scripts/osint-graph.py --community-detection
# 查找核心实体(前 10 名)
python3 scripts/osint-graph.py --centrality --top 10
# 追踪两个实体间的路径
python3 scripts/osint-graph.py --path "实体 A" "实体 B"
# 导出图谱用于可视化
python3 scripts/osint-graph.py --export graph.json
支持格式:
- CSV(节点 + 边文件)
- JSON(Cypher 查询语句)
- 直接 API 导入(Telegram、Twitter 等)
CSV 示例:
nodes.csv:
id,name,type,properties
1,@target_account,person,"{country:US,verified:true}"
2,@associated_handle,person,"{country:RU}"
edges.csv:
source,target,relationship,timestamp
1,2,MENTIONED,2026-01-31
| 算法 | 功能 | 应用场景 |
|---|---|---|
| Louvain | 社区聚类 | 发现协作团体 |
| PageRank | 影响力中心性 | 识别关键影响者 |
| Betweenness | 桥接节点 | 定位社区间的连接点 |
| Shortest Path | 连接链 | 追踪间接关系 |
| Weakly Connected | 断开子图 | 发现孤立集群 |
┌─────────────────┐
│ 数据导入层 │ ← CSV/JSON/API 数据源
└────────┬────────┘
│
▼
┌─────────────────┐
│ Neo4j 图谱层 │ ← 节点 + 关系
└────────┬────────┘
│
▼
┌─────────────────┐
│ 算法分析层 │ ← GraphX / Neo4j 图算法
└────────┬────────┘
│
▼
┌─────────────────┐
│ 可视化输出层 │ ← JSON 导出 + D3.js / Cytoscape
└─────────────────┘