Учитывая 100 000 отображений слов в фонемы, как я могу разделить исходные слова по границам фонем?

У меня есть сопоставление более 100 000 слов с их фонемами (CMUdict), как:

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

Я хочу разбить буквы исходных слов на количество групп, равное количеству фонем, например.

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

У меня нет сопоставления фонем с графемами, но кажется, что я должен быть в состоянии вычислить статистическую модель фонем с графемами, а затем использовать ее, чтобы решить, где разделить каждое слово. (Было бы неплохо, если бы модель можно было использовать и для преобразования новых слов в их вероятные фонемы.)

Как я могу это сделать? Я думал, что скрытая марковская модель звучит так, как будто она может быть применима, но кроме этой догадки я не знаю.


person tlrobinson    schedule 28.01.2013    source источник
comment
Кажется, это связанный вопрос: stackoverflow.com/questions/10825685/   -  person Ivan Sysoev    schedule 12.03.2018


Ответы (1)


Чтобы собрать статистику, сначала выровняйте слово по его фонетическому представлению, сопоставив идентичные буквы и фонемы (например, N и N). Вы можете получить наилучшее соответствие с помощью динамического программирования. Затем вы можете сопоставить оставшиеся символы слов с оставшимися фонемами.

Как только вы вычислите частоты, вы можете использовать модель зашумленного канала для преобразования новых слов в фонемы.

person Vsevolod Dyomkin    schedule 28.01.2013