Indo-European Languages - Cognate Map
160 languageslinguisticsphylogeneticsjaccard
A TMAP of 160 Indo-European languages from the IE-CoR cognate dataset (Heggarty et al. 2023, Science), where each language is represented as a Jaccard-shingled set of concept::cognate-class tokens - two languages are similar if they share cognate vocabulary for the same concepts. The tree recovers the 10 traditional top-level families (Germanic, Italic, Balto-Slavic, Indo-Iranic, Hellenic, Celtic, Armenian, Albanian, Anatolian, Tocharian) almost perfectly: 91.2% of edges connect languages from the same family, versus a 19.4% baseline for random language pairs - a 4.7x enrichment purely from cognate-sharing, with no phylogenetic model involved.
Indo-European Languages - Cognate MapOpen full page
Loading interactive demo…
How it was made
generate.pypython
from tmap import TMAP
# Each language -> set of "concept_id::cognate_class" tokens
cognate_sets = build_cognate_sets(iecor_cldf_tables)
model = TMAP(
metric="jaccard",
n_neighbors=15,
n_permutations=512,
seed=42,
).fit(cognate_sets)
viz = model.to_tmapviz()
viz.add_label("language", language_names)
viz.add_color_layout("family", top_level_families, categorical=True, color="tab10")
viz.write_html("ie_languages.html")