Как стать автором
Обновить

Нюансы распознавания речи. Восстанавливаем пунктуацию, числа и заглавные буквы

Время на прочтение6 мин
Количество просмотров6.2K
Всего голосов 22: ↑22 и ↓0+22
Комментарии12

Комментарии 12

Спасибо большое. А то @Christina29 и @snakers4 не делятся кодом, как именно надо тренировать 😊

Возможно, у коллег что-то более хитрое и оптимизированное.

Я вижу ценность в том, что это можно попробовать для других языков, для которых таких моделей пока нет. Так что ждем результатов по башкирскому языку 😊.

@snakers4не делится кодом тренировки, потому, что ему нужно откуда-то платить зарплату сотрудникам. Сбер же прекрасно профинансировался из нашего с вами Фонда Национального Благосостояния, у них уже все хорошо.

Если опустить очевидные риски использования "черных коробок" и зависимости от аттракционов неслыханной щедрости (к которым также можно отнести использование фреймворков, которые неизбежное зло), то могу заметить только то, что доведение моделей до нужного качества и свойств занимает обычно нетривиальное количество времени.

Детей в школе учат правилам, почему нельзя использовать чёткий алгоритм?

Можно потом скорректировать результат, если в где-то одинаково неправильно?

Детей, например, учат, что имя собственное должно быть с большой буквы. Дети понимают это и дальше сами решают, что к этому относятся. Для модели такое правило сформулировать трудно. Поэтому мы обучаем модель на корпусе текстов и она сама "учится", как писать правильно.

С пунктуацией можно составить модель на правилах, но это будет очень сложно, -- понадобятся силы лингвистов, которые должны будут над этим работать. А если понадобится сделать модель, скажем, для венгерского, то придется искать венгерских лингвистов 😊 и т.д. Гораздо проще найти корпус венгерской литературы и обучиться на нем.

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

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

Данные для модели ведь всё равно надо готовить, так? То есть всё равно нужны обученные люди. Как исправляются ошибки, которые сеть будет делать?

Сколько вообще языков в мире с различающимися правилами?

Данные берутся сырые (просто тексты), из того же домена, на котором планируется использовать модель. Например, берете дамп википедии, учите на нем. Все.

Ошибки будут, но мы в этой задаче лишь улучшаем читаемость текста, а не делаем его литературным.

Про языки вопрос интересный. Я бы сказал, что если язык естественный, то правила и нормы у него со временем меняются, поэтому применять одни и те же законы к двум разным языкам все равно будет не надежно. Самих языков (и это смотря что под этим понимать) около 7000, думаю и правил столько же.
Исключением в этом плане был бы эсперанто (и другие плановые языки), в котором нет исключений.

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

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

А лингвистов ещё пойди найди в нужном количестве.

А как это работает в Word, предлагая корректировку при вводе текста?

Думаю, от версии к версии идёт так же, как и развитие NLP в общем — сначала модели на правилах, потом статистические модели, потом нейросетевые.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий