← 推广内容库

B站视频脚本③:社会网络分析从0到1

⏱️ 20分钟 · 🖥️ 屏幕录制+代码讲解 · 🎯 零基础新手

1

Part 1:什么是社会网络分析(3分钟)

0:00 - 3:00
画面:动画展示社会网络图

什么是社会网络分析?简单来说,就是研究"谁和谁有关系"的学问。

画面:PPT动画

想象一下:一个班级里,谁是谁的朋友?谁是这个班级的"中心人物"?谁连接了不同的小圈子?——这就是社会网络分析研究的问题。

画面:研究案例截图

在学术研究里,社会网络分析可以用来研究:企业之间的合作网络、学术论文的引用关系、社交媒体上的传播路径、国际贸易的依存关系……

💡 切入角度

用班级/朋友圈这种每个人都能理解的例子开场,降低概念门槛。

2

Part 2:数据准备(4分钟)

3:00 - 7:00
画面:数据格式说明

社会网络分析的第一步,是把"谁认识谁"变成可计算的数据。我们用边列表格式。

画面:边列表格式

节点1, 节点2, 关系类型, 权重 宝玉, 黛玉, 爱情, 47 宝玉, 宝钗, 爱情, 31 凤姐, 贾琏, 婚姻, 35 凤姐, 宝玉, 亲情, 28

画面:Python代码

我准备了《红楼梦》87个人物的关系数据,包含200多条边。我们用Python的NetworkX库来处理这个数据。

画面:Python代码

import pandas as pd import networkx as nx df = pd.read_csv('hongloumeng_edges.csv') G = nx.from_pandas_edgelist(df, 'source', 'target', ['relation', 'weight']) print(f"节点数: {G.number_of_nodes()}") print(f"边数: {G.number_of_edges()}")

3

Part 3:网络可视化(4分钟)

7:00 - 11:00
画面:Gephi操作

网络画出来之前,我们需要先在Gephi里导入数据。

画面:Gephi导入步骤

1. 打开Gephi → 新建项目 2. 菜单:文件 → 导入电子表格 3. 选择CSV文件,设置分隔符 4. 选择"无向图"或"有向图" 5. 点击"下一步" → "完成"

画面:布局算法选择

Gephi最常用的布局算法是ForceAtlas 2——它模拟物理中的弹簧力,让有连接的节点靠近,没连接的节点远离。

画面:布局参数设置

ForceAtlas 2参数: - 缩放: 2.0 - 强度: 100 - 悬挂长度: 200 点击"运行",观察网络逐渐形成团块结构。

4

Part 4:中心性分析(5分钟)

11:00 - 16:00
画面:概念解释

中心性是衡量"谁更重要"的核心指标。我们主要看四种:度中心性、介数中心性、接近中心性、特征向量中心性。

画面:Python代码

import pandas as pd # 计算四种中心性 degree = nx.degree_centrality(G) betweenness = nx.betweenness_centrality(G) closeness = nx.closeness_centrality(G) eigenvector = nx.eigenvector_centrality(G, max_iter=1000) # 整合结果 centrality_df = pd.DataFrame({ 'name': list(G.nodes()), 'degree': list(degree.values()), 'betweenness': list(betweenness.values()), 'closeness': list(closeness.values()), 'eigenvector': list(eigenvector.values()) }).sort_values('betweenness', ascending=False)

画面:结果解读

看介数中心性结果:王熙凤排第一,贾母第二。这意味着王熙凤是整个网络中信息流动的关键枢纽——她连接了最多的"桥梁"。

画面:结果表格

介数中心性Top 5: 1. 王熙凤: 0.142 ← 信息枢纽 2. 贾母: 0.128 3. 贾宝玉: 0.119 4. 平儿: 0.098 5. 袭人: 0.087

5

Part 5:社群检测(4分钟)

16:00 - 20:00
画面:概念解释

社群检测的目标是:找出哪些人形成了"小圈子"——彼此之间联系紧密,但和其他圈子联系较少。

画面:Python代码

from community import community_louvain partition = community_louvain.best_partition(G) num_communities = len(set(partition.values())) print(f"检测到 {num_communities} 个社群") for community_id in range(num_communities): members = [n for n, c in partition.items() if c == community_id] print(f"社群{community_id+1}: {members[:5]}...")

画面:结果解读

Louvain算法检测出了6个主要社群:荣国府管理层、大观园青春圈、宁国府、边缘人物群、僧道超自然群……

6

结尾召唤(1分钟)

19:00 - 20:00
画面:主播出镜

这期视频我们完成了社会网络分析的入门:从数据准备到可视化,从中心性分析到社群检测。完整代码和数据都可以在SocienceAI官网免费下载。

📣 行动召唤

去 socienceai.com/tutorials/social-network-analysis.html 获取完整教程+代码+数据集。三连支持,我们下期见!

B站视频脚本③ · SocienceAI · Cycle #3 · 2026-04-12