数据集爬取及处理
子空间标签数据处理与展示
数据预处理
思路:首先根据sentence_TextCNN.json构建一个list,list的元素类型是字典,每个元素对应一篇论文。字典格式:
其中,paper_id是论文的id,0-4对应五个子空间,分别是研究背景、研究问题、贡献、方法、实验。0-4对应的值表示该论文摘要中的句子在每个子空间上的个数。
思路:
我们的ACM数据集中论文(一共43433篇)的id不是从0开始的也不是连续的,不太方便索引。因此,想建立一个id_dic,表示id和索引的对应关系。接着,读取sentence_TextCNN.json中的数据,存入data中。最后,我们将init_data保存为json文件,注意:paper_id对应为0的论文中没有对应的子空间数据。(子空间模型跑出来的结果里确实有很多论文摘要没有加子空间标记)。
json文件内容如下:
可视化实现及效果展示
利用pyecahrts库,定义了可视化函数,参数为两篇论文的id,输出为柱状图。
- 柱状图标题:子空间标签展示
- 柱状图的两个y轴标题:论文题目
- 一共五列:研究背景、研究问题、贡献、方法、实验
可视化效果如下:
关系图可视化:
①论文引用了哪些论文②论文被哪些论文所引用
数据预处理
首先需要两个基本的数据,title对应论文标题,id_dic是论文id与索引的对应关系。然后就是论文之间的引用关系,前期通过对inlink.list和outlinks.list进行了预处理,生成了对应的txt文档,和ACM数据集中其他的数据形式一样,每行对应一篇论文。我们把数据分别取出到两个list中(outlinks,inlinks),outlinks中的每个元素对应一篇论文所引用的论文id,inlinks中的每个元素对应一篇论文被哪些论文所引用的id。
可视化
按照pyecharts说明文档,关系图需要的数据包括:GraphNode(节点数据项)、GraphLink(节点间的关系数据)和GraphCategory(节点分类类目)。我们根据论文之间的引用关系依次去构造这三个数据。
可视化效果如下:
同理得出被引用关系图:
不同年份上论文集的个数(柱状图)
读取years.txt,将年份对应的总论文数放入一个字典。用pyechrts进行可视化,可视化效果如下,从下图我们可以看出,ACM数据集中的论文大部分是2000年~2008年的。
不同年份上论文集的平均引用量、被引用量(柱状图)
首先,获取每篇论文的引用量。然后,获取不同年份论文的总引用量。最后,获取不同年份论文的平均引用量。并进行可视化看看效果。从下图我们可以看出,不同年份的论文集合他们的平均引用量集中在2~4。
被引用量的处理方法相同。将平均引用量、被引用量结合在一起进行可视化(用户可以拖动下方的条块选择不同的年份范围,以查看详细信息。从下图我们可以看出,ACM数据集中论文的平均引用量普遍高于被引用量。):
不同年份上论文的引用量、被引用量(盒须图)
可视化效果如下图(用户可以拖动下方的条块选择不同的年份范围,以查看详细信息。从图中我们可以看出不同年份论文最大引用量一般都很高,所以上面统计的平均数据可能受极端数据影响比较大):
被引用量同理。
上述内容详见:
https://blog.csdn.net/WX1204