Custom Word Lists¶
Build targeted word lists by combining phoneme patterns, psycholinguistic property filters, CV shape, and sound similarity.
Overview¶
Build word lists by combining: - Phoneme patterns (STARTS_WITH, ENDS_WITH, CONTAINS, CONTAINS_MEDIAL), each with include / exclude mode - Property filters (~150 psycholinguistic property columns tracked in the data layer; the Word Lists picker currently surfaces the curated clinical-workhorse subset, grouped by category: Phonological Complexity, Lexical, Semantic, Register & Usage, Affective) - CV shape (filter by syllable structure: CV, CVC, CCVC, ...) - Sound similarity (anchor on a target word with adjustable onset / nucleus / coda weights) - Picture cards (a "has picture card" rule restricts results to words with a shipped image) - Phoneme exclusions (exclude words containing specific phonemes) - AND logic (words must match ALL criteria)
Vocabulary size: ~48K canonical content words (content-word frequency mass + WordNet realness, plus a curated deny/allow list; the full ~125K CMU-phonology lexicon backs exact-word lookup)
Basic Usage¶
- Add a pattern: Pick Starts with / Ends with / Contains and Include / Exclude, type the phoneme(s) (or use the IPA keyboard icon), then click Add rule — each rule becomes a chip in the active constraints bar
- Narrow the scope (optional): Toggle Base forms only, Has image, and/or Specialized & dated vocab to restrict the vocabulary before filtering
- Add filters (optional): Pick a numeric property and set its range, or pick a category (e.g. Register) and select values, then click Add filter
- Build: Click Build Word List to run the query
- Export: Select rows and use Add to Editor to send them into the Materials Editor as a therapy pack, or download the full (or selected) results as CSV
Pattern Types¶
Pattern Matching Algorithm¶
Patterns use IPA transcriptions to match phoneme sequences:
STARTS_WITH /k/
Matches: cat /kæt/, king /kɪŋ/, crest /kɹɛst/
Does not match: back /bæk/, attack /ətæk/
ENDS_WITH /t/
Matches: cat /kæt/, fight /faɪt/, rest /ɹɛst/
Does not match: cats /kæts/ (ends with /s/)
CONTAINS /s/
Matches: sit /sɪt/, pass /pæs/, outside /aʊtsaɪd/
Matches any position: initial, medial, or final
CONTAINS_MEDIAL /s/
Matches: missile /mɪsəl/ (medial /s/)
Does not match: sit /sɪt/ (initial), pass /pæs/ (final)
Technical Details¶
Implementation: - Uses regular expression matching on IPA strings - Case-sensitive IPA matching (e.g., /i/ ≠ /ɪ/) - Matches exact phoneme boundaries (e.g., /s/ won't match /ʃ/) - Diphthongs treated as single units (e.g., /aɪ/ is one phoneme)
Performance: queries execute server-side against the D1 database via the PhonoLex Worker API
Limitations: - Cannot match phoneme features directly (use Lookup tool for feature-based search) - Cannot use wildcards or phonological classes (e.g., cannot search "any fricative")
Property Filters¶
Filterable vs. displayable. These are not the same thing. Filterable means the property can become a filter rule, reachable through one of three routes: the "Numeric property" picker, the "Category" picker, or (for the two properties neither picker takes) a dedicated control — Has Image lives on the scope bar's "Has image" toggle, and CV Shape has its own CV-shape rule builder. As of the current picker (PHON-222), exactly 12 properties are filterable in Word Lists: Syllables, Phonemes, WCM, CV Shape, Frequency, Age of Acquisition, Familiarity, Concreteness, Has Image, Register, Valence, Arousal. Everything else in the ~150-column data layer — including the whole Phonotactic Probability family below — is computed and stored, and some of it round-trips through the API or leaks into exports (see the CSV note further down), but it is not offered as a Word Lists filter rule, and most of it does not appear as a results-table column either. Don't assume a property table below implies a picker or scope-bar entry — check the property against the filterable list.
Complete Property Reference¶
Phonological Complexity (3 properties)¶
| Property | Range | Source | Description | Coverage |
|---|---|---|---|---|
| Syllables | 1-5 | CMU Dictionary | Number of syllables | 100% |
| Phonemes | 1-10+ | CMU Dictionary | Number of phonemes (IPA segments) | 100% |
| WCM | 0-15 | Stoel-Gammon (2010) | Word Complexity Measure (8 parameters) | ~95% |
Syllables: - Counted from syllabification algorithm - Example: "cat" = 1, "window" = 2, "computer" = 3
Phonemes: - Counted from IPA transcription - Diphthongs count as 1 phoneme (e.g., /aɪ/ in "time") - Example: "cat" /kæt/ = 3, "spray" /spreɪ/ = 4
WCM (Word Complexity Measure):
8 parameters from Stoel-Gammon (2010): 1. More than 2 syllables: +1 2. Non-initial stress: +1 3. Word-final consonant: +1 4. Consonant cluster: +1 per cluster 5. Velar (k, g, ŋ): +1 per occurrence 6. Liquid/rhotic (l, ɹ): +1 per occurrence 7. Fricative/affricate (f, v, θ, ð, s, z, ʃ, ʒ, h, tʃ, dʒ): +1 per occurrence 8. Voiced fricative/affricate: +1 additional
Examples: - "cat" /kæt/ = 2 (velar /k/, final consonant) - "spray" /spreɪ/ = 5 (cluster, fricative /s/, liquid /ɹ/) - "strength" /strɛŋkθ/ = 11 (very high complexity)
Phonotactic Probability (3 of 6 properties shown; NOT filterable in Word Lists)¶
None of the Phonotactic Probability properties are platform_visible — this
whole category is absent from the "Numeric property" picker and from the
Word Lists results table / Lookup profile. They are computed for the full
~125K-word lexicon and returned by the word-detail API
(GET /api/words/:word), so they're reachable for API consumers and for
research use, but there's currently no in-app way to filter by them or see
them in Word Lists. (Below is the "avg" trio; three stress-marked siblings —
str_phono_prob_avg, str_positional_prob_avg, str_neighborhood_density —
also exist in the API response but aren't documented in depth here.)
| Property | Range | Source | Description | Coverage |
|---|---|---|---|---|
| Biphone Probability | 0-1 | Method: Vitevitch & Luce (2004); computed from CMU dict | Mean probability of phoneme sequences (higher = more typical) | ~100% |
| Positional Probability | 0-1 | Method: Vitevitch & Luce (2004); computed from CMU dict | Mean probability of phonemes at their position in the word | ~100% |
| Neighborhood Density | 0-50+ | Method: Vitevitch & Luce (2004); computed from CMU dict | Number of phonological neighbors (edit distance 1) | ~100% |
Biphone Probability: - Measures how typical the sound sequences are in English - Computed on the full phonology-bearing lexicon (125,756 words) for unbiased estimates - Higher values = more phonotactically "legal" or common sequences
Interpretation: - 0.00-0.02: Very low (unusual sequences like "strengths") - 0.02-0.05: Low-moderate (e.g., "splash", "squid") - 0.05-0.10: Moderate-high (e.g., "cat", "dog", "jump") - 0.10+: Very high (very typical sequences like "mama", "see")
Neighborhood Density: - Count of phonological neighbors at edit distance 1 (substitution, addition, or deletion of one phoneme) - Standard metric originating with Vitevitch & Luce (2004); PhonoLex computes the value directly from the CMU Pronouncing Dictionary - Higher values = the word sits in a denser phonological neighborhood
Positional Probability: - Measures individual phoneme frequencies in onset/nucleus/coda positions - Independent of sequence probability (biphone) - Higher values = phonemes that occur frequently in their positions
Clinical/Research use: - High phonotactic probability correlates with faster word learning - Children acquire high-probability patterns before low-probability patterns - Useful for controlling word learning difficulty in intervention or research
Lexical Properties (2 properties)¶
| Property | Range | Source | Description | Coverage |
|---|---|---|---|---|
| Frequency | 0-1000+ | PhonoLex in-house (FineWeb-Edu, ~800M tokens) | Occurrences per million tokens in an educational web corpus | ~100% canonical |
| Age of Acquisition (AoA) | 1-7 (age-banded: 1≈0-2y, 7≈13y+) | PhonoLex in-house gpt-4.1-mini cloze | Age band at which a word is typically learned (1=earliest, 7=latest). Validated Spearman 0.868 vs Glasgow Norms | ~100% canonical |
Frequency: - Derived in-house from the FineWeb-Edu educational web corpus (~800M tokens) - CYP-LEX child-corpus frequency bins (ages 7-9, 10-12, 13+) exist in the underlying lexicon data but are retired from the UI, not exposed as Word Lists filters - Log-transformed for UI (actual values are log10 per million)
Interpretation (raw scale, for reference — see filtering note below): - 0-5: Very rare words - 5-20: Uncommon words - 20-100: Common words - 100+: Very high frequency words
Filtering: the Frequency filter rule doesn't take a raw occurrences-per-million number. It's a percentile-rank bucket picker: Rare (bottom 10%), Uncommon (10th-40th), Medium (40th-70th), Common (70th-90th), Very common (top 10%). A word's percentile rank and its raw frequency value don't move together linearly, so "Common" isn't the same cut as "20-100" above — use the bucket labels, not the raw-scale numbers, when building a filter.
Age of Acquisition: - PhonoLex in-house LLM-cloze derivation (gpt-4.1-mini), validated against the Glasgow Norms (Spearman 0.868) - Scale: 1 (very early, <3 years) to 7 (late, adult years) - Correlates with processing speed and naming accuracy
Interpretation: - 1-2: Early childhood words (mommy, cat, eat) - 3-4: Elementary school words (book, teacher, happy) - 5-6: Middle/high school words (concept, analyze, determine) - 7: Late acquisition words (arcane, ephemeral, juxtapose)
Semantic Properties (2 properties)¶
| Property | Range | Source | Description | Coverage |
|---|---|---|---|---|
| Familiarity | 1-7 | PhonoLex in-house (Glasgow-scale anchor) | Word familiarity (1=unfamiliar, 7=very familiar) | ~100% canonical |
| Concreteness | 1-5 | PhonoLex in-house (Brysbaert-scale anchor) | Concrete vs. abstract (1=abstract, 5=concrete) | ~100% canonical |
Familiarity: - PhonoLex in-house derivation on a Glasgow-scale anchor - Distinct from frequency (can be familiar but rarely used) - Example: "elephant" = high familiarity, moderate frequency
Concreteness: - Measures how concrete (physical) vs. abstract a concept is - PhonoLex in-house derivation on a Brysbaert-scale anchor - High concreteness: table, water, run - Low concreteness: truth, love, think
Affective Properties (2 properties)¶
| Property | Range | Source | Description | Coverage |
|---|---|---|---|---|
| Valence | 1-9 | PhonoLex in-house (Warriner-scale anchor) | Emotional valence (1=very negative, 9=very positive) | ~100% canonical |
| Arousal | 1-9 | PhonoLex in-house (Warriner-scale anchor) | Emotional arousal (1=calm, 9=excited/intense) | ~100% canonical |
Valence: - Emotional positivity/negativity - Negative (1-3): war, death, hate, fear - Neutral (4-6): table, walk, window - Positive (7-9): love, happy, success, joy
Arousal: - Emotional intensity/activation - Low arousal (1-3): calm, sleep, relax, quiet - Medium arousal (4-6): walk, think, read - High arousal (7-9): excited, angry, panic, thrill
Filter Logic¶
AND Logic: All filters must be satisfied
Example query:
Pattern: STARTS_WITH /s/
Filter: Frequency = Common or higher (percentile bucket)
Filter: Syllables = 1
Filter: Concreteness ≥ 4.0
Result: Words that start with /s/ AND are high-frequency
AND are monosyllabic AND are concrete
Matches: sun, sea, sock, snow
Does not match: sad (concreteness too low),
seven (two syllables),
see (frequency too low)
Missing Data: Words without a property are excluded when filtering by that property
Example:
Filter: Concreteness ≥ 4.0
Only words with concreteness data are considered.
Words without a concreteness value are excluded from results.
Phoneme Exclusions¶
Purpose: Exclude words containing specific phonemes
Use cases: - Avoiding error sounds (e.g., exclude /s/ when child substitutes s→θ) - Creating phoneme-specific lists (e.g., /k/ words without /g/) - Controlling phonological context
Example:
Pattern: STARTS_WITH /k/
Exclude: /g/
Exclude: /s/
Result: /k/ words without /g/ or /s/
Matches: cat, car, cut, candy
Does not match: cat+s (has /s/), big (has /g/)
Technical details: - Exclusions apply to entire IPA transcription - Multiple exclusions create additional AND conditions - Case-sensitive (e.g., excluding /i/ won't exclude /ɪ/)
Export Formats¶
CSV Export¶
Click Export above the results table (or select specific rows first — Export then applies to just the selection) and choose Download CSV. The exported columns are Word, IPA, plus whatever's currently checked in the Columns picker. Toggling a column on/off in the picker only offers the 12 filterable properties (see the note above) — Word Lists' Columns picker does not let you add or remove Phonotactic Probability, morphological, or other non-platform properties.
Format (default columns):
Word,IPA,Syllable Count,Word Complexity Measure,phono_prob_avg,Word Frequency,Age of Acquisition,Familiarity,Concreteness,Valence,Arousal
cat,kæt,1,2,0.062,182.5,2.1,6.9,4.93,7.2,3.8
dog,dɔg,1,1,0.054,245.3,1.8,7.0,5.0,7.5,4.2
phono_prob_avg (Biphone Probability) ships in every CSV export by default,
with its raw column id rather than a friendly label — it's baked into the
table's default column set even though it isn't filterable, isn't a toggle
option in the Columns picker, and isn't rendered as an on-screen column. No
other Phonotactic Probability property (Positional Probability, Neighborhood
Density, or the stress-marked variants) appears in the export.
Details:
- Header row with property names (or raw column ids for the phono_prob_avg exception above)
- One word per row
- Empty cells for missing properties
- IPA in standard Unicode characters
- Numbers use decimal notation
File size: ~1 KB per word
Copy Words¶
There's no separate "Copy" button in Word Lists — the plain single-click Copy button that appears in some other PhonoLex tools is a display mode Word Lists doesn't use. To copy words instead of downloading a CSV, click Export and choose:
- Copy Words (Plain Text) — one word per line
- Copy Numbered List —
1. word,2. word, ...
cat
dog
house
Both options copy your current row selection if you've selected any rows (via the checkboxes), or the full visible results if you haven't selected anything.
Use case: Quick copying for clinical materials
Advanced Query Examples¶
See Practical Examples for detailed walkthroughs, including:
- Example 1: Simple CVC words for early intervention
- Example 2: Initial /s/ words with semantic scaffolding
- Example 3: Late-developing sounds in simple contexts
- Example 4: Negative valence words for emotional language
- Example 5: Excluding problematic phonemes
Performance Characteristics¶
Queries run server-side: the browser sends the composed rules to the PhonoLex Worker API, which compiles them into a single SQL query against the D1 database. Response time depends mainly on how many rules are active and how large the result set is; typical queries return in well under a second.
Data Coverage & Limitations¶
Coverage by Property¶
| Category | Properties | Filterable in Word Lists? | Coverage |
|---|---|---|---|
| Phonological | Syllables, Phonemes, WCM | Yes | ~100% |
| Phonotactic | Biphone Prob, Positional Prob, Neighborhood Density | No — data-layer/API only | ~100% |
| Lexical | Frequency, AoA | Yes | ~100% canonical |
| Semantic | Familiarity, Concreteness | Yes | ~100% canonical |
| Affective | Valence, Arousal | Yes | ~100% canonical |
The in-house norm set (AoA, concreteness, familiarity, valence, arousal, iconicity, body-object interaction, socialness, semantic diversity) covers essentially the whole canonical vocabulary; phonological and phonotactic properties cover the full lexicon.
Vocabulary Limitations¶
Included: - General American English dialect - The canonical content vocabulary (words with established psycholinguistic norms)
Pronunciation variants: - STARTS_WITH and ENDS_WITH match against the primary pronunciation only - CONTAINS (and CONTAINS_MEDIAL) is variant-aware — it also matches pronunciation variants (CMU entries with (1), (2), etc.)
Excluded by default (canonical filter): - Proper nouns and name-like entries - Function words (pronouns, determiners, auxiliaries) - Abbreviations, foreign-word fragments, and other non-content entries
Total vocabulary: ~125K CMU-phonology entries (~48K canonical content words carry the full norm set)
Technical Limitations¶
Cannot filter by: - Phoneme features directly (e.g., "all fricatives") - use pattern matching or Lookup tool - Orthographic properties (spelling patterns) - Grammatical category (noun, verb, etc.)
Morphological complexity is NOT currently filterable in Word Lists: Morpheme Count, Prefix Count, and Suffix Count are computed in-house and round-trip through the word-detail API, but are not yet exposed in the Word Lists property picker.
Pattern matching: - Exact phoneme matching only (no fuzzy matching) - Cannot match phonological classes (e.g., "any stop") - Cannot use regular expressions directly
Tips & Best Practices¶
Getting Started¶
- Start simple: Begin with one pattern, then add filters incrementally
- Check the count: there's no live preview before you build — the match count (and a "showing first N" note if the result set is capped) appears in the results header only after you click Build Word List; adjust filters and rebuild to iterate
- Iterate: Adjust filters to get desired word count (aim for 20-50 words for clinical use)
Optimization¶
- Use frequency filters: Ensures functional, commonly-used words
- Combine complexity measures: Use WCM + syllable/phoneme counts for precise developmental targeting
- Consider missing data: Filtering by a norm excludes words without a value for it
Clinical Applications¶
- Early intervention: Low WCM + high frequency + high concreteness
- Phoneme-specific practice: Pattern matching + exclusions + frequency
- Semantic therapy: High concreteness + valence/arousal filters
- Literacy support: Monosyllabic + high frequency + moderate AoA
Research Applications¶
- Stimulus control: Match WCM, frequency, AoA across conditions
- Semantic variables: Control concreteness and familiarity
- Affective content: Select words by valence and arousal
- Phonological complexity: Systematic manipulation of WCM, syllable/phoneme counts
References¶
Phonological Complexity: - Stoel-Gammon, C. (2010). The Word Complexity Measure: Description and application to developmental phonology and disorders. Clinical Linguistics & Phonetics, 24(4-5), 271-282.
Phonotactic Probability: - Vitevitch, M. S., & Luce, P. A. (2004). A Web-based interface to calculate phonotactic probability for words and nonwords in English. Behavior Research Methods, Instruments, & Computers, 36(3), 481-487. (Method origin; PhonoLex computes the values directly from the CMU Pronouncing Dictionary.)
Psycholinguistic Norms (scale anchors for the in-house derivations): - Brysbaert, M., et al. (2014). Concreteness ratings for 40 thousand English words. Behavior Research Methods, 46, 904-911. - Scott, G. G., et al. (2019). The Glasgow Norms: Ratings of 5,500 words. Behavior Research Methods, 51, 1258-1270. - Warriner, A. B., et al. (2013). Norms of valence, arousal, and dominance. Behavior Research Methods, 45, 1191-1207.
See Also¶
- Practical Examples - Hands-on examples with expected results
- Technical Architecture - Pattern matching implementation details
- Psycholinguistic Norms Reference - Complete property documentation