What it does

Emojify is an API that accepts text and returns that text with emojis replacing letters and contextually interspersed between words.

We also built a Reddit bot that communicates with the API to emojify the parent comment of any comment that mentions it. In this way, users can call the bot to emojify any particularly notable parent comment.

One can POST a JSON object to our API containing the text to emojify along with an emojification type such as "search" for contextual searches, "clap" for claps between each word, and "meme" for inserting block letters where necessary.

How we built it

We built Emojify using a python backend with Django + AWS for hosting the frontend. The core algorithm relies on Woosh and nltk lemmatizing + synset for the artificial intelligence. After scraping keywords for all emojis, we generate information containing the emoji's unicode and description.

We then take our input text, and filter out stop words such as "and", "but", "be", etc. Then, we convert each word into its lemmatized verb form and generate several synonyms of that form. Then, we use Woosh to find the best corresponding emojis for each word form. This gives us around 5-10 potential emojis, and we return the most confident match. Sometimes we will return multiple matches or multiples of one match to more accurately imitate the emojipasta style.

After inserting these contextual emojis for each word (if applicable), we return JSON containing the output to the caller.

Challenges we ran into

Finding keywords to associate to emojis was challenging. We first scraped a emoji description set to form a contextual library, but it was inaccurate due to the use of filler words in descriptions. Later we solved the issue when we found emojilib, a JSON database of emojis with keywords that apply to them.

Accomplishments that we're proud of

The emoji matching algorithm utilizes abstraction of keywords in order to more broadly match words to different emojis, essentially resulting in an artificial intelligence. Building and deploying an API and working bot that interfaces with another website's API.

What's next for Emojify

The Reddit bot and API will live on and potentially become a utilized tool in the arsenal of memeologists everywhere.

Website

Reddit Bot

Github

Share this project:

Updates