Виды диалога. Типы организации диалога

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

Здравствуйте, уважаемые читатели! В прошлых статья мы с вами уже изучили из каких частей состоит компьютер, какие операционные системы существуют и настроили рабочий стол.

Теперь пора узнать — какие бывают компьютерные программы? Для чего они предназначены, рассмотрим их виды и в конце статьи я предоставлю вам список программ, которыми пользуюсь сам.

Виды диалога. Типы организации диалога

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

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

Типы организации диалога

Для решения практических задач структура диалога включает различные возможные способы обмена информацией между пользователем и ЭВМ, т.е. диалоговая система содержит множество запросов и соответствующих им ответных сообщений. Каждому запросу соответствует несколько альтернативных ответных сообщений. Схема диалога разрабатывается обычно сразу на весь комплекс решаемых задач. Каждому пользователю выделяются отдельные части схемы диалога с целью автоматического контроля его полномочий и для предотвращения несанкционированного доступа.

Наиболее распространенными типами организации диалога являются меню, шаблон, команда, естественный язык.

Меню как тип диалога очень удобен для конечного пользователя. Реализация диалога типа «меню» возможна через вывод на экран видеотерминала определенных функций системы. Выбор конкретной функции пользователем может осуществляться:

— набором на клавиатуре требуемой директивы или ее сокращенного обозначения;

— набором на клавиатуре номера необходимой функции;

— подведением курсора в строку экрана с нужной пользователю функцией;

— нажатием функциональных клавиш, запрограммированных на реализацию данной функции.

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

Частным случаем диалога типа «меню» является режим ответа ДА/НЕТ, т.е. пользователю предлагаются два альтернативных варианта ответа: ДА или НЕТ.

Шаблон — это режим взаимодействия конечного пользователя и ЭВМ, на каждом шаге которого система воспринимает только синтаксически ограниченное по формату входное сообщение пользователя. Варианты ответа пользователя ограничиваются форматами, предъявляемыми ему на экране видеотерминала. Диалог может быть реализован через:

— указание системой на экране дисплея формата вводимого пользователем сообщения;

— резервирование места для сообщения пользователя в тексте сообщения системы на экране терминала.

Диалог «шаблон» используется для ввода данных, значения которых или понятны (например, поле для записи даты, фамилии, названия предприятия и т.д.), или являются профессиональными терминами, известными пользователю по его предметной области.

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

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

Диалог типа «команда» инициируется пользователем. При этом выполняется одна из допустимых на данном шаге диалога команд пользователя. Их перечень отсутствует на экране, но легко вызывается на экран с помощью специальной директивы или функциональной клавиши (обычно F1). При вводе ошибочной команды (нет в списке, не тот формат или синтаксис) выдается сообщение об ошибке.

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

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

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

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

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

Каким же образом происходит загрузка операционной системы? (В процессе загрузки ОС сначала производится тестирование работоспособности процессора, памяти и других аппаратных средств компьютера, причем краткие диагностические сообщения о процессе тестирования выводятся на экран монитора.)

После окончания загрузки ОС пользователь получает возможность управлять компьютером с использованием графического интерфейса ОС.

Вопросы и задания

1. Что означает понятие «диалоговый характер программы»?

2. Какими средствами программируется диалог между пользователем и компьютером?

3. Что означает понятие «дружественный интерфейс»?

4. Выполните на компьютере все программы, приведенные в данном параграфе.

5. Постройте алгоритм и составьте программу, по которой будет реализован следующий сценарий: компьютер запрашивает номер дня недели, после ввода компьютер сообщает название этого дня. Например, если ввели 1, то выведется фраза «Это понедельник» и т. д.

Следующая страница Уроки 36 — 37. Компьютерный практикум ЦОР. Программирование диалога с компьютером (Задание 1 — 6)

Графический интерфейс пользователя

Графический интерфейс, WIMP-интерфейс (Window Image Menu Pointer) является неотъемлемым компонентом большинства современного программного обеспечения, которые ориентированы на работу конечного пользователя. Диалог пользователя с ПК в графическом интерфейсе ведется при помощи графических объектов: меню, значков и других элементов.

Основные достоинства графического интерфейса:

  • наглядность объектов;
  • обеспечение понятности для пользователя;
  • схожесть интерфейсов программ, которые написаны специально для использования в графической среде.

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

Пример графического интерфейса

Рисунок 2. Пример графического интерфейса

Что такое интерфейс

Интерфейс(англ. interface – взаимодействие, сопряжение) в широком смысле – это место соприкосновения двух функциональных объектов. Если говорить более узко, то интерфейс – это «мост», посредник между человеком, программами и машинами, иными системами. Это инструменты взаимодействия, с помощью которых одна система контактирует и строит диалог с другой.

С помощью интерфейсов мы отдаем команды программам и устройствам. Они их анализируют, совершают необходимые действия и выдают ответ. С помощью того же или уже другого интерфейса. Вот какие задачи они помогают нам решать:

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

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

Целеориентированные диалоговые системы [ править ]

Задачей целеориентированных систем является достижение определенных целей при помощи общения с пользователем. Примером цели может быть поиск книги или включение света.

Классическая архитектура [ править ]

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

  • ASR. На вход поступает речь пользователя, которая затем распознается и переводится в текст. Результат работы компонента называют гипотезой, так как полученный текст может соответствовать исходному сообщению не полностью.
  • NLU. Фраза в текстовом виде анализируется системой: определяется домен, намерение, именованные сущности. Для распознавания намерений может применяться обученный на векторном представлении фраз классификатор. Распознавание именованных сущеностей является отдельной задачей извлечения информации. Для ее решения используются формальные языки, статистические модели и их комбинации. В результате работы компонента создается формальное описание фразы — семантический фрейм.
  • DM. Состоянием диалога или контекстом является информация, которая была получена при общении с пользователем ранее. В соответствии с текущим состоянием выбирается политика поведения системы, корректируется семантический фрейм. В качестве поставщика знаний может выступать СУБД или Web API.
  • NLG. В соответствии с выбранным действием осуществляется генерация ответа пользователю на естественном языке. Для генерации применяются генеративные модели или шаблоны.
Определение:
Намерение (англ. intent) — желание пользователя в рамках произесенной фразы.
Определение:
Именованная сущность (англ. named entity) — слово во фразе пользователя, которое можно отнести к определенному типу.
Определение:
Слот (англ. named entity) — параметр запроса пользователя, ограниченный множеством допустимых значений.

Обычно после распознавания именованных сущностей выполняется заполнение слотов (англ. slot filling), в ходе которого каждая найденная сущность приводится к своей нормальной форме с учетом ее типа и множества возможных значений. Заполнение слотов позволяет не учитывать морфологию сущности при дальнейшей ее обработке. Простейшим подходом к нормализации сущностей является поиск с использованием расстояния Левенштейна. После определения типа сущности, она сравнивается с другими сущностями того же типа из базы данных. В качестве нормальной формы выбирается та, до которой расстояние наименьшее, либо можно выбрать несколько сущностей с наименьшим расстоянием и предоставить выбор пользователю (такой подход также применим для исправления опечаток).

Для получения численного представления текста используются различные языковые модели: Word2Vec, ESIM, GPT, BERT. Каждой определяется свой способ представления слов или их последовательности для наиболее точного извлечения смысловых значений. С хорошей языковой моделью достаточно около 100 примеров для хорошей классификации намерения [4] .

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

Нейросетевая архитектура [ править ]

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

Входом у модели с данной архитектурой может быть компонент, который выполняет предобработку фразы пользователя и передает результаты внешним сетям (Intent Network и Belief Tracker).

Описание каждой части:

  • Intent Network. Кодирующая сеть, которая преобразует последовательность токенов [math] w_0^t, w_1^t, ldots, w_N^t [/math] в вектор [math] mathbf_t [/math] . В качестве вектора [math] mathbf_t [/math] может выступать скрытый слой LSTM-сети [math] mathbf_t^N [/math] :
    [math] mathbf_t = mathbf_t^N = operatorname(w_0^t, w_1^t, . w_N^t) [/math]
  • Belief Tracker. В реализации используется RNN-сеть, на вход которой поступает предобработанная фраза пользователя. Дает распределение вероятностей [math] mathbf

    _s^t [/math] по всем значениям определенного слота [math] s [/math] .

  • Database Operator. Выполняет запрос к базе данных по сущностям [math] < operatornamemathbf

    _s^t > [/math] и возвращает вектор [math] mathbf_t [/math] , где единицей отмечается та запись (сущность в БД), которая соответствует запросу.

  • Policy network. Объединяет системные модули. Выходом является вектор [math] mathbf_t [/math] , который представляет системное действие. Распределение вероятностей для каждого слота [math] mathbf

    _s^t [/math] пребразуется в вектор [math] mathbf_s^t [/math] , который состоит из трех компонент: суммарная вероятность, вероятность, что пользователь выразил безразличие к слоту, и вероятность, что слот не был упомянут. Также вектор [math] mathbf_t [/math] сжимается в one-hot-вектор [math] mathbf_t [/math] , где каждая компонента определяет количество подходящих записей.
    [math] mathbf_t = tanh(W_ mathbf_t + W_ mathbf_t + W_ mathbf_t), [/math]
    где матрицы [math] W_ [/math] , [math]W_ [/math] и [math] W_ [/math] — параметры, а [math] mathbf_t = bigoplus mathbf_s^t [/math] — конкатенация.

  • Generation Network. Генерирует предложение, используя вектор действия [math] mathbf_t [/math] и генератор языка. Предложение содержит специальные токены, которые заменяются на сущности из базы данных по указателю.

Данную архитектуру также называют сквозной (англ. end-to-end trainable), так как на данных обучается каждая ее часть. Модель с данной архитектурой можно обобщить на намерения, которые не наблюдались во время обучения.

  • Детерминированность,
  • свободное расширение,
  • интерпретируемость.
  • Самостоятельно обучается,
  • не нужно думать о структуре разговора.
  • Может быть громоздким,
  • надо прописывать руками,
  • сложнее разрабатывать нелинейные диалоговые модели.
  • Черный ящик,
  • нельзя быть уверенным в результате,
  • сложно изменять,
  • может долго обучаться и работать.

А что с декларативом?

Что такое языки программирования, ясно. Но в предложенном ТОПе почти не встречаются декларативные варианты. Это связано с их небольшой популярностью на фоне «аналогов». Имеются несколько наиболее влиятельных его вариантов, которые все еще встречаются в реальной жизни.

Появился, благодаря некому Джону Маккарти. Старый высокоуровневый, активно используемый по сей день. Записи создаются при помощи систем линейных символьных списков. Встречается в промышленном программировании и веб-приложений массового применения.

Размышляя, что такое языки современного программирования, кажется, что это – нечто трудное и непонятное. К декларативному виду можно дополнительно отнести «язык баз данных». Речь идет об SQL.

Понятен юзеру и довольно прост в освоении. Подходов к написанию кодов не слишком много, так как SQL использует ограниченный набор команд и их сочетаний. Имеет несколько диалектов:

Это – наиболее популярные варианты. Но ими диалекты не ограничиваются.

Еще один вариант «общения» с компьютером – это HTML. Изучая, что такое языки программирования, стало ясно – они подходят для написания веб-страниц. HTML относятся к «разметочному».

При помощи данного варианта пишутся сайты. Преобладает использование тегов. Умеет:

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

Но полноценное форматирование контента при помощи HTLM невозможно. Приходится подключать таблички стилей CSS.

Данная статья познакомила пользователей с основами способов «общения с ПК». Теперь ясно, что такое декларативное программирование, а также какие языки к нему относят. Но в обыденной жизни спросом пользуются другие программные разновидности. Были рассмотрены наиболее популярные из них.

Какие основные виды ПО бывают по назначению

Программное обеспечение, установленное на ПК, делится на 3 разновидности:

  • прикладное;
  • системное;
  • инструментальное.

виды программного обеспечения компьютеров

Системное

Это часть системы, которая помогает следить за аппаратной стороной ПК и управлять ею. Сюда входят программы, контролирующие работу оперативной памяти, центрального процессора, видеокарты, устройств ввода и вывода информации, сетевые подпрограммы.

Таким ПО считается:

  • Драйверы — утилиты небольшого размера, функционирование которых заключается в обеспечении корректной работы остальных элементов оборудования;
  • ОС;
  • Дополнения — языковые пакеты или настройки расширения экрана.

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

Прикладное

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

Смысл этой разновидности в выполнении четко поставленной задачи: рисовать, учитывать, открывать сетевые страницы, набирать текст. Если утилита нужна для конкретного выполнения действия, то она является прикладным ПО.

Инструментальное

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

Сюда входят компиляторы, отладчики, переводчики высокого уровня, редакторы, интерпретаторы и другие средства. Они необходимы, потому что техника не понимает человеческих слов. Чтобы ей «объяснить», что надо сделать, требуется специальный «машинный язык».

Постоянно пользоваться этим кодом базовым пользователям довольно сложно, поэтому были разработаны системы, которые позволяют переводить обычную речь в двоичную, привычную для ПК.

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

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector