github:链接
论文趋势分析专栏:链接

论文趋势分析-作者关系图谱

  • 1数据预处理
    • 1.1数据读取
    • 1.2数据连接
  • 2统计机器学习领域的作者图谱
    • 2.1抽取机器学习领域的数据
    • 2.2绘制图谱
    • 2.3找到Machine Learning领域合作数量最多的作者
      • 2.3.1第一步生成连接图
      • 2.3.2按连接的边数进行排序
    • 2.4找到与Beygelzimer Alina'合作的作者
    • 2.5提取与Beygelzimer Alina'合作的连接图
    • 2.6绘制与作者们与其他人合作的频率
    • 2.7绘制最大联通子图

1数据预处理

1.1数据读取

# 导入所需的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 #画图工具
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('D:\code\Github\data\AcademicTrendsAnalysis/arxiv-metadata-oai-snapshot.json', ['id','categories','authors_parsed'],200000)
data['categories'] = data.categories.str.split(' ',expand=True)[0]
category = pd.read_csv('D:\code\Github\data\AcademicTrendsAnalysis\categories.csv')

1.2数据连接

data = data.merge(category,how='left')
data.head(3)
id categories authors_parsed group_name archive_name archive_id category_name category_description
0 0704.0001 hep-ph [[Balázs, C., ], [Berger, E. L., ], [Nadolsky,... Physics High Energy Physics - Phenomenology hep-ph High Energy Physics - Phenomenology Description coming soon
1 0704.0002 math.CO [[Streinu, Ileana, ], [Theran, Louis, ]] Mathematics Mathematics Mathematics Combinatorics Discrete mathematics, graph theory, enumeratio...
2 0704.0003 physics.gen-ph [[Pan, Hongjun, ]] Physics Physics physics General Physics Description coming soon

2统计机器学习领域的作者图谱

2.1抽取机器学习领域的数据

data_ML = data.loc[data.category_name == 'Machine Learning']
data_ML.shape
(596, 8)

2.2绘制图谱

  • 为了方便显示,仅取用了前十篇论文
  • baseline中的data取的太多,改小一点就可以正常显示图谱了
import networkx as nx
# 创建无向图
G = nx.Graph()# 只用五篇论文进行构建
for row in data_ML.iloc[:10].itertuples():authors = row[3]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)

2.3找到Machine Learning领域合作数量最多的作者

2.3.1第一步生成连接图

  • itertuples用于迭代DataFrame对象
  • G.add_edge()向图中添加边
G = nx.Graph()
for row in data_ML.itertuples():authors = row[3]authors = [' '.join(x[:-1]) for x in authors]# 第一个作者 与 其他作者链接for author in authors[1:]:G.add_edge(authors[0],author)

2.3.2按连接的边数进行排序

  • 可以看到,合作数量做多的三个人,他们分别曾于10,9,8个人进行过合作
num_sorted = sorted(dict(G.degree()).items(),key=lambda x :x[1],reverse=True)
for i,(name,num) in enumerate(num_sorted):if i <3:print(name,':',num)
Beygelzimer Alina : 10
Aran Oya  : 9
Liu Han : 8

2.4找到与Beygelzimer Alina’合作的作者


G['Beygelzimer Alina']
AtlasView({'Langford John': {}, 'Dasgupta Sanjoy': {}, 'Lifshits Yuri': {}, 'Sorkin Gregory': {}, 'Strehl Alex': {}, 'Li Lihong': {}, 'Reyzin Lev': {}, 'Schapire Robert E.': {}, 'Hsu Daniel': {}, 'Zhang Tong': {}})

2.5提取与Beygelzimer Alina’合作的连接图

def func(x):s = ''for i in x:t = ' '.join(i)s += t+','return s
data_temp= data_ML.authors_parsed.apply(func=func)
data_ML_beya= data_temp[data_temp.str.contains('Beygelzimer Alina')]
# 创建无向图
import networkx as nx
G = nx.Graph()# 只用五篇论文进行构建
for row in data_ML_beya.to_frame().itertuples():authors = row[1]authors = authors.split(',')# 第一个作者 与 其他作者链接for author in authors[1:]:G.add_edge(authors[0],author) # 添加节点2,3并链接23节点
nx.draw(G, with_labels=True)

2.6绘制与作者们与其他人合作的频率

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.bar(range(len(nx.degree_histogram(G))) ,nx.degree_histogram(G))
plt.xlabel('合作作者的数量')
plt.ylabel('人数')
plt.title('机器学习领域论文论文作者与其他人合作的数量')
Text(0.5, 1.0, '机器学习领域论文论文作者与其他人合作的数量')

2.7绘制最大联通子图

  • 每个节点都代表一个作者

#取出每个节点的度(链接边数)
degree_sequence = sorted([d for n, d in G.degree()], reverse=True)
dmax = max(degree_sequence)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. 手把手教你上手Gephi制作基于共现矩阵的论文作者关系图谱

    引言:Gephi是一款开源免费跨平台基于JVM的复杂网络分析软件,其主要用于各种网络和复杂系统,动态和分层图的交互可视化与探测开源工具. --摘自百度百科 温馨提示:近期本人访问GitHub出现间歇性 ...

  2. 论文趋势分析——数据理解与分析

    github地址:链接 论文趋势分析 1数据转换 1.1读取原始数据 1.2爬取论文类别数据 1.3取data的子集进行处理 1.4对categories进行处理 1.5数据连接 1.6存储转换后的数 ...

  3. 论文趋势分析(python+excel+tableau)

    本文github地址:链接 论文趋势分析专栏:链接 本文被DataWhale公众号转发:链接 论文趋势分析(python+excel+tableau) 1数据读取 1.1读取原始数据 1.2抽取5%的 ...

  4. 请查收!顶会AAAI 2020录用论文之知识图谱篇

    欢迎关注语言智能技术笔记簿微信公众号 导读:人工智能领域顶级会议AAAI 2020持续火爆,共收到有效论文投稿8843篇,其中7737篇论文进入评审环节,最终收录1591篇,收录率为 20.6%.较去 ...

  5. 论文导读 | 知识图谱质量控制

    编者按: 本文不局限于对某一篇论文的详细介绍,而是通过对一系列工作的概括性叙述,帮助读者从直观上对知识图谱质量控制领域有一个大体的了解. 一.知识图谱质量控制概述 数据的数量和质量宛如一枚硬币的两面, ...

  6. 【论文】知识图谱简单问答(单跳)挑战、技术和趋势综述

    文章目录 Challenges, Techniques, and Trends of Simple Knowledge Graph Question Answering: A Survey Abstr ...

  7. 综述 | 358 篇论文, 最新知识图谱KG综述

    进NLP群->加入NLP交流群 来自:图神经网络与推荐系统 获取结构化的人类知识是设计高级人工智能的重要基础.为此,早期研究者做了大量工作以从不同数据源中自动提取可以提供有用信息(事实)的数据模 ...

  8. 358 篇论文, 最新知识图谱KG综述!

    获取结构化的人类知识是设计高级人工智能的重要基础.为此,早期研究者做了大量工作以从不同数据源中自动提取可以提供有用信息(事实)的数据模式:进一步地,学者的研究兴趣转向自动构建概念化的结构良好的知识图谱 ...

  9. 知识图谱最新论文清单,高阶炼丹师为你逐一解读

    精选 6 篇来自 EMNLP 2018.ISWC 2018.NAACL 2018.ACL 2018 和 IJCAI 2018 的知识图谱相关工作,带你快速了解知识图谱领域最新研究进展. 本期内容选编自 ...

  10. 知识图谱最新权威综述论文解读:知识图谱补全部分

    上期我们介绍了2020年知识图谱最新权威综述论文<A Survey on Knowledge Graphs: Representation, Acquisition and Applicatio ...

最新文章

  1. Nature Genetics:微生物基因组如何适应植物?(news views)
  2. reposurgeon 2.15 发布
  3. java-jpa-criteriaBuilder使用入门
  4. Can not create a Path from an empty string解决
  5. telnet或SQLplus下命令输入错误如何删掉重新输入
  6. Win11任务栏颜色如何更改 Win11更改任务栏颜色教程
  7. 力扣-530. 二叉搜索树的最小绝对差
  8. 10. 二进制中1的个数(C++版本)
  9. Java监测他人的消息_Java中的Listener 监听器
  10. php公众号后台,微信公众号后台管理系统
  11. excel计算机求和函数,多条件求和、多条件计数、多条件查找……多了去了!
  12. unity商店的Standard Assets自带人物移动插件的bug修改
  13. 网站建设经验分享:如何设计及运营网站
  14. 影响世界的100条管理励志名言
  15. Android自定义星星评分控件,高效
  16. 数学建模暑期集训24:机器学习与Classification Learner工具箱实操
  17. POJ 1033--Defragment
  18. 总结:Prometheus存储
  19. 创龙TI KeyStone C66x多核定点/浮点TMS320C6678 DSP开发板处理器、NAND FLASH、NOR FLASH
  20. 区块链系统架构图_区块链模型架构

热门文章

  1. 记账小程序php开发_微信小程序(应用号)开发实战记账软件实例
  2. 小胜凭智, 大胜靠德
  3. html 设置div背景颜色,CSS设置网页背景颜色技术教程篇
  4. java代码实现端口是否ping通
  5. html三角形下拉列表,select自定义小三角样式代码(实用总结)
  6. Postman:脚本应用_pm对象
  7. 如何在论文中正确引用参考文献(自动标注)
  8. 红包雨架构设计---1、技术架构
  9. IE\firfox\chrome的差异和兼容问题
  10. 模块化设计(程序流程图)