30
Анализ речевых команд методом опорных векторов в приложении-помощнике Николай Иванов, 525 группа Научный руководитель: Елена Анатольевна Бордаченкова 8 октября, 2013

иванов анализ речевых команд

  • Upload
    -

  • View
    164

  • Download
    3

Embed Size (px)

DESCRIPTION

2013 осень

Citation preview

Page 1: иванов анализ речевых команд

Анализ речевых команд методом опорных векторов

в приложении-помощнике

Николай Иванов, 525 группа

Научный руководитель:

Елена Анатольевна Бордаченкова

8 октября, 2013

Page 2: иванов анализ речевых команд

2

План доклада

1. Интеллектуальные персональные помощники

2. Проект русскоязычного помощника

3. Анализ команд с помощью SVM

4. Оценка работы анализатора

Page 3: иванов анализ речевых команд

3

Интеллектуальные помощники

● телефонный вызов● отправка sms и электронных писем● поиск информации в интернете● и т. д. и т. п.

помощь человеку в использовании мобильного устройства

Назначение –

голосовое управлениеОсобенности –

Функции:

Позвони, пожалуйста, Васе

Напиши sms с текстом «привет»

Скажи мне, что такое «перцептрон»

Интеллектуальные персональные помощники

Page 4: иванов анализ речевых команд

4

Apple Siri

Интеллектуальные персональные помощники

Page 5: иванов анализ речевых команд

5

Google Glass

Интеллектуальные персональные помощники

Page 6: иванов анализ речевых команд

6

Интерфейс

Проект русскоязычного помощника

Page 7: иванов анализ речевых команд

7

Функциональность

● позвонить

● отправить sms

● написать email

● открыть сайт

1. Запись и распознавание речевых команд

2. Извлечение из команд нужной информации

3. Запуск функции мобильного устройства:

● искать в интернете

● поставить будильник

● проверить баланс

Проект русскоязычного помощника

Page 8: иванов анализ речевых команд

8

Требования

1. Устойчивость – нейтрализация ошибок распознавания речи.

2. Применимость к различным формулировкам команд

3. Языковая расширяемость – добавление новых формулировок команд.

4. Функциональная расширяемость – добавление нового типа команды

5. Автоматическая обучаемость – накапливание полезной информации

Проект русскоязычного помощника

Page 9: иванов анализ речевых команд

9

Устойчивость

Найди мне в википедии значение слова «интерференция»

«википедия значение слова интерференция»

Поиск в интернете

Сайт: «википедия»

Запрос: «интерференция»

неточная команда:

извлеченнаяинформация:

Проект русскоязычного помощника

Rino Recognizer

Google Speech API

Пример:

Page 10: иванов анализ речевых команд

10

Архитектура приложения

Проект русскоязычного помощника

Page 11: иванов анализ речевых команд

11

Метод опорных векторов (SVM)

Применение SVM:

● категоризация текстов

● выделение в тексте

собственных имен, дат

● распознавание лиц,

рукописного текста

● классификация

химических веществ

определение разделяющей гиперплоскости,

максимизирующей расстояние между классами.

Задача –

Анализ команд с помощью SVM

Page 12: иванов анализ речевых команд

12

Особенности пользовательских команд

1. Отсутствие знаков препинания и заглавных букв: « позвони васе »

2. Ошибки распознавания:« позвони асе »« звонить в асе »

3. Неправильные предложения:

« вася »« васю мне »

4. Многообразие формулировок:« набери васю » « набери мне василия ивановича »« а теперь набери ка мне пожалуйста василия ивановича »

Позвони ВасеПример:

Анализ команд с помощью SVM

Page 13: иванов анализ речевых команд

13

Задача анализатора

На входе — текстовое представление команды:

На выходе — сформированная команда со всем необходимыми параметрами:

Задача анализатора — извлечение из текстовой строки нужной информации и формирование команды.

Отправка SMS

Телефон 8-495-123-45-67 (Вася)

Текст «перезвони»

«отправь смс васе с текстом перезвони»

Анализ команд с помощью SVM

RinoRecognizer

Page 14: иванов анализ речевых команд

14

Этапы анализа команд

«отправь смс васе с текстом перезвони»

Отправка SMS

Получатель 84951234567

Текст «Перезвони»

Отправка SMS

Получатель: ВасяТекст: «перезвони»

1.

2.

3.

Анализ команд с помощью SVM

Определение типа команды(анализ всей команды целиком)

Определение параметров команды(анализ каждого слова команды)

Формирование фрейма команды

(дополнительныйанализ параметров)

Page 15: иванов анализ речевых команд

15

Определение типа команды

Признаки команд: Для каждого слова команды определить, входит ли слово в определенную семантическую группу и сколько раз?

● позвонить ● отправить sms● написать email

● открыть сайт● искать в интернете● поставить будильник● проверить баланс

Типы команд:

«позвонить по номеру 8 917 123 45 67»

(2, 0, 0, 1, 0, 0, 1, 1, 5,...)вектор признаков:

Анализ команд с помощью SVM

команда:

1. «позвонить», «телефон», «номер», ...2. «отправить», «sms», «сообщение», ...3. «email», ...

Семантические группы:

команда:

Page 16: иванов анализ речевых команд

16

Семантические группы слов

a_call

a_sms

a_email

...

\w*звон\w+|набрать|набер\w+|набир\w+|соедин\w+|...

смс\w*|sms|сообщение|смс|напиш\w+|напис\w+|...

e?mail|письмо|напиш\w+|напис\w+|набрать|...

...

s_text

s_search

s_prepos

текст\w*

такое|значит|про|о|слов\w*|поняти*|...

в|без|до|из|к|на|по|о|от|перед|при|через|с|...

p_name

p_number

p_email

p_site

p_time

Имя|Фамилия|Отчество|мам\w+|вас\w*|леш\w*|...

Номер|\d+|\+|плюс

Адрес|[^S]+@[^S]+|e?mail|письмо

Сайт|\w+\.+ru|com|org|net|su

Время|\d{1,2}|утр\w+|вечер\w*|час\w*|минут\w*|...

Регулярное выражение:Группа:

Анализ команд с помощью SVM

1

2

3

...

8

9

10

11

12

13

14

15

Page 17: иванов анализ речевых команд

17

Получение вектора признаков команды

Правило получения вектора:i-ая компонента вектора признаков показывает, сколько раз слово из i-oй семантической группы входит в текст команды.

«напиши смс сообщение василию ивановичу с текстом здравствуйте»

(0, 3, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1, 0)

команда:

вектор признаков:

(0, 0.75, 0.25, 0, 0, 0, 0, 0.67, 0, 0, 0, 0, 0, 1, 0)

Корткая запись вектора признаков (формате libsvm):

«нормализованный» вектор признаков:

(2:0.75, 3:0.25, 8:0.67, 14:1)

Анализ команд с помощью SVM

v[i] = v[i] / max v[i]

Page 18: иванов анализ речевых команд

18

241...

a_smsa_searcha_call...

Коллекция размеченных команд

отправь смс с текстом _напиши _мненайди в интернете что такое _смспожалуйста позвони леше...

2:0.5 13:1 15:1 2:0.5 4:1 14:1 1:0.333333 8:0.5 ...

Векторы признаков:

~400 предложений

№ типа:

Анализ команд с помощью SVM

Внутреннее представление коллекции:

a_call ~75a_sms ~75a_email ~80a_search ~100a_site ~20a_alarm ~30a_balance ~20

Кол-во размеченных команд по типам:

Page 19: иванов анализ речевых команд

19

241...

Обучение модели для классификации команд по типам

2:0.5 13:1 15:1 2:0.5 4:1 14:1 1:0.333333 8:0.5 ...

библиотека libsvm

Файл модели (включает в себя перечисление всех опорных векторов)

Внутреннее представление коллекции:

Анализ команд с помощью SVM

Page 20: иванов анализ речевых команд

20

Применение модели для классификациикоманд по типам

«позвони пожалуйста васе»

(1:0.5, 8:0.33)

Тип команды: a_call

библиотека libsvm + обученная модель

Применение модели:

Анализ команд с помощью SVM

Rino Recognizer

Page 21: иванов анализ речевых команд

21

Определение параметров команды

«отправь пожалуйста смс васе с текстом привет»

action other action

p_name

other

q_mark

quote

action «позвони», «смс»

p_name «васе»p_number «8», «917»p_email «[email protected]»

Разметка команды:

Метка Пример: p_site «yandex.ru»p_time «7», «часов»

quote слово из текста смсq_mark «текстом»

other «пожалуйста»

Метка Пример:Используемые метки:

Анализ команд с помощью SVM

Page 22: иванов анализ речевых команд

22

Получение вектора признаков слова

Правило получения вектора слова:если данное слово входит в i-ое множество ключевых слов, то i-ая компонента вектора равна 1, иначе – 0.

« отправь васе смс c текстом набери сашу »Пример:

(1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

Контекстслова «набери»: (0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0)

(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0)

Итоговый вектор признаковв формате libsvm для слова «набери»: (1:1 2:1 3:1 28:1 38:1)

Анализ команд с помощью SVM

Page 23: иванов анализ речевых команд

23

Применение модели для определения параметров команд

Метка: quote

библиотека libsvm +обученная модель SVM_sms

« отправь васе смс c текстом набери сашу »

Пример: определение метки для слова «набери»

(1:1 2:1 3:1 28:1 38:1) Rino Recognizer

Анализ команд с помощью SVM

Page 24: иванов анализ речевых команд

24

Семантическая группировка слов

«отправь василию ивановичу смс привет как дела»

action p_name p_name action quote

«отправь василию ивановичу смс привет как дела»

action p_name action

После группировки:

quote

До группировки:

quote quote

Внутреннее представление:

(«отправь», «василию ивановичу», «смс», «привет как дела»)

(action, p_name, action, quote)

Анализ команд с помощью SVM

Page 25: иванов анализ речевых команд

25

«отправь»action

Заполнение фрейма команды

private class SmsFrame {private Uri numUri;private String text;

public SmsFrame();public void fill();private boolean check();

}

«привет как дела»

Программная реализация

фрейма отправки SMS:

p_name

quoteaction

«василию ивановичу»

«смс»

8-495-123-45-67

«Привет как дела»

Работа функции fill():

= numUri

= text

Анализ команд с помощью SVM

Page 26: иванов анализ речевых команд

26

Демонстрация работы приложения

Анализ команд с помощью SVM

Page 27: иванов анализ речевых команд

27

Модели: «25/75» «50/50» «80/20»

action 89.2% 96.7% 97.4%

a_call 100% 100% 100%

a_sms 92.8% 95.7% 96.7%

a_email 94.2% 93.6% 94.6%

a_search 99.3% 98.9% 100%

a_site 84.6% 100% 100%

a_alarm 93.9% 98.5% 100%

a_balance 97.5% 98% 100%

Average 94.0% 97.7% 98.6%

Оценки точности классификации

обучение: 25% 50% 80%тестирование: 75% 50% 20%

Разбиение коллекции на обучающую и тестовую выборки:

Оценка работы анализатора

Page 28: иванов анализ речевых команд

28

Преимущества метода опорных векторов

1. Повышение устойчивости анализа пользовательских команд

к некоторым ошибкам распознавания речи

2. Применимость к произвольным формулировкам команд

3. Учёт скрытых закономерностей и зависимостей при обучении

классификатора на большом количестве размеченных данных

Оценка работы анализатора

Page 29: иванов анализ речевых команд

29

Литература и ссылки

1. Intelligent personal assistant, Wikipedia

http://en.wikipedia.org/wiki/Intelligent_personal_assistant

2. Автоматическая обработка текстов на естественном языке и

компьютерная лингвистика : учеб. пособие / Большакова Е. И.,

Клышинский Э. С., Ландэ Д. В. и др. – М.: МИЭМ, 2011. – с.181-184.

3. LIBSVM — A Library for Support Vector Machines

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

4. Иванов Н.И. Применение метода опорных векторов для анализа речевых

команд в приложении-помощнике для мобильных устройств, – 2013

https://docs.google.com/file/d/0B6_tjXwNAFn0anJ6WHU4dFNULUU/

Page 30: иванов анализ речевых команд

30

Спасибо за внимание!