Baseball player or Star Wars character?
Hot stove season begins a week early with neural-net generated clickbait
Like the title says: who played in the 2025 Major League Baseball, and who is from Star Wars?
1. Kelvin Mann
2. Yohel Pozo
3. Nat Lariats
4. Kymber Black
5. Terrin Vavra
6. Brock Starsher
7. Jalen Beeks
8. Jenson Marsh
9. Quinn Priester
10. Jac Trax
11. Daulton Varsho
12. Jorman Thoad
13. Yoan Moncada
14. Masyn Winn
15. Mullen Gault
16. Rylee Dray
17. Jay Stobie
18. Vidal Brujan
19. Seby Zavala
20. Thairo Estrada
21. Wilyer Abreu
22. Kenta Maeda
23. Yosver ZuluetaNo cheating!!! Answers below.
Kelvin Mann: Star Wars character. “Kelvin Mann was a human Karaxian and influential citizen of Karaxis. His family was captured by Kylo Ren, which forced him to align Karaxis with the First Order.”
Yohel Pozo: Baseball player. Catcher for the St Louis Cardinals.
Nat Lariats: Star Wars character. “Nat Lariats was a female Nautolan Jedi Padawan who served the Old Jedi Order during the final years of the Galactic Republic.”
Kymber Black: Star Wars character. “Kymber Black was a young Human woman living on Demophon during the Galactic Civil War. She was married to Thadius Black.”
Terrin Vavra: Baseball player. Outfielder for the Baltimore Orioles.
Brock Starsher: Star Wars character. “Brock Starsher served as a guard for the Hutt crime lord Jabba Desilijic Tiure, working on board one of his Bantha-II cargo skiffs at the Hutt’s palace on the planet Tatooine in 4 ABY.”
Jalen Beeks: Baseball player. Relief pitcher for the Arizona Diamondbacks.
Jenson Marsh: Star Wars character. “Jenson Marsh was a retired male TIE pilot that lived during the Galactic Civil War.”
Quinn Priester: Baseball player. Starting pitcher for the Milwaukee Brewers.
Jac Trax: Star Wars character. “Jac “Bantha” Trax was a Weequay male racer, whose illegal street racing resulted in his manslaughter of twelve individuals.”
Daulton Varsho: Baseball player. Outfielder and catcher for the Toronto Blue Jays.
Jorman Thoad: Star Wars character. “Jorman Thoad was a Human male who ran a starship dealership on the Mid Rim planet Centares.”
Yoan Moncada: Baseball player. Third baseman for the Los Angeles Angels.
Masyn Winn: Baseball player. Shortstop for the St Louis Cardinals.
Mullen Gault: Star Wars character. “Mullen Gault was a male Human moisture farmer, son of Orrin Gault and brother of the twins Varan and Veeka Gault.”
Rylee Dray: Star Wars character. “Rylee Dray was a female Human living on Nar Shaddaa during the Cold War. Formerly a member of the Cult of the Screaming Blade led by Sith Lord Paladius, she and Destris Veran left the cult after realizing that all of the Sith Lord’s promises were false lies.”
Jay Stobie: Star Wars character. “General Jay Stobie was an officer in Imperial Intelligence, compiling data for the Galactic Empire.” (This one is a bit tricky, because General Jay Stobie is named after “Jay Stobie (real person)”.)
Vidal Brujan: Baseball player. Second baseman for the Chicago Cubs.
Seby Zavala: Baseball player. Catcher for the Chicago White Sox.
Thairo Estrada: Baseball player. Second baseman, shortstop, and outfielder for the Colorado Rockies.
Wilyer Abreu: Baseball player. Right fielder for the Boston Red Sox.
Kenta Maeda: Baseball player. Relief pitcher for the Detroid Tigers.
Yosver Zulueta: Baseball player. Relief pitcher for the Cincinatti Reds.
In retrospect, making this quiz was probably a lot more trouble than it was worth. It all starts with getting a list of names - for baseball players that can be done with a single download from the Lahman database, for Star Wars characters that’s done by scraping Wookieepedia. (Sidenote: I’m surprised that no one calls these characters “Star Warriors”, but I’m not going to use this post to try and make the term catch on.) The Star Wars characters need to be filtered a bit, because listed under the category of “characters” are various things that don’t have useful name data, such as droids (e.g., “BB-8”), things that clearly aren’t humans (e.g., “Hall (entity)”), groups of people (e.g., “Keto family”), and things that aren’t exactly Star Wars-y (e.g., “Stewie”, the character from Family Guy).
The next step is to train some generative models on these names. This involved training four models, one for each combination of (baseball, Star Wars) and (first name, last name). Splitting up by name was productive because I was using a simple model, and training on whole names would lead to models that usually generated a single name and up to about 5 or 6 names (I assume geometrically distributed with a mean of 2) that would go a bit haywire, so changing the model structure brought this under control.
Each model was a neural net, which would take as predictors an ordered pair (for first names) or triple (for last names) of letters, embed them in a 10-dimensional embedding space, followed by three fully connected layers with a ReLU activation function, before being passed through a softmax to generate probabilities for the next character, trying to maximise the probability of the character that actually turns out to be next. After a bit of training, it gets decently good at guessing which characters come next. And this gives rise to a generative model: give it an empty string, and let it give probabilities for what comes next, choose one of those characters according to those probabilities, get it to predict the next character, and so on. (I had a shorter lookback for first names because first names are generally simpler and fewer in number, so a last name generator needs more flexibility and is less liable to overfit.)
For each of baseball and Star Wars, names are generated by a pair of models, one for first names and one for last names. At initialisation, these model pairs generate nonsense. Here are 10 names “generated” by a freshly initialised model pair:
V Ggtvxgvgvvgbcvgggjwvuvcvc Wavpsd-Diosc Qqccs
Dzvcjvmvlvzvvcicvcuvmvecvvvggtdv~-Zdczvcgcvvjcv~Vvgiv~. Gsd Sqmsqqddyqsoqpvdssskccyvzyjzq
Vvmmcdcvvqvhc~V.G-Qvg-Edjvbjgzvlvvw.Vfvggglvvawgqcgvbvbgc~Vgmvcdgvvg-Tzjlvvgcmgmvgvgvd Uq Q.Qcmqptc.Ssd Qxrc Ac Qxdqwqzmsydzqddqy
Gmh.Vvwcvgvmvg Qvvvg~Vv Qfyqu .Dsnnvfz
Vv.Lvvwgvmjjvldvvmz~Csvv G.V Amcdc. -Drmsmooqsokx
Gfbcgvvvvjvw.Vvvnvavc Vvgvmjv’Ccwv Vmqghfbcvjcvmbqvyjhfvvvu.Ggcvvg~Vvvcvc Qdsssyaqqqnmsdd.Sqddywtxqd-Qnqck’Fdvdqczsasxsdmkpshsq-C Sszsosq Snj.Jq-- Qqsv’Ogccssaqqkmqurapqq
~Bvgvvbfmu.Cuvcl C Vjjsqsd.Yaomugus Jodqmdszcpysqds Yaqqqod.Suq Aqaqma
Zsvvv Bemwvgggvggbpvjdqggg Sq’
Cvvcvtvvcmcnvvvbmgj Hvqq Gs Osddgqqq -Dddkscgsnmsdqdpqcudjqdxdqmnpidpd
Bvzlzgmtdvvmvvvgvzvdfdgj .Igmvgvqnvv Gvihvgdvcfmgvgcvvmbmvgvcgvmvgvv Because there simply weren’t many names to train on (~20k for baseball, ~15k for Star Wars) I decided to start by training the models for 1 epoch on a list of English words, primarily to teach them basic patterns of what letters follow what, such that when they get to the scarce and valuable name data that’s being used to fine-tune, rather than tell it that “q” generally doesn’t follow “x”. After pre-training the model pairs give somewhat more promising results:
Poryty Hadolitmy
Us Nalitadfan
Sa Fibimitolle
Zui Sd
Sato Snamtoslifl
Derh Priss
Maretacsile Diul
Fimhodopuuleretred Fislu
Gosaunsak Ogoliogais
Phingeed SpoumyNot exactly names yet. And then after training on the MLB/Star Wars datasets for about 30 epochs, the models start to generate some plausible names. Here’s baseball:
John Stin
Braden Bistravins
Ron Rudgstelten
Dan Philey
Chuscank Trcin
Cill Scremez
Aki Ejcka
Jon Alahdduloll
Manlie Lowdita
Garlie BlisnAnd here is Star Wars:
Yawaila Dill
Gla Guntarito
La Dene
Troguticeretu And
Availa Avlith
Seer Burf
Atarre Rax
Par Telo
Sallion Narallin’Puen
Deeeth CavvnemaLooks a bit more Star Wars-y! Of interest is that the loss function for the validation data in the Star Wars models is much higher than in the baseball models, I assume because Star Wars writers are much happier to use every key of the keyboard when coming up with names.
Now, instead of running these models generatively, instead you can feed in a name and it will tell you the probability it would have had of generating that name - it’s just, for each character, the probability that the model would have generated that, given all the previous characters, all multiplied together. Assuming the models aren’t terrible, this gives us for any name P(person has that name | that person is a baseball player) and P(person has that name | that person is a Star Wars character). And Bayes’ theorem gives an easy way to turn these quantities into P(person is a baseball player | person has that name), assuming those are the only two options and we supply a prior, here suppose it’s 50% either way. Now this gives a simple way to tell if someone is a baseball player or a Star Wars character.
If you look at each end of the scale, you might start to see some patterns. The most baseball-sounding baseball players, with their corresponding probabilities of being baseball players are:
9449 john henry johnson 1.000000e+00
9450 johnny johnson 1.000000e+00
9512 johnny johnston 1.000000e+00
9438 george johnson 1.000000e+00
9510 jimmy johnston 1.000000e+00And the least baseball-sounding baseball players are:
13938 takahito nomura 1.367721e-12
10302 satoru komiyama 5.178926e-12
9778 takashi kashiwada 6.969139e-12
6404 shintaro fujinami 2.768720e-11
6403 kyuji fujikawa 3.591789e-11OK, so I have incidentally come up with a Japanese person identifier. (There are non-Japanese people it gets badly wrong, like Peek-A-Boo Veach, but I would be surprised if the model got that one right.) The model is a bit biased by having been trained on all MLB data, ever, which doesn’t represent Japanese people too well because there weren’t many Japanese people in the league if you go back a few years. Also, the model classifies most women as Star Wars characters (“Sophie Smith” has a 6.6% probability of being a baseball player), which I suppose is somewhat appropriate in that there are women in Star Wars but not playing in the MLB. Now for the most baseball-sounding Star Wars characters:
17534 brody johnson 1.000000
3783 j. johnston 1.000000
19553 johnny marbels 0.999999
32140 steve palpatine 0.999988
27855 john d. branon 0.999986And the most Star-Wars sounding:
4674 paodok’draba’takat sap’de’rekti nik’linke’ti’ ... 1.153818e-40
23718 lynaliskar k’ra snyffulnimatta 5.628775e-19
25839 endrodanar tiopuld shaamador vandelhelm xxiv 3.411751e-16
17169 j’kek d’rith kalama 7.535651e-16
27668 ceenda bekkar 4.804887e-15Which don’t look much like baseball players, but I guess you never know. Some of these numbers stand out as being a little extreme. This largely come down to the model not being trained as a classifier, but rather as two (or rather four) generative models strapped together to make a classifier, which is largely motivated by (a) generative models being much more fun because they generate things, and (b) my not yet knowing how to make a classifier for variable-length text sequences. You can tone these down by converting the probabilities back into logits, shrinking them by a constant factor, and re-converting them back into probabilities which gives slightly better classifications than what comes out of the model:
If you want some fancy generative results, it turns out overfitting the model until you see the validation error go up a bit gives better results, which is because you are sacrificing some next-letter creativity for less crazy results. A properly overfit model will give plausible but slightly uncanny names, with the ring of guy-you-have-never-seen-that-you-now-see-warming-up-in-the-bullpen-and-your-heart-sinks-because-you-know-they’ll-concede-three-hits-and-have-to-be-replaced-before-the-end-of-the-inning:
SS: Bull Hortes
CF: Odalex Bercia
1B: Ed Munavo
DH: Karlie Buthillips
3B: Mike Greevaz
LF: Eddie Jinam
RF: Tylormanny Morenton
2B: Bob Castradgh
C: Marib Conwell
P: Alex BuckonisMy favourites that the model generated over the various iterations:
Mad Rabbi, Yordan Dough, Jim Cock, John Dark McGo, Glen Kash, Flandon Barricballer, John Fart, Maul Johnson, Greggie Gazmirton, Zacrogermanny McGubles, Bence Bortler, Clunce Grogertana, Kevincarlos Loggs, Prank Louts, Roy Chav, Mike Rick, Jastin Grunzox, Husty Master, Jack Domino, Joe Quiz, Miguegan Beastrave, Shed Boy, Der BunceThe above quiz was made by looking at those Star Wars characters that got posteriors of about 0.5 (“Brody Johnson” doesn’t make for a fun quiz), and the non-Japanese baseball players that got posteriors below 0.1.
And one last question: what about Bobson Dugnutt? This is a player from Fighting Baseball, a 1994 baseball video game from Japan that didn’t really get around to paying for the licence to use actual players in the game, and so came up with their own, mostly by butchering actual players’ names:
How baseball-y are these? Well, if the only alternative is them being Star Wars characters, on the whole they are quite baseball-y: Willie Dustice is given a 99.997% probability of being a baseball player, with Sleve McDichael at 99.6% and Mike Truk at 94%. There are losers like Todd Bonzalez who gets 6%, and Dwigt Rortugal who gets a measly 0.04%, but Bobson Dugnutt weighs in at a healthy 95%. Great job, Fighting Baseball!
Code and data on Github.




How does the model classify Aniket Chakravorty?