游戏迷提供最新游戏下载和手游攻略!

文本分析初体验:新手需花费 12 小时文本分析是什么意思

发布时间:2024-06-02浏览:6

我为什么会想到要组织顶级期刊呢?其实是我的同事建议的。

当时我还在开心地吃着火锅,手机里飘来一条信息:“你最近在做发展心理学什么的?”一瞬间脑子一片空白,于是决定用数据说话,为自己找个方向。这个项目只是出于对领域研究现状和文本分析的好奇,会借这个过程把小白在做文本分析时遇到的坑、各种怕、最后的结果分享给大家。毕竟在文本分析的路上我们并不孤单。既然还想把这个项目继续下去,也希望大家多交流(这部分会在文章最后详细阐述)。

第 1 阶段:粗略的系统评价的结构如下:

何时、何地、何事

说到系统化,第一反应就是打开数据库。

首先,因为我只想分析顶级期刊,所以我首先打开 JCR 检查发展心理学的当前期刊分类。

目前发展心理学类别的SSCI图书共有77本,其中排名前17的图书如下:

考虑到每个人都有自己的专长,我决定删除所有与临床/咨询相关的期刊(例如排名第一的《儿童心理学和精神病学杂志》),只留下七本。

除了发展心理学之外,在同事的建议下,我又添加了三本综合性期刊:《Nature》、《Science》和《PNAS》。

其次,数据库信息收集:确定期刊后,直接打开Web of Science进行检索。其中检索到7个发展心理学专业期刊,导出2019年至2020年11月2日北京时间中午12点30分的所有出版物。以《Child Development》为例,检索如下:

出版物名称:(儿童发展)

数据库 = WOS、CSCD、KJD、MEDLINE、RSCI、SCIELO 时间跨度 = 2019-2020

搜索语言 = 自动

对于三本一般的综合性杂志,PNAS依然限制在2年以内,受试者限制在18岁之前,检索如下:

出版物名称:(美国国家科学院院刊)和主题:(婴儿*或幼儿*或儿童*或学龄前*或青少年*)

对于Nature和Science,考虑到涵盖的主题太多,我们将时间限制放宽到5年,并将主题限制为18岁之前的文章。以Nature为例,检索如下:

出版物名称:(自然)和主题:(婴儿* 或 幼儿* 或 儿童* 或 学龄前* 或 青少年*)

数据库 = WOS、CSCD、KJD、MEDLINE、RSCI、SCIELO 时间跨度 = 2016-2020

搜索语言 = 自动

共导出检索到2310篇文献,其中,根据Web of Science提供的分析,主题分布如下:

但这远远不能回答“你到底在发展心理学做什么?”这个问题。所以我决定做进一步的文本分析。

第一阶段的一点反思:如开头所说,这个项目是一个特别粗糙的系统综述,比如期刊方面,一些心理学大类的综合性期刊(如Psychological Science)没有被收录,另外排除临床研究相当于把发展心理学一个很重要的部分给切掉了,这些不足会在后续的补充研究中得到改进和修正(毕竟一开始只是为了满足自己的好奇心,所以没有想清楚)。另外虽然查过了,但不知道当时Web of Science为什么不能导出关键词,只导出了作者、标题、摘要、期刊名和发表时间,给后续的文本分析造成了一些麻烦,后续或许会通过其他数据库(如PsycInfo)交叉筛选进行二次确认。

第 2 阶段:编码还是不编码:

如何

作为一个因为无法招募受试者而多年在小样本领域苦苦挣扎的人,当我拿到包括2000多篇文章这么大量的数据时,我的第一反应是头晕。

当时搜索结果的导出形式有三种:

1. BibTeX(.bib)直接导入文献管理软件Mendeley;

2.EXCEL(.xlsx);

3. 制表符分隔(win,UTF-8)。

我立刻放弃了使用 Mendeley 进行文本分析的想法,开始用 2(Excel)处理数据。首先,我看了一下目前用于文本分析的软件(如 Rapidminer、WordStat 8)和程序(如 ROSTCM6)。其中,WordStat 8 可能是最适合我的需求的,但价格对我来说实在是负担不起。Rapidminer 也需要一段时间才能习惯,而且基于副项目的定位,为了这个研究而学习一个新的软件可能不值得。因此,在尝试和比较了大约两个小时后,我也果断放弃了第二个选择。

但是我还是有点怕编程,R 和 Phyton 的水平还只是入门级,于是就想问问朋友有没有开源的、好用的工具。按照建议在 GitHub 上搜索无果后,我收到了朋友们的一致评价:这个方案可行,直接编程就可以,很简单,试试也没问题(谢谢大家的鼓励)。压死骆驼的最后一根稻草发生在我转向淘宝的时候。对话如下:

再次说一句,这个店主很靠谱,很贴心!想去淘宝的同学也要先有个大概,不要像我一样傻傻的问。不过想了想,还是决定自己写一下...

文本分析包括哪些方面_文本分析是什么意思_文本分析

第二阶段的一点反思:如果重新开始,我会省去研究各种软件的时间,直接开始编程。回想起来,我在这个阶段浪费了差不多 3 个半小时。从效率的角度来说,我应该考虑得更周全一些。

第三阶段:永远热泪盈眶地学习 R:

休息

决定开始编程后,我先在知乎上看了一下需要的数据包,感谢 Manolo、HopeR、小农数据、Penroseasdf 等知乎用户的帖子,总结如下:

然后就开始写代码了,首先我安装了各种包,这个可以通过Rstudio里的tools-install package来安装,然后我使用library导入包,需要注意的是有些包是需要配合使用的(比如quanteda和readtext),我先把我觉得会用到的包都调用了,但是有些包后面就没用到了,如下图

“图书馆(wordcloud2)

图书馆(dplyr)

图书馆(tidytext)

图书馆(阅读文本)

图书馆(quanteda)”

接下来是导入数据。Web of Science 一次最多导出 500 条条目,因此总共导出 5 个文件。Quanteda 可用于批量导入“mytf5

但很快发现,后面的合并过程有点复杂,为了节省时间,只考虑关键信息(标题+摘要),对数据进行了处理:删除了期刊信息等信息(节省时间和避免出错),只保留标题和摘要,合并成一个文档(文件名:title and abstract.pdf)。

再次导入,使用Tidytext包中的unnest_tokens重建数据结构,并使用%>%函数进行转换

“mytf5%unnest_tokens(单词,文本)”

然后调用函数进行计算和图形输出,如下

“mytf5%unnest_tokens(单词,文本)

> myfile % count(单词,sort = TRUE)

> 查看(我的文件)

> wordcloud2(myfile,backgroundColor =“lightpink”)”

可以看到导出的图存在很大的问题:

问题是没有删除单词。因此,添加,

“数据(“停用词”)

mytf5%unnest_tokens(单词,文本)%>%anti_join(stop_words)”。

Drop之后,词频统计和输出结果就正常多了,如图

词频分析数据可直接导出

“write.csv(myfile, “E:/data/baseoverall/myfile.csv”)”中,前20个单词及其频率如下:

第三阶段的反思:到目前为止,我的好奇心基本得到了满足。但是,这个过程还是有一些不确定的。比如,第一,我的代码其实是大杂烩,调用了很多包和工具。据我所知,quanteda 很强大,但目前可能连 1% 都用不到,所以以后需要按照某个包去学习和使用。第二,英文需要分词吗?我个人装过 quanteda,用 Mix 的方法分词,但不确定这样有没有必要。第三,如图所示,词频中并没有去掉数字,考虑到是做课题研究,下一步考虑去掉数字。第四,根据目标(理解研究课题)需要做哪些调整,比如 adultescent 和 adultescent 还是分开统计自己的词频,从做综述的目标来看,是不是应该合并统计? 第五,目前只总结了英文资料,中文资料暂时还没总结(因为还不懂中文分词),后续会再补充。

第四阶段:未来……

作为一个没有接受过任何文本分析训练的人,我在享受的同时对这种方法产生了浓厚的兴趣。作为研究者,当然也想谈谈自己的理想和未来想做的事情。目前要先认真自学文本分析的步骤和规范,完善现有的数据分析,尽快把关于行业现状的部分发表出来。

在此之后,我想继续做一个非盈利的文本分析项目。根据情况,这个项目会分为两个部分:基础部分是定期(比如每 6-12 个月)给大家提供当前研究状态的总结,并对未来的研究方向做出预测(见知乎 Manolo 的文章:定量文本分析:使用文本数据进行因果推断)。附加部分是如果有合作者的话,我想和我的伙伴们一起定期抓取和整理网络上关于发展心理学研究问题的数据(比如人们经常问的关于育儿的问题),让研究人员能够更好地将自己的研究与现实需求结合起来。

欢迎批评指正,期待交流。未完待续,敬请期待。

热点资讯