Comments

You must log in or register to comment.

kilopeter OP t1_j6adleq wrote

Interpretation [EDITED]: Take all the names on U.S. Social Security card applications for girls born in 2021. Scan through the names one letter at a time, accounting for the start and end of each name. Count how many times each particular letter is followed by every other letter in the alphabet. Finally, convert your counts to probabilities (technically, percent chance = probability * 100%) to give the chance that any given letter in a name is followed by every other possible letter (or by the end of the name). This visualization summarizes the resulting transition matrix.

Background: The ongoing explosion of generative AI systems got me thinking about the statistical structure of words, and of given names in general. I started with the fairly basic idea of treating the sequence of characters in given names as a Markov process, i.e., the next state is chosen randomly according to transition probabilities that depend only on the current state, not prior states.

Code: https://github.com/pjleimbigler/baby-name-analysis

Data: https://www.ssa.gov/oact/babynames/limits.html

Generating new "names": The letters in given names are pretty clearly not generated by a Markov (memoryless) process. However, it's fun to assume the Markov property anyway and see what "names" fall out of the transition matrix.

To iterate through the transition matrix manually using this viz, follow these steps:

  1. Start with the bottom row, (Name Start).
  2. Each number in your current row is the percent chance (probability * 100%) of choosing your name's next letter as the letter corresponding to each column.
  3. Randomly choose the next letter of your name, based on the percent chances in the current row.
  4. The letter you just chose now becomes your "current letter." Look up its row.
  5. Repeat Steps 2–4 until you land on the last column, (Name End), which signifies the end of your generated name.

This yields some hilarious yet often oddly plausible names, such as: Silian, Slya, Lialy, Maerollia, Chla, Zalah, Lay, Lonanaadievayle, Zoralepa, Peiemophaly, Dralesa, Wiada, Miea, Giaberosh, Bisodiaremanninenn, Seelanida, Einnn, Penasoetimala, Hepanelei, Mia, Mierolynakynisayloloneeloa, Sargandniamilida, Eldyanempe, Pinahanariloma, Alian, Melivevilllohayasisa, Olyna, Die, Mizaramiceatelyalla, Jon, Adelun, Cesklienzolena, Zolyryn, Ema, Leyla, Aclan, Bra, Maeylises, Bryn, Khiemi, Sly, Annnlis, Aisyasa, Xily, Kara, Handanaria, Manla, Pama, Heyanama, Eylisidr, Brah, Llee, Anelerynaevega, Ayatryalofa, Mediza, Caniesty, Oliceeelys, Sannllora, Dassole, Sonnasse, Mmatarieleteyneroselasylin.

20

mikeholczer t1_j6agh1p wrote

Following those rules the most likely outcome is “A”

14

kilopeter OP t1_j6b6t8c wrote

Yep. "A" is the most frequent letter at both the start and end of names in the dataset I used (girls born in 2021 in the USA).

2

mikeholczer t1_j6b7fim wrote

My point is your interpretation is flawed, because the most likely outcome of it is very far from the actual most likely name.

2

kilopeter OP t1_j6b9h0h wrote

Oh, absolutely: the fact that this Markov assumption yields nonsensical names shows that the sequence of letters in given names are not generated by a Markov process. (The next character depends very much on previous characters, not just the current one.)

But this visualization does accurately present the relative frequencies of character transitions in actual names. Using these frequencies to generate Markov chains of characters and calling the results names is a fun diversion whose results I found entertaining.

5

mikeholczer t1_j6b9was wrote

Yeah, I think the display of the data is interesting, I just think what you wrote about it is misleading.

−2

kilopeter OP t1_j6banxn wrote

Oh? What part? I specifically qualified my interpretation with "want to reflect typical between-letter patterns of US girl names."

That's the point of using this viz to generate new names: generating character strings with totally realistic letter-to-letter transition probabilities is not enough to yield plausible names, or names which already exist. The generated names are often bizarre or excessively long, yet their character transition probabilities exactly reflect that of the real names in the input dataset.

3

mikeholczer t1_j6bb50x wrote

If one follows your steps, the most common outcome is one letter and there has no between-letter patterns which clearly doesn’t match the between-letter patterns of the source data.

−2

kilopeter OP t1_j6bbmom wrote

It does if you include the placeholder "characters" for the start and end of each name! The most probable "name" A represents three tokens: [name start], A, [name end]. And if you generate many names using the transition matrix, you will indeed observe that the frequency of [name start] -> A and A -> [name end] matches the corresponding frequencies in the source data.

EDIT: on reflection, I agree with you. I should introduce the heatmap as a description of transition probabilities, but should avoid walking the reader through using the transition matrix to generate new "names." I should separate the topic of generating new names using the transition matrix under the (invalid) Markov assumption as a diversion. Thanks for pointing out the flaw in my explanation. I'll edit my top level comment when I have a chance!

2

globglogabgalabyeast t1_j6bwjuz wrote

Did you already edit it? Cause I never got the impression that you were implying this process would lead to realistic names

2

kilopeter OP t1_j6ea6zq wrote

Nah, I'm only just now getting a chance to edit my top-level comment. Thanks for throwing in your vote! I feel like I can reword the "interpretation" part better to avoid any possible misinterpretation.

1

ghostfaceschiller t1_j6bz394 wrote

Have you done this analysis on any other corpora? I’d be super interested to see it on something like the Google Corpus (or a reasonable subset of it). Or BNC, etc

1

kilopeter OP t1_j6ecjw9 wrote

I haven't, but good point. The code to count transitions between characters is very straightforward (well... I wrote mine without worrying about performance issues), and in principle could be packaged as a lightweight web app or even a JavaScript-powered static site and accept any text corpus uploaded or linked by the user.

2

ghostfaceschiller t1_j6ej1pw wrote

I recently put together a repo of character frequency analyses, bc they can be really useful when designing keyboard layouts. So I have an eye out rn for interesting ways to look at and visualize the data. I think this particular instance is probably too limited to be useful for keyboard layouts, but if you do anything more please let me know! It’s one of the more interesting visualizations I’ve seen so I’d love to include/link it

https://github.com/dschil138/word-and-character-frequencies

2

Only-Engineering6586 t1_j6asb14 wrote

Computer Generated Girl Names, Based on this Data:
A (Most Likely)
Be
Ca
Da
E
Fia
Ga
H
Ia
Ja
Ka
Lia
Ma
Na
Oria
Pe
Quria
Ria
Sa
Tria
Uria
Via
Xiay
Y
Za

17

TaqPCR t1_j6aeh8d wrote

If you start at the most common letter at the beginning of the name, A, then the highest value is to immediately end the name. But if you exclude that the highest value is N which then leads to another A with probability just above that of ending the name. So in a way this chart comes close to spelling out Ana just from the data presented. The probability being .17*.12*.25*.23 = 0.1173%

6

coodgee33 t1_j6aft3z wrote

Q to u transition is strong.

6

myrianthe t1_j6bd1x9 wrote

Yup. U is the most common letter to come after Q in general, not just in names. Because interestingly there isn't really another vowel nor letter that works after Q (Qa Qe Qi Qo Qr Ql?)

Some of the more popular Q names include Quinn, Quincy, Queen/Queenie, and Quintessa.

1

Bored470 t1_j6cixw1 wrote

In school we learned Q is married to U

2

MrLagzy t1_j6cmypw wrote

Only words i can think of that doesn't have U after Q is Qatar or Qaeda.

Maybe more common in Arab languages?

1

myrianthe t1_j6cq469 wrote

Interesting! I haven’t thought of that.

Latin had the same Qu thing, so perhaps it’s only common among the Latinate languages.

3

MrLagzy t1_j6crlvl wrote

When it comes to English, Danish (I'm Danish) or Spanish i don't think there's any words originating from these languages where Q isn't followed by a U.

I tried googling Q words and all words i found where it wasn't followed by a U, was Arab surnames, Arab or asian words. Qi for an example. Albanian currency is called Qintar.

1

Koso92 t1_j6h7pu9 wrote

A fellow Dane. I tip my hat to you

2

myrianthe t1_j6faxsp wrote

Fascinating. I wonder how they’re pronounced?

1

sshuggi t1_j6an6i6 wrote

I generated the names for each starting letter, and these are the (mostly trivial) names that result when only using the dominant probabilities:

A BE CA DA E FIA GA H IA JA KA LI MA NA ORIA PE QURIA RIA SA TE URIA VIA WIA XIA Y ZA

Ironically, the only one that really looks like a name, Quira, means lady in Greek. (Spelled κυρία.)

4

moriclanuser2000 t1_j6cwonm wrote

if you take the most popular letter that hasn't been used yet, you get:

ANELISORY

3

dbeats20 t1_j6acpf4 wrote

Can you explain how to interpret it?

2

Raveyard2409 t1_j6c3zjr wrote

I don't really see any interesting insight other than the fact that in English the letter U always follows a Q. @OP - what should we take from this visualisation?

2

gnomeba t1_j6etjv4 wrote

This is great. Are the probabilities conditioned on the total distribution of the letters? If not, this might make a more realistic fake name generator.

1

Arquen_Marille t1_j6akbuv wrote

GH and GI being the same color makes it look like 1617%.

Edit: Is Qu really that common? I also see that A as a second letter is extremely popular.

0

the_scign t1_j6d2no9 wrote

Number is the percentage chance of the next letter being the column letter, assuming you're already at the row letter. I.e. if you are at a "Q", there's a 95% chance the next letter will be a "U". This says nothing about the "popularity" of the letter combination by itself.

"A" as a next letter follows most consonants. Not necessarily the second letter in the name.

2

rug1998 t1_j6b80wv wrote

95 names with Qu? I can’t think of one

0

kilopeter OP t1_j6b9oys wrote

That 95 means that 95% of the time, a Q was followed by a U in a name.

4

myrianthe t1_j6bcix9 wrote

U is the most common letter to come after Q in general, not just in names. Because interestingly there isn't really another vowel nor letter that works after Q (Qa Qe Qi Qo Qr Ql?)

Some of the more popular Q names include Quinn, Quincy, Queen/Queenie, and Quintessa.

2

kismatwalla t1_j6bb15t wrote

Names are not memory-less, transition probability does not make sense.

0

kilopeter OP t1_j6bb7id wrote

The fact that names are not memoryless is exactly why treating them as such produces such entertaining results :)

3