我需要找到一種相當有效的方法來檢測單詞中的音節。例如,看不見-> in-vi-sib-le有一些音節化規則可以使用:V CV VC CVC CCV CCCV CVCC*其中V是元音,C是輔音。例如,發音(5個專業名詞; CV-CVC-CV-V-CVC)我嘗試了幾種方法,其中包括使用正則表達式(僅在您要計算音節時才有用)或硬編碼規則定義(被證明是效率很低的蠻力方法),最后使用了有限狀態自動機(沒有任何有用的結果)。我的應用程序的目的是創建給定語言的所有音節的字典。該詞典稍后將用于拼寫檢查應用程序(使用貝葉斯分類器)和文本到語音合成。如果能在我以前的方法之外給我提示另一種解決此問題的方法,我將不勝感激。我使用Java,但是使用C / C ++,C#,Python,Perl的任何技巧都可以為我工作。
3 回答

臨摹微笑
TA貢獻1982條經驗 獲得超2個贊
閱讀有關TeX解決此問題的方法,以進行連接。特別是請參見計算機作者弗蘭克·梁(Frank Liang)的論文論文 “字樣”。他的算法非常準確,然后針對該算法不起作用的情況提供了一個小的例外字典。

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
這是使用NLTK的解決方案:
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()]]
- 3 回答
- 0 關注
- 431 瀏覽
添加回答
舉報
0/150
提交
取消