Human or Dog Name: Can You Guess? (Fun Quiz Inside!)
Okay, so the other day I had this kinda silly idea. I was scrolling through Instagram, seeing all these cute dog pics, and I started wondering... could I make a program that guesses if a name is more likely a human name or a dog name? Sounds dumb, I know, but I figured it would be a fun little project to mess around with.

Getting Started
First things first, I needed data. Lots of it. I couldn't just pull names out of thin air. So, I hit up some websites, you know, those baby name sites and some lists of popular dog names. I spent a good chunk of time just copy-pasting names into a couple of text files. One for human names, one for dog names. It was super tedious, but hey, gotta do what you gotta do.
The Processing Part
Once I had my lists, I needed a way to compare a new name. My initial thought was: "Check every letter in the name."
- I started making these long lists of names, counting how many times each letter showed up in the human names and the dog names.
- I then created some variables to keep some records like, total number of letters in the human names, total number of letters in dog names and so on.
It was a mess of nested loops and counters. I was basically trying to figure out the probability of each letter appearing in a human name versus a dog name.
Making the Guess
After all that counting, I had to actually make the "guess". This is where it gets a little fuzzy, even for me. For each letter, I'd calculated a score like "this is how much more likely it is to be in a human name". A positive number means it is likely to be a human name, otherwise it is likely to be a dog name.
And I added up all those "likelihood" scores for each letter in the input name. If the final score was positive, I'd say "Human!" If it was negative, "Dog!"
Testing and Tweaking
Of course, the first few tries were... rough. I tested it on my own name, my friends' names, my dog's name (obviously). Some were right, some were hilariously wrong. It was clear I needed to tweak the scoring. I played around with the numbers, and I gave some letters more "weight" than others. Vowels, for example, seemed less important than some of the rarer consonants. The testing took way longer than building the actual thing, to be honest.
I had to figure out the total numbers of human names and dog names, and calculate the possibilities.

The Final-ish Result
After a lot of trial and error, I got it to a point where it was... okay-ish. It's definitely not perfect, more like a fun party trick than a serious tool. But it's surprisingly accurate sometimes! It's still more of a "proof of concept" than anything else. I learned a ton about working with text data and probabilities, even if it's all a bit rough around the edges. And hey, it's a fun little conversation starter.