第 20 章 作者信息提取
提取文献题录,是一件比较繁琐的工作。我这里使用tidyESI宏包尝试解决,目前还不完美,还需要不断的探索,欢迎大家PR。
library(tidyverse)
library(here)
20.1 最小案例数据
<- read_rds(here("data", "example.rds")) %>%
d select(UT, AF, C1, RP)
d
作者信息栏
$C1 d
## [1] "[You, Jiayong; Yuan, Yonggui; Shi, Yanyan; Zhang, Xiangrong; Li, Hailin] Nanjing Med Univ, Dept Psychiat, Nanjing Brain Hosp, Nanjing 210029, Peoples R China; [Zhang, Zhijun] Southeast Univ, Dept Neuropsychiat, Affiliated ZhongDa Hosp, Nanjing 210009, Peoples R China; [Yuan, Yonggui] Southeast Univ, Sch Clin Med, Nanjing 210009, Peoples R China"
## [2] "[Geng, Fan; Yuan, Zhulin] SE Univ, Sch Energy & Environm, Nanjing 210096, Peoples R China; [Geng, Fan; Yan, Yaming; Luo, Dengshan; Wang, Hongsheng; Li, Bin; Xu, Dayong] China Natl Tobacco Corp, Key Lab Tobacco Proc Technol, Zhengzhou 450001, Peoples R China"
通讯作者信息栏
$RP d
## [1] "Yuan, YG (corresponding author), Nanjing Med Univ, Dept Psychiat, Nanjing Brain Hosp, Guangzhou Rd 264, Nanjing 210029, Peoples R China."
## [2] "Geng, F (corresponding author), SE Univ, Sch Energy & Environm, Nanjing 210096, Peoples R China."
20.2 说明
提取归属信息,整理成5列
- 归属 .ownership
- 姓名 .names
- 地址 .addr
- 学校 .univ
- 学院 .coll
一篇文章如果有3个作者,那么归属为1个“first_author,” 2个“co_author,” 返回的结果还会包括通讯作者“reprint_author”。一般情况下,通讯作者来自这3个作者中的一个或者几个,因此,这条题录,最终会返回有3+n行,这里的n是指通讯作者的个数,通讯作者不分前后。(通讯作者都要搞几个,唉,学术啊)
.ownership .names .addr .univ .coll first_author co_author co_author reprint_author 作者地址如果有多个,这个作者信息就会出现多次,比如,作者地址有同济大学物理学院和中科院高能所,那么作者信息会出现两行,这两行只是地址不同,其它信息是一样的。如果刚好又是第一作者,那么他的两个地址都会标上“first_author”。更特殊点,如果第一作者地址有同济大学物理学院和同济大学计算机学院,即一个学院不同学院,那么在统计的时候,会认为作者以第一作者身份,分别为物理学院和计算机学院贡献一篇。因此,在后期统计时,需要先地址筛选,再统计。
20.3 提取
library(tidyESI)
<- d %>%
res rowwise() %>%
mutate(
info = list(ownership_extract(AF, C1, RP))
%>%
) ungroup()
# res
%>%
res head(3) %>%
select(UT, info) %>%
unnest(cols = c(info)) %>%
select(UT, .ownership, .names, .univ, .coll)