2012-05-08 38 views
2

我正在寫一段代碼在C++中,我需要一個字到音節轉換器是否有任何開源的標準算法可用或任何其他的鏈接,可以幫助我建立一個。單詞到音節轉換器

for a word like invisible syllable would be in-viz-uh-ble 

它應該是理想的,甚至可以解析複雜的詞,如「隱形」。

我已經找到了一個鏈接到一個Perl和Python的算法,但我想知道是否有庫是在C++中

非常感謝。

+0

背後的應用是什麼? – log0

+0

我不認爲沒有字典就沒有英文的可能。英語已經失去了拼寫和發音之間的1對1映射,甚至連音節的數量都沒有從拼寫中出現。 – skyking

回答

4

您的示例顯示了該單詞的語音表示形式,而不是簡單地將其拆分爲音節。這是一個複雜的NLP問題。

看看soundexmetaphone。兩者都有C/C++實現。

還有很多字典提供了IPA字的表示法。看看維基教科書的API。

+0

Soundex和metaphone是哈希算法,他們不做轉錄。 –

+0

從技術上講,它們都是粗略的拼音。對soundex非常具有破壞性,更多的metaphone防腐劑。兩者或多或少地拋棄了元音,所以我承認,根據OP如何使用它們可能不會有趣。 – log0

+0

您可能想要在C++ 11中調查我的[double_metaphone](https://github.com/pixelglow/double_metaphone)實現。它有一個回調參數,它允許你恢復原始元音或者標記原始單詞的各個部分,這大概接近音節。 –

0

對於用語言檢測音節,您可以根據您的需求調整我的項目。 它叫tinyhyphenator

它給你一個單詞內所有可能的連字索引的整數列表。對於德國人來說,它確實呈現出來。你將不得不獲得索引列表並自己插入連字符。

「適應」我的意思是添加英語音節規範。看看源代碼,它應該是相當自我解釋的。