Update an LDA model with new data using collapsed Gibbs sampling.

# S3 method for lda_topic_model
update(object, dtm, additional_k = 0,
iterations = NULL, burnin = -1, new_alpha = NULL,
new_beta = NULL, optimize_alpha = FALSE, calc_likelihood = FALSE,
calc_coherence = TRUE, calc_r2 = FALSE, ...)

## Arguments

object |
a fitted object of class `lda_topic_model` |

dtm |
A document term matrix or term co-occurrence matrix of class dgCMatrix. |

additional_k |
Integer number of topics to add, defaults to 0. |

iterations |
Integer number of iterations for the Gibbs sampler to run. A
future version may include automatic stopping criteria. |

burnin |
Integer number of burnin iterations. If `burnin` is greater than -1,
the resulting "phi" and "theta" matrices are an average over all iterations
greater than `burnin` . |

new_alpha |
For now not used. This is the prior for topics over documents
used when updating the model |

new_beta |
For now not used. This is the prior for words over topics
used when updating the model. |

optimize_alpha |
Logical. Do you want to optimize alpha every 10 Gibbs iterations?
Defaults to `FALSE` . |

calc_likelihood |
Do you want to calculate the likelihood every 10 Gibbs iterations?
Useful for assessing convergence. Defaults to `FALSE` . |

calc_coherence |
Do you want to calculate probabilistic coherence of topics
after the model is trained? Defaults to `TRUE` . |

calc_r2 |
Do you want to calculate R-squared after the model is trained?
Defaults to `FALSE` . |

... |
Other arguments to be passed to `TmParallelApply` |

## Value

Returns an S3 object of class c("LDA", "TopicModel").

## Examples

# NOT RUN {
# load a document term matrix
d1 <- nih_sample_dtm[1:50,]
d2 <- nih_sample_dtm[51:100,]
# fit a model
m <- FitLdaModel(d1, k = 10,
iterations = 200, burnin = 175,
optimize_alpha = TRUE,
calc_likelihood = FALSE,
calc_coherence = TRUE,
calc_r2 = FALSE)
# update an existing model by adding documents
m2 <- update(object = m,
dtm = rbind(d1, d2),
iterations = 200,
burnin = 175)
# use an old model as a prior for a new model
m3 <- update(object = m,
dtm = d2, # new documents only
iterations = 200,
burnin = 175)
# add topics while updating a model by adding documents
m4 <- update(object = m,
dtm = rbind(d1, d2),
additional_k = 3,
iterations = 200,
burnin = 175)
# add topics to an existing model
m5 <- update(object = m,
dtm = d1, # this is the old data
additional_k = 3,
iterations = 200,
burnin = 175)
# }