我有 100,000 多个单词到它们的音素( CMUdict )的映射,例如:
ABANDONED => [ 'AH', 'B', 'AE', 'N', 'D', 'AH', 'N', 'D' ]
我想将原始单词的字母分成与音素数量相等的多个组,例如
ABANDONED => [ 'A', 'B', 'A', 'N', 'D', 'O', 'N', 'ED' ]
我没有音素到字素的映射,但似乎我应该能够计算音素到字素的统计模型,然后使用它来决定在哪里拆分每个单词。 (如果该模型也可以用于将新单词转换为其可能的音素,那就太好了)
我怎样才能做到这一点?我在想隐藏的马尔可夫模型听起来可能适用,但除此之外我不知道。
最佳答案
要收集统计信息,首先通过匹配相同的字母和音素(如 N
和 N
)将单词与其语音表示对齐。您可以获得与动态规划的最佳匹配。然后,您可以将单词的剩余字符映射到剩余的音素。
计算频率后,您可以使用噪声 channel 模型将新词转换为音素。
关于nlp - 给定 100,000 个词到音素的映射,如何在音素边界上拆分原始词?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14556856/