For something as identity-shaping as a name, new names can be so boring. Everywhere you go, there are so many Kyle's or Jenny's that it's hard to keep track. New parents (of children or pets) want something exciting: a name that at first glance seems like a normal name but is actually as unique as their baby (or fur-baby). Introducing "Hi, My Name Is...", an online tool for name generation using a neural network trained on a database of top names to generate a unique name for prospective guardians.

What it does

This online tool takes in an input of any or all of the following: desired prefix, uniqueness, or similar-sounding word for the name that they want. Then, we use that information to generate an exciting new name following the user's specifications using a recurrent neural network from textgenrnn trained using a database of top US baby names from 2015-2019 (from the SSA Database). Specifically, for similar-sounding name, we made use of the Soundex algorithm, cosine similarity, and bag of words to output a name that has similar pronunciation to the specified word.

How we built it

The backend was built using Python and connected to the frontend's HTML/CSS/Javascript using Flask. Additionally, we used textgenrnn for the neural network.

Challenges we ran into

We ran into a few challenges regarding setting up the project and using Flask to connect the frontend and backend of the project, especially as we have had little experience using these technologies before.

Accomplishments that we're proud of

We're proud of creating a functional project that is able to actually generate familiar-sounding but wholly unique names using a neural network. We are also proud of our collaboration across different timezones and learning so many new technologies!

What we learned

We learned how to use Flask and textgenrnn, as well as some exciting linguistic heuristics of naming.

What's next for Hi, My Name is...

There are a few exciting new functionalities that we plan to add to this project, including:

  • Caching and other optimizations to run it more efficiently
  • Adding a new input for suffixes
  • Adding an input for a pool of potential similar-sounding words rather than just one

Built With

Share this project: