美文网首页
task 5 Author information associ

task 5 Author information associ

作者: cornbig | 来源:发表于2021-01-26 01:54 被阅读0次

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

import json
import pandas as pd
data = []
with open("/content/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)
data.head(10)

networkX https://networkx.org/
将作者列表进行处理
(1)将论文第一作者与其他作者(非第一作者)构建图
(2)使用图算法统计图中作者与其他作者的联系

构建作者连接的无向图

import networkx as nx
# 创建无向图
G = nx.Graph()

# 只用五篇论文进行构建
for row in data.iloc[:50].itertuples():
  authors = row[1]
  authors = [' '.join(x[:-1]) for x in authors]
  # 第一作者 与其他作者链接
  for author in authors[1:]:
    G.add_edge(authors[0], author)
# 将作者关系图进行绘制
nx.draw(G, with_labels = False)
50篇论文构建图.png
# 计算论文关系中有多少个联通子图
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()
选择最大联通子图进行绘制,折线图为子图节点度值.png

相关文章

网友评论

      本文标题:task 5 Author information associ

      本文链接:https://www.haomeiwen.com/subject/wcvwzktx.html