We got a machine-learning algorithm to come up with 400 surprisingly plausible names for dogs

The one in the middle is definitely a Shadoopy type.
The one in the middle is definitely a Shadoopy type.
Image: AP Photo/Amy E. Conn
By
We may earn a commission from links on this page.

Shadoopy. Dango. Ray-Bella. Figgie.

If I told you those were names of actual dogs, would you believe me?

They’re not. They were generated by a machine-learning algorithm mimicking dog names after it “studied” a list of 81,542 dogs registered in New York City.

The experiment, which took just a few hours Saturday, was something I’ve wanted to try since I saw the playful, awesome work of Janelle Shane and her experiments using neural networks to generate paint colorsguinea pig names and Harry Potter fan fiction.

I happened to have some free time, and decided to give it a shot. Along the way I:

  • built, in mere minutes, a computer in the cloud powerful enough for machine learning
  • made and played with a recurrent neural network
  • learned a little more about machine learning
  • had a lot of fun

The program generated lots of names, including many that existed in the original data. Once I filtered those out, I had almost 400 computer-created, mostly plausible dog names. Here are some of my favorites:

Rotson
Dudly
Lenzy
Murta
Cookees
Geortie
Dewi
Chocobe
Sckrig
Booncy
Cramp
Dango
Ray-Bella
Santha
Coocoda
Satty
Bronz
Shadoopy
Mishtak
Figgie
Grimby
Phince
Bum-Charmo
Soma
Blant
Snowflatey

The computer has no idea that these are names. Or words, even. It’s using a “recurrent neural network” to predict which character might follow a group of previous characters.

So after “fluff,” a good guess might be y. I stop the guessing game before the program gets too good, so it might guess the letter a instead. Good dog, Fluffa!

What’s also striking is that these character predictions include spaces, dashes, and carriage returns, so it actually learns to format the output as a list.

If you’d like to geek out about how I did this, or learn how to create your own list, you can read about the technical details in my original post here.