I'm taking a natural language processing course this semester and I'm really enjoying it, I wanted to apply what I've learned in a fun way, and this is what came out of that. I made a project similar to this one at a hackathon a while back, but I didn't put as much effort into it that time. I really liked the idea and thought it deserved better than what I gave it, so this is the new and improved version; I rewrote everything from scratch and now it even has a real interactive UI instead of 3 static style-less HTML templates!

What it does

You give it up to 5 @'s of Twitter users, and it uses n-gram models to generate tweets similar to what they've tweeted. Just giving it one user is fun enough, but when you use more than one the generated tweets become a fusion of them!

How I built it

It's an angular webapp hosted on an EC2 instance, with a small Python backend that was necessary for reasons I'll explain in the next category

Challenges I ran into

Angular hates having to authenticate to the Twitter API, I spent so much time trying to make it work that I ended up just doing it with a backend Python API, because it's super easy in Python. Unfortunately now all Twitter API calls have to be routed through the Python API to work properly, but it doesn't really make that much difference.

Accomplishments that I'm proud of

I'm proud of the whole thing really! My first attempt at it was a bit disappointing, but this time I came back with a vengeance and gave the idea the implementation it deserves.

What I learned

I learned how much Angular likes to throw tantrums over very small issues.

What's next for Tweet Generator 2

I plan on keeping up with this as I learn more in my natural language processing class, I'm planning on taking the graduate level version of it next semester so I'll probably be able to make this project even better!

Share this project: