任务5:作者信息关联

5.1 任务说明

  • 学习主题:作者关联(数据建模任务),对论文作者关系进行建模,统计最常出现的作者关系;
  • 学习内容:构建作者关系图,挖掘作者关系
  • 学习成果:论文作者知识图谱、图关系挖掘

5.2 数据处理步骤

将作者列表进行处理,并完成统计。具体步骤如下:

  • 将论文第一作者与其他作者(论文非第一作者)构建图;
  • 使用图算法统计图中作者与其他作者的联系;

5.3 社交网络分析

图是复杂网络研究中的一个重要概念。Graph是用线来刻画离散事物集合中的每对事物间以某种方式相联系的数学模型。Graph在现实世界中随处可见,如交通运输图、旅游图、流程图等。利用图可以描述现实生活中的许多事物,如用点可以表示交叉口,点之间的连线表示路径,这样就可以轻而易举的描绘出一个交通运输网络。

5.3.1 图类型

  • 无向图,忽略了两节点间边的方向。

  • 指有向图,考虑了边的有向性。

  • 多重无向图,即两个结点之间的边数多于一条,又允许顶点通过同一条边和自己关联。

5.3.2 图统计指标

  • 度:是指和该节点相关联的边的条数,又称关联度。对于有向图,节点的入度 是指进入该节点的边的条数;节点的出度是指从该节点出发的边的条数;

  • 迪杰斯特拉路径:.从一个源点到其它各点的最短路径,可使用迪杰斯特拉算法来求最短路径;

  • 连通图:在一个无向图 G 中,若从顶点i到顶点j有路径相连,则称i和j是连通的。如果 G 是有向图,那么连接i和j的路径中所有的边都必须同向。如果图中任意两点都是连通的,那么图被称作连通图。如果此图是有向图,则称为强连通图。

对于其他图算法,可以在networkx和igraph两个库中找到。

5.4 具体代码以及讲解

首先读取我们想要的数据:

data  = [] #初始化
#使用with语句优势:1.自动关闭文件句柄;2.自动显示(处理)文件读取数据异常
with open("arxiv-metadata-oai-snapshot.json", 'r') as f: for idx, line in enumerate(f): d = json.loads(line)d = {'authors_parsed': d['authors_parsed']}data.append(d)data = pd.DataFrame(data) #将list变为dataframe格式,方便使用pandas进行分析

创建作者链接的无向图:

import networkx as nx
# 创建无向图
G = nx.Graph()# 只用五篇论文进行构建
for row in data.iloc[:5].itertuples():authors = row[1]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)

得到作者之间的距离:

try:print(nx.dijkstra_path(G, 'Balázs C.', 'Ziambaras Eleni'))
except:print('No path')

如果我们500片论文构建图,则可以得到更加完整作者关系,并选择最大联通子图进行绘制,折线图为子图节点度值。

# 计算论文关系中有多少个联通子图
print(len(nx.communicability(G)))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()

【算法竞赛学习】学术前沿趋势-作者信息关联相关推荐

  1. 【算法竞赛学习】学术前沿趋势-论文作者统计

    任务2:论文作者统计 2.1 任务说明 任务主题:论文作者统计,统计所有论文作者出现评率Top10的姓名: 任务内容:论文作者的统计.使用 Pandas 读取数据并使用字符串操作: 任务成果:学习 P ...

  2. 【算法竞赛学习】气象海洋预测-Task4 模型建立之 TCNN+RNN

    气象海洋预测-Task4 模型建立之 TCNN+RNN 该方案中采用的模型是TCNN+RNN. 在Task3中我们学习了CNN+LSTM模型,但是LSTM层的参数量较大,这就带来以下问题:一是参数量大 ...

  3. 【算法竞赛学习】学术前沿趋势-论文代码统计

    任务3:论文代码统计 3.1 任务说明 任务主题:论文代码统计,统计所有论文出现代码的相关统计: 任务内容:使用正则表达式统计代码连接.页数和图表数据: 任务成果:学习正则表达式统计: 3.2 数据处 ...

  4. 【算法竞赛学习】金融风控之贷款违约预测-赛题理解

    Task1 赛题理解 赛题以金融风控中的个人信贷为背景,要求选手根据贷款申请人的数据信息预测其是否有违约的可能,以此判断是否通过此项贷款,这是一个典型的分类问题.通过这道赛题来引导大家了解金融风控中的 ...

  5. 【算法竞赛学习】二手车交易价格预测-Task1赛题理解

    二手车交易价格预测-Task1 赛题理解 一. 赛题理解 Tip:此部分为零基础入门数据挖掘的 Task1 赛题理解 部分,为大家入门数据挖掘比赛提供一个基本的赛题入门讲解,欢迎后续大家多多交流. 赛 ...

  6. 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task5模型融合

    智慧海洋建设-Task5 模型融合 5.1 学习目标 学习融合策略 完成相应学习打卡任务 5.2 内容介绍 https://mlwave.com/kaggle-ensembling-guide/ ht ...

  7. 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task4模型建立

    智慧海洋建设-Task4模型建立 此部分为智慧海洋建设竞赛的模型建立模块.在该模块中主要介绍了如何进行模型建立并对模型调优. 学习目标 学习如何选择合适的模型以及如何通过模型来进行特征选择 掌握随机森 ...

  8. 【算法竞赛学习】数字中国创新大赛智慧海洋建设-Task3特征工程

    智慧海洋建设-Task3 特征工程 此部分为智慧海洋建设竞赛的特征工程模块,通过特征工程,可以最大限度地从原始数据中提取特征以供算法和模型使用.通俗而言,就是通过X,创造新的X'以获得更好的训练.预测 ...

  9. 【算法竞赛学习】心跳信号分类预测-建模与调参

    Task4 建模与调参 此部分为零基础入门数据挖掘之心电图分类的 Task4 建模调参部分,带你来了解各种模型以及模型的评价和调参策略,欢迎大家后续多多交流. 赛题:零基础入门数据挖掘 - 心电图分类 ...

最新文章

  1. 文化内涵和历史深度:PC
  2. dropout层的作用_循环神经网络的 Dropout
  3. 我所犯的JavaScript引用错误
  4. php 数据显示,数据显示处理,该怎么处理
  5. Event handling in Angular
  6. 涨知识了!阿里、百度、腾讯的名字竟然是这样来的
  7. 最先进单插槽专业绘图解决方案
  8. 60-270-040-源码-指标监测-Flink自定义metric监控流入量
  9. SQL中一种类似GUID值的函数实现
  10. Atitit 图像处理之编程之类库调用的接口api cli gui ws rest  attilax大总结.docx
  11. android上代码阅读软件,安卓代码阅读器app下载-android代码阅读器 安卓版v1.0.0-PC6安卓网...
  12. 盘点python工具包并优化pip下载加速
  13. c语言二级选择题APP,C语言二级考试题库
  14. PuTTY/PuttyGen创建密钥及利用密钥登录服务器
  15. 微软服务器和onenote,为什么微软推出“阉割版”onenote?一篇文章快速入门onenote uwp...
  16. isolated copper:split plane(dgnd) on ground,dead copper delected.copper area is: 2.5e2 sq.mils
  17. gpt和mbr的区别
  18. Uptime-Kuma 一个花哨的开源监控工具
  19. 计算年龄:sql计算
  20. OCTAFX滑点滑到令人发指 现在出金也不给出金是黑平台无疑了

热门文章

  1. chart控件做实时曲线显示_Python 如何实时绘制数据
  2. Android开发之Java和Calendar日期上一年,上一个月,前一天,前一周的方法
  3. oracle 如果存在不创建表,oracle – 如果表不存在则创建表,并在创建后输入一行...
  4. Java编程——服务器设计方案之应用限流
  5. node异步非阻塞的杂谈
  6. Android应用Activity、Dialog、PopWindow、Toast窗体加入机制及源代码分析
  7. jQuery下实现检测指定元素加载完毕
  8. 安卓开发之探秘蓝牙隐藏API
  9. IOS 中视图控制器的生命周期
  10. Windows 8消费者预览版发布啦(附离线分享)