Question: I'm looking for a fully accurate statement of an algorithm to count syllables in words. What I'm finding when I research is inconsistent or what I know to generate incorrect results. Does anyone have any suggestions of how to accomplish this? Thanks.

The algorithm I'm using now:

1. Count the number of vowels in the word.
2. Do not count double-vowels ("rain" has 2 vowels but is only 1 syllable)
3. If last letter in word is vowel do not count ("side" is 1 syllable)

Are there any more rules I'm missing? I'm trying to determine in testing for my incorrect results if the algorithm I'm using is wrong or my implementation of it.

Answer: 
from typing import Counter

```
def splitting_into_syllables(input_word):
    count = 0
    word1 = input_word.lower()
    vowels = set("aeiou")
    syll = list()
    temp = 0
    for letter in word1:
        if letter in vowels:
         count += 1
    if count == 1:
        print(count)
        return word1
    for index in range(1,len(word1)):
        if word1[index] in vowels and word1[index - 1] not in vowels:
            w = word1[temp: index+1]
            print(w)
            if len(w) != -1:
                syll.append(w)
                temp = index+1

    print(count)

user_input = input()
print(splitting_into_syllables(user_input))

```
What you need is a dictionary to map regular spelling of English words to their [International Phonetic Alphabet](http://en.wikipedia.org/wiki/International_Phonetic_Alphabet) equivalents. This has more accurate representations of syllables in the words. From that, you can make a more accurate syllable count. But, that doesn't account for variations in pronunciations.