Поздравляем с 9 мая!
   
Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: CXXXVI Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 07 марта 2022 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Атаков А.С., Протодьяконова Г.Ю. РАЗРАБОТКА ВИРТУАЛЬНОГО АССИСТЕНТА // Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ: сб. ст. по мат. CXXXVI междунар. студ. науч.-практ. конф. № 5(136). URL: https://sibac.info/archive/meghdis/5(136).pdf (дата обращения: 09.05.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

РАЗРАБОТКА ВИРТУАЛЬНОГО АССИСТЕНТА

Атаков Александр Сергеевич

студент третьего курса Колледжа Инфраструктурных технологий, Северо-Восточного Федерального университета,

РФ, г. Якутск

Протодьяконова Галина Юрьевна

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

РФ, г. Якутск

VIRTUAL ASSISTANT DEVELOPMENT

 

Alexander Atakov

third-year student of the College of Infrastructure Technology, North-Eastern Federal University,

РФ, г. Якутск

Galina Protodyakonova

cand. ped. sciences, head. Department of Operation and Maintenance of Information Systems of the College of Infrastructure Technologies, North-Eastern Federal University,

Russia, Yakutsk

 

АННОТАЦИЯ

Начиная с 2011 года современный мир столкнулся с первым голосовым ассистентом – Siri, но уже в 2019 году можно насчитать семь голосовых помощников, у каждого свой интересный круг задач. Однако после 2019 года заметен убывающий тренд в заинтересованности к данной сфере, хотя перспектив у нее много. Статья посвящена разбору того, что нужно учитывать в процессе написания виртуального ассистента и как можно написать своего ассистента.

Статья раскрывает понятия виртуальный ассистент, обработка естественного языка, демонстрирует основные процессы, происходящие при создании таковых программ, а также сам процесс написания кода. [2]

ABSTRACT

From 2011 year a modern world faced first voice assistant – Siri, but already in 2019 year you can count seven voice assistants with unique interesting range of tasks. However after 2019 year you can see downtrend in concernment in this area although there are many opportunities. The article is about what you need to concern during writing a virtual assistant and how you can write your own assistant.

The article reveals the concepts about virtual assistant, processing natural language, demonstrates the main processes that take place during developing the programs and the process of writing code. [2]

 

Ключевые слова: виртуальный ассистент, голосовой ассистент, обработка естественного языка.

Keywords: virtual assistant, voice assistant, natural language processing.

 

ВВЕДЕНИЕ

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

Не зря выше было отмечено, что разработка виртуальных ассистентов стало падать в спросе – это не оговорка и не лесть, на самом деле все так и есть. На данный момент человечество разработало виртуальных ассистентов таким образом, что они способны ведать вашими финансовыми делами (по голосовым командам), управлять техникой в доме, а также вести “осмысленный” диалог. Тут назревает уместный вопрос – почему разработки таких ассистентов упала в спросе? На этот вопрос можно ответить следующим предложением: технологии не позволяют создать что-то сложнее.

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

В рамках данной статьи предпринята попытка рассказать о процессе создания виртуального ассистента, а также продемонстрировать процесс написания такого ассистента.

ПРОЦЕСС РАБОТЫ ВИРТУАЛЬНОГО АССИСТЕНТА

В данном пункте рассматриваются основные инструменты, которые помогут разработать виртуального ассистента. Рассматриваются следующие инструменты: NLTK, Scikit-Learn, Pandas, Speech Recognition и pyAudio. Однако в первую очередь нужно понять, что такое виртуальный ассистент. [1]

Виртуальный ассистент – программный агент, который может выполнять задачи (или сервисы) для пользователя на основе информации, введенной пользователем, данных о его местонахождении, а также информации, полученной из различных интернет-ресурсов (погода, уличное движение, новости, курсы валют и ценных бумаг, розничные цены в магазинах и т. д.). [3]

В статье заметно, что определения виртуальный ассистент и голосовой ассистент используются как синонимы и это непросто так: виртуальный ассистент использует такие же функции и выполняет те же действия, что и голосовой, но он может не иметь голосовых функций (говорить с пользователем), в то время как голосовые на этом и базируются. [3]

Natural Language Processing (далее – NLP) – обработка естественного языка – подраздел информатики и AI, посвященный тому, как компьютеры анализируют естественные (человеческие) языки. NLP позволяет применять алгоритмы машинного обучения для текста и речи.

NLTK (Natural Language Toolkit) – ведущая платформа для создания NLP-программ на Python. У нее есть легкие в использовании интерфейсы для многих языковых корпусов, а также библиотеки для обработки текстов для классификации, токенизации, стемминга, разметки, фильтрации и семантических рассуждений:

  • Токенизация (иногда – сегментация) – это процесс разделения предложений на слова-компоненты. В английском и многих других языках, использующих ту или иную версию латинского алфавита, пробел – это неплохой разделитель слов.
  • Лемматизация и стемминг текста. Обычно тексты содержат разные грамматические формы одного и того же слова, а также могут встречаться однокоренные слова. Лемматизация и стемминг преследуют цель привести все встречающиеся словоформы к одной, нормальной словарной форме.
  • Стоп-слова - то слова, которые выкидываются из текста до/после обработки текста. Когда мы применяем машинное обучение к текстам, такие слова могут добавить много шума, поэтому необходимо избавляться от нерелевантных слов.
  • Мешок слов. Алгоритмы машинного обучения не могут напрямую работать с сырым текстом, поэтому необходимо конвертировать текст в наборы цифр (векторы).
  • TF-IDF. У частотного скоринга есть проблема: слова с наибольшей частотностью имеют, соответственно, наибольшую оценку. В этих словах может быть не так много информационного выигрыша для модели, как в менее частых словах. Один из способов исправить ситуацию – понижать оценку слова, которое часто встречается во всех схожих документах. Это называется TF-IDF.

Scikit-learn - один из наиболее широко используемых пакетов Python для Data Science и Machine Learning. Он позволяет выполнять множество операций и предоставляет множество алгоритмов. Scikit-learn также предлагает отличную документацию о своих классах, методах и функциях, а также описание используемых алгоритмов.

В задачах написания виртуальных ассистентов из Scikit-learn необходимо использовать модели регрессии, оценивающую процентную схожесть выбранного ответа к уже готовому ответу. Наша модель будет обучаться на данных, которые заранее будут иметь ответ – это задача обучения с учителем, чтобы была возможность подготовить обученную модель.

Pandas — это библиотека Python для обработки и анализа структурированных данных, её название происходит от «panel data» («панельные данные»). Панельными данными называют информацию, полученную в результате исследований и структурированную в виде таблиц. Для работы с такими массивами данных и создан Pandas.

В основе систем распознавания речи стоит скрытая марковская модель, суть модели заключается в том, что при рассмотрении сигнала в промежутке небольшой длительности (от пяти до 10 миллисекунд), возможна его аппроксимация как при стационарном процессе. [1]

Библиотека Speech Recognition — это, инструмент для передачи речевых API от компаний (google, microsoft, sound hound, ibm, а также pocketsphinx), который в отличие от остальных имеет возможность работы офлайн. [1]

Также для работы с инструментами потребуется библиотека pyAudio – это своего рода доступ к микрофону на том устройстве, где запускается библиотека и инициализируется.

Итак, после описания всех необходимых компонентов для создания виртуального ассистента можно описать сам процесс работы виртуального ассистента:

  • Сохраняется предполагаемый датасет, откуда будут браться ответы на вопросы пользователя (в датасете присутствуют столбцы с текстом вопроса и текстом ответа). Данный датасет предобрабатывается: работа с повторяющимися строками, пустыми строками, с неверными значениями. Далее следует преобразовать текст с применением лемматизации, токенезации, удаление стоп-слов и преобразование токенов в вектора, с применением алгоритма TF-IDF;
  • Инициализируется переменная, которая будет принимать ответ пользователя (используется метод pyttsx3 библиотеки pyAudio);
  • Инициализируется переменная, которая будет переводить голос пользователя в текст (используется метод speech_recognition библиотеки Speech Recognition);
  • Вопрос пользователя передается в функцию, которая вычисляет косинусное сходство с вопросами, которые сохранены в датасете, который мы сохраняли выше. Однако вопрос пользователя также преобразовывается, как и изначальный датасет;
  • Найдя наиболее близкий вопрос и ответ на него, программа возвращает ответ пользователю (если это был приказ к действию, то выполняется действие).

ПРОЦЕСС НАПИСАНИЯ КОДА К ВИРТУАЛЬНОМУ АССИСТЕНТУ

В данном приложении виртуальный ассистент имеет ограниченный функционал – он умеет услышать, перевести текст, ответить на него в разных контекстах, а также выполнять различные функции: открыть youtube и найти определенный ресурс, а также запустить google поисковик и найти необходимую оттуда информацию. [1]

Первым делом создается виртуальное окружение, в котором будет производиться написание ассистента. В корне своем, главная задача виртуальной среды Python – создание изолированной среды для проектов Python. Это значит, что: каждый проект может иметь свои собственные зависимости, вне зависимости от того, какие зависимости у другого проекта.

Все остальные шаги были описаны выше, в главе процесс работы виртуального ассистента.

В итоге получаем следующий код [1]:

 

   

Рисунок 1. Код виртуального ассистента

 

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

ВЫВОДЫ

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

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

 

Список литературы:

  1. Дипломная работа “разработка виртуального ассистента” Атакова А.С., северо-восточный федеральный университет. 12.12.2022.
  2. Виртуальный ассистент. Свободная энциклопедия Wikipedia – URL: https://ru.wikipedia.org/wiki/%D0%92%D0%B8%D1%80%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B0%D1%81%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BD%D1%82
  3. Голосовые помощники – URL: https://blog.dti.team/voice-assistants-1/
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.