Улучшенный алгоритм распознавания с помощью Yandex SpeechKit Cloud
Содержание
Введение
В данной статье показывается пример улучшения анализа распознанной речи с помощью сервиса выделения смысла.
На данный момент анализ текста проводится в компоненте "Распознавание речи" с помощью свойства "Предопределенные значения". Это может быть неудобным для анализа длинных выражений, так как чтобы получить код группы должно быть полное совпадение распознанного выражения с одним из предопределенных. Например, чтобы соединиться с инженерами техподдержкой, клиент может сказать:
- Соедините меня с отделом технической поддержки
- Переключите меня на инженеров
- Мне срочно нужны ваши программисты
Очевидно, что одна и та же фраза может содержать существительные в разных падежах, иметь разную длину и предугадать все возможные комбинации почти невозможно. Отметим однако, что встроенные возможности компонента легко решают задачу распознавания одного слова.
Идея улучшения анализа заключается в применении сервиса выделения смысла. Сервис разбивает фразу на отдельные слова (леммы), преобразовывая существительные в именительный падеж, а глаголы в инфинитив. После этого сценарий в цикле просматривает каждую лемму и ищет совпадение с ключевым словом. В каком бы падеже не стояло искомое слово, если оно есть во фразе, алгоритм найдет его. Как только совпадение сработает происходит переключение на требуемый отдел.
Скачать файл: Yandex_SpeechKit_Cloud_улучшенный_алгоритм.oscr (собрано на версии 2.11.2.141230)
Реализация сценария
Рассмотрим алгоритм на примере сценария входящей маршрутизации. Позвонив в компанию, система спрашивает абонента с кем он хочет соединиться. Ответ клиента распознается, а дальше анализируется согласно вышеописанному алгоритму.
Сценарий выглядит следующим образом:
Компонент "Приветствие".
Компонент "ding".
Компонент "Распознавание речи".
Компонент "Запрос на выделение смысла".
Компонент "Ув1"
Компонент "id_morph=0"
Компонент "count_morph"
Компонент "morph"
Компонент "count_lemmas"
Компонент "id_lemmas=0"
Компонент "count_lemmas"
Компонент "id_lemmas=0"
Компонент "lemmas"
Компонент "text"
Компонент "Ув2"
Компонент "Выбор варианта"
Компонент "id_lemmas++"
Компонент "Секретарь".
Компонент "Сообщение 1"
Компонент "на секретаря"
Компонент "Стоп"
Компоненты "Техподдержка", "Сообщение 2", "на техподдержку" аналогично ветке "Секретарь" - "на секретаря".
Компонент "->"
Компонент "id_morph++"
Компонент "Ув3"
Компонент "Неизвестная фраза"
Компонент "ding2"
Скачать файл: Yandex_SpeechKit_Cloud_улучшенный_алгоритм.oscr (собрано на версии 2.11.2.141230)