The MIT dorm system is unique because students are allowed to select the dorm they choose to live in. As a result of self selection, the MIT dorms have each developed their own culture. For example, East Campus is known as the countercultural dorm that likes to "make" things, whereas Masseeh is the culture-less, boring dorm, and Baker is the athletic dorm.
What it does
This sorting hat imitates the Harry Potter experience. When you place the hat on your head, the hat asks some questions to gauge which dorm you would fit into the best through some very complex natural language algorithms that we implemented by hand. The hat also moves around, as a sorting hat should.
How we built it
We built the interface between the user and the hat as an android app. We built a websocket to communicate between the android app and the python server on our host computer. We also built a complex survey system using natural language processing concepts such as bag of words and word vectors, using algorithms that we built by hand. This was especially difficult because the dataset of MIT dorms has never been this thoroughly investigated before. In addition, we scraped the data ourselves through various MIT resident polls and dorm-spam (student email) polls of what qualities each dorm has. One of our team members also recorded all the audio, and finally the hat moves using servos controlled by an arduino that is located inside the hat.
Challenges we ran into
Writing the algorithm to create the questionnaire was excruciatingly difficult, since we created and used an entirely new dataset. Because of this, we wrote most of the algorithms by hand, which were extremely difficult. Conceiving of how to get all the components to connect together was also difficult, and it took a lot of researching and tinkering before we were able to figure out how to use the websocket in the context of this project. Also managing the audio files was annoying af because the python library we used to play the files only can play files of a certain sample rate, and when we trimmed our audio files, they were compressed and had an incompatible sample rate. As a result, we had to re-trim all of them, which was extremely tedious.
Accomplishments that we're proud of
We are extremely proud of the project. There were so many parts, each with their own challenges: arduino & servo motors, android app, python websocket, handwritten natural language processing algorithms, recorded audio files and managing their metadata.
What we learned
Better understanding of natural language processing, websockets, android, and audio files (specifically what the sample rate means)
What's next for MIT Sorting Hat
An appearance into every MIT pro-frosh's life.