Counts of phonetic system words available by IPA phone

I wanted to know how many English language words there were which would satisfy the phonetic system format:

[optional vowels][IPA phone 1][optional vowels][IPA phone 2][optional vowels]

for different combinations of IPA phones. So I grepped a 125,927-word English language IPA dictionary and got my answer. I displayed it as the first matrix below.

Question: Do you have any recommendations on how you would group and/or eliminate consonants to increase phonetic system word counts?

E.g., @Daniel_360 recommended eliminating the /ɝ/ (i.e., the rhotic vowel, the “r” after a vowel at the end of a word, e.g., the “r” in “zither”).

E.g., many ignore /h/, /w/, /j/. That would make “hallelujah” (/ˌhæləˈlujə/) avaiable for “55”.

ipa_00 p b t d k ɡ f v θ ð s z ʃ ʒ tʃ dʒ m n ŋ h ɹ ɝ l j w
p 38 2 59 15 51 15 7 13 10 0 44 37 13 1 30 10 13 53 11 0 60 18 108 3 3
b 7 41 73 74 64 23 13 12 8 4 68 73 26 3 28 11 30 93 13 3 103 38 144 1 4
t 26 29 37 31 55 15 14 11 6 2 46 31 15 1 15 2 39 71 18 4 75 17 81 2 7
d 21 36 37 48 50 19 19 29 6 3 57 77 17 2 19 7 51 142 13 3 87 30 119 5 4
k 40 31 72 53 55 9 29 10 13 2 76 48 27 0 32 10 46 141 14 5 121 31 168 13 13
ɡ 9 14 34 35 17 7 15 7 6 0 22 32 11 0 14 5 15 70 5 0 61 26 81 2 3
f 1 9 39 19 22 11 8 5 8 0 35 21 8 2 8 9 12 47 8 3 82 13 93 3 0
v 4 3 32 18 19 9 0 8 5 0 21 17 6 0 8 4 2 65 6 1 21 16 59 2 0
θ 1 7 4 10 3 1 1 1 0 0 2 4 0 0 2 0 12 24 5 0 17 12 21 0 0
ð 0 0 1 1 0 0 0 1 0 0 3 7 0 0 0 0 1 3 0 0 3 4 1 0 0
s 41 34 73 58 80 18 18 19 5 3 44 49 7 1 14 11 53 78 18 5 65 21 115 4 3
z 10 6 8 12 29 8 3 3 0 0 7 16 1 0 3 1 14 42 8 2 28 7 43 0 3
ʃ 30 16 27 29 36 5 19 7 5 1 2 20 4 0 2 3 19 53 10 1 46 24 60 1 4
ʒ 0 2 0 1 2 0 0 0 0 0 0 2 0 2 0 0 0 1 3 1 2 3 1 0 1
tʃ 14 8 16 7 20 2 7 3 0 0 14 20 0 0 6 0 13 35 13 0 15 2 19 0 0
dʒ 8 16 18 22 22 4 12 4 0 2 28 35 5 0 2 9 25 80 14 0 34 5 41 1 3
m 10 18 69 69 82 32 9 9 10 6 70 73 26 0 27 14 33 128 8 4 110 42 119 6 6
n 26 26 68 63 53 15 14 24 9 1 64 70 13 0 15 13 30 47 9 5 36 21 89 4 3
ŋ 0 0 0 0 7 3 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 0
h 27 17 53 46 52 28 21 13 9 0 33 36 14 0 12 13 36 75 11 3 48 21 74 11 10
ɹ 38 55 67 93 101 35 36 16 17 2 79 80 31 3 28 18 61 152 13 5 13 9 131 4 3
ɝ 2 6 1 3 5 2 0 3 4 1 6 13 1 0 0 1 3 21 1 0 2 0 9 0 1
l 37 55 79 66 90 31 36 50 19 7 105 100 24 1 18 23 70 171 29 10 91 40 69 7 9
j 9 3 7 7 22 7 3 2 1 0 15 12 3 0 3 0 9 28 10 6 16 7 23 3 2
w 5 5 21 30 35 9 5 6 5 2 18 26 10 0 11 4 1 39 8 3 19 8 55 0 0

The rows represent IPA phone 1 and the columns IPA phone 2.

E.g., row /t/, column /v/ has a value of 11, indicating there are 11 English language words that satisfy the format [opt vowels][/t/][opt vowels][/v/][opt vowels]. Those happen to be the following:

word ipa
atv eɪtivi
tavie teɪvi
tavy teɪvi
teva teɪvə
tevye tɛvi
tivo tɪvoʊ
touvier tuvieɪ
tov toʊv
tovey toʊvi
tovia toʊviə
tv tivi

IPA DETAILS:

Below is a list of the English consonantal sounds, as represented by IPA symbols (or “phones”?). These IPA phones roughly map to letters in the English alphabet. E.g., /θ/ → “th”, /ŋ/ → ng, /tʃ/ → “ch”, /p/ → “p”. I also included the regex I used to search the IPA dictionary (note: that dictionary uses /ɫ/ rather than /l/, hence the surprising regex)

ipa regex alpha
p p p
b b b
t t(?!ʃ) t
d d(?!ʒ) d
k k k
ɡ ɡ g
f f f
v v v
θ θ th
ð ð th
s s s
z z z
ʃ (?<!t)ʃ sh
ʒ (?<!d)ʒ g
tʃ tʃ ch
dʒ dʒ j
m m m
n n n
ŋ ŋ ng
h h h
ɹ ɹ r
ɝ ɝ r
l ɫ l
j j y
w w w
3 Likes

One quick hint :slight_smile:

You might find more if you discard r when it is after a vowel and before a consonant, or at the end of a word.

Your matrix misses e.g. thither and zither (eth-eth and z-eth).

1 Like

@Daniel_360 Great suggestion! This was exactly the sort of feedback I was looking for (although, I now realize I didn’t explicitly ask for it in my original post, so I need to go fix that).

From English IPA Lookup, the IPA for zither is /ˈzɪðɝ/. That /ɝ/ at the end is the rhotic vowel (common in American English but mostly absent in British English).

For my old decimal 2-digit major system, I mapped (/ɝ/,/ɹ/) → “4”. I thought that if I only mapped /ɹ/ → “4”, leaving out /ɝ/, I would limit word counts associated with “4”. But from the table I constructed above, I can see that /ɝ/ does very little to increase word counts as the first phone (i.e., the /ɝ/ row has very small numbers). It does actually contribute 26% of the (/ɝ/,/ɹ/) word count as the second phone (i.e., sum(column(/ɝ/)) / (sum(column(/ɹ/)) + sum(column(/ɝ/))) = 416/(1155+416) = 26%). So that’s a bit of a hit. But it might be a hit worth taking if it increases word counts elsewhere!

Do you have any other suggestions? Ignore /h/ maybe?

I’ll re-run numbers and see what comes out

1 Like

@Daniel_360, I re-ran the numbers with your suggestion, to treat /ɝ/ as a vowel. I represented the results as a matrix of differences in word counts from the original matrix. So, obviously, the /ɝ/ rows/columns will be negative while all other rows/columns will be non-negative.

This appears to be a rich get richer situation. That is, the phones which were already doing quite well with word count (i.e., large count numbers in the previous matrix, e.g., /t/,/d/) got a nice boost to their word count here. But those which were not doing well (e.g., /f/,/v/,/θ/,/ð/,/j/,/w/) didn’t get much of a boost.

I’ll have to play with different specifications.

ipa_00 p b t d k ɡ f v θ ð s z ʃ ʒ tʃ dʒ m n ŋ h ɹ ɝ l j w
p 11 1 31 14 20 7 9 4 2 0 18 23 3 1 7 5 7 23 3 2 21 -18 34 0 0
b 4 15 33 17 52 21 2 7 3 3 15 36 15 1 17 8 22 51 5 2 25 -38 60 2 0
t 8 10 13 6 14 4 2 2 0 3 9 16 5 0 1 0 11 25 4 0 7 -17 27 0 0
d 6 6 25 4 14 10 6 12 1 1 8 10 9 0 3 3 26 22 6 0 9 -30 18 0 2
k 22 12 31 19 29 5 13 9 4 3 31 32 8 0 11 4 27 56 5 0 12 -31 78 2 5
ɡ 2 5 18 8 7 6 4 4 6 2 6 8 4 1 2 3 8 21 3 0 10 -26 28 0 1
f 0 10 12 18 11 10 7 10 3 4 8 18 5 0 2 0 8 25 5 1 27 -13 35 2 0
v 4 8 24 13 7 9 1 2 0 0 15 10 1 0 3 7 1 28 5 1 1 -16 20 1 1
θ 0 1 2 5 5 1 0 1 0 0 2 12 0 0 1 2 4 7 1 0 2 -12 5 0 0
ð 0 0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 1 0 0 0 1 -4 1 0 0
s 15 18 58 21 26 12 19 20 2 5 15 12 1 1 5 4 19 36 6 2 1 -21 43 0 3
z 2 2 4 3 11 4 1 4 0 1 3 3 0 0 0 0 3 10 5 0 0 -7 11 0 0
ʃ 6 8 9 12 11 4 20 5 0 0 1 6 1 0 0 0 12 10 4 0 24 -24 31 0 3
ʒ 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 2 0 0 0 -3 1 0 0
tʃ 6 0 9 5 2 0 0 3 0 0 4 3 4 0 1 0 1 11 0 0 3 -2 7 0 0
dʒ 0 2 7 4 3 7 5 0 0 0 1 10 0 0 2 0 6 14 2 0 1 -5 4 0 0
m 5 7 33 23 27 13 6 3 4 2 26 40 6 3 3 5 7 55 6 3 9 -42 41 1 2
n 8 11 15 23 9 4 6 6 2 5 15 21 3 0 4 7 16 6 4 0 6 -21 6 0 1
ŋ 0 1 0 0 3 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0
h 7 11 24 18 13 8 8 13 2 3 15 18 9 2 2 1 15 32 7 0 8 -21 29 2 0
ɹ 10 14 28 25 17 10 8 8 6 7 16 20 5 0 4 3 25 14 3 2 5 -9 6 0 2
ɝ -2 -6 -1 -3 -5 -2 0 -3 -4 -1 -6 -13 -1 0 0 -1 -3 -21 -1 0 -2 0 -9 0 -1
l 14 19 34 24 26 14 10 15 3 5 21 30 7 4 4 6 22 31 14 0 2 -40 7 0 0
j 0 4 8 1 8 3 0 0 0 1 3 6 0 0 0 4 3 4 1 0 0 -7 1 0 0
w 1 6 10 11 12 3 3 4 5 6 6 12 3 0 2 2 15 17 4 1 3 -8 17 0 0
1 Like

Btw, I talk about my motivation for doing all this over in my post My tweaked hexadecimal major system. I proposed:

  • (/f/,/v/) → hex-F
  • (/θ/,/ð/) → hex-8

But from the counts I produced for this post, I learned how few words there are for (/θ/,/ð/). Instead, I might try:

  • (/θ/,/ð/,/h/) → hex-8

where I could also cheat the phonetic system and include words which end with “[:vowel:]h” to pump the word count a bit. E.g., letting “torah” (/tɔɹə/) count for /h/.

This might not be that weird of a grouping. Sure, (/θ/,/ð/) and /h/ are far apart from each other on the IPA Chart. But they’re all frictatives. Also, (/θ/,/ð/) → “th”, which includes an “h”. So we already have a alphabet graph association.

If anyone has comments on this, please share.

Cool, nice analysis!

I’m not surprised to find this is a “rich get richer” situation, but I was hoping that it would result in more of the combinations increasing from zero.

My next suggestion would be to split some of the consonants with large counts into two blocks, e.g.:
/t/, /t/, /d/ and /k/ have plenty, so these could be split to /ta/ and /t[every other vowel]/ (for example) and you’d still have plenty of examples to work with.

Then you could get by with only the most common 8–13 consonants, depending how many you split.

You could go further and split e.g. /t/ → /ta/, /te/, etc., but this has some problems in my mind:

  • You split it too far and struggle to find words matching e.g. (/v/, /tu/)
  • Some vowels are kinda ambiguous in English (e.g. is “motor” (/mo/, /to/) or (/mo/, /te/) or are we being more precise with /t-schwa/ or using the actual IPA vowel to go alongside /m/?) Depends on accent, how technically accurate you want to be, etc., but the big picture is that this should not be more complicated than necessary
  • If you have e.g. (/ta/, /te/ and /t-other/), then it’s difficult to check whether a word matches /t-other/ because you have to check it’s not /ta/ nor /te/, and this is slow for actually using under time pressure.
1 Like

Not a bad idea to split further. I hadn’t considered that.

Below is a matrix of my results for when I group consonants into these 16 buckets. Note the *rule I included to pump the word counts for /h/,/j/,/w/ at the end of a word.

/j/ at the beginning of a word is definitely the lightest on word count. /ɡ/ is surprisingly light. Still, this might represent the best coverage I can expect over 16 buckets, while maintaining sensible mappings.

ipa_00 p b t d k ɡ f,v θ,ð,h* s,z ʃ,ʒ,tʃ,dʒ m n,ŋ ɹ l j* w*
p 49 3 90 29 71 22 45 29 122 70 20 90 81 142 156 47
b 11 56 106 91 116 44 53 38 192 109 52 162 128 204 156 48
t 34 39 50 37 69 19 46 30 102 39 50 118 82 108 155 51
d 27 42 62 52 64 29 54 29 152 60 77 183 96 137 158 50
k 62 43 103 72 84 14 84 42 187 92 73 216 133 246 168 62
ɡ 11 19 52 43 24 13 48 29 68 40 23 99 71 109 155 48
f,v 9 30 107 68 59 39 72 56 145 63 23 189 131 207 161 45
θ,ð,h 35 36 84 80 73 38 93 63 135 58 69 165 79 131 166 54
s,z 68 60 143 94 146 42 96 55 149 49 89 203 94 212 157 53
ʃ,ʒ,tʃ,dʒ 64 52 86 81 96 22 88 25 146 41 76 252 125 164 155 55
m 15 25 102 92 109 45 59 44 209 84 40 197 119 160 160 52
n,ŋ 34 38 83 86 72 29 72 52 171 55 47 67 42 95 157 48
ɹ 48 69 95 118 118 45 98 54 195 92 86 182 18 137 157 49
l 51 74 113 90 116 45 105 59 256 87 92 245 93 76 160 53
j 9 7 15 8 30 10 26 23 36 10 12 43 16 24 156 46
w 6 11 31 41 47 12 45 37 62 32 16 68 22 72 153 44

* The stars (i.e., on /h/,/j/,/w/) indicate where I used a specialized rule, allowing for the English alphabet graph approximant (i.e., “h”,“y”,“w”) preceded by a vowel at the end of a word to add to that phoneme’s word count. E.g., I allow:

  • “torah” (/tɔɹə/) for /h/
  • “array” (/ɝeɪ/) for /j/
  • “yellow” (/jɛloʊ/) for /w/.

I do have one more arrangement I want to try:

  • (/f/,/v/,/θ/,/ð/) → hex-F
  • /s/ → hex-0
  • /z/ → hex-8
  • ignore /h/ everywhere to increase all word counts

I’m not crazy about splitting it up, but (/s/,/z/) is definitely the word count heavyweight on the block right now.

1 Like

Below are my results when I ignore /h/, basically treating it as if it were a vowel.

This increases all word counts by a little bit. In some places, it increases word count by a lot. E.g., /w/-/t/ goes from a 31 → 44 word count. But unfortunately, this really doesn’t do enough to increase the word counts for /θ/ and /ð/.

ipa_00 p b t d k ɡ f v θ ð s z ʃ ʒ tʃ dʒ m n ŋ ɹ l j w
p 51 3 101 30 75 23 21 17 12 0 75 65 17 2 37 16 22 85 19 82 156 3 3
b 11 61 120 101 127 55 18 22 11 7 86 122 42 4 47 19 60 162 20 136 231 3 4
t 34 40 53 44 73 22 16 13 6 5 83 60 21 1 17 2 52 121 28 86 128 2 10
d 29 42 68 59 81 31 28 41 7 4 67 104 26 2 22 10 80 204 26 101 157 5 10
k 65 50 121 80 90 15 45 21 17 5 131 94 36 0 43 14 78 220 24 139 271 15 18
ɡ 11 22 62 51 24 13 19 11 12 2 28 45 16 1 17 8 25 112 10 73 131 3 4
f 2 22 64 43 38 21 16 15 12 4 52 45 13 2 10 9 22 90 15 111 144 5 1
v 8 11 61 40 28 18 3 10 5 0 39 37 7 0 11 12 3 110 18 24 93 4 1
θ 1 8 6 15 8 2 1 2 0 0 5 16 0 0 3 2 16 32 6 20 26 0 1
ð 0 0 2 1 0 0 0 1 1 0 3 12 0 0 0 0 2 4 0 4 3 0 1
s 59 55 163 85 126 32 38 40 7 9 60 70 8 2 19 15 78 145 31 68 189 4 7
z 12 8 12 19 40 14 4 7 0 1 10 22 1 0 3 1 17 61 17 31 62 0 3
ʃ 36 24 42 43 49 9 39 12 5 1 3 32 6 0 2 3 36 80 17 72 94 1 7
ʒ 0 2 1 2 2 0 0 1 0 0 0 2 0 2 0 0 0 3 3 2 2 0 1
tʃ 20 8 29 12 24 3 7 6 0 0 18 27 4 0 7 0 14 49 15 18 28 0 0
dʒ 8 18 26 29 28 12 17 5 0 2 29 50 5 0 4 9 32 101 17 35 49 1 3
m 20 30 111 106 123 49 24 15 16 8 102 145 35 4 31 21 42 242 22 125 202 12 8
n 35 42 96 117 77 26 24 33 11 6 104 130 27 0 27 23 52 75 20 44 116 4 7
ŋ 0 1 2 2 27 13 0 1 0 0 1 5 0 0 0 0 2 2 1 0 0 0 1
ɹ 53 78 118 145 132 51 46 28 26 9 112 124 45 3 34 24 94 206 22 21 158 5 8
l 54 83 135 135 135 48 50 70 25 12 145 176 37 5 23 30 115 244 61 96 77 10 16
j 11 10 20 14 30 12 3 2 1 1 19 29 7 0 3 5 17 39 12 18 26 3 2
w 13 11 44 47 51 14 9 10 14 10 25 47 14 0 16 6 19 71 17 27 83 1 0
1 Like

This is a very interesting investigation. I haven’t followed your analysis in detail but having recently struggled to compile a list of several hundred mnemonics for arithmetical work I have run up against the issue of correlation.

Overall frequency of occurrence is one thing but in English, letters are not evenly distributed with regard to position. Some letters are more frequent at the beginning , middle or end of a word. Furthermore some are more likely, or less likely, to appear in conjunction with other letters. An extreme example might be a number like 8888

[http://www.viviancook.uk/SpellStats/LetFreqByWordPosition.html]

Two common workarounds are to split the number into small words or to add spurious letters at the end which can be ignored in some contexts.

1 Like

hey @zoderfit , how did you get on with this? I’m keen to find a working hex major system too, did you get something that worked well for you?