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?
11
Bem, o wordcalc.com pode lidar com "Rohit", então parece que é possível. Eu não sei como está fazendo isso. . . e não é perfeito.
—
Neil Slater
wordcalc.com deu à "sílaba" uma contagem de 1 (eu chamaria de 3). Eu acho que pode estar usando as regras de hifenização da sua pergunta vinculada. Parece que coincidem com sílabas pronunciadas a maior parte do tempo, mas não 100%.
—
Neil Slater