What "inspired" me to create a chatbot was the fact that it was very open-ended. I had run through several ideas, but I realized if I built a chatbot on Scratch, I would combine all my thoughts into this bot. (upon later realization) For example, I wanted to create a game where players could draw out a number, and the wizard toad would figure it out. However, I found it not to be considered "enough" as the code was relatively short and wanted to challenge myself by incorporating more factors into it. After doing some research and experimentation on Scratch, I unexpectedly created a chatbot that was precisely what I needed.
Applications to Real Life
I realize there are thousands if not millions of chatbots out there, however, with this chatbot, I hope to expand it where it could be used as a temporary "substitute" to an actual human. Sure, we can't replicate the cognitions of a human exactly, but we can use predictive algorithms as a means to that. Nowadays we have robots acting as customer service employees, so why not take that, but input it onto a website? I'd like to advance this chatbot and make it set apart from the thousands of other ones, starting with ML. Imagine a wizard toad understanding you more than any other real-life person....Though I would not recommend one to voraciously live their life through this chatbot, it could definitely be used in the case of boredom or just wanting to rant to someone that's not necessarily "human".
What it does and future implementations
Players can choose any number 1-5 from the options textbox on the right-hand side and type the number onto the chatbox. Depending on which number the player types, the wizard toad will give out an answer based on that.
1: Given x amount of time, the player can rant to the toad, and after the time limit, the toad will say an inspirational code. Future Implementations: Input a timer and chatbox so players can type out their rant while taking notice of the timer. With the timer, I plan on allowing players to input their own time or no timer at all. However, if the player goes inactive for x amount of time, the toad will say an inspirational quote that best curates the player's rant. [See slides for more specifics)
2-3: Here, the toad says a one-liner, but like #1, I hope to implement a seq2seq model to help predict what the users say after they input their answers in the chatbot.
4: Here, I used machinelearningforkids.co.uk and collected examples of what I wanted the computer to recognize. In this case, it was numbered 1-10. For each number, I drew out 1-2 of the numbers using my mouse and gathered three/four other images of the number on Google. F.I.: Use teacheablemachine to implement more images, so the machine has more images to go off and make the numbers more distinguishable from each other.
5: Here, option 5 is a machine learning quiz that is out of six questions. I used the "simple method," and the script tells the sprite to ask a question, detect whether it is right or wrong, and, according to the result, either give the player a point, or they will lose a point. F.I.: Make a quiz using an adaptive algorithm that changes the level of difficulty of the questions to the player's experience level all in real-time. The level of difficulty varies in such a way that the player remains active for the longest time. This is a useful algorithm to optimize playtime and maximize the player's gaining knowledge from the quiz. Another method is the Decision Binary Tree. This is a framework based on a sequential decision process is a structure. A function is evaluated, starting from the root, and one of the two branches is chosen. This process is repeated before a final leaf is achieved, which typically reflects the goal of classification you are searching for.
How I built it
I built it using Scratch as the coding foundation and machinelearningforkids.co.uk to train the images for #5, so the toad can recognize numbers off what the player drew!
Challenges I ran into
I did not have any knowledge as to how to build with Machine Learning. However, I did have prior research knowledge as to what algorithms and Koras were, which was very helpful. During the first two days, I had spent hours trying to find a tutorial on ML; however, they all required TensorFlow, UNITY, Jupyter Lab, Anaconda, etc. I attempted to download it and spent a considerable amount of time trying to download everything I needed. Still, my laptop could not download anything as my current applications like XCode took up most of my storage. I then somehow stumbled upon Scratch and began watching tutorials, educating myself in hopes I'd accomplish the goal of building something using ML. The first couple of hours were rocky, and I was on the verge of giving up, but I managed to pull through and built the chatbot after much reiterations and experimentations. Scratch itself can be limiting since they don't have options like deleting/moving the chat bubble, so the position is right in the middle, and their text to speech is quite delayed. Those are just two examples as there was a surge of issues, but I found a way around those obstacles and managed to present something I was proud of.
What I learned
- I learned more about neural networks and machine learning as a whole through the insightful advanced workshop.
- Even though I didn't experiment with TensorFlow and JupyterLabs, watching Youtube tutorials were still very helpful, and I feel like now I can try and build with ML using various applications.
- It's okay that I didn't understand how to build with ML. Seeing everyone, even the beginners have such knowledge on developing; I felt as if all my research had been utterly useless. However, it ended up coming into play when I created the slides presentation. Although the code itself seemed simplistic, I recognized that I could also tie in as to what I would have done if I knew or had the applications in Machine Learning.
Log in or sign up for Devpost to join the conversation.