nlp - 给定 100,000 个单词到音素的映射,如何在音素边界上分割原始单词?

标签 nlp artificial-intelligence hidden-markov-models markov-chains speech-synthesis

我有 100,000 多个单词到音素的映射 ( CMUdict ),例如:

ABANDONED => [ 'AH', 'B', 'AE', 'N', 'D', 'AH', 'N', 'D' ]

我想将原始单词的字母分成与音素数量相等的组,例如

ABANDONED => [ 'A', 'B', 'A', 'N', 'D', 'O', 'N', 'ED' ]

我没有音素到字素的映射,但似乎我应该能够计算音素到字素的统计模型,然后用它来决定在哪里分割每个单词。 (如果该模型也可以用于将新单词转换为其可能的音素,那就太好了)

我该怎么做?我当时认为隐马尔可夫模型听起来可能适用,但除了这种预感我不知道。

最佳答案

要收集统计数据,首先通过匹配相同的字母和音素(例如 NN),将单词与其语音表示形式对齐。通过动态规划可以获得最佳匹配。然后您可以将单词的剩余字符映射到剩余的音素。

计算出频率后,您可以使用噪声 channel 模型将新单词转换为音素。

关于nlp - 给定 100,000 个单词到音素的映射,如何在音素边界上分割原始单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14556856/

相关文章:

python - 使用 scikit-learn 加载文本数据时出现问题?

javascript - 简单的井字棋 AI

algorithm - 为什么前向-后向算法中的先验状态向量不是特征值为1的转移矩阵的特征向量?

matlab - 隐马尔可夫模型工具箱/库

java - 词网关系

nlp - 是否有一种语义相似度方法在语义准确性方面优于 word2vec 方法?

nlp - 什么是远程监管?

python - 在OCR python中占 'i'和 'j'点

python - 是否有启发式或元启发式或优化技术的 "Hello World"示例类型基础教程

opencv - 使用隐马尔可夫模型进行手形分析