2

As in title. Lets say we have uhm anything (hollywood):

/hɑˈliwʊˌd/

now how to make algorithm that will find all syllables in this IPA transcription:

/hɑˈliwʊˌd/ => /hɑ.li.wʊd/

We can do this, because we have brains and ears and mouths too. But computer has just processor.

C is for Consonant, V is for Vowel

CVCVCVC

Now lets begin from left to right. We know that every syllable must have one vowel and not more, plus zero or more consonants. How to decide which consonant belongs to which vowel? Based on CVCVCVC it could be more than one shape:

CVC.VC.VC
CV.CVC.VC
CV.CV.CVC

so how to decide?

1
  • 1
    You can know for sure in some languages (like Spanish, which prefers open syllables except for clusters that are broken between them, except for a finite list of clusters that can be syllable initial), but for others like English it's not predictable, and non uncommonly inconsisten or ambiguous. Also not every English syllable requires a vowel — my dialect is known for syllabic /n/ and /l/, and I'd be curious if anyone could, per a recent English.SE question, give a breakdown for y'all'dn't've (being given the IPA) that everyone would agree on :-) May 25, 2016 at 17:46

3 Answers 3

4

It depends on the particular IPA transcription, that is, the level of detail provided. Also accuracy -- if you give it it should crash as being ill-formed (plus, it stresses the wrong syllable), though it should accept <ˈhɑliˌwʊd> as well as <ˈhɑliwʊd>. It also depends on your theory of syllabification. For example, hammer can be syllabified in three ways: [ˈhæ.mɹ̩], [ˈhæm.ɹ̩], and [ˈhæṃɹ̩] where the syllable break is internal to . There is also an option of turning i.e. ambisyllabic C into two Cs, so [ˈhæm.mɹ̩].

The answer really depends on the nature of your IPA data. Because stress marks are supposed to go at the beginning of a stressed syllable, that gives you a tremendous advantage (assuming that your data is stress marked). There are many clues that you can use to go from an IPA transcription to syllabification. For example, aspiration can only appear syllable initially, so any character followed by <ʰ> should be preceded by a syllable break; [ɾ] only appears at the beginning of a syllable. If a transcription doesn't include aspiration, you can't use that evidence. You can start by focusing on "vowels", but there is a lot of variation in whether people write <ən> vs , or <ɚ> vs. <ɹ̩>, which would complicate your algorithm.

2
  • " [ɾ] only appears at the beginning of a syllable." Perhaps you meant "at the end ...".
    – Greg Lee
    May 26, 2016 at 0:19
  • No, but I am aware of your position on Kahnian ambisyllicity phenomena. That's a well-known example of how you have to assign syllabification in a theory-dependent way.
    – user6726
    May 26, 2016 at 0:29
2

Donald Knuth gives a very compact algorithm in the TeXbook (or else in the source for TeX itself) for determining hyphenation points while line-breaking during justification of text. It is from an MA thesis written by one of his students, as I recall. I once used his method in a text formatting program I wrote, but the algorithm itself is quite opaque in the form it has in the TeX source.

Knuth also has a good discussion in the TeXbook of what one wants in such an algorithm -- it has to avoid inaccuracies, because human readers will pick up on bad hyphenations quite readily. He mentions the classic case of "record", which as a verb should be re-cord, but as a noun should be rec-ord. Correspondingly, theories of English syllabification will tell you that a single medial C is pushed out of the following syllable when the preceding vowel is stressed and the following vowel is unstressed.

For the case of print formatting, in the case of "record", you want the algorithm to tell you not to attempt hyphenation, unless of course you have a transcription with stresses (or syllabification) marked.

Unless we have some information about how mistakes in syllabification are to be detected (for print formatting there are hyphenation dictionaries), I don't see how to really answer your question.

1

This question at StackOverflow seems to have several nice answers about the strictly formal algorithms of English syllabification: Detecting syllables in a word, including some open source ones. Admittedly, not all of these contain some plain-text explanation (I guess, this is what you primarily need), so it may require programmer's experience to understand the logic behind the program code.

Also, in their essay, "Evaluating Automatic Syllabification Algorithms for English" (PDF), Yannick Marchand et.al. compare one rule set based on expert knowledge and three data-driven methods based on automatic inference from a corpus of already-syllabified words.

P.S. Googling for syllabification algorithm is also a great start.

1
  • This answer is good formally, but one could just use a greedy regular expression of the syllable template if a quick solution is wanted, then work up from there. For instance, This Java solution -- focus on capturing vowels.
    – sventechie
    May 25, 2016 at 21:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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