基于规则嵌入的论文比对系统——创新实训记录6
2020-07-13 06:11
351 查看
6-17 不同年份上论文集合数据的可视化
展示论文集合上的一些统计信息,比如,展示数据集中不同年份上论文集的个数,以及平均引用量、被引用量。
创新实训记录6
不同年份上论文集的个数(柱状图)
数据预处理
读取years.txt,将年份对应的总论文数放入一个字典。
# 读取years.txt,将年份对应的论文数放入一个字典 file_years = 'D:/大学资料/大三下/项目实训/code+data/ACM数据集/years.txt' fyears = open(file_years,'r') years_dic = { } for line in fyears: year = line.strip() if year in years_dic.keys() and year is not '': years_dic[year]+=1 elif year is not '': temp = {} temp[year] = 1 years_dic.update(temp) else: continue del years_dic['994'] print(years_dic) print(len(years_dic)) fyears.close()
数据可视化
# 数据可视化:不同年份的论文数量 from pyecharts.charts import Bar from pyecharts import options as opts # 构造x,y轴的数据 x_data = [] y_data = [] for k in sorted(years_dic): x_data.append(k) y_data.append(years_dic[k]) year_bar = Bar(init_opts=opts.InitOpts(width='1200px'))\ .add_xaxis(xaxis_data = x_data)\ .add_yaxis(series_name="论文数量",y_axis = y_data) year_bar.set_global_opts(title_opts=opts.TitleOpts(title='数据集中不同年份的论文数量'), visualmap_opts=opts.VisualMapOpts( is_show = True, type_ ='color', is_piecewise = True, pieces=[ {"min": 3000,"color":'#F01C06'}, {"min":2000, "max":2999,"color":'#F93F2B'}, {"min":1000,"max":1999,"color":'#FB8275'}, {"min":1000,"max":1999,"color":'#FAA62A'}, {"min":500,"max":999,"color":'#F4E362'}, {"min":100,"max":499,"color":'#45F172'}, {"min":50,"max":99,"color":'#7FC3F1'}, {"max":49,"color":'#C4E3F8'} ], orient = 'vertical' )) #year_bar.render_notebook()#显示图表
可视化效果如下,从下图我们可以看出,ACM数据集中的论文大部分是2000年~2008年的。
不同年份上论文集的平均引用量、被引用量(柱状图)
数据预处理
首先,获取每篇论文的引用量。
# 数据预处理:获取每篇论文的引用量 olinkspath = 'D:/大学资料/大三下/项目实训/code+data/ACM数据集/outlinks.txt' ofile = open(olinkspath,'r') outnum = [] for line in ofile: lines = line.strip('\n').split() num = len(lines) outnum.append(num) print(outnum[:6]) ofile.close()
然后,获取不同年份论文的总引用量。
# 数据预处理:获取不同年份论文的总引用量 file_years = 'D:/大学资料/大三下/项目实训/code+data/ACM数据集/years.txt' fyears = open(file_years,'r') num_dic = { } # 论文索引 index = 0 for line in fyears: year = line.strip() if year in num_dic.keys() and year is not '': num_dic[year]+=outnum[index] elif year is not '': temp = {} temp[year] = outnum[index] num_dic.update(temp) else: index+=1 continue index +=1 del num_dic['994'] print(num_dic) print(len(num_dic)) fyears.close()
最后,获取不同年份论文的平均引用量。并进行可视化看看效果。
# 数据可视化:不同年份论文的平均引用量 from pyecharts.charts import Bar from pyecharts import options as opts # 构造x,y轴的数据 x_data1 = [] y_data1 = [] for k in sorted(avg_dic): x_data1.append(k) y_data1.append(avg_dic[k]) avg_bar = Bar(init_opts=opts.InitOpts(width='1200px'))\ .add_xaxis(xaxis_data = x_data1)\ .add_yaxis(series_name="论文数量",y_axis = y_data1) avg_bar.set_global_opts(title_opts=opts.TitleOpts(title='不同年份论文的平均引用量'), visualmap_opts=opts.VisualMapOpts( is_show = True, type_ ='color', is_piecewise = True, pieces=[ {"min": 5,"color":'#FE6E6E'}, {"min":4, "max":5,"color":'#F29CE6'}, {"min":3, "max":4,"color":'#FCEB88'}, {"min":2,"max":3,"color":'#A4FB81'}, {"max":2,"color":'#C4E3F8'} ], orient = 'vertical' ))
数据可视化
从下图我们可以看出,不同年份的论文集合他们的平均引用量集中在2~4。
被引用量的处理方法相同。
将平均引用量、被引用量结合在一起进行可视化:
# 数据可视化:不同年份论文的平均引用量 from pyecharts.charts import Bar from pyecharts import options as opts # 构造x,y轴的数据 x_data2 = [] y_data2 = [] for k in sorted(inavg_dic): x_data2.append(k) y_data2.append(inavg_dic[k]) inavg_bar = Bar(init_opts=opts.InitOpts(width='1200px'))\ .add_xaxis(xaxis_data = x_data2)\ .add_yaxis(series_name="平均被引用量",y_axis = y_data2)\ .add_yaxis(series_name="平均引用量",y_axis = y_data1) inavg_bar.set_global_opts(title_opts=opts.TitleOpts(title='不同年份论文的平均被引用量与引用量'), datazoom_opts=opts.DataZoomOpts(is_show= True, orient="horizontal")) inavg_bar.render()#显示图表
用户可以拖动下方的条块选择不同的年份范围,以查看详细信息。从下图我们可以看出,ACM数据集中论文的平均引用量普遍高于被引用量。
不同年份上论文的引用量、被引用量(盒须图)
数据预处理
# 数据预处理:获取每篇论文的引用量 olinkspath = 'D:/大学资料/大三下/项目实训/code+data/ACM数据集/outlinks.txt' ofile = open(olinkspath,'r') outnum = [] for line in ofile: lines = line.strip('\n').split() num = len(lines) outnum.append(num) print(outnum[:6]) ofile.close() # 数据预处理:获取不同年份的论文集合 file_years = 'D:/大学资料/大三下/项目实训/code+data/ACM数据集/years.txt' fyears = open(file_years,'r') paper_dic = { } # 论文索引 index = 0 for line in fyears: year = line.strip() if year in paper_dic.keys() and year is not '': paper_dic[year].append(outnum[index]) elif year is not '': temp = { } new_list = [] new_list.append(outnum[index]) temp[year] = new_list paper_dic.update(temp) else: index+=1 continue index +=1 del paper_dic['994'] print(paper_dic['1999'][:50]) fyears.close() # 构造x,y轴的数据 x_data = [] y_data = [] for k in sorted(paper_dic): x_data.append(k) y_data.append(paper_dic[k])
数据可视化
可视化效果如下图。
用户可以拖动下方的条块选择不同的年份范围,以查看详细信息。从图中我们可以看出不同年份论文最大引用量一般都很高,所以上面统计的平均数据可能受极端数据影响比较大。
被引用量同理。
相关文章推荐
- 基于规则嵌入的论文比对系统——创新实训记录13(个人工作总结)
- 基于规则嵌入的论文比对系统——创新实训记录12
- 基于规则嵌入的论文比对系统——创新实训记录11
- 基于规则嵌入的论文比对系统——创新实训记录10
- 基于规则嵌入的论文比对系统——创新实训记录9
- 基于规则嵌入的论文比对系统——创新实训记录8
- 基于规则嵌入的论文比对系统——创新实训记录7
- 自然语言交流系统 phxnet团队 创新实训 个人博客 (二)
- 基于人脸识别技术实战开发人证比对访客系统
- (个人)AR电子书系统创新实训第三周(2)
- (个人)AR电子书系统创新实训第六周(2)
- (项目)AR电子书系统创新实训第一周(2)
- (个人)AR电子书创新系统实训第四周(2)
- 计算机论文,基于asp.net的文件签发系统
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (六)
- 高可用高性能系统(五)基于规则的请求路由
- 基于JSP邮件收发系统的设计与实现论文(含源文件)
- 基于规则和规则引擎的系统
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (九)
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (十一)