You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于NetworkX构建Twitter账号粉丝关联有向图的技术实现

用NetworkX构建Twitter粉丝关系有向图(基于JSON数据)

数据结构说明

假设你的JSON数据已存储目标账号的粉丝关系,每个条目包含目标账号ID、粉丝ID,以及该粉丝的粉丝ID列表,示例结构如下:

{
  "target_account_id": "123456",
  "followers": [
    {
      "follower_id": "789012",
      "follower_followers": ["345678", "901234"]
    },
    {
      "follower_id": "345678",
      "follower_followers": ["789012", "123456"]
    }
  ]
}

实现步骤与完整代码

  1. 导入依赖库
  2. 加载本地JSON数据文件
  3. 初始化有向图并构建节点、关系边
  4. 可选:输出图的基础统计或导出可视化文件
import networkx as nx
import json

# 加载JSON数据文件
with open('twitter_followers_data.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

# 初始化有向图
G = nx.DiGraph()

# 添加目标账号节点
target_id = data['target_account_id']
G.add_node(target_id, node_type="Target Account")

# 遍历每个粉丝,构建完整关系网络
for follower_item in data['followers']:
    follower_id = follower_item['follower_id']
    # 添加当前粉丝节点
    G.add_node(follower_id, node_type="Follower")
    # 添加「粉丝关注目标账号」的边(遵循Twitter逻辑:A关注B则边为A→B)
    G.add_edge(follower_id, target_id)
    
    # 为该粉丝与其自身粉丝建立连接
    for sub_follower_id in follower_item['follower_followers']:
        G.add_node(sub_follower_id, node_type="Follower's Follower")
        # 添加「粉丝的粉丝关注该粉丝」的边
        G.add_edge(sub_follower_id, follower_id)

# 输出图的基础统计信息
print(f"总节点数: {G.number_of_nodes()}")
print(f"总边数: {G.number_of_edges()}")

# 可选:导出为GEXF格式,方便用Gephi等工具可视化
nx.write_gexf(G, 'twitter_follower_network.gexf')

关键注意事项

  • 边方向逻辑:严格按照Twitter关注关系定义边的流向——若用户A关注B,则有向边为A→B,确保关系网络的准确性。
  • 自动去重:NetworkX会自动忽略重复添加的节点和边,无需额外处理重复ID的情况。
  • 数据类型统一:确保JSON中的Twitter ID统一为字符串或整数类型,避免因类型不一致导致节点识别错误。
  • 规模适配:针对135个粉丝的场景,即使每个粉丝平均有数百个粉丝,NetworkX也能轻松处理,生成的网络可通过可视化工具进一步分析层级结构。

内容的提问来源于stack exchange,提问作者user20717245

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 06:35:18