Skele's Choice Skelebot

Skelebot by Skele’s Choice

This page serves as a FAQ for Skelebot.

What is Skelebot?

Skelebot is a general purpose Discord bot written in Go using the discordgo module. Dr. Skelebones supports Skelebot himself with the power of searx and Diet Dr. Pepper.

How does Skelebot generate its Markov and chat messages?

Good question. You’ve probably seen these messages being generated and wondered why they look random or almost sensicle. To understand how it works, we’ll need to go over a concept called Markov chains.

Markov Chains

Markov chains are a mathematical model which can be used for multiple things but in our case it’s for text analysis. In the most high level of description, a text analysis Markov chain is a collection of words with relationships. The words are provided to the chain through “training” on existing sentences. The chain takes each word of the sentence and looks at it individually. The relationships have a “weight” which determines the likelihood of the word being chosen next. These weights are calculated by looking at the frequency and order of the words as they appear in the prior training.

chain

Once a model is built through sufficient training, you can use the chain to generate a sentence based on the words within it and the relationships between them. As you go from word to word in the chain, the next word is chosen based on the weights (likelihoods) leading to the next words. Since the training accounts for frequency and order, the sentences generated can seem like something someone has written.

You can read a more in-depth explanation here: skele.dev/posts/skelebrainmaker

Skelebot + Markov Chains

Skelebot is constantly building a Markov chain based on various channels within the New Blood Discord. It takes every message sent and analyzes it. When the markov or chat command is called, the chain is used to generate a sentence.

That’s how it makes the messages.

Math and shitposting.