newLISP Fan Club

Forum => newLISP in the real world => Topic started by: kanen on September 07, 2014, 12:59:44 PM

Title: Syllables
Post by: kanen on September 07, 2014, 12:59:44 PM
I'm doing something which requires me to understand how many syllables are in a word I've retrieved.



Anyone have any experience figuring this out in newLisp?
Title: Re: Syllables
Post by: rickyboy on September 07, 2014, 01:54:31 PM
Kanen,



To answer your question, no.  But, assuming you mean English words and you want a purely algorithmic approach, it looks like the best you can do it is by heuristic.  The first (highest voted answer) on this stackoverflow post (//http) has a link to the TeX hyphenation algorithm.  That looks pretty promising.



Also, maybe there is an on-line dictionary of English words that are already hyphenated to which you could appeal (i.e. have a lookup table).



Good luck, man!
Title: Re: Syllables
Post by: rrq on September 07, 2014, 03:49:28 PM
If you are looking at syllables in terms of sound (rather than the hyphenation problem), you might do something fun with

//http://svn.code.sf.net/p/cmusphinx/code/trunk/cmudict/cmudict.0.7a

which is an english phonetic dictionary (copyright CMU). You'll probably need to compound certain phoneme series into syllables before counting.
Title: Re: Syllables
Post by: rickyboy on September 07, 2014, 03:57:35 PM
Looks like that could be made into a nice lookup table.  It's easy to see the pronounced vowel sounds (in the code) and count them.  That count should equal the syllable count.  Nice find, Ralph!
Title: Re: Syllables
Post by: kanen on September 08, 2014, 02:52:53 PM
You guys are very helpful. With a little training and some newLisp magic, I figured it out and created a giant table from my results.



(set 'phonetics '(
  ("AABERG" 2)
  ("AACHEN" 2)
  ("AACHENER" 3)
  ("AAKER" 2)
  ("AALSETH" 2)
  ("AAMODT" 2)
  ("AANCOR" 2)
  ("AARDEMA" 3)
  ("AARDVARK" 2) ... )
Title: Re: Syllables
Post by: Lutz on September 08, 2014, 04:17:33 PM
... now with the phonetics association list, you can quickly create a context for lookup:



> (new Tree 'Syllables)
Syllables
> (Syllables phonetics)
Syllables
> (Syllables "AARDEMA")
3
>


see also here: http://www.newlisp.org/downloads/newlisp_manual.html#hash