{{ message }}

Instantly share code, notes, and snippets.

# primaryobjects/markov.R

Last active Mar 31, 2020
Generating text with a markov chain in R.
 library(markovchain) text <- readLines('text.txt') text <- text[nchar(text) > 0] text <- gsub('.', ' .', text, fixed = TRUE) text <- gsub(',', ' ,', text, fixed = TRUE) text <- gsub('!', ' !', text, fixed = TRUE) text <- gsub('(', '( ', text, fixed = TRUE) text <- gsub(')', ' )', text, fixed = TRUE) terms <- unlist(strsplit(text, ' ')) fit <- markovchainFit(data = terms) plot(fit\$estimate) paste(markovchainSequence(n=50, markovchain=fit\$estimate), collapse=' ') #s <- createSequenceMatrix(terms, sanitize=FALSE) #fit2 <- fitHigherOrder(s)

### hareentej2 commented Apr 3, 2018

 hello, thanks for the contribution which is precise and effective . but can you please help me in understanding how the sequence of the title is starting from a particular term? can we give a term as an input and start our sequence from there on wards??

### McCartneyAC commented Aug 26, 2018

 you can work starting from a term by using code like this for your final step. `t0` represents "term zero" or the initial term. `paste(markovchainSequence(n = 100, markovchain=update_fit\$estimate, t0 = "start", include.t0 = TRUE ), collapse = ' ')` does anyone know how to change the depth so that it iterates over bi- or tri-grams rather than going discretely step by step? `markovify` in python seems to be able to do this but I can't figure out how to do it with `markovchain` in R.