Bài viết này thực hiện một số phân tích trích dẫn của hai tác giả có nhiều nghiên cứu về Y - Sinh là Trần Xuân Bách và Nguyễn Văn Tuấn.
#-------------------------------------------
# Phân tích trích dân Hai tác giả có nhiều
# bài đăng trên các tạp chí Y - Sinh
# là Trần Xuân Bách và Nguyễn Văn Tuấn
#-------------------------------------------
# Lấy ID của hai tác giả có nhiều nghiên cứu vê Y Học
# là Trần Xuân Bách và Nguyễn Văn Tuấn trên google scholar:
id <- c("TQV9ZI4AAAAJ&hl=vi", "CbTg62QAAAAJ&hl=vi")
# Số trích dẫn các bài viết có tên hai tác giả này từ 2009:
library(scholar)
total <- data.frame()
for (i in 1:2) {
pro <- get_profile(id[i])
cites <- get_citation_history(id[i])
cites$Author <- rep(pro$name, nrow(cites))
total <- rbind(total, cites)
}
# Xuất hiện muộn hơn nhưng những bài viết có tên
# tác giả Bach Tran có số lần trích dẫn lại
# tăng nhanh chóng:
library(tidyverse)
theme_set(theme_minimal())
total %>%
filter(year != 2017) %>%
ggplot(aes(year, cites, fill = year)) +
geom_col(fill = "gray40") +
geom_col(data = total %>% filter(year == 2016), fill = "firebrick4") +
geom_text(data = total %>% filter(year == 2016),
aes(label = cites), vjust = -0.5, color = "black") +
facet_wrap(~ Author, scale = "free") +
labs(x = NULL,
y = "Google Scholar\n cites",
title = "Google Scholar Citations: Bach Tran and Tuan V.Nguyen",
subtitle = "Note: There is no data for the author Bach Tran before 2013",
caption = "Data Source: https://scholar.google.com/citations") +
scale_x_continuous(breaks = seq(2009, 2016, by = 1)) +
theme(
# Bỏ lưới mặc định:
panel.grid.minor = element_blank(),
# Tô màu, chỉnh kích cỡ của lưới song song với x:
panel.grid.major = element_line(color = "gray50", size = 0.5),
# Bỏ lưới song song với y (xuất phát từ x):
panel.grid.major.x = element_blank(),
# background có nền trắng:
panel.background = element_blank()
)
#----------------------------------
# Của tác giả Trần Xuân Bách
#----------------------------------
library(PubMedWordcloud)
# Lấy các bài viết có tên tác giả Tran BX trên cơ sở dữ liệu
# của PubMed - một hub chuyên về các nghiên cứu Y - Sinh:
tranbx <- getPMIDs(author = "Tran BX", dFrom = 2008, dTo = 2017)
# Số bài có tên tác giả Tran BX trong thời gian trên:
length(tranbx)
## [1] 65
# Lấy các abstract từ các nghiên cứu có tên tác giả:
abstracts <- getAbstracts(tranbx)
# Rõ ràng các nghiên cứu của tác giả Tran Bach
# thuộc Public Health - Medical Economics:
library(wordcloud)
par(bg = "black")
set.seed(17091995)
wordcloud(abstracts,
# Số từ hiển thị trên wordcloud tối đa là 100:
max.words = 100,
random.order = FALSE,
# 35% số từ được hiển thị theo chiều thẳng đứng
rot.per = 0.35,
# Tô màu cho chữ:
colors = brewer.pal(8, "Dark2"))
# Viết một hàm xử lí các abstract này:
clean_word <- function(my_text) {
library(tm)
u <- my_text %>%
VectorSource() %>%
VCorpus() %>%
tm_map(tolower) %>%
tm_map(removePunctuation) %>%
tm_map(removeNumbers) %>%
tm_map(removeWords, stopwords("english")) %>%
tm_map(stripWhitespace) %>%
tm_map(PlainTextDocument) %>%
TermDocumentMatrix()
m <- as.matrix(u)
v <- sort(rowSums(m), decreasing = TRUE)
d <- data.frame(word = names(v), freq = v)
return(d)
}
# 25 từ xuất hiện phổ biến nhất trong các nghiên cứu của anh Bách:
abstracts %>% clean_word() %>%
slice(1:25) %>%
ggplot(aes(reorder(word, freq), freq)) +
geom_col() + coord_flip() +
labs(x = NULL, y = NULL,
title = "Highest Frequency Abstract Words: Top 25",
subtitle = "Author: Tran Bach",
caption = "Data Source: https://www.ncbi.nlm.nih.gov/pubmed/") +
theme(panel.grid.minor = element_blank(),
panel.grid.major = element_line(color = "gray50", size = 0.5),
panel.grid.major.y = element_blank(),
panel.background = element_blank())
#--------------------------------------------
# Của tác giả Nguyễn Văn Tuấn
#--------------------------------------------
# Tác giả Nguyễn Văn Tuấn lấy tên là Nguyen TV trong các
# bài đăng có tên mình trên cơ sở dữ liệu của PubMed:
nguyentv <- getPMIDs(author = "Nguyen TV", dFrom = 2008, dTo = 2017)
# Có 353 bài có tên tác giả này. Một con số lớn:
nguyentv %>% length()
## [1] 353
abstracts <- getAbstracts(nguyentv)
# Rõ ràng các bài viết là nghiên cứu cơ - xương:
set.seed(17091995)
wordcloud(abstracts,
# Số từ hiển thị trên wordcloud tối đa là 100:
max.words = 100,
random.order = FALSE,
# 35% số từ được hiển thị theo chiều thẳng đứng
rot.per = 0.35,
# Tô màu cho chữ:
colors = brewer.pal(8, "Dark2"))
# 25 từ xuất hiện nhiều nhất:
abstracts %>% clean_word() %>%
slice(1:25) %>%
ggplot(aes(reorder(word, freq), freq)) +
geom_col() + coord_flip() +
labs(x = NULL, y = NULL,
title = "Highest Frequency Abstract Words: Top 25",
subtitle = "Author: Tuan V. Nguyen",
caption = "Data Source: https://www.ncbi.nlm.nih.gov/pubmed/") +
theme(panel.grid.minor = element_blank(),
panel.grid.major = element_line(color = "gray50", size = 0.5),
panel.grid.major.y = element_blank(),
panel.background = element_blank())