Contar sílabas em Python

Lakshay Kapoor 30 janeiro 2023
  1. Use a instrução if em Python para contar sílabas
  2. Use dicionário e compreensão de lista em Python para contar sílabas
  3. Use o Dicionário pela função fromkeys() em Python para contar sílabas
  4. Use as funções str() e set() em Python para contar sílabas
Contar sílabas em Python

Contar palavras, frases, letras e alguns caracteres específicos é uma tarefa comum de se fazer na programação. Em todas essas tarefas, contar sílabas em uma palavra ou frase também é uma coisa muito comum de se fazer pelo usuário.

Neste tutorial, veremos diferentes métodos pelos quais podemos contar sílabas em python.

Use a instrução if em Python para contar sílabas

Neste método, inserimos uma string com a ajuda da função input(), uma função embutida em python.

Exemplo:

word = input("Enter the word:")
syllable_count = 0
for w in word:
    if (
        w == "a"
        or w == "e"
        or w == "i"
        or w == "o"
        or w == "u"
        or w == "A"
        or w == "E"
        or w == "I"
        or w == "O"
        or w == "U"
    ):
        syllable_count = syllable_count + 1
print("The number of syllables in the word is: ")
print(syllable_count)

Aqui, o usuário pode inserir qualquer palavra para usar a função input(). A contagem de sílabas foi definida como 0 inicialmente, e todas as sílabas a serem retornadas da palavra foram mencionadas usando um loop for. Observe que todas as sílabas foram dadas em caixa baixa e também em caixa alta.

Resultado:

Enter the word: Beautiful
The number of syllables in the word is: 5

Use dicionário e compreensão de lista em Python para contar sílabas

Na compreensão de lista, uma nova lista é feita com base nos elementos de uma lista existente. Depois de usar a compreensão de lista, a saída vem na forma de um dicionário.

O dicionário em python é uma coleção de itens armazenados em uma ordem específica. Cada item do dicionário tem seu próprio valor. O valor do item pode ser conhecido se o nome do item for conhecido.

Exemplo:

sentence = "Hello, Let us see how many syllables are there in this sentence"
sentence = sentence.casefold()


vowel_count = {s: sum([1 for letter in sentence if letter == x]) for s in "aeiou"}

print(vowel_count)

Observe que a função casefold() é usada no código acima. A função casefold() ajuda a converter uma string ou um conjunto de strings para minúsculas. Portanto, se houver algumas sílabas na frase dada em maiúsculas, esta função transforma essas sílabas em minúsculas. Agora não há necessidade de mencionar as sílabas que devem ser retornadas em maiúsculas e minúsculas.

Além disso, o método sum() usado no código acima calcula a soma total dos valores de cada item da lista.

Resultado:

{'a': 3, 'e': 11, 'i': 2, 'o': 2, 'u': 1}

Você pode ver que a saída retornada é um dicionário que possui diferentes itens como sílabas com seus valores especificados.

Use o Dicionário pela função fromkeys() em Python para contar sílabas

Com a ajuda da função fromkeys(), um dicionário pode ser feito com diferentes itens e seus valores especificados.

Também neste método, usamos a função casefold() para que o conjunto de strings fornecido seja convertido em letras minúsculas e possamos obter a entrada do próprio usuário. Além disso, mesmo neste método, inicializamos a contagem de sílabas com 0.

Exemplo:

syllables = "aeiou"

word = input("Enter a word or a sentence: ")
word = word.casefold()


syllable_count = {}.fromkeys(syllables, 0)

for w in word:
    if w in syllable_count:
        syllable_count[w] += 1

print(syllable_count)

Resultado:

Enter a word or a sentence: Hello, Let Us See How Many Syllables Are There In This Sentence
{'a': 3, 'e': 11, 'i': 2, 'o': 2, 'u': 1}

Use as funções str() e set() em Python para contar sílabas

A função set() é usada para retornar um objeto definido no qual todos os itens não estão em uma ordem específica. Esta função também remove os itens do conjunto que são repetidos.

Com a ajuda da função str(), qualquer valor ou objeto pode ser convertido em uma string.

Neste método, as sílabas serão o argumento da função set que significa que um conjunto de sílabas é criado.

Exemplo:

def syllable_count(str):
    count = 0

    syllables = set("AEIOUaeiou")

    for letter in str:
        if letter in syllables:
            count = count + 1

    print("Total no. of syllables :", count)


str = "beautiful"

syllable_count(str)

Resultado:

Total no. of syllables : 5
Lakshay Kapoor avatar Lakshay Kapoor avatar

Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.

LinkedIn