The Sublexical Toolkit is an open source computational linguistics package I lead development on at the Neural Tuning of Reading Lab at the University of Maryland. It computes over 80 derived linguistic measures for 22,474 English words, analyzing the consistency of spelling-sound relationships across syllabic positions and multiple grain sizes. The toolkit functions as a specialized NLP system for sublexical structure: it tokenizes words into phoneme-grapheme mapping units, builds positional probability tables, and extracts a rich feature set used in neuroscience and reading research. I work on this project with a team of undergraduate researchers under Dr. Jeremy Purcell.

Data Pipeline

The toolkit’s NLP pipeline has two stages. The first stage, which I built in Python, handles data collection and quality assurance: webscraping dictionary data from multiple accredited sources, deduplicating entries, resolving discrepant pronunciations, and producing a validated master vocabulary list. The second stage processes the master list through R-based linguistic analysis, mapping every word through the Maximum Onset Principle for syllabification, computing probability tables at each syllabic position, and extracting the full set of derived measures.

Sublexical Toolkit Data Pipeline Stage 1: Data Collection & Curation (Python) Dictionary Webscraping Validation & Deduplication Master List (22,474 words) Stage 2: Linguistic Analysis & Feature Extraction (R + Python) Syllabification & PG Mapping Probability Table Generation Multi-grain Measure Extraction 80+ Measures per Word

Dataset

I scaled the toolkit’s vocabulary from roughly 20,000 inherited words to over 40,000 during the webscraping expansion phase, ultimately curating a 22,474-word master list after removing duplicates and entries with unresolvable pronunciation conflicts. The analytical depth also grew significantly: the original toolkit computed around 20 measures per word, while version 2.0 extracts over 80.

Dataset Scale: Vocabulary Size & Analytical Depth Words in Dataset Derived Measures per Word 0 5,000 10,000 15,000 20,000 25,000 30,000 35,000 0 20 40 60 80 100 v1.0 (Inherited) v1.5 (Webscraping) v2.0 (Final) 20,000 32,000 22,474 20 40 80 Master vocabulary Measures per word

Each word entry carries its spelling, phonetic transcription (in both IPA and the toolkit’s in-house notation system for the 43-phoneme English inventory), SUBTLEX-US frequency data, and syllable count. Variant pronunciations are tracked separately so that analyses can account for dialectal or contextual differences.

Multi-Grain Analysis

A distinctive feature of the toolkit is its ability to analyze spelling-sound relationships at four different linguistic grain sizes. Rather than only looking at individual phoneme-to-grapheme mappings, the toolkit also computes consistency at the onset-rime, onset-nucleus-coda, and oncleus-coda levels. This multi-scale approach lets researchers investigate how different levels of linguistic structure contribute to reading consistency.

Four Grain Sizes of Phonographic Analysis Phoneme-Grapheme (PG) Example "street": s → s, t → t, r → r, ee → i, t → t Onset-Rime (OR) Example "street": str → str, eet → eet Onset-Nucleus-Coda (ONC) Example "street": str → str, ee → ee, t → t Oncleus-Coda (OC) Example "street": stree → stree, t → t

At each grain size, the toolkit computes both directions of mapping: phoneme-to-grapheme (P-to-G, relevant to spelling) and grapheme-to-phoneme (G-to-P, relevant to reading). For example, the grapheme “ea” maps to multiple phonemes across English words (as in “read” vs. “head” vs. “great”), and the toolkit quantifies this inconsistency at each position in the syllable.

Syllabic Position Encoding

Every phoneme-grapheme mapping is tagged with one of five syllabic positions: word-initial, syllable-initial, medial, syllable-final, and word-final. English spelling consistency varies substantially across these positions, and the toolkit captures this variation in its probability tables.

Phonographic Consistency Across Syllabic Positions Average Consistency Score 0 0.2 0.4 0.6 0.8 1.0 Word- initial Syllable- initial Medial Syllable- final Word- final 0.78 0.72 0.55 0.61 0.68 0.82 0.76 0.48 0.58 0.71 P→G (spelling consistency) G→P (reading consistency)

Position-constrained and position-unconstrained variants of each measure are available, along with both frequency-weighted (using SUBTLEX-US log frequencies) and unweighted versions.

Derived Measures

The 80+ measures per word span several categories: PG and GP probability scores at each position, frequency tables, frequency-weighted variants, position-unconstrained aggregates, and parsing probability metrics. For each word, the toolkit also computes aggregate statistics (mean, median, max, min, standard deviation) across positions, giving researchers flexible options for analysis.

Sublexical Toolkit Measure Taxonomy 80+ Derived Measures per Word PG probability (5 positions) (10) GP probability (5 positions) (10) PG frequency (5 positions) (10) Freq-weighted PG prob (10) Freq-weighted GP prob (10) Position- unconstrained (10) Aggregate stats (per word) (16) Parsing prob (4)

Technical Highlights

Phonotactic rules engine: The R core implements the Maximum Onset Principle for syllabification along with contextual constraint filters handling 45+ onset clusters, biphone representations (e.g., /ju/, /ks/), silent-E disambiguation, velar softening, and palatalization edge cases.

Python NLP pipeline: I built a complete data ingestion and tokenization pipeline including dictionary webscraping, phoneme-grapheme segmentation, duplicate detection across multiple datasets (cdupes.py), cross-dataset comparison (compare_excel.py, coldiff.py), and automated measure description generation from column naming patterns (toolkit-descriptions.py).

Backend migration: I refactored the primary computational backend from R to Python, preserving the existing R interface for users who prefer it while improving runtime performance and enabling integration with a web platform under development.

Toolkit Guide: I authored a comprehensive LaTeX reference document documenting every measure, grain size, dataset, and function in the toolkit, serving as the primary reference for researchers using the package.

Pseudoword generation: The toolkit can generate plausible pseudoword spellings from pronunciation input using its probability tables, supporting experimental designs that require controlled nonword stimuli with known sublexical properties.

My Role

I lead the software development team for this project. My contributions include building the entire Python NLP pipeline from scratch, scaling the dataset, designing the validation and QA tooling, engineering the phonographeme tokenization and probability computation systems, running correlation analyses for publications (including work with Stanford ROAR reading assessment data), refactoring the backend, authoring the Toolkit Guide, and presenting research at the 2023 Society for Neuroscience and 2025 Society for the Neurobiology of Language conferences.