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