Eu já passei por este post que usa nltk
's cmudict
para contar o número de sílabas em uma palavra:
from nltk.corpus import cmudict
d = cmudict.dict()
def nsyl(word):
return [len(list(y for y in x if y[-1].isdigit())) for x in d[word.lower()]]
No entanto, para palavras fora do dicionário do cmu, como nomes por exemplo:, Rohit
ele não fornece um resultado.
Então, existe alguma outra / melhor maneira de contar sílabas para uma palavra?
Respostas:
Você pode tentar outra biblioteca Python chamada Pyphen . É fácil de usar e suporta muitos idiomas.
fonte
Eu estava enfrentando exatamente o mesmo problema, foi o que fiz:
Capture o erro de chave que você recebe quando a palavra não é encontrada no dicionário do cmu, como abaixo:
Chame a função de sílabas abaixo
fonte