Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@kimjoaoun
Last active April 27, 2020 23:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kimjoaoun/d9df64f0a7dec005ecfd268daa3b2ab5 to your computer and use it in GitHub Desktop.
Save kimjoaoun/d9df64f0a7dec005ecfd268daa3b2ab5 to your computer and use it in GitHub Desktop.
Generate a Rupi Kaur Poetry Generator using a Markov Chain Algorithm
#rupi kaur generator.
library(dplyr)
library(epubr)
library(markovchain)
library(stringr)
# downloads the books on libgen, just write 'rupi kaur'
rupi_l1 = epubr::epub('~/Downloads/Rupi Kaur - o que o sol faz com as flores-Editora Planeta do Brasil Ltda. (2018).epub')
rupi_l2 = epubr::epub('~/Downloads/Rupi Kaur - Outros jeitos de usar a boca-Editora Planeta do Brasil Ltda. (2017).epub')
poem_fit = bind_rows(rupi_l1$data, rupi_l2$data) %>%
filter(nchar(text) > 5) %>% #remove linhas com menos de 5 caracteres
filter(!grepl(text, pattern= 'Copyright')) %>% #remove linhas com a palavra 'copyright'
mutate(text = str_replace_all(text,
pattern= '\n',
replacement= ' '), #remove as \n tags que indicam quebra de linha
text = str_replace_all(text,
pattern = '[:punct:]',
replacement= '')) %>% #remove pontuação
pull(text) %>% #puxa a coluna 'text'.
str_split(' ') %>% #quebra a coluna, cada palavra vira um elemento de lista
unlist %>% #tira tudo da lista e transforma em character vector.
markovchainFit #fita o modelo.
paste(markovchainSequence(n=20, markovchain=poem_fit$estimate), collapse=' ')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment