xxxxxxxxxx
55
// This code comes from this coding train tutorial: https://www.youtube.com/watch?v=9r8CmofnbAQ
let texts;
let order = 6;
let ngrams = {};
let beginnings = [];
let button;
function preload() {
texts = loadStrings("dad.txt");
console.log(texts);
}
function setup() {
noCanvas();
for (let j = 0; j < texts.length; j++) {
let txt = texts[j];
// Create a list of n-grams
for (let i = 0; i <= txt.length - order; i++) {
let gram = txt.substring(i, i + order);
if (i == 0) {
beginnings.push(gram);
}
// If this ngram DOESN'T already exist
if (!ngrams[gram]) {
ngrams[gram] = [];
}
ngrams[gram].push(txt.charAt(i + order));
}
}
button = createButton("generate");
button.mousePressed(markovIt);
console.log(ngrams);
}
function markovIt() {
let currentGram = random(beginnings);
let result = currentGram;
for (let i = 0; i < 100; i++) {
let possibilities = ngrams[currentGram];
let next = random(possibilities);
result += next;
let len = result.length;
currentGram = result.substring(len - order, len);
}
createP(result);
}