Loading

【数据分析】学术前沿分析(2)——论文作者统计

前言

赛题说明

任务

任务1 :论⽂数量量统计(数据统计任务):统计2019年全年,计算机各个⽅方向论⽂数量;
任务2 :论⽂作者统计(数据统计任务):统计所有论⽂作者出现评率Top10的姓名;
任务3 :论⽂代码统计(数据统计任务):统计所有论⽂类别下包含源代码论文的比例;
任务4 :论⽂分类(数据建模任务):利用已有数据建模,对新论文进行类别分类;
任务5 :作者关联(数据建模任务):对论文作者关系进⾏建模,统计最常出现的作者关系;

可视性任务

任务1:统计分析每个类别论⽂在不同时期的热⻔关键词,分析arXiv论⽂常见关键词的发展趋势,
并进⾏统计可视化;
任务2:统计分析每个类别论⽂综述句子的长度、情感和定冠词,并进⾏可视化;
任务3:统计分析论⽂作者的关联度,通过关联挖掘进行分析;

数据集预处理

【数据分析】学术前沿分析(1)——论文数据统计

作者名预处理

在原始arxiv数据集中论文作者 authors 字段是⼀一个字符串格式,其中每个作者使用逗号进行分隔,所以我们我们⾸首先需要完成以下步骤:

  1. 使用逗号对作者进行切分;

  2. 剔除单个作者中非常规的字符;

具体操作可以参考以下例子:

C. Bal\\'azs, E. L. Berger, P. M. Nadolsky, C.-P. Yuan
# 切分为,其中\\为转义符
C. Ba'lazs
E. L. Berger
P. M. Nadolsky
C.-P.uan  

代码

导入数据集

【数据分析】学术前沿分析(1)——论文数据统计

统计作者名

# 选择类别为cs.CV下面的论文
data2 = data[data['categories'].apply(lambda x: 'cs.CV' in x)]
# 拼接所有作者
all_authors = sum(data2['authors_parsed'], [])
#处理完成后 all_authors 变成了所有⼀个list,其中每个元素为⼀个作者的姓名。我们首先来完成姓名频率的统计
authors_names = [' '.join(x) for x in all_authors]
authors_names = pd.DataFrame(authors_names)u
# 根据作者频率绘制直方图
plt.figure(figsize=(10, 6))
authors_names[0].value_counts().head(10).plot(kind='barh')
# 修改图配置
names = authors_names[0].value_counts().index.values[:10]
_ = plt.yticks(range(0, len(names)), names)
plt.ylabel('Author')
plt.xlabel('Count')

统计姓和名

authors_lastnames = [x[0] for x in all_authors]
authors_lastnames = pd.DataFrame(authors_lastnames)
plt.figure(figsize=(10, 6))
authors_lastnames[0].value_counts().head(10).plot(kind='barh')
names = authors_lastnames[0].value_counts().index.values[:10]
_ = plt.yticks(range(0, len(names)), names)
plt.ylabel('Author')
plt.xlabel('Count')

统计所有作者姓第一个字符的评率,这个流程与上述的类似,同学们可以自行尝试。

posted @ 2021-01-16 21:32  AI_Ruler  阅读(155)  评论(0编辑  收藏  举报