saturn·

language data phoible

saturn notebook · generated 2026-05-01 Report Notebook

Overview

Source: /home/coolhand/datasets/language-data/phoible.csv

Saturn profiled 105,484 rows across 49 columns. The stats below are deterministic and machine-readable; the prose is a language-model interpretation of those stats (opt-in, added after the fact, never sees raw rows).

[2]:
!pip install saturn-dissect
import subprocess
subprocess.run([
    "saturn", "analyze", "/home/coolhand/datasets/language-data/phoible.csv",
    "--findings", "language-data-phoible.json",
    "--llm", "anthropic:claude-opus-4-7",
])

Summary confidence: high

This is the PHOIBLE phonological inventory dataset: 105,484 rows describing phoneme segments across roughly 2,716 language names and 2,177 Glottocodes, with each row carrying a Phoneme/GlyphID plus 40+ binary phonological features (e.g. consonantal, nasal, sonorant, dorsal). The dataset is dominated by consonants — SegmentClass shows 72,282 consonants vs 31,052 vowels and 2,150 tones — and pulls from 8 sources, with 'ph' (36,274) and 'ea' (16,883) accounting for over half the rows. Most feature columns are heavily imbalanced toward '-' or '0', but a handful (consonantal, sonorant, continuant, dorsal, high, front, back) are fairly balanced and carry the real phonological signal worth exploring. Top language names like Iron Ossetic (444), Dutch (395), and Chechen (309) point to the densest inventories in the corpus.

citing: SegmentClass · Source · LanguageName · Phoneme · Glottocode · consonantal · sonorant · continuant · dorsal · high · Marginal

Out[4]:

saturn.schema() · 49 columns

column kind n null% unique alerts
InventoryID numeric 105,484 0.0% 3,020
Glottocode text 105,484 0.0% 2,177 one_word short_text duplicates
ISO6393 text 105,484 0.0% 2,095 one_word short_text duplicates
LanguageName text 105,484 0.0% 2,716 one_word allcaps short_text duplicates
SpecificDialect categorical 105,484 0.0% 546
GlyphID text 105,484 0.0% 3,142 one_word allcaps short_text duplicates
Phoneme text 105,484 0.0% 3,142 one_word short_text duplicates
Allophones text 105,484 0.0% 6,892 one_word short_text duplicates
Marginal categorical 105,484 0.0% 3
SegmentClass categorical 105,484 0.0% 3
Source categorical 105,484 0.0% 8
tone categorical 105,484 0.0% 2 imbalance
stress categorical 105,484 0.0% 2 imbalance
syllabic categorical 105,484 0.0% 8
short categorical 105,484 0.0% 4 imbalance
long categorical 105,484 0.0% 6
consonantal categorical 105,484 0.0% 5
sonorant categorical 105,484 0.0% 8
continuant categorical 105,484 0.0% 9
delayedRelease categorical 105,484 0.0% 7
approximant categorical 105,484 0.0% 6
tap categorical 105,484 0.0% 5 imbalance
trill categorical 105,484 0.0% 6 imbalance
nasal categorical 105,484 0.0% 8
lateral categorical 105,484 0.0% 8
labial categorical 105,484 0.0% 15
round categorical 105,484 0.0% 8
labiodental categorical 105,484 0.0% 6
coronal categorical 105,484 0.0% 7
anterior categorical 105,484 0.0% 6
distributed categorical 105,484 0.0% 11
strident categorical 105,484 0.0% 9
dorsal categorical 105,484 0.0% 13
high categorical 105,484 0.0% 11
low categorical 105,484 0.0% 8
front categorical 105,484 0.0% 13
back categorical 105,484 0.0% 12
tense categorical 105,484 0.0% 8
retractedTongueRoot categorical 105,484 0.0% 7 imbalance
advancedTongueRoot categorical 105,484 0.0% 3 imbalance
periodicGlottalSource categorical 105,484 0.0% 7
epilaryngealSource categorical 105,484 0.0% 3 imbalance
spreadGlottis categorical 105,484 0.0% 10
constrictedGlottis categorical 105,484 0.0% 7
fortis categorical 105,484 0.0% 3
lenis categorical 105,484 0.0% 3
raisedLarynxEjective categorical 105,484 0.0% 6 imbalance
loweredLarynxImplosive categorical 105,484 0.0% 5 imbalance
click categorical 105,484 0.0% 5
Fig 1.
SegmentClass · Consonants outnumber vowels roughly 2-to-1, with a small tone slice — sets the scope for any phoneme analysis.
Show data table
Top values for SegmentClass (3 unique shown, of 3 total).
valuecountshare
consonant7228268.5%
vowel3105229.4%
tone21502.0%
Fig 2.
Source · Shows how unevenly the eight source corpora contribute, with 'ph' alone supplying about a third of all rows.
Show data table
Top values for Source (8 unique shown, of 8 total).
valuecountshare
ph3627434.4%
ea1688316.0%
upsid1396613.2%
er94238.9%
saphon90478.6%
aa80647.6%
spa75667.2%
ra42614.0%
Fig 3.
LanguageName · Top languages by row count (Iron Ossetic, Dutch, Chechen…) reveal which inventories dominate the dataset.
Show data table
Character-length distribution for LanguageName (mean: 7.822219483523567).
charscount
2 – 43915
4 – 629541
6 – 834409
8 – 1014985
10 – 127358
12 – 144849
14 – 153897
15 – 172893
17 – 191292
19 – 21993
21 – 23198
23 – 25224
25 – 27218
27 – 2939
29 – 3193
31 – 33130
33 – 3564
35 – 3723
37 – 3937
39 – 4057
40 – 420
42 – 4452
44 – 460
46 – 4823
48 – 500
50 – 520
52 – 5420
54 – 560
56 – 5840
58 – 600
60 – 6287
62 – 640
64 – 660
66 – 670
67 – 690
69 – 710
71 – 730
73 – 750
75 – 770
77 – 7947
Fig 4.
consonantal · One of the most balanced phonological features (+ vs −) — a good starting point for feature-based comparisons.
Show data table
Top values for consonantal (5 unique shown, of 5 total).
valuecountshare
+6425760.9%
-3904137.0%
021512.0%
+,-340.0%
-,+10.0%
Fig 5.
Marginal · Indicates how many phonemes are flagged as marginal vs core vs NA, useful before filtering for typological work.
Show data table
Top values for Marginal (3 unique shown, of 3 total).
valuecountshare
FALSE8326378.9%
NA2087419.8%
TRUE13471.3%
Fig 6.
Per-column null rate across the corpus. Columns are ordered by input position.
Show data table
Per-column null rate across the corpus.
columnkindnull %
InventoryIDnumeric0.0%
Glottocodetext0.0%
ISO6393text0.0%
LanguageNametext0.0%
SpecificDialectcategorical0.0%
GlyphIDtext0.0%
Phonemetext0.0%
Allophonestext0.0%
Marginalcategorical0.0%
SegmentClasscategorical0.0%
Sourcecategorical0.0%
tonecategorical0.0%
stresscategorical0.0%
syllabiccategorical0.0%
shortcategorical0.0%
longcategorical0.0%
consonantalcategorical0.0%
sonorantcategorical0.0%
continuantcategorical0.0%
delayedReleasecategorical0.0%
approximantcategorical0.0%
tapcategorical0.0%
trillcategorical0.0%
nasalcategorical0.0%
lateralcategorical0.0%
labialcategorical0.0%
roundcategorical0.0%
labiodentalcategorical0.0%
coronalcategorical0.0%
anteriorcategorical0.0%
distributedcategorical0.0%
stridentcategorical0.0%
dorsalcategorical0.0%
highcategorical0.0%
lowcategorical0.0%
frontcategorical0.0%
backcategorical0.0%
tensecategorical0.0%
retractedTongueRootcategorical0.0%
advancedTongueRootcategorical0.0%
periodicGlottalSourcecategorical0.0%
epilaryngealSourcecategorical0.0%
spreadGlottiscategorical0.0%
constrictedGlottiscategorical0.0%
fortiscategorical0.0%
leniscategorical0.0%
raisedLarynxEjectivecategorical0.0%
loweredLarynxImplosivecategorical0.0%
clickcategorical0.0%

InventoryID numeric foreign_key

InventoryID looks like a categorical inventory key stored as an integer, with 3,020 distinct values spread across 105,484 rows and no nulls. The distribution is essentially uniform from 1 to 3,020 (mean 1479, median 1464, skew ≈0, kurtosis ≈-1.15), confirming it's an enumerated identifier rather than a measurement. Each ID recurs roughly 35 times on average, so this is a foreign key linking transactions to an inventory dimension.

Treatment: Treat as a categorical key; left-join to the inventory table rather than using as a numeric feature.

anthropic:claude-opus-4-7 · confidence high
Out[12]:

saturn.columns["InventoryID"].stats

statvalue
n105,484
nulls0 (0.0%)
unique3,020
min 1
max 3,020
mean 1479
median 1,464
std 843.1
q1 769
q3 2,237
iqr 1,468
skew -0.002397
kurtosis -1.146
n_outliers 0
outlier_rate 0
zero_rate 0
Fig 7.
Distribution of InventoryID. Vertical dash marks the median.
Show data table
Histogram bins for InventoryID (median: 1464.0).
bincount
1 – 76.472729
76.47 – 151.92947
151.9 – 227.42742
227.4 – 302.92385
302.9 – 378.42399
378.4 – 453.82530
453.8 – 529.32270
529.3 – 604.82323
604.8 – 680.32533
680.3 – 755.83039
755.8 – 831.22896
831.2 – 906.72609
906.7 – 982.22693
982.2 – 10582513
1058 – 11332637
1133 – 12092514
1209 – 12842898
1284 – 13603314
1360 – 14353634
1435 – 15102993
1510 – 15863172
1586 – 16613290
1661 – 17372686
1737 – 18123001
1812 – 18881779
1888 – 19632046
1963 – 20391878
2039 – 21141864
2114 – 21902685
2190 – 22653387
2265 – 23413096
2341 – 24163142
2416 – 24923264
2492 – 25673557
2567 – 26432966
2643 – 27181975
2718 – 27941761
2794 – 28691659
2869 – 29451855
2945 – 30201823

Glottocode text foreign_key

This column holds Glottocodes — standardized 8-character language identifiers from Glottolog (e.g., 'kham1282', 'dutc1256'). Values are uniformly one word with length tightly clustered at 8 (mean 7.999, min 2, max 8), and there are 2,177 unique codes across 105,484 rows with a 97.9% duplicate rate, indicating each language appears many times. The top code 'kham1282' alone accounts for 622 rows.

Treatment: Treat as a categorical foreign key; left-join to a Glottolog reference table for language metadata.

anthropic:claude-opus-4-7 · confidence high
Out[15]:

saturn.columns["Glottocode"].stats

statvalue
n105,484
nulls0 (0.0%)
unique2,177
len_min 2
len_max 8
len_mean 7.999
len_median 8
len_p95 8
word_mean 1
word_median 1
n_empty 0
n_duplicates 103,307
duplicate_rate 0.9794
vocab_size 2,168
readability_flesch_mean 94.15
emoji_rate 0
url_rate 0
one_word_rate 1
allcaps_rate 0
boilerplate_rate 0
alert: one_word100.0% rows are a single word
alert: short_text95th-percentile length under 20 chars
alert: duplicates97.9% duplicate strings
Fig 8.
Character-length distribution for Glottocode.
Show data table
Character-length distribution for Glottocode (mean: 7.998919267377043).
charscount
2 – 219
2 – 20
2 – 20
2 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 40
4 – 40
4 – 40
4 – 40
4 – 40
4 – 40
4 – 40
4 – 50
5 – 50
5 – 50
5 – 50
5 – 50
5 – 50
5 – 50
5 – 60
6 – 60
6 – 60
6 – 60
6 – 60
6 – 60
6 – 60
6 – 70
7 – 70
7 – 70
7 – 70
7 – 70
7 – 70
7 – 80
8 – 80
8 – 80
8 – 8105465

ISO6393 text foreign_key

This column holds ISO 639-3 language codes: every value is exactly 3 characters and one word, with 2,095 distinct codes across 105,484 rows. The distribution is heavy-tailed and highly repetitive (98.0% duplicate rate), led by 'mis' (828), 'khg' (622), and 'oss' (525), with familiar codes like 'eng' and 'hin' also prominent. No nulls or empties, and the vocabulary (2,086) closely matches n_unique (2,095), consistent with a clean controlled vocabulary.

Treatment: Treat as a categorical key; left-join to an ISO 639-3 reference table or target-encode for modelling.

anthropic:claude-opus-4-7 · confidence high
Out[18]:

saturn.columns["ISO6393"].stats

statvalue
n105,484
nulls0 (0.0%)
unique2,095
len_min 3
len_max 3
len_mean 3
len_median 3
len_p95 3
word_mean 1
word_median 1
n_empty 0
n_duplicates 103,389
duplicate_rate 0.9801
vocab_size 2,086
readability_flesch_mean 119.5
emoji_rate 0
url_rate 0
one_word_rate 1
allcaps_rate 0
boilerplate_rate 0
alert: one_word100.0% rows are a single word
alert: short_text95th-percentile length under 20 chars
alert: duplicates98.0% duplicate strings
Fig 9.
Character-length distribution for ISO6393.
Show data table
Character-length distribution for ISO6393 (mean: 3.0).
charscount
2 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 3105484
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 30
3 – 40

LanguageName text label

This column holds language names, mostly single-word labels (one_word_rate 0.84, word_mean 1.20) with a vocab of 2670 across 2716 unique values over 105484 rows. It is highly repetitive (duplicate_rate 0.974) with top entries like 'Iron Ossetic' (444), 'Dutch' (395), and 'Chechen' (309), and roughly 13% of values are uppercase, suggesting inconsistent casing worth normalising. Compound names use directional modifiers ('northern', 'southern', 'eastern', 'western') indicating dialect-level granularity.

Treatment: Normalise case and treat as a categorical label; consider grouping directional dialect variants before modelling.

anthropic:claude-opus-4-7 · confidence high
Out[21]:

saturn.columns["LanguageName"].stats

statvalue
n105,484
nulls0 (0.0%)
unique2,716
len_min 2
len_max 79
len_mean 7.822
len_median 7
len_p95 16
word_mean 1.201
word_median 1
n_empty 0
n_duplicates 102,768
duplicate_rate 0.9743
vocab_size 2,670
readability_flesch_mean 53.18
emoji_rate 0
url_rate 0
one_word_rate 0.8433
allcaps_rate 0.1314
boilerplate_rate 0
alert: one_word84.3% rows are a single word
alert: allcaps13.1% rows are all-caps
alert: short_text95th-percentile length under 20 chars
alert: duplicates97.4% duplicate strings
Fig 10.
Character-length distribution for LanguageName.
Show data table
Character-length distribution for LanguageName (mean: 7.822219483523567).
charscount
2 – 43915
4 – 629541
6 – 834409
8 – 1014985
10 – 127358
12 – 144849
14 – 153897
15 – 172893
17 – 191292
19 – 21993
21 – 23198
23 – 25224
25 – 27218
27 – 2939
29 – 3193
31 – 33130
33 – 3564
35 – 3723
37 – 3937
39 – 4057
40 – 420
42 – 4452
44 – 460
46 – 4823
48 – 500
50 – 520
52 – 5420
54 – 560
56 – 5840
58 – 600
60 – 6287
62 – 640
64 – 660
66 – 670
67 – 690
69 – 710
71 – 730
73 – 750
75 – 770
77 – 7947

SpecificDialect categorical metadata

Categorical field naming a specific dialect/sub-variety of a language, with 546 distinct values across 105,484 rows. The distribution is extremely concentrated: 71.9% are the literal string "NA" and another 7,692 rows are empty strings, leaving the remaining 544 dialect labels (e.g., "W2", "Lezgian (Güne)", "Scottish Gaelic (Lewis)") in a long tail topping out at 120 occurrences. Entropy ratio of 0.33 confirms most signal lives in that small tail.

Treatment: Normalize "NA" and "" to a single missing token, then treat as high-cardinality categorical (hash or group rare levels) for any downstream use.

anthropic:claude-opus-4-7 · confidence high
Out[24]:

saturn.columns["SpecificDialect"].stats

statvalue
n105,484
nulls0 (0.0%)
unique546
top_value NA
top_rate 0.7187
cardinality 546
entropy 2.969
entropy_ratio 0.3265
Fig 11.
Top values for SpecificDialect.
Show data table
Top values for SpecificDialect (20 unique shown, of 546 total).
valuecountshare
NA7580771.9%
76927.3%
W21200.1%
Lezgian (Güne)960.1%
Santa920.1%
Central Pakistan830.1%
Babungo (Grassfields Bantu, Ring)820.1%
Scottish Gaelic (Lewis)820.1%
Tangari810.1%
Kanga760.1%
Kufa750.1%
Skolt Saami (Suõʹnnʼjel)750.1%
Standard Hindi (as spoken in Varanasi, Lucknow, Delhi etc.)740.1%
Standard (eastern)740.1%
Guovdageaidnu740.1%
Nuosu (Black Yi)740.1%
Northern Qiang (Yadu)730.1%
Bangladeshi Standard (spoken in Dhaka and other urban aread of Bangladesh)720.1%
Standard Italian700.1%
Chechen (Ploskost)700.1%

GlyphID text foreign_key

GlyphID holds single-token uppercase hexadecimal codes (allcaps_rate 1.0, one_word_rate 1.0, len_min 4, len_median 4) that look like Unicode codepoints — the top values 006D, 0069, 006B map to lowercase Latin letters m, i, k. Despite the ID-sounding name it is highly non-unique: only 3,142 distinct values across 105,484 rows with a 0.97 duplicate rate, so it behaves as a categorical glyph reference rather than a row key. Lengths stretch up to 54 characters (p95 14), hinting that some entries concatenate multiple codepoints.

Treatment: Treat as a categorical codepoint reference and left-join to a Unicode/glyph lookup table; do not use as a primary key.

anthropic:claude-opus-4-7 · confidence high
Out[27]:

saturn.columns["GlyphID"].stats

statvalue
n105,484
nulls0 (0.0%)
unique3,142
len_min 4
len_max 54
len_mean 6.503
len_median 4
len_p95 14
word_mean 1
word_median 1
n_empty 0
n_duplicates 102,342
duplicate_rate 0.9702
vocab_size 1,343
readability_flesch_mean 121.2
emoji_rate 0
url_rate 0
one_word_rate 1
allcaps_rate 1
boilerplate_rate 0
alert: one_word100.0% rows are a single word
alert: allcaps100.0% rows are all-caps
alert: short_text95th-percentile length under 20 chars
alert: duplicates97.0% duplicate strings
Fig 12.
Character-length distribution for GlyphID.
Show data table
Character-length distribution for GlyphID (mean: 6.503033635432862).
charscount
4 – 567114
5 – 60
6 – 80
8 – 90
9 – 1028726
10 – 120
12 – 130
13 – 140
14 – 156559
15 – 160
16 – 180
18 – 190
19 – 202225
20 – 220
22 – 230
23 – 240
24 – 25401
25 – 260
26 – 280
28 – 290
29 – 30267
30 – 320
32 – 330
33 – 340
34 – 35104
35 – 360
36 – 380
38 – 390
39 – 405
40 – 420
42 – 430
43 – 440
44 – 4570
45 – 460
46 – 480
48 – 490
49 – 501
50 – 520
52 – 530
53 – 5412

Phoneme text feature

This column holds individual phoneme tokens, almost always a single character (len_mean 1.50, len_median 1, max 11) and always one word (one_word_rate 1.0). With 105,484 rows but only 3,142 unique values and a 97.0% duplicate rate, the same small phoneme inventory repeats heavily; top symbols like 'm' (2,915), 'i' (2,779), and 'k' (2,729) dominate. Vocab_size of 1,339 is larger than n_unique would suggest for single-character entries, hinting that the longer (up to 11-char) values contribute multi-token strings.

Treatment: Treat as a categorical token and encode (label or embedding) before modelling.

anthropic:claude-opus-4-7 · confidence high
Out[30]:

saturn.columns["Phoneme"].stats

statvalue
n105,484
nulls0 (0.0%)
unique3,142
len_min 1
len_max 11
len_mean 1.501
len_median 1
len_p95 3
word_mean 1
word_median 1
n_empty 0
n_duplicates 102,342
duplicate_rate 0.9702
vocab_size 1,339
readability_flesch_mean 114.4
emoji_rate 0
url_rate 0
one_word_rate 1
allcaps_rate 0.001754
boilerplate_rate 0
alert: one_word100.0% rows are a single word
alert: short_text95th-percentile length under 20 chars
alert: duplicates97.0% duplicate strings
Fig 13.
Character-length distribution for Phoneme.
Show data table
Character-length distribution for Phoneme (mean: 1.5006067270865724).
charscount
1 – 167114
1 – 20
2 – 20
2 – 20
2 – 228726
2 – 20
2 – 30
3 – 30
3 – 36559
3 – 40
4 – 40
4 – 40
4 – 42225
4 – 40
4 – 50
5 – 50
5 – 5401
5 – 60
6 – 60
6 – 60
6 – 6267
6 – 60
6 – 70
7 – 70
7 – 7104
7 – 80
8 – 80
8 – 80
8 – 85
8 – 80
8 – 90
9 – 90
9 – 970
9 – 100
10 – 100
10 – 100
10 – 101
10 – 100
10 – 110
11 – 1112

Allophones text feature

Column holds short phonetic tokens (allophones), with mean length 2.08 characters and 91.3% being a single word. The distribution is dominated by the literal string 'NA' (53,580 of 105,484 rows, ~50.8%), which likely encodes missing rather than true null since null_rate is 0.0; duplicate_rate is 0.935 across only 6,892 uniques. Top non-NA values are individual phoneme letters like 'm', 'j', 'w', 's', consistent with IPA-style symbols.

Treatment: Recode the literal 'NA' to missing, then treat as a categorical/phoneme token (one-hot or embed).

anthropic:claude-opus-4-7 · confidence high
Out[33]:

saturn.columns["Allophones"].stats

statvalue
n105,484
nulls0 (0.0%)
unique6,892
len_min 1
len_max 37
len_mean 2.083
len_median 2
len_p95 4
word_mean 1.129
word_median 1
n_empty 0
n_duplicates 98,592
duplicate_rate 0.9347
vocab_size 1,263
readability_flesch_mean 116.2
emoji_rate 0
url_rate 0
one_word_rate 0.9131
allcaps_rate 0.00291
boilerplate_rate 0
alert: one_word91.3% rows are a single word
alert: short_text95th-percentile length under 20 chars
alert: duplicates93.5% duplicate strings
Fig 14.
Character-length distribution for Allophones.
Show data table
Character-length distribution for Allophones (mean: 2.0834154942929732).
charscount
1 – 226762
2 – 366019
3 – 44934
4 – 53125
5 – 61246
6 – 61181
6 – 7789
7 – 8409
8 – 9334
9 – 100
10 – 11226
11 – 12160
12 – 1369
13 – 1465
14 – 1441
14 – 1536
15 – 1612
16 – 1716
17 – 1812
18 – 190
19 – 2014
20 – 219
21 – 228
22 – 230
23 – 243
24 – 243
24 – 253
25 – 263
26 – 272
27 – 280
28 – 291
29 – 300
30 – 310
31 – 320
32 – 320
32 – 330
33 – 341
34 – 350
35 – 360
36 – 371

Marginal categorical feature

A ternary flag with values FALSE, NA, and TRUE across 105,484 rows. FALSE dominates at 78.9% while TRUE appears only 1,347 times; the 20,874 NA entries are encoded as a literal string rather than null, so null_rate is 0.0 despite roughly a fifth of rows being missing in practice.

Treatment: Recode the literal 'NA' string to a true missing value, then treat as a binary indicator.

anthropic:claude-opus-4-7 · confidence high
Out[36]:

saturn.columns["Marginal"].stats

statvalue
n105,484
nulls0 (0.0%)
unique3
top_value FALSE
top_rate 0.7893
cardinality 3
entropy 0.8122
entropy_ratio 0.5125
Fig 15.
Top values for Marginal.
Show data table
Top values for Marginal (3 unique shown, of 3 total).
valuecountshare
FALSE8326378.9%
NA2087419.8%
TRUE13471.3%

SegmentClass categorical label

SegmentClass is a categorical phonological label with only 3 distinct values: consonant, vowel, and tone. The distribution is heavily skewed — consonant accounts for 68.5% of 105,484 rows, vowel for 31,052, and tone for just 2,150, giving an entropy ratio of 0.64. The presence of 'tone' as a rare third class suggests the dataset spans tonal languages but those segments are sparsely represented.

Treatment: One-hot encode; consider class imbalance (especially rare 'tone' class) before stratified modelling.

anthropic:claude-opus-4-7 · confidence high
Out[39]:

saturn.columns["SegmentClass"].stats

statvalue
n105,484
nulls0 (0.0%)
unique3
top_value consonant
top_rate 0.6852
cardinality 3
entropy 1.008
entropy_ratio 0.6357
Fig 16.
Top values for SegmentClass.
Show data table
Top values for SegmentClass (3 unique shown, of 3 total).
valuecountshare
consonant7228268.5%
vowel3105229.4%
tone21502.0%

Source categorical metadata

Categorical provenance tag with 8 distinct sources across 105,484 rows and no nulls. Distribution is fairly balanced (entropy ratio 0.90), though 'ph' leads at 34.4% followed by 'ea' (16,883) and 'upsid' (13,966). Looks like a dataset-origin code identifying which linguistic database each record came from.

Treatment: one-hot encode or keep as categorical for stratification and source-bias checks

anthropic:claude-opus-4-7 · confidence high
Out[42]:

saturn.columns["Source"].stats

statvalue
n105,484
nulls0 (0.0%)
unique8
top_value ph
top_rate 0.3439
cardinality 8
entropy 2.697
entropy_ratio 0.8991
Fig 17.
Top values for Source.
Show data table
Top values for Source (8 unique shown, of 8 total).
valuecountshare
ph3627434.4%
ea1688316.0%
upsid1396613.2%
er94238.9%
saphon90478.6%
aa80647.6%
spa75667.2%
ra42614.0%

tone categorical label

Binary categorical flag with values "0" and "+", almost certainly a tone/sentiment indicator. The distribution is severely imbalanced: "0" covers 97.96% of 105,484 rows while "+" appears only 2,150 times, yielding entropy of just 0.144. No nulls are present.

Treatment: Use as a binary label but apply class-imbalance handling (resampling or class weights) before modelling.

anthropic:claude-opus-4-7 · confidence high
Out[45]:

saturn.columns["tone"].stats

statvalue
n105,484
nulls0 (0.0%)
unique2
top_value 0
top_rate 0.9796
cardinality 2
entropy 0.1436
entropy_ratio 0.1436
alert: imbalancetop value is 98.0% of rows
Fig 18.
Top values for tone.
Show data table
Top values for tone (2 unique shown, of 2 total).
valuecountshare
010333498.0%
+21502.0%

stress categorical feature

Binary categorical flag with only two observed values, '-' and '0', across 105484 rows and no nulls. The column is severely imbalanced: '-' covers 97.96% of records (103334) while '0' accounts for the remaining 2150, yielding an entropy ratio of just 0.144. The '-' likely encodes a missing or default state rather than a true category, making this near-constant.

Treatment: Treat '-' as missing and consider dropping; near-constant with little signal.

anthropic:claude-opus-4-7 · confidence high
Out[48]:

saturn.columns["stress"].stats

statvalue
n105,484
nulls0 (0.0%)
unique2
top_value -
top_rate 0.9796
cardinality 2
entropy 0.1436
entropy_ratio 0.1436
alert: imbalancetop value is 98.0% of rows
Fig 19.
Top values for stress.
Show data table
Top values for stress (2 unique shown, of 2 total).
valuecountshare
-10333498.0%
021502.0%

syllabic categorical feature

This is a phonological feature column encoding the [syllabic] distinctive feature, with 8 distinct values across 105,484 rows and no nulls. Most entries are simple '-' (68.5%) or '+', but 2,532 rows carry composite codes like '0', '+,-', or '-,+,-' that suggest contour/multi-segment annotations. Entropy ratio of 0.35 confirms the distribution is heavily concentrated on the negative value.

Treatment: One-hot encode, optionally collapsing rare composite codes into an 'other' bucket.

anthropic:claude-opus-4-7 · confidence high
Out[51]:

saturn.columns["syllabic"].stats

statvalue
n105,484
nulls0 (0.0%)
unique8
top_value -
top_rate 0.6849
cardinality 8
entropy 1.042
entropy_ratio 0.3472
Fig 20.
Top values for syllabic.
Show data table
Top values for syllabic (8 unique shown, of 8 total).
valuecountshare
-7224868.5%
+3069229.1%
021502.0%
+,-2440.2%
-,+1240.1%
-,+,-120.0%
-,+,+120.0%
+,+,-20.0%

short categorical feature

A 4-level categorical with values '-', '0', '+', and '-,+' — likely a strand or sign indicator. It is severely imbalanced: '-' covers 97.76% of 105,484 rows, leaving only 2,150 zeros, 204 plus signs, and 5 mixed '-,+' entries. Entropy ratio is just 0.082, so the column carries almost no information as-is.

Treatment: Consider dropping or collapsing into a binary '-' vs other indicator given the extreme imbalance.

anthropic:claude-opus-4-7 · confidence high
Out[54]:

saturn.columns["short"].stats

statvalue
n105,484
nulls0 (0.0%)
unique4
top_value -
top_rate 0.9776
cardinality 4
entropy 0.1645
entropy_ratio 0.08225
alert: imbalancetop value is 97.8% of rows
Fig 21.
Top values for short.
Show data table
Top values for short (4 unique shown, of 4 total).
valuecountshare
-10312597.8%
021502.0%
+2040.2%
-,+50.0%

long categorical feature

Categorical flag with only 6 distinct values dominated by '-' at 89.9% (94844/105484), followed by '+' (8386) and '0' (2150). The remaining three categories are comma-joined combinations like '-,+' and '+,-' with tiny counts (63, 40, 1), suggesting concatenated multi-record values rather than clean single labels. Low entropy ratio (0.214) confirms the column is highly imbalanced toward '-'.

Treatment: Split the comma-joined compound values, then one-hot encode; expect '-' to dominate.

anthropic:claude-opus-4-7 · confidence high
Out[57]:

saturn.columns["long"].stats

statvalue
n105,484
nulls0 (0.0%)
unique6
top_value -
top_rate 0.8991
cardinality 6
entropy 0.5537
entropy_ratio 0.2142
Fig 22.
Top values for long.
Show data table
Top values for long (6 unique shown, of 6 total).
valuecountshare
-9484489.9%
+83868.0%
021502.0%
-,+630.1%
+,-400.0%
-,-,+10.0%

consonantal categorical feature

This is a phonological feature column flagging segments as consonantal, with five distinct values across 105,484 rows and no nulls. The vast majority are binary +/- (64,257 and 39,041 respectively, with + dominating at 60.9%), plus 2,151 zero/underspecified entries and just 35 rows with mixed values like '+,-' or '-,+'. Entropy ratio of 0.47 reflects the heavy + skew, and the lone '-,+' singleton is worth noting as a likely encoding artifact.

Treatment: Map to a small categorical encoding; consider collapsing the rare mixed/zero values or treating them as a separate 'underspecified' level.

anthropic:claude-opus-4-7 · confidence high
Out[60]:

saturn.columns["consonantal"].stats

statvalue
n105,484
nulls0 (0.0%)
unique5
top_value +
top_rate 0.6092
cardinality 5
entropy 1.085
entropy_ratio 0.4672
Fig 23.
Top values for consonantal.
Show data table
Top values for consonantal (5 unique shown, of 5 total).
valuecountshare
+6425760.9%
-3904137.0%
021512.0%
+,-340.0%
-,+10.0%

sonorant categorical feature

This is a phonological feature column encoding the [sonorant] value of a segment, dominated by binary '+'/'-' marks (53.0% '+', plus 45322 '-'). The presence of '0' (2150) and comma-joined sequences like '+,-' (1948) and rarer '+,-,-', '+,-,+', '+,-,+,-' suggests contour/complex segments where multiple values are concatenated. Cardinality is 8 with entropy ratio 0.41, so the long tail is sparse but meaningful.

Treatment: Split comma-separated contour values into ordered sub-features or treat as categorical with a rare-bucket for the contour cases.

anthropic:claude-opus-4-7 · confidence high
Out[63]:

saturn.columns["sonorant"].stats

statvalue
n105,484
nulls0 (0.0%)
unique8
top_value +
top_rate 0.5301
cardinality 8
entropy 1.245
entropy_ratio 0.4149
Fig 24.
Top values for sonorant.
Show data table
Top values for sonorant (8 unique shown, of 8 total).
valuecountshare
+5592053.0%
-4532243.0%
021502.0%
+,-19481.8%
-,+890.1%
+,-,-290.0%
+,-,+250.0%
+,-,+,-10.0%

continuant categorical feature

Categorical flag with 9 distinct values across 105,484 rows and no nulls, dominated by '+' (54.9%) and '-' (~42%), with '0' a distant third at 2,151 occurrences. The remaining six categories are comma-joined sequences like '-,+' or '0,0,-,+' that look like concatenated multi-step states rather than atomic labels — only 796 rows total fall into these compound buckets. Entropy ratio of 0.37 confirms heavy concentration in the two primary signs.

Treatment: Collapse rare comma-joined sequences into an 'other' bucket (or split on comma) before one-hot encoding.

anthropic:claude-opus-4-7 · confidence high
Out[66]:

saturn.columns["continuant"].stats

statvalue
n105,484
nulls0 (0.0%)
unique9
top_value +
top_rate 0.5494
cardinality 9
entropy 1.172
entropy_ratio 0.3696
Fig 25.
Top values for continuant.
Show data table
Top values for continuant (9 unique shown, of 9 total).
valuecountshare
+5795254.9%
-4458542.3%
021512.0%
-,+7280.7%
-,-,+500.0%
+,-90.0%
0,-,+40.0%
-,+,+40.0%
0,0,-,+10.0%

delayedRelease categorical feature

A categorical flag named delayedRelease with 7 distinct values across 105484 rows and no nulls. Values are dominated by '0' (55.0%), followed by '-' (27384) and '+' (19533), but a long tail of comma-joined combinations like '-,+', '0,-,+', '+,-', and '0,0,-,+' suggests rows where multiple labels were concatenated rather than normalized. Entropy ratio of 0.52 confirms a skewed but not single-valued distribution.

Treatment: Split the comma-joined values and one-hot encode the three base levels (0, -, +) before modelling.

anthropic:claude-opus-4-7 · confidence high
Out[69]:

saturn.columns["delayedRelease"].stats

statvalue
n105,484
nulls0 (0.0%)
unique7
top_value 0
top_rate 0.5502
cardinality 7
entropy 1.471
entropy_ratio 0.5238
Fig 26.
Top values for delayedRelease.
Show data table
Top values for delayedRelease (7 unique shown, of 7 total).
valuecountshare
05803555.0%
-2738426.0%
+1953318.5%
-,+4920.5%
0,-,+330.0%
+,-60.0%
0,0,-,+10.0%

approximant categorical feature

A low-cardinality categorical with only 6 distinct values dominated by sign tokens '-' (55.9%) and '+' (≈42%), plus a small '0' bucket (2,150 rows) and rare comma-joined combinations like '-,+', '-,-,+', '+,-'. The compound values suggest this field occasionally stores multiple approximant signs concatenated rather than a single label. No nulls across 105,484 rows, and entropy ratio is 0.43, reflecting the heavy '-'/'+' imbalance.

Treatment: Split the comma-joined values or collapse rare combos into an 'other' bucket, then one-hot encode.

anthropic:claude-opus-4-7 · confidence high
Out[72]:

saturn.columns["approximant"].stats

statvalue
n105,484
nulls0 (0.0%)
unique6
top_value -
top_rate 0.559
cardinality 6
entropy 1.12
entropy_ratio 0.4333
Fig 27.
Top values for approximant.
Show data table
Top values for approximant (6 unique shown, of 6 total).
valuecountshare
-5896655.9%
+4426642.0%
021502.0%
-,+710.1%
-,-,+250.0%
+,-60.0%

tap categorical feature

A categorical flag with only 5 distinct values dominated by '-' at 96.7% of 105484 rows, with '0' and '+' as minor categories and two rare composite codes ('-,+', '-,-,+') appearing 25 and 15 times. Entropy ratio of 0.104 confirms extreme imbalance, so this column carries very little discriminative signal on its own. The composite values suggest the field occasionally concatenates multiple states, which is worth verifying against the source schema.

Treatment: Collapse rare composites and treat as a low-signal binary indicator, or drop if downstream models penalise near-constant features.

anthropic:claude-opus-4-7 · confidence high
Out[75]:

saturn.columns["tap"].stats

statvalue
n105,484
nulls0 (0.0%)
unique5
top_value -
top_rate 0.9672
cardinality 5
entropy 0.2421
entropy_ratio 0.1043
alert: imbalancetop value is 96.7% of rows
Fig 28.
Top values for tap.
Show data table
Top values for tap (5 unique shown, of 5 total).
valuecountshare
-10202396.7%
022032.1%
+12181.2%
-,+250.0%
-,-,+150.0%

trill categorical feature

A categorical flag with only 6 distinct values across 105,484 rows, almost certainly encoding a trill or sign indicator ("-", "0", "+", and a few comma-joined sequences). The distribution is severely imbalanced: "-" alone covers 96.15% of rows, leaving entropy at just 0.276 (entropy ratio 0.107). The compound values like "-,+", "-,-,+" and "+,-" appear fewer than 30 times each, hinting at concatenated multi-event records that may need parsing.

Treatment: Collapse rare compound codes and consider dropping or one-hot encoding given the 96% dominance of a single value.

anthropic:claude-opus-4-7 · confidence high
Out[78]:

saturn.columns["trill"].stats

statvalue
n105,484
nulls0 (0.0%)
unique6
top_value -
top_rate 0.9615
cardinality 6
entropy 0.2762
entropy_ratio 0.1069
alert: imbalancetop value is 96.2% of rows
Fig 29.
Top values for trill.
Show data table
Top values for trill (6 unique shown, of 6 total).
valuecountshare
-10142796.2%
022022.1%
+18191.7%
-,+260.0%
-,-,+80.0%
+,-20.0%

nasal categorical feature

A categorical flag for nasal presence/absence, dominated by '-' at 80.8% with '+' a distant second (15,941 of 105,484). The presence of compound values like '+,-', '-,+', and '+,-,-' suggests concatenated multi-observation records rather than a clean binary indicator, and a '0' category (2,150) is a third encoding that doesn't match the +/- scheme.

Treatment: Normalize encodings (collapse '0' and split comma-joined sequences) before using as a categorical feature.

anthropic:claude-opus-4-7 · confidence high
Out[81]:

saturn.columns["nasal"].stats

statvalue
n105,484
nulls0 (0.0%)
unique8
top_value -
top_rate 0.8084
cardinality 8
entropy 0.897
entropy_ratio 0.299
Fig 30.
Top values for nasal.
Show data table
Top values for nasal (8 unique shown, of 8 total).
valuecountshare
-8526980.8%
+1594115.1%
021502.0%
+,-19731.9%
-,+950.1%
+,-,-540.1%
+,-,+,-10.0%
-,+,-10.0%

lateral categorical feature

Categorical flag with 8 distinct values dominated by '-' at 93.8% of 105484 rows, followed by '+' (4211) and '0' (2150). The remaining categories are comma-joined composites like '-,+' or '-,-,+' with counts in the single or double digits, suggesting multi-observation concatenations rather than clean labels. Entropy ratio is just 0.134, so the column carries little information as-is.

Treatment: Collapse rare composite values into 'mixed' or split on comma before one-hot encoding; expect minimal predictive signal due to severe imbalance.

anthropic:claude-opus-4-7 · confidence high
Out[84]:

saturn.columns["lateral"].stats

statvalue
n105,484
nulls0 (0.0%)
unique8
top_value -
top_rate 0.9382
cardinality 8
entropy 0.4012
entropy_ratio 0.1337
Fig 31.
Top values for lateral.
Show data table
Top values for lateral (8 unique shown, of 8 total).
valuecountshare
-9896893.8%
+42114.0%
021502.0%
-,+1350.1%
+,-120.0%
-,-,+40.0%
-,+,-30.0%
0,-,+10.0%

labial categorical feature

A categorical flag for labial articulation, dominated by '-' (68.2%) and '+' (27%), with '0' and various comma-joined combinations like '-,+' and '-,-,+' suggesting multi-segment or sequence-level annotations rather than atomic values. Cardinality is 15 across 105,484 rows with no nulls, and entropy ratio is only 0.30, so the signal is highly concentrated in the binary +/- distinction. The presence of compound tokens is the main surprise and indicates inconsistent encoding granularity.

Treatment: Normalise compound values (split or collapse to first segment) before one-hot encoding.

anthropic:claude-opus-4-7 · confidence high
Out[87]:

saturn.columns["labial"].stats

statvalue
n105,484
nulls0 (0.0%)
unique15
top_value -
top_rate 0.6822
cardinality 15
entropy 1.182
entropy_ratio 0.3025
Fig 32.
Top values for labial.
Show data table
Top values for labial (15 unique shown, of 15 total).
valuecountshare
-7196168.2%
+2824126.8%
-,+24142.3%
021602.0%
+,-5310.5%
-,-,+1210.1%
+,-,-210.0%
0,+,-80.0%
-,+,-60.0%
0,-,+50.0%
-,+,+50.0%
+,+,-50.0%
+,-,+40.0%
-,-,+,+10.0%
0,+,-,-10.0%

round categorical feature

Categorical column with 8 distinct values dominated by '0' (70.3% of 105484 rows), followed by '+' (16956) and '-' (14082). The tokens look like rounding/sign indicators, and a long tail of compound values like '-,+', '-,-,+', and '0,-,+' (each with 1-269 occurrences) suggests concatenated multi-step rounding sequences. No nulls, but entropy_ratio of 0.398 confirms heavy concentration on the single dominant category.

Treatment: Collapse rare compound sequences into an 'other' bucket and one-hot encode the resulting categories.

anthropic:claude-opus-4-7 · confidence medium
Out[90]:

saturn.columns["round"].stats

statvalue
n105,484
nulls0 (0.0%)
unique8
top_value 0
top_rate 0.703
cardinality 8
entropy 1.194
entropy_ratio 0.398
Fig 33.
Top values for round.
Show data table
Top values for round (8 unique shown, of 8 total).
valuecountshare
07415570.3%
+1695616.1%
-1408213.3%
-,+2690.3%
-,-,+170.0%
-,0,+30.0%
0,-,+10.0%
+,-10.0%

labiodental categorical feature

This column appears to be a phonological feature flag indicating whether a phoneme is labiodental, encoded with values like "0", "-", "+", and a few comma-separated combinations. The distribution is dominated by "0" at 70.3% of 105,484 rows, with "-" at 28,726 and "+" at only 2,574; mixed values like "+,-", "-,+", and "+,+,-" appear in fewer than 60 rows combined and likely represent multi-segment entries. Entropy of 1.01 (ratio 0.39) confirms heavy concentration on the default "0" code.

Treatment: Treat as categorical; collapse rare comma-separated combinations or one-hot encode the three primary levels.

anthropic:claude-opus-4-7 · confidence high
Out[93]:

saturn.columns["labiodental"].stats

statvalue
n105,484
nulls0 (0.0%)
unique6
top_value 0
top_rate 0.7027
cardinality 6
entropy 1.006
entropy_ratio 0.3891
Fig 34.
Top values for labiodental.
Show data table
Top values for labiodental (6 unique shown, of 6 total).
valuecountshare
07412470.3%
-2872627.2%
+25742.4%
+,-560.1%
-,+30.0%
+,+,-10.0%

coronal categorical feature

A low-cardinality categorical with 7 distinct values dominated by sign tokens '-' (62.8%) and '+' (about 36,955 of 105,484), plus a small '0' bucket of 2,160 rows. The presence of comma-joined combinations like '+,-', '-,+', '-,-,+' and '+,-,+' suggests multi-valued entries collapsed into a single string rather than a clean atomic category. Entropy ratio of 0.385 confirms heavy concentration on the two main signs.

Treatment: Split the comma-joined values and encode as a small categorical (or multi-hot) before modelling.

anthropic:claude-opus-4-7 · confidence high
Out[96]:

saturn.columns["coronal"].stats

statvalue
n105,484
nulls0 (0.0%)
unique7
top_value -
top_rate 0.6279
cardinality 7
entropy 1.08
entropy_ratio 0.3848
Fig 35.
Top values for coronal.
Show data table
Top values for coronal (7 unique shown, of 7 total).
valuecountshare
-6623462.8%
+3695535.0%
021602.0%
+,-870.1%
-,+410.0%
-,-,+60.0%
+,-,+10.0%

anterior categorical feature

A low-cardinality categorical with 6 distinct values dominated by '0' (64.8% of 105484 rows), '+' (25704), and '-' (11391). The remaining three categories are concatenated combinations like '-,+', '+,-', and '-,-,+' totaling only 17 rows, suggesting this field originally allowed multi-valued entries that were collapsed into comma-joined strings. Entropy ratio of 0.48 confirms heavy concentration on the single mode.

Treatment: Split comma-separated values or bucket the rare combinations into 'other', then one-hot encode.

anthropic:claude-opus-4-7 · confidence high
Out[99]:

saturn.columns["anterior"].stats

statvalue
n105,484
nulls0 (0.0%)
unique6
top_value 0
top_rate 0.6482
cardinality 6
entropy 1.251
entropy_ratio 0.4839
Fig 36.
Top values for anterior.
Show data table
Top values for anterior (6 unique shown, of 6 total).
valuecountshare
06837264.8%
+2570424.4%
-1139110.8%
-,+90.0%
+,-50.0%
-,-,+30.0%

distributed categorical feature

A low-cardinality categorical with 11 distinct values dominated by '0' (66.0% of 105,484 rows), followed by '-' and '+'. The remaining eight categories are concatenated combinations like '-,+' or '-,-,+' that together account for fewer than 350 rows, suggesting multi-event encoding squeezed into a single field. Entropy ratio of 0.368 confirms the heavy concentration on the top class.

Treatment: Split the comma-delimited combinations into separate flags or collapse rare categories before encoding.

anthropic:claude-opus-4-7 · confidence medium
Out[102]:

saturn.columns["distributed"].stats

statvalue
n105,484
nulls0 (0.0%)
unique11
top_value 0
top_rate 0.6602
cardinality 11
entropy 1.273
entropy_ratio 0.3681
Fig 37.
Top values for distributed.
Show data table
Top values for distributed (11 unique shown, of 11 total).
valuecountshare
06963966.0%
-2228321.1%
+1322812.5%
-,+2960.3%
-,-,+250.0%
+,-50.0%
0,-,+30.0%
+,-,+20.0%
0,+,-10.0%
+,+,-10.0%
0,0,-,+10.0%

strident categorical feature

This appears to be a phonological feature column encoding the [strident] distinctive feature, with values '0' (unspecified), '-' (non-strident), and '+' (strident) covering the vast majority of 105484 rows. About 64.9% are '0' and there are no nulls, but a long tail of 6 composite values like '-,+' and '0,0,-,+' (totaling 625 rows) suggests multi-segment entries where the feature varies across positions. Entropy ratio of 0.41 confirms heavy concentration on the unspecified category.

Treatment: Split composite comma-separated values or one-hot encode the three primary categories before modelling.

anthropic:claude-opus-4-7 · confidence high
Out[105]:

saturn.columns["strident"].stats

statvalue
n105,484
nulls0 (0.0%)
unique9
top_value 0
top_rate 0.6485
cardinality 9
entropy 1.287
entropy_ratio 0.406
Fig 38.
Top values for strident.
Show data table
Top values for strident (9 unique shown, of 9 total).
valuecountshare
06841064.9%
-2541024.1%
+1103910.5%
-,+5850.6%
-,-,+260.0%
+,-70.0%
-,+,-30.0%
0,-,+30.0%
0,0,-,+10.0%

dorsal categorical feature

This column appears to encode a dorsal sign or polarity flag, dominated by two values: '+' (54,535, 51.7%) and '-' (47,052). A third value '0' appears 2,160 times, and the remaining 10 categories are compound comma-separated combinations like '-,+' or '+,-,+', suggesting concatenated multi-observation records collapsed into one cell. Cardinality is 13 with entropy ratio 0.33, so the long tail is negligible but structurally inconsistent with a clean categorical.

Treatment: Split comma-separated compounds into list-valued or first-token features before encoding.

anthropic:claude-opus-4-7 · confidence high
Out[108]:

saturn.columns["dorsal"].stats

statvalue
n105,484
nulls0 (0.0%)
unique13
top_value +
top_rate 0.517
cardinality 13
entropy 1.235
entropy_ratio 0.3338
Fig 39.
Top values for dorsal.
Show data table
Top values for dorsal (13 unique shown, of 13 total).
valuecountshare
+5453551.7%
-4705244.6%
021602.0%
-,+15301.5%
+,-1440.1%
-,-,+440.0%
0,-,+60.0%
+,-,+50.0%
-,+,+40.0%
+,+,-,-10.0%
-,+,-10.0%
+,+,-10.0%
0,0,-,+10.0%

high categorical feature

This appears to be a categorical 'high' indicator encoding directional movement signs, with '0' (no change) the dominant value at 46.7% of 105,484 rows, followed by '+' and '-'. Compound values like '-,+' and '+,-' suggest concatenated multi-step sign sequences, but they tail off sharply (845, 627, then single digits). Entropy ratio of 0.46 confirms heavy concentration in the top three single-symbol categories; cardinality is 11 with no nulls.

Treatment: Collapse rare compound sequences into an 'other' bucket, then one-hot encode the three primary signs.

anthropic:claude-opus-4-7 · confidence medium
Out[111]:

saturn.columns["high"].stats

statvalue
n105,484
nulls0 (0.0%)
unique11
top_value 0
top_rate 0.4669
cardinality 11
entropy 1.594
entropy_ratio 0.4609
Fig 40.
Top values for high.
Show data table
Top values for high (11 unique shown, of 11 total).
valuecountshare
04924746.7%
+3555933.7%
-1915618.2%
-,+8450.8%
+,-6270.6%
+,-,+380.0%
+,+,-60.0%
-,+,+20.0%
-,-,+20.0%
+,-,010.0%
-,+,-10.0%

low categorical feature

A low-cardinality categorical with 8 distinct tokens dominated by '-' (47.3%) and '0' (~49,244 of 105,484), with '+' a distant third at 5,598. The remaining values are comma-joined sequences like '+,-', '-,+,-', suggesting this column encodes a sign or direction trace, possibly concatenated across events. The long tail (down to a single '+,-,-') indicates rare composite states worth bucketing.

Treatment: Collapse rare composite sequences into an 'other' bucket and one-hot encode the remaining categories.

anthropic:claude-opus-4-7 · confidence medium
Out[114]:

saturn.columns["low"].stats

statvalue
n105,484
nulls0 (0.0%)
unique8
top_value -
top_rate 0.4733
cardinality 8
entropy 1.305
entropy_ratio 0.4351
Fig 41.
Top values for low.
Show data table
Top values for low (8 unique shown, of 8 total).
valuecountshare
-4993047.3%
04924446.7%
+55985.3%
+,-4170.4%
-,+2700.3%
-,+,-210.0%
-,-,+30.0%
+,-,-10.0%

front categorical feature

Categorical column encoding a front-side signal with 13 distinct values dominated by three primitives: "0" (49,316), "-" (34,225), and "+" (20,683), together covering nearly all 105,484 rows. The remaining categories are comma-joined combinations like "-,+" (838) or "-,-,+" (24), suggesting multi-event concatenations rather than clean atomic labels. Top rate is 0.468 and entropy ratio 0.43, so the distribution is skewed toward "0" but not degenerate. No nulls.

Treatment: Split the comma-separated combinations into multi-hot indicators for -, 0, + before modelling.

anthropic:claude-opus-4-7 · confidence high
Out[117]:

saturn.columns["front"].stats

statvalue
n105,484
nulls0 (0.0%)
unique13
top_value 0
top_rate 0.4675
cardinality 13
entropy 1.592
entropy_ratio 0.4302
Fig 42.
Top values for front.
Show data table
Top values for front (13 unique shown, of 13 total).
valuecountshare
04931646.8%
-3422532.4%
+2068319.6%
-,+8380.8%
+,-3590.3%
-,-,+240.0%
+,-,-140.0%
-,+,+100.0%
+,-,+60.0%
-,0,+30.0%
+,+,-20.0%
0,-,+20.0%
-,+,-20.0%

back categorical feature

A low-cardinality categorical with 12 distinct values dominated by the tokens "0" (46.7%), "-", and "+", suggesting a sign/state flag for some "back" attribute. The remaining values are comma-separated combinations like "+,-" or "+,-,-", indicating multiple events concatenated into one cell — a compound encoding rather than a clean atomic category. No nulls across 105,484 rows, and entropy ratio of 0.42 confirms the heavy skew toward "0".

Treatment: split the comma-separated tokens into a list and one-hot or count-encode the +/-/0 components before modelling.

anthropic:claude-opus-4-7 · confidence high
Out[120]:

saturn.columns["back"].stats

statvalue
n105,484
nulls0 (0.0%)
unique12
top_value 0
top_rate 0.4671
cardinality 12
entropy 1.521
entropy_ratio 0.4244
Fig 43.
Top values for back.
Show data table
Top values for back (12 unique shown, of 12 total).
valuecountshare
04927046.7%
-3974937.7%
+1554714.7%
+,-5110.5%
-,+3670.3%
+,-,-190.0%
-,-,+80.0%
-,+,+50.0%
-,+,-50.0%
0,+,-10.0%
+,-,+10.0%
+,+,-10.0%

tense categorical feature

This is a categorical 'tense' field with only 8 distinct values across 105,484 rows and no nulls, dominated by '0' at 71.3% and '+' at ~22%. The remaining categories are sparse markers ('-', '+,-', '-,+') and a long tail of compound sequences with as few as 1-6 occurrences, suggesting a linguistic encoding of tense polarity rather than free text. Low entropy ratio (0.37) confirms heavy concentration in the top class.

Treatment: Collapse rare compound categories into an 'other' bucket before one-hot encoding.

anthropic:claude-opus-4-7 · confidence high
Out[123]:

saturn.columns["tense"].stats

statvalue
n105,484
nulls0 (0.0%)
unique8
top_value 0
top_rate 0.7132
cardinality 8
entropy 1.114
entropy_ratio 0.3712
Fig 44.
Top values for tense.
Show data table
Top values for tense (8 unique shown, of 8 total).
valuecountshare
07523071.3%
+2341122.2%
-63866.1%
+,-2680.3%
-,+1790.2%
+,-,+60.0%
+,-,-30.0%
+,+,-10.0%

retractedTongueRoot categorical feature

Categorical encoding of the retracted-tongue-root (RTR) phonological feature, with 7 distinct values across 105,484 rows and no nulls. The column is severely imbalanced: '-' covers 97.4% of rows, '0' another ~2%, and the remaining five values (including compound codes like '-,+' and '-,-,+') together account for under 500 rows. Entropy ratio of 0.069 confirms almost no information content as-is.

Treatment: Collapse rare codes or binarize ('-' vs other); likely low predictive value due to extreme imbalance.

anthropic:claude-opus-4-7 · confidence high
Out[126]:

saturn.columns["retractedTongueRoot"].stats

statvalue
n105,484
nulls0 (0.0%)
unique7
top_value -
top_rate 0.9744
cardinality 7
entropy 0.1935
entropy_ratio 0.06892
alert: imbalancetop value is 97.4% of rows
Fig 45.
Top values for retractedTongueRoot.
Show data table
Top values for retractedTongueRoot (7 unique shown, of 7 total).
valuecountshare
-10278897.4%
022352.1%
-,+2510.2%
+1990.2%
-,-,+90.0%
-,+,-10.0%
+,-10.0%

advancedTongueRoot categorical feature

This column encodes the advanced tongue root (ATR) phonological feature, taking three values: '-', '0', and '+'. It is severely imbalanced — '-' covers 97.87% of 105,484 rows, '0' appears 2,235 times, and '+' only 11 times, yielding an entropy ratio of just 0.094. The near-absence of '+' values means this feature carries almost no discriminative signal as-is.

Treatment: Consider dropping or collapsing to a binary indicator due to extreme imbalance.

anthropic:claude-opus-4-7 · confidence high
Out[129]:

saturn.columns["advancedTongueRoot"].stats

statvalue
n105,484
nulls0 (0.0%)
unique3
top_value -
top_rate 0.9787
cardinality 3
entropy 0.1496
entropy_ratio 0.09438
alert: imbalancetop value is 97.9% of rows
Fig 46.
Top values for advancedTongueRoot.
Show data table
Top values for advancedTongueRoot (3 unique shown, of 3 total).
valuecountshare
-10323897.9%
022352.1%
+110.0%

periodicGlottalSource categorical feature

Phonological feature flag for periodic glottal source (voicing), with 7 distinct values across 105,484 rows and no nulls. The vast majority are simple binary tags: '+' at 67.97% (71,694) and '-' (31,179), with a small '0' class (2,139) and rare comma-joined sequences like '+,-' (371) suggesting multi-segment or contour entries. Low entropy ratio (0.3745) confirms heavy concentration on '+'.

Treatment: Collapse rare composite values into an 'other' bucket and one-hot encode.

anthropic:claude-opus-4-7 · confidence high
Out[132]:

saturn.columns["periodicGlottalSource"].stats

statvalue
n105,484
nulls0 (0.0%)
unique7
top_value +
top_rate 0.6797
cardinality 7
entropy 1.051
entropy_ratio 0.3745
Fig 47.
Top values for periodicGlottalSource.
Show data table
Top values for periodicGlottalSource (7 unique shown, of 7 total).
valuecountshare
+7169468.0%
-3117929.6%
021392.0%
+,-3710.4%
-,+870.1%
+,-,-80.0%
+,-,+60.0%

epilaryngealSource categorical feature

A categorical phonological feature (epilaryngeal source) with only 3 distinct values: '-', '0', and '+'. The column is severely imbalanced — '-' accounts for 97.93% of the 105,484 rows, '0' for 2,150 rows, and '+' for just 31 rows, yielding a very low entropy ratio of 0.093. With no nulls but near-constant values, it carries little discriminative signal.

Treatment: Consider dropping or collapsing to a binary indicator; near-constant with extreme imbalance.

anthropic:claude-opus-4-7 · confidence high
Out[135]:

saturn.columns["epilaryngealSource"].stats

statvalue
n105,484
nulls0 (0.0%)
unique3
top_value -
top_rate 0.9793
cardinality 3
entropy 0.1474
entropy_ratio 0.09303
alert: imbalancetop value is 97.9% of rows
Fig 48.
Top values for epilaryngealSource.
Show data table
Top values for epilaryngealSource (3 unique shown, of 3 total).
valuecountshare
-10330397.9%
021502.0%
+310.0%

spreadGlottis categorical feature

This appears to be a phonological feature column encoding the [spread glottis] distinctive feature, with values '-', '+', '0' and comma-separated combinations for segments with multiple specifications. The distribution is extremely lopsided: '-' covers 91.8% of 105,484 rows and entropy ratio is just 0.149, meaning the column carries little information on its own. The long tail of compound values like '-,+', '+,0,-', and '+,-,+' (some with only 1-5 occurrences) suggests multi-segment or contour entries that may need parsing.

Treatment: Split compound values on comma and one-hot encode; consider dropping if downstream model is sensitive to near-constant features.

anthropic:claude-opus-4-7 · confidence high
Out[138]:

saturn.columns["spreadGlottis"].stats

statvalue
n105,484
nulls0 (0.0%)
unique10
top_value -
top_rate 0.9182
cardinality 10
entropy 0.4965
entropy_ratio 0.1495
Fig 49.
Top values for spreadGlottis.
Show data table
Top values for spreadGlottis (10 unique shown, of 10 total).
valuecountshare
-9685591.8%
+61565.8%
021382.0%
-,+2060.2%
+,-1150.1%
-,-,+50.0%
+,0,-50.0%
+,-,-20.0%
+,0,-,-10.0%
+,-,+10.0%

constrictedGlottis categorical feature

Categorical flag for a 'constricted glottis' phonological feature, with 7 distinct values across 105,484 rows and no nulls. Heavily dominated by '-' at 94.5% (99,727 rows), with '+' and '0' as minor categories and a long tail of comma-joined sequences ('+,-', '-,+', and two singletons) suggesting multi-segment annotations. Low entropy ratio (0.13) confirms the column carries little information in isolation.

Treatment: Collapse rare composite values and binarize against '-' before modelling.

anthropic:claude-opus-4-7 · confidence high
Out[141]:

saturn.columns["constrictedGlottis"].stats

statvalue
n105,484
nulls0 (0.0%)
unique7
top_value -
top_rate 0.9454
cardinality 7
entropy 0.3717
entropy_ratio 0.1324
Fig 50.
Top values for constrictedGlottis.
Show data table
Top values for constrictedGlottis (7 unique shown, of 7 total).
valuecountshare
-9972794.5%
+33833.2%
021382.0%
+,-1410.1%
-,+930.1%
+,-,-10.0%
-,-,+10.0%

fortis categorical feature

A 3-level categorical flag dominated by '-' (68.1% of 105,484 rows), with '0' covering most of the rest and '+' appearing only 415 times. The skew toward '-' and the tiny '+' class (entropy ratio 0.589) suggest a sign/direction indicator rather than a balanced category. No nulls, so the encoding is complete as-is.

Treatment: One-hot encode; consider merging the rare '+' class or treating it as a minority signal.

anthropic:claude-opus-4-7 · confidence medium
Out[144]:

saturn.columns["fortis"].stats

statvalue
n105,484
nulls0 (0.0%)
unique3
top_value -
top_rate 0.6813
cardinality 3
entropy 0.9335
entropy_ratio 0.589
Fig 51.
Top values for fortis.
Show data table
Top values for fortis (3 unique shown, of 3 total).
valuecountshare
-7186768.1%
03320231.5%
+4150.4%

lenis categorical feature

A ternary categorical flag with values '-', '0', and '+', likely encoding a linguistic lenition feature (lenis/fortis/neutral). The distribution is highly imbalanced: '-' covers 68.1% of 105,484 rows and '0' another 33,202, while '+' appears only 416 times. No nulls, but the rare '+' class may be too sparse for stable modelling.

Treatment: One-hot encode, but consider merging or upweighting the rare '+' class before modelling.

anthropic:claude-opus-4-7 · confidence high
Out[147]:

saturn.columns["lenis"].stats

statvalue
n105,484
nulls0 (0.0%)
unique3
top_value -
top_rate 0.6813
cardinality 3
entropy 0.9336
entropy_ratio 0.589
Fig 52.
Top values for lenis.
Show data table
Top values for lenis (3 unique shown, of 3 total).
valuecountshare
-7186668.1%
03320231.5%
+4160.4%

raisedLarynxEjective categorical feature

This is a categorical phonological feature flag for 'raisedLarynxEjective', taking values like '-', '+', '0', and a few comma-separated combinations across 105484 rows with no nulls. The distribution is severely imbalanced: '-' covers 96.37% of rows and entropy ratio is just 0.103, with rare compound values like '-,-,+' appearing only once. The 6-way cardinality plus mixed-delimiter codes ('-,+' vs '+,-') suggests multi-segment annotations that may need parsing.

Treatment: Treat as low-signal categorical; consider collapsing rare compound codes or dropping due to extreme imbalance.

anthropic:claude-opus-4-7 · confidence high
Out[150]:

saturn.columns["raisedLarynxEjective"].stats

statvalue
n105,484
nulls0 (0.0%)
unique6
top_value -
top_rate 0.9637
cardinality 6
entropy 0.2675
entropy_ratio 0.1035
alert: imbalancetop value is 96.4% of rows
Fig 53.
Top values for raisedLarynxEjective.
Show data table
Top values for raisedLarynxEjective (6 unique shown, of 6 total).
valuecountshare
-10165296.4%
021502.0%
+15731.5%
-,+850.1%
+,-230.0%
-,-,+10.0%

loweredLarynxImplosive categorical feature

Categorical phonological feature flagging lowered larynx implosives, with 5 distinct values across 105,484 rows and no nulls. The distribution is severely imbalanced: '-' covers 97.27% of rows, while '0' (2,150), '+' (716), and the mixed codes '-,+' (7) and '+,-' (2) are rare. Entropy ratio of 0.088 confirms the column carries very little information as-is.

Treatment: Collapse to a binary present/absent indicator or drop given the 97% dominance of '-'.

anthropic:claude-opus-4-7 · confidence high
Out[153]:

saturn.columns["loweredLarynxImplosive"].stats

statvalue
n105,484
nulls0 (0.0%)
unique5
top_value -
top_rate 0.9727
cardinality 5
entropy 0.2034
entropy_ratio 0.08759
alert: imbalancetop value is 97.3% of rows
Fig 54.
Top values for loweredLarynxImplosive.
Show data table
Top values for loweredLarynxImplosive (5 unique shown, of 5 total).
valuecountshare
-10260997.3%
021502.0%
+7160.7%
-,+70.0%
+,-20.0%

click categorical label

Categorical flag with only 5 distinct values dominated by '-' (68.2% of 105,484 rows) and '0' (33,202), suggesting a click/interaction indicator where '-' likely means no click and '0' a recorded null/zero. The '+' class is rare (253) and the compound values '+,-' (52) and '-,+' (6) hint at concatenated multi-event records that break the single-label assumption. Entropy ratio of 0.40 confirms the heavy imbalance.

Treatment: Normalize the compound '+,-'/'-,+' rows and collapse '-'/'0' semantics before using as a binary click target.

anthropic:claude-opus-4-7 · confidence medium
Out[156]:

saturn.columns["click"].stats

statvalue
n105,484
nulls0 (0.0%)
unique5
top_value -
top_rate 0.6823
cardinality 5
entropy 0.9283
entropy_ratio 0.3998
Fig 55.
Top values for click.
Show data table
Top values for click (5 unique shown, of 5 total).
valuecountshare
-7197168.2%
03320231.5%
+2530.2%
+,-520.0%
-,+60.0%

How to cite

click to copy

BibTeX
@misc{saturn-language-data-phoible-2026,
  author       = {Steuber, Luke},
  title        = {Saturn reading: language data phoible},
  year         ={2026},
  howpublished = {\url{https://dr.eamer.dev/saturn/view/language-data-phoible}},
  note         = {Profiled with saturn-dissect v0.2.0, prompt saturn-insight-v2, model anthropic:claude-opus-4-7},
}
APA
Steuber, L. (2026). Saturn reading: language data phoible. Source: /home/coolhand/datasets/language-data/phoible.csv. Profiled with saturn-dissect v0.2.0 (saturn-insight-v2, anthropic:claude-opus-4-7). Retrieved from https://dr.eamer.dev/saturn/view/language-data-phoible