每个入坑的研究生几乎都是从看综述开始的,在确定好研究课题后的第一件是也许就是看各种综述。如果把综述看成一颗树,那么顺着这颗树的脉络,我们可以清楚地看到这个小领域的研究方向和进展。综述不仅帮我们梳理好了特定领域的研究历史、重要研究成果,还有对未来研究展望。可是,对于刚入门的研究生,对将要进入的领域完全没有认识,一头扎进一篇篇综述里面,仿佛将一个人突然从空中推下森林里,眼前只有高大的树木,茂盛的树叶,对着个森林完全没有整体的认识,不知道这个森林有多大,不知道森林里什么地方树木比较密集,不知道什么地方阳光雨水充足适合树木发展,更不知道自己将要栖身的那颗树的发展前途怎么样。这些都是综述给不了的。那么我们如何在开始时就对这片小森林有一定的认识呢?
本文试图提供一个非常简单甚至有点天真的想法,具体的想法是在数据库里爬取大量论文的基本信息,包括题目、通讯作者、发表年份,论文类型和关键词,然后通过文本挖掘来对这片小森林有一个简单的认识。基本分析结果包括历年文章发表数量和趋势,发表文章比较多的作者是那些人,领域里研究的热点是什么,还有这些关键词有什么样的联系。
一、数据获取:
sciencedirect是Elsevier旗下的一个数据库网站,Elsevier又是荷兰一家全球著名的学术期刊出版商,每年出版大量的学术图书和期刊,大部分期刊被SCI、SSCI、EI收录,是世界上公认的高品位学术期刊。更重要的是sciencedirect上的数据结构非常整齐,关键词搜索比较准确,只需要非常简单的爬虫就可以抓取大量的数据;爬虫的实现比较简单,网上有大量教程。需要说明的是sciencedirect数据库中每篇论文具体页面的关键词的位置不固定,而且加载时是动态加载,反正我这个菜鸟不会,所以论文的关键词用论文标题中的名词代替,虽然这样不是很准确。同时,通讯作者和其单位匹配也比较复杂,没有规律,所以只能放弃,最后,论文被引次数也是动态加载,所以也只能放弃,好在我们只是简单地看一下这片森林,所以剩余的信息也基本够用。所以最终的数据有论文题目, 论文类型,通讯作者,期刊名称,发表年份和关键词。这里以关键词——‘cytoskeleton’为例,爬取sciencedirect中的结果,由于只是演示,所以只爬取搜索结果的前10页的内容,共250条记录。
二、结果分析:
1、最近几年文章发表趋势。
历年文章发表趋势在一定程度上可以说明这个领域的活力程度。
year.png
由于sciencedirect中的搜索结果并不是以时间来排序,所以前250个记录中只包含了一部分这些年的数据,但趋势还是比较明显的,每年这个领域的文章都是逐步上升的。
2、这个领域里发表文章数最多的作者。
衡量一个作者在这个领域的分量有很多指标,比如比较权威的H指数等,但这里仅用发表文章数量作一个简单又天真的替代。
对作者进行分组统计,然后排序,所以很容易得到一个柱形图。可以看到发表文章最多的前五个作者分别是Regina Pessoa-Pureur、Guangshuo Qu、Qiang Fu、Dao-Yi Yu和Alptekin Aksan。值得注意的是,这里没有考虑文章的影响因子,也没有考虑文章被引数目,而且数据量也非常小,所以这个结果是演示作用。
year.png
3、领域中的研究热点。
这里用论文题目中词的频率来表示领域里的研究热点,虽然不是很准确,但也有一定的相关性。
wordcloud是一款非常简单的绘制词云库,具体使用方法参考(https://blog.csdn.net/u01309756/article/details/67637930)。
从图中可以看出,actin、membrane、induced、receptor、effect、regulates、Rho等出现的频率相对来说非常的高,说明这些是人们的研究的热点。(注意图中的cytoskeleton出现了两次,原因一直没找出了,希望有大神能解释)。
4、关键词的联系。
nltk的全称是natural language toolkit,是一套基于python的自然语言处理工具集。textblob是一款比nltk简单的文本处理工具,这里主要是用到其简单的提取名词、去除stopword的功能。
networkx是python里绘制网络图的重要第三方包,功能非常强大,coursera上有其使用的简单实用教程(https://www.coursera.org/learn/python-social-network-analysis/),这里就不作介绍了。
关联分析主要是从大规模数据中寻找物品间的隐含关系,最出名的关联分析实例就是沃尔玛超市里的啤酒和尿布案例(其真实性在知乎上有讨论)。不管怎样,关联分析为我们提取事物的联系提供了很好分析方法,其中的Apriori算法更是为大规模数据的关联分析提供了强力的支撑。需要说明的是这里用到的关于关联分析的Apriori算法的代码来自《machine learning in action》。
利用Apriori算法,提取minSupport大于0.02的frequent item进行分析,图中实心圆的颜色越深,代表其和其他词的关联数量越多,两者之间的连线的粗细代表support的大小。可以看到,cytoskeleton和cell、actin、reorganization、effect的关联度比较高,比较有意思的是同属于骨架的microtubute和cytoskeleton的关联非常的少,也有可能是数据量比较小的原因。
这里只是分析了两个词之间的两两的关联性,更多词的关联性见sciencedirect.ipynb文件。
三、结论
虽然项目比较简单,但通过这些基本的分析还是能看到综述里无法表达的信息,使我们对小森林的认识有一定的帮助。
注:由于数据集中很多关键信息不是缺少就是用其他信息替代,所以分析的结果的准确性有一定的限制(反正只是用来练手)。
文中涉及的详细代码见https://github.com/xianyu426/sciencedirect_analysis
最后希望大神多提意见!!!
网友评论