An FIU/UIUC Delta Force production


One of the team members - Anil Jason - was doing his senior thesis related to natural language processing for Fall 2016. He became exposed to a variety of databases that were commonly used to deduced some form of semantics from strings of text. Coincidentally, midway through his research, he was taught a fun little ice breaker puzzle game called "connection". Simply put, two people say one word on 3, and on 3 again, they say another word. They try to say the same word at the same time, at some point, by merging towards a concept that is in the middle of the two previously stated words. After trying to find the best strategy to beat this game, I soon realized that a great deal of semantics about word sets can be extracted from a game instance.

For example

on 3: 1..2...3.. Player A says "Cars" Player B says "House"

*on 3: 1...2...3... Player A says "Garage" Player B says "RV"

So from that game instance we can decouple Garage as a Car-House, and and RV as a House-Car. We figured if we can create a mobile game out of this word puzzle, we can get users to effectively label data for us, and generate a word graph with coverage that can't be found in any existing lexical database like WordNet. In this way, we are crowd-sourcing Natural Language Processing and word semantics, much like what Recaptcha has done for Machine Learning of old, handwritten text!

How we built it

The mobile app was built in React-Native, running on both iOS and Android platforms. React-Native allows us to design natively-powered and rendered mobile applications with an XML-ish UI syntax and Javascript application logic. The servers were constructed in Node, utilizing various libraries including Express (for HTTP-based routes) and Socket.IO (for websocket-based routes), and wrapped into easily scalable Docker containers. We have 3 main Docker containers - one for the actual application server, one for Neo4j and another for Postgres. We store all collected data for analysis in both Postgres (a relational SQL database) and Neo4J (a graph database). We then deployed our servers on an Amazon EC2 instance for production use. Our production server is at, hosted in Amazon AWS EC2.

Challenges we ran into

We had an unfortunate computer malfunction + unauthorized system update that bottle necked a good portion of the development pipeline early on.

Accomplishments that we're proud of

We were able to implement a beautiful and quite feature-intensive application in a short amount of time. Unlike a usual hackathon project, we emphasized a lot on scalability and making the project be highly portable from server-to-server, something that Docker provided for us.

What's next for WordMerge

As far as development goes, this app still has a great deal of work before its app store ready. Nonetheless we are determined to fulfill its completion, and perform rigorous analysis on the data collected.

Share this project: