Tôi đã trải qua bài này mà sử dụng nltk
là cmudict
cho đếm số lượng âm tiết trong một từ:
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()]]
Tuy nhiên, đối với các từ bên ngoài từ điển của cmu như tên chẳng hạn : Rohit
, nó không mang lại kết quả.
Vì vậy, có cách nào khác / tốt hơn để đếm âm tiết cho một từ không?
1
Chà, wordcalc.com có thể xử lý "Rohit", nên có vẻ như điều đó là có thể. Tôi không biết làm thế nào nó làm điều đó mặc dù. . . và nó không hoàn hảo.
—
Neil Slater
wordcalc.com đã cho "âm tiết" đếm 1 (tôi gọi nó là 3). Tôi nghĩ rằng nó có thể đang sử dụng các quy tắc gạch nối từ câu hỏi được liên kết của bạn. Có vẻ như những điều này trùng với các âm tiết phát âm rất nhiều thời gian, nhưng không phải là 100%.
—
Neil Slater