In languages with limited syllable structures (CV and CVC), how can I get data on the respective percentages of words in the known vocabulary that have 1 syllable, 2 syllables, 3 syllables, and 4 syllables? e.g.

In nonce language X, 20% of the words have one syllable, 40% have two syllables, 30% have three syllables, and 10% have four syllables?

Approximations will suffice.

  • 1
    "known vocabulary" is probably a bad normaliser, because lesser used words tend to be longer than the most frequent words—the effect will be a dependency on the size of the known vocabulary! It is better to normalise either on a corpus that is typical or use word frequency lists and ask for TOP-X (1000, 10000). Jul 16, 2019 at 9:33

1 Answer 1


You could simply count the vowels per word, as with those syllable structures the number of vowels is equal to the number of syllables: each CV or CVC pattern has exactly one vowel.

This is only problematic if you process written text and some letters can be both vowels or consonants, such as /y/ in English. But that might be resolvable through context, eg if /y/ is followed by a vowel, it would itself be a consonant, as in yell, yawn, etc.

  • There are other potential issues: Spelling conventions like double vowel letters for long vowels, things like the French spelling "ou" for /u(:)/, diphthongs, but I agree that in principle a relatively simple syllable counter can be written in a few dozen lines of code. Jul 22, 2019 at 13:05
  • @jknappen Yes -- it's a simplification, and will not give 100% accurate results. If there are specific conventions in the language you're looking at, you can code for it. The /ou/ case could be covered by the CVC pattern: you cannot have two adjacent vowels. The other question is: how important is it to have the odd mistake? Always a trade-off between effort you put in and accuracy. Jul 22, 2019 at 13:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.