Как эффективно создать файл грамматики для распознавания речи с учетом большого списка слов? - PullRequest
1 голос
/ 17 марта 2009

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

Пример:
Скажем, у нас есть "RC Cola" и "Pepsi Cola" У нас будет файл грамматики, состоящий из 2 правил:
НАПИТОК: (КОЛАНАЯ? [Содовая кола))
КОЛАНАЙМ: [rc pepsi]
Он будет признавать "RC", "RC Coke", "RC Cola", "RC Soda", "Pepsi", "Pepsi Coke", "Pepsi Cola" и "Pepsi Soda".

Edit: Я говорю о грамматике для распознавания речи. Системы распознавания речи нуждаются в сопровождающем файле грамматики, чтобы они знали, что распознавать (gsl, grxml). И на самом деле я думал не о каких-либо словах, а о чем-то вроде имен, которые нельзя классифицировать по категориям.

Ответы [ 5 ]

5 голосов
/ 17 марта 2009

Теперь я вижу. Вы имеете в виду грамматики. Заданные вами форматы грамматики являются кузенами контекстно-свободных грамматик. Существует область исследований, посвященная автоматическому изучению контекстно-свободных грамматик. Вероятностные контекстно-свободные грамматики являются центральными в этой области. См. Заметки Рони Розенфельда (PostScript) об обучении PCFG, Байесовская версия (zips postscript) и неконтролируемое обучение PCFG (PDF) . Это активные области исследований, и с тех пор, как были написаны эти документы, ситуация изменилась. Евгений Черняк - плодовитый исследователь в этой области.

1 голос
/ 19 сентября 2009

При лексиконе из 50-100 тысяч слов вам почти наверняка лучше создать грамматику диктовки, а не пытаться создавать контекстно-свободную грамматику. У Microsoft есть Dictation Resource Kit , доступный бесплатно; Я не использовал его, поэтому я не могу комментировать, насколько он полезен.

0 голосов
/ 31 марта 2009

У меня нет ответа, который решит мои проблемы, но ответ Ювала ясно указывает на то, что этот вопрос все еще находится в стадии разработки и не является достаточно зрелым. Я понимаю, что, вероятно, сейчас нет простого грамматического исправления (по крайней мере, за пределами исследовательских лабораторий). Единственное решение для создания хорошей грамматики сейчас - это, вероятно, постоянное изучение пользовательского ввода и гибкий рефакторинг файлов грамматики.

0 голосов
/ 17 марта 2009

Полагаю, вы имеете в виду пометку части речи; самый быстрый подход заключается в использовании автоматического тегера и ручной проверки (и исправления) результатов. Даже если у теггера скорость попадания составляет 60-70%, это все равно значительно уменьшит объем работы.

0 голосов
/ 17 марта 2009

Совершенно случайные / смелые идеи с моей головы:

-Вы можете попытаться классифицировать слова по категориям (существительное, глагол и т. Д.), А затем сформировать потенциально правильные формы для целых утверждений / предложений на основе классов слов. Затем вы можете попытаться подогнать новые тестовые данные к ранее определенной модели на основе слов и порядка их использования.

-Мне было бы любопытно использовать какой-то алгоритм машинного обучения для обучения правильному использованию слов, основанных на каких-то учебных данных или литературе. Изучив алгоритм, вы можете попытаться классифицировать новые входящие данные на основе предыдущих результатов.

...