
Analyze and Visualize Word Co-occurrence Networks
Source:R/network_analysis.R
plot_cooccurrence_network.RdThis function creates a word co-occurrence network based on a document-feature matrix (dfm).
Usage
plot_cooccurrence_network(
dfm_object,
doc_var = NULL,
co_occur_n = 50,
top_node_n = 30,
nrows = 1,
height = 800,
width = 900,
category = NULL,
use_category_specific = FALSE,
category_params = NULL
)Arguments
- dfm_object
A quanteda document-feature matrix (dfm).
- doc_var
A document-level metadata variable (default: NULL).
- co_occur_n
Minimum number of co-occurrences for filtering terms (default: 50).
- top_node_n
Number of top nodes to display (default: 30).
- nrows
Number of rows to display in the table (default: 1).
- height
The height of the resulting Plotly plot, in pixels (default: 800).
- width
The width of the resulting Plotly plot, in pixels (default: 900).
- category
An optional category to filter the data (default: NULL).
- use_category_specific
Logical; if TRUE, uses category-specific parameters (default: FALSE).
- category_params
A named list of parameters for each category level (default: NULL).
Value
A list containing the Plotly plot, a data frame of the network layout, and the igraph graph object.
Examples
if (interactive()) {
mydata <- TextAnalysisR::SpecialEduTech
united_tbl <- TextAnalysisR::unite_cols(
mydata,
listed_vars = c("title", "keyword", "abstract")
)
tokens <- TextAnalysisR::prep_texts(united_tbl, text_field = "united_texts")
dfm_object <- quanteda::dfm(tokens)
# Overall
word_co_occurrence_network_results <- TextAnalysisR::plot_cooccurrence_network(
dfm_object,
doc_var = "reference_type",
co_occur_n = 30,
top_node_n = 0,
nrows = 1,
height = 800,
width = 900)
print(word_co_occurrence_network_results$plot)
print(word_co_occurrence_network_results$table)
print(word_co_occurrence_network_results$summary)
# Journal article
category_params <- list(
"journal_article" = list(co_occur_n = 80, top_node_n = 20),
"thesis" = list(co_occur_n = 30, top_node_n = 20)
)
word_co_occurrence_category <- TextAnalysisR::plot_cooccurrence_network(
dfm_object,
doc_var = "reference_type",
use_category_specific = TRUE,
category_params = category_params)
print(word_co_occurrence_category$journal_article$plot)
print(word_co_occurrence_category$journal_article$table)
print(word_co_occurrence_category$journal_article$summary)
# Thesis
print(word_co_occurrence_category$thesis$plot)
print(word_co_occurrence_category$thesis$table)
print(word_co_occurrence_category$thesis$summary)
}