Citation Analysis

Especially to TT

Nguyen Chi Dung

Giới thiệu

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áchNguyễ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())