Skip to contents

This function takes the output from scrape_reviews, preprocesses the data, performs topic modeling, and prints the results.

Usage

model_topics(reviews, num_topics = 3, num_terms = 10, english_only = TRUE)

Arguments

reviews

A data frame containing the scraped reviews

num_topics

The number of topics to extract

num_terms

The number of top terms to display for each topic

english_only

A logical value indicating whether to filter out non-English reviews. Default is FALSE.

Value

A list containing the following elements:

  • model: The fitted LDA model object.

  • filtered_reviews: The preprocessed and filtered reviews data frame.

Examples

# \donttest{
# Create a temporary file with sample book IDs
temp_file <- tempfile(fileext = ".txt")
writeLines(c("1420", "2767052", "10210"), temp_file)

# Scrape reviews
reviews <- scrape_reviews(temp_file, num_reviews = 5, use_parallel = FALSE)
#> Total book IDs to process: 3
#> 2024-10-25 03:01:46.658279 scrape_goodreads_reviews: Completed! All book reviews extracted
#> Scraping run time = 7.75918531417847
#> Total books processed: 3

# Model topics
topic_results <- model_topics(reviews, num_topics = 2, num_terms = 5, english_only = TRUE)
#> Topic 1:  
#> book, fuck, hamlet, katniss, get 
#> 
#> Topic 2:  
#> love, jane, just, like, rochest 
#> 

# Print model summary
print(topic_results$model)
#> A LDA_Gibbs topic model with 2 topics.

# Clean up: remove the temporary file
file.remove(temp_file)
#> [1] TRUE
# }