Introduction

In this paper, we used Dongfang zazhi 東方雜誌 (The Eastern Miscellany)—a major intellectual journal published by the Commercial Press from 1904 to 1948 — as our primary source to examine the debates surrounding students returning from Japan during the late Qing and Republican eras. Our analysis is based on the full-text, semantically enriched version of this journal, available through the Modern China Textual Database. Using this resource, we conducted a corpus-based analysis with the HistText R package developed by the ENP-China project for analyzing large collections of historical Chinese texts.

Corpus Building

Expanded search using embedding

Pre-trained embeddings are available at : https://sharedocs.huma-num.fr/#/2547/8997/6-HistText/Embeddings

library("fastTextR")

model <- fasttext()
model$load("~/embeddings/toastynews.bin")  # load embedding 
nearest_neighbors <- ft_nearest_neighbors(model,"留日", k = 30L) # find neighbors
nearest_neighbors <- names(nearest_neighbors)

# Add selected terms to the query (254 results)

liuri_exp <- search_documents('"留日" | "旅日" | "遊日"', corpus="dongfangzz") 

Concordance

Inspect keywords in context using concordance (built-in function included in HistText):

liuri_conc <- search_concordance('"留日" | "旅日" | "遊日"', corpus="dongfangzz") # 335 occurrences
liuri_conc

Filter relevant results

Select only documents that refer to students (107 documents remain):

# Create a vector with relevant expressions for filtering (study, youth)

xue <- c("學", "靑年")
xue_vec <- paste(xue, sep = "", collapse = "|")

# Search the vector within the target fields (After, Before, Title)

library(dplyr)

liuri_conc <- liuri_conc %>% mutate(xue = str_extract(After, xue_vec)) 
liuri_conc <- liuri_conc %>% mutate(xue2 = str_extract(Before, xue_vec))
liuri_conc <- liuri_conc %>% mutate(xue3 = str_extract(Title, xue_vec)) 
liuri_conc <- liuri_conc %>% mutate(match2 = paste0(xue, xue2, xue3))

# Eliminate non matches 

liuri_conc_filtered <- liuri_conc %>% filter(!match2 == "NANANA") # 136 occurrences 

# Export list of documents for manual checking 

write.csv(liuri_conc_filtered, "liuri_conc_to_check.csv")

# Re-import list of manually filtered documents (107)

library(readr)
liuri_filtered <- read_csv("~/data/liuri_filtered.csv")

Retrieve documents metadata and full text

liuri_meta <- get_search_fields_content(liuri_filtered, corpus="dongfangzz", 
                                        search_fields=c(list_search_fields("dongfangzz"),
                                                        list_filter_fields("dongfangzz")))

# Extract year of publication (first four digits of document Id)

liuri_meta <- liuri_meta %>%
  mutate(Year = str_extract(DocId, "\\d{4}")) %>%
  mutate(Year = as.numeric(Year))

liuri_meta <- liuri_meta %>% relocate(Year, .after = DocId)
liuri_meta