社交网络分析之关系图(原理+Python代码)

article/2025/11/7 18:59:20

数据来源于天池赛题:零基础入门数据分析-学术前沿趋势分析
地址:https://tianchi.aliyun.com/competition/entrance/531866/information

一、原理介绍

社交网络分析是图关系挖掘的一个分支,通常以关系图的形式来展示人与人之间的关系网络。在人物关系图中,一个节点代表一个人,节点之间的连线表示这些人之间存在关系。网络的节点越多,说明该社交网络越庞大;连线越多,说明联系越密切。同时,也可以使用连线的粗细来表示社交关系的权重,即关系的亲密程度。

这里通过绘制关系图,来研究论文中的作者关系。

二、代码实现

# 导入所需的package
import seaborn as sns #用于画图
from bs4 import BeautifulSoup #用于爬取arxiv的数据
import re #用于正则表达式,匹配字符串的模式
import requests #用于网络连接,发送网络请求,使用域名获取对应信息
import json #读取数据,我们的数据为json格式的
import pandas as pd #数据处理,数据分析
import matplotlib.pyplot as plt #画图工具
import warnings
warnings.filterwarnings("ignore") #过滤掉警告的意思
#读入数据
def readArxivFile(path, columns=['id', 'submitter', 'authors', 'title', 'comments', 'journal-ref', 'doi','report-no', 'categories', 'license', 'abstract', 'versions','update_date', 'authors_parsed'], count=None):'''定义读取文件的函数path: 文件路径columns: 需要选择的列count: 读取行数'''data  = []with open(path, 'r') as f: for idx, line in enumerate(f): if idx == count:breakd = json.loads(line)d = {col : d[col] for col in columns}data.append(d)data = pd.DataFrame(data)return datadata = readArxivFile('F:/data/arxiv-metadata-oai-2019.json', ['id', 'authors_parsed'],200000)
import networkx as nx 
# 创建无向图
G = nx.Graph()#这里选择前15篇论文构建作者关系图
for row in data.iloc[:15].itertuples():authors = row[2]authors = [' '.join(x[:-1]) for x in authors]# 第一个作者 与 其他作者链接for author in authors[1:]:G.add_edge(authors[0],author) # 添加节点2,3并链接23节点
# 将作者关系图进行绘制:
nx.draw(G, with_labels=True)

在这里插入图片描述

从上图中可以看出,关系图的中间网状部分节点最多,说明这个子社交网络中合作的人数最多,我们将其称为最大联通子图。为了得到更加完整的作者关系,接下来选择最大联通子图进行绘制,折线图为子图节点度值。

degree_sequence = sorted([d for n, d in G.degree()], reverse=True)
dmax = max(degree_sequence)plt.loglog(degree_sequence, "b-", marker="o")
plt.title("Degree rank plot")
plt.ylabel("degree")
plt.xlabel("rank")# draw graph in inset
plt.axes([0.45, 0.45, 0.45, 0.45])
Gcc = G.subgraph(sorted(nx.connected_components(G), key=len, reverse=True)[0])pos = nx.spring_layout(Gcc)
plt.axis("off")
nx.draw_networkx_nodes(Gcc, pos, node_size=20)
nx.draw_networkx_edges(Gcc, pos, alpha=0.4)
plt.show()

在这里插入图片描述


http://chatgpt.dhexx.cn/article/fS1mm5xm.shtml

相关文章

python绘制社会关系网络图_python画社交网络图

在图书馆的检索系统中,关于图书的信息里面有一个是图书相关借阅关系图。跟这个社交网络图是一样的,反映了不同对象间的关联性。利用python画社交网络图使用的库是 networkx import networkx as nx import matplotlib.pyplot as plt G nx.Graph() G.…

《关于动态社交网络建模和分析的教程》的读书笔记

** 一、The French-DeGroot model ** 1.模型介绍 描述了一个有n个个体的团体的意见形成的离散时间过程。 模型: x(k1)Wx(k),k0,1…(2)(French提出) (3) 参数含义: x1、x2、…xn&am…

社交网络模型

社交网络模型 1.空手道俱乐部模型 1.1 模型概述 空手道俱乐部模型是以一个34人的团体构成的网络拓扑模型,由于俱乐部创始人与空手道教练就学员学费产生分歧,导致俱乐部形成以这两人为首的两个团体。 1.2 俱乐部裂变前的图形和矩阵表示 1.2.1 俱乐部…

社交网络分析——信息传播模型(附带三个模型的python实现)

摘要:主要讲解一些基本的信息传播模型,以及IC模型、SI模型和SIR模型的python实现及可视化。 2021.10.06更新有需要的可以点击传送门 2020.09.26更新更新了SIR模型的实现,请点击传送门,就不放在这篇博客里了 2020.09.03更新更新了S…

MOODLE安装

https://baijiahao.baidu.com/s?id1648898834478394333&wfrspider&forpc

Moodle 安装的时候提示 original IP

在安装 Moodle 的时候提示下面的错误,导致安装不能进行。 Installation must be finished from the original IP address, sorry 这是因为第一次安装的时候访问的 IP 地址与系统中记录的不一致。 你可以登录使用的数据库后运行下面的 SQL UPDATE mdl_user set la…

Wamp5与Moodle安装

最近在更改本科同学关于MOODLE平台的安装的实验报告的时候,发现他们大部分都是用easyphp安装的,他们在报告中体现出来一些的问题,如:日历产生乱码、安装不了中文版本、无法打开http://localhost/mysql/ 等问题,于是我…

linux安装moodle最新版,在linux下安装moodle

上两篇文章介绍了虚拟机中安装linux server 及相关服务,有了这些基础后,安装一个应用服务 moodle 2.7 是使用最广的网络课程平台。 在安装moodle之前,需要支持软件有mysql phpmyadmin apache php5 1.下载moodle安装文件,moodl…

linux安装moodle最新版,于linux已安装moodle

本文介绍了两个虚拟机的安装linux server 及相关服务,随着后这些基础。安装应用程序服务 moodle 2.7 它是使用最广泛的平台,网络课程。 在安装过程中moodle之前,需要支持软件mysql phpmyadmin apache php5 1.下载moodle安装文件&#xff…

phpstudy环境下安装部署moodle平台

引言: 最近尝试在自己电脑上安装部署一个moodle学习平台,因为之前学习对phpstudy比较熟悉,它是Apache MySQL PHP的集成的开发包,所以打算利用phpstudy集成开发包搭建平台。搭建安装环境可以通过单个软件的安装,但是利…

备忘--moodle安装

php -v //查看版本 sudo apt-get --purge remove php5.5* //删除旧版本 sudo add-apt-repository ppa:ondrej/php //添加源 sudo apt-get update //更新源 sudo apt-get install php7.2 //安装 php -v //查看版本 sudo apt-get install php7.2-my…

Moodle安装教程以及phpMyAdmin无法访问解决

这几天我在使用moodle的框架开发一个教务系统,在安装Moodle环境过程中出现了很多问题: 1. 首先是使用官网集成包,按照说明一步步走结果总是出错。 2. 接着尝试使用xammp安装,结果安装成功之后,第二次无法打开MySQL&a…

Moodle 安装出现访问空白和open_basedir问题

首先要感谢,使用Moodle 的前辈,写下问题处理的办法 最近需要使用Moodle,安装Moodle,先装XAMPP,后将下载的Moodle解压后拷贝到xampp/htdocs下,访问http://localhost/moodle,开始安装Moodle, 一开始都挺顺,可…

阿里云CentOS下搭建LNMP环境和Moodle安装

阿里云CentOS下搭建LNMP环境和Moodle安装 Moodle是一个开源课程管理系统,采用PHPMySQL方式运行的自由开源软件,遵循GNU公共许可协议。世界各地教育工作者越来越喜欢使用Moodle为学生建立网上动态网站。Moodle平台界面简单、精巧,您可以根据需…

moodle安装时出现时间超限,无法进行安装

今天突然想起来,安装moodle时遇到的一个问题:时间超限。我觉得这个对某些读者有帮助,so 就想把它分享出来。 当时,我根据网页上的错误提示,找到了出错文件的位置,但是发现这个文件根本不是“案发现场”&am…

Moodle安装步骤

1、安装xampp 2、关闭IIS,如果不关闭,就修改端口号80为别的,避免与Apache服务器端口冲突。 3、修改httpd-ssl.conf

moodle环境安装linux,在Ubuntu 18.04/Debian 9上安装Moodle的步骤

本文介绍在Ubuntu 18.04/Debian 9系统上安装Moodle的的详细步骤,需要准备PHP、Apache/Nginx Web服务器及MySQL/MariaDB数据库。 简介 Moodle是一个免费的开源学习管理系统,用PHP编写,并在GNU通用公共许可证下发布。从Moodle创建学习课程&…

安装moodle3.6

一、下载安装phpstudy ​​​​​​小皮面板(phpstudy) - 让天下没有难配的服务器环境! 按官网步骤,很容易安装 二、官网下载moodle 本文中下载的是3.6的版本,最新有到4.0版,安装过程(中间产生的错误)可能不同,请慎…

mysql的安装版本有无开发版_moodle 2.0.2 安装图文教程 2——PHP Mysql环境搭建和moodle安装 - 乔木的日志 - ICT教育 - 中小学信息技术教育和教育信息化网站...

moodle 2.0.2 安装图文教程 2——PHPMysql环境搭建和moodle安装 热度 6已有 211 次阅读 2011-3-29 16:49 ||关键词:moodle 2 图文安装教程 php环境 本文承蒙本站lsstarboy 和laolaotang等多位网友给与技术指导和大力支持,一并致谢! 最后修改:…

Moodle安装指导手册

Moodle安装指导手册 此文档用于指导在Ubuntu(版本号:16.04)下进行Moodle安装及基本配置 Reference 参考引用 Moodle DocumentInstalling MoodleStep by step installation guide for UbuntuHow to install Moodle on Ubuntu 16.04安装Moodle Requirments 安装要…