Структура лингвистического анализатора для информационных технологий АСУ
Лингвистический анализатор - программа анализа введенного текста, реализации действий, являющихся реакцией на сигнатуры введенного текста и характерных процессам управления в АСУ. Пользовательский интерфейс. Основные объекты программы. Внешние библиотеки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 15.08.2020 |
Размер файла | 40,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Структура лингвистического анализатора для информационных технологий АСУ
Студент Шуваев А.Н.
Орловский государственный технический университет
Россия
В работе предложена операционная среда лингвистических процессов управления.
In work the operational environment of linguistic processes of management is offered.
Лингвистический анализатор (ЛА) - это программа анализа введенного текста и реализации действий, являющихся реакцией на сигнатуры введенного текста [1,2] и характерных процессам управления в АСУ [3]. При этом лингвистическому анализатору характерны следующие особенности:
1) наличие возможности сравнения слов и фраз текста со словарным и фразеологическим запасом некоторого изначально составленного словаря: анализу могут подлежать наиболее «похожие» слова (фразы), что позволяет корректно обрабатывать случаи ошибочного написания (например, синтаксические оплошности в окончании слов или фраз),
2) наличие возможностей сохранения данных о связи между фиксированным набором сигнатур входных текстов и набором действий для их последующего использования в процессах проектирования, моделирования и реального управления,
3) наличие многозначных отношений между действиями и сигнатурами, вызывающих возможности соответствия одному фиксированному действию как одной сигнатуры, так и любого множества сигнатур (в виде списков, диапазонов и пр.).
Программная оболочка как программная реализация лингвистического анализатора реализует по меньшей мере три функции: проектирования, моделирования и документирования.
При проектировании устанавливаются реальные связи между входными текстами, их сигнатурами и множествами исполняемых действий. Моделирование предоставляет возможности реализации установленных связей. Документирование отражает результаты работы при проектировании и моделировании, например, в сводных текстовых таблицах с возможностями их сохранения в стандартных или специально организованных файлах.
1. Структура программы
лингвистический анализатор программа текст
В программе выделяются три основные части [Рис. 1]: пользовательский интерфейс, ядро (основные объекты), внешние подгружаемые библиотеки. При написании ядра программы, реализующего основную функциональность, главенствующим принципом разработки принят принцип ООП (объектно-ориентированное программирование) [4] и, поэтому, ядро разделено на несколько основных объектов, связанных отношением включения.
Реализация алгоритмов сигнатур, предобработки входных текстов и действий, выполняемых программой, были вынесены во внешние подгружаемые библиотеки, что позволило не ограничивать возможности программы конкретными алгоритмами и действиями, а произвольно менять и/или наращивать возможности, повышая функциональность программы. Этому дополнительно способствует автоматическое распознавание и подключение библиотек, а также универсальный интерфейс библиотек. Разделение на эти три части и стандартизация взаимодействий между ними (интерфейсов) позволяет изменять любую из частей отдельно от остальных без потери функциональности.
2. Пользовательский интерфейс
Программа имеет одно основное и несколько дополнительных окон.
Основное окно состоит из панели управления файлом, где можно выбрать, открыть, изменить текущей обрабатываемый файл или совместить два файла, и трёх вкладок соответствующим трем выполняем программой функциям:
1) вкладка «Проектирование». Здесь вводится текст, выделяются необходимые для анализа слова, производится сигнатурный анализ, а затем в диалоговом окне выбора действия отмечается требуемое действие, соответствующее текущей сигнатуре. Методы анализа и полученные сигнатуры можно видеть слева в полях «методы» и «сигнатуры» соответственно. Если включить параметр «предобработка текста», то для любого введенного слова программа автоматически будет искать наиболее близкое в словаре и использовать его. Результат вышеописанных действий заносится в таблицу справа, которая и сохраняется во внешнем файле;
2) вкладка «Моделирование». В ней можно непосредственно использовать полученную таблицу соответствий сигнатура - действие. Для этого в левом поле вводится анализируемый текст, состоящий из текстовых фрагментов разделенных разделителями. При появлении символа разделителя автоматически выполняется соответствующее действие и его текстовый результат появляется в поле справа. Если включить параметр «предобработка текста», то для любого введенного слова программа автоматически будет искать наиболее близкое в словаре и использовать его;
3) вкладка «Документирование». В этом режиме можно посмотреть результаты проектирования и моделирования в двух соответствующих вкладках. Так же присутствует возможность сохранить результаты в файле.
Вспомогательные окна появляются только при некоторых действиях пользователя для ввода дополнительных параметров:
1) окно «Выбор типа анализируемого текста» - появляется при запуске программы или нажатии кнопки «создать» в основном окне. Здесь можно выбрать тип анализируемого текста: «ASCII» - вводятся шестнадцатеричные коды стандарта ASCII; «группа символов» - вводятся символы, разбиваются на слова, которые и анализируются для получения сигнатур; «текст на русском языке» - то же самое, что и предыдущий пункт, обогащенный возможностью включить предобработку текста;
2) окно «Редактирование записи» - появляется либо при добавлении нового соответствия сигнатура - действие, либо при редактировании прежнего соответствия. Здесь можно подкорректировать метод получения сигнатуры, саму сигнатуру (например, вместо одной сигнатуры ввести диапазон сигнатур для улучшения качества реагирования на не корректный текст; или заставить одинаково реагировать на разные тексты), анализируемый текст (смысловой нагрузки это поле не несет, используется как комментарий для облегчения понимания таблицы), выбрать необходимое действие путем вызова дополнительного окна «Выбор действия»;
3) окно «Выбор действия» - служит для выбора действия. Имеет авто генерируемое поле «действие», заполняемое на основе полей «имя действия» и «параметры действия». В поле «Описание действия» содержится описание текущего действия и его возможных параметрах;
4) окно «Настройки» - появляется при нажатии кнопки «настройки» в основном окне. Состоит из двух ключевых списков: «знаки препинания» и «не учитываемые знаки препинания». Знаки препинания - это те знаки, которые будут считаться разделителями слов (они так же и не учитываются при составлении сигнатур). Не учитываемые знаки препинания - это те знаки, которые не будут учитываться при составлении сигнатур. Кроме этих двух в окне есть поле «разделитель фраз» - выбор фразы используемой для разделения фрагментов текста при моделировании.
3. Основные объекты программы
Ядро программы состоит из четырёх основных объектов, реализующих большинство функций программы:
- Input - главный объект иерархии. Он включает в себя все остальные объекты, реализует их начальную установку и взаимодействие между ними и пользовательским интерфейсом. Кроме того, он обеспечивает анализ и преобразование текста вводимого пользователем, разбиение текста на слова, исключение не учитываемых символов, разбиение на массив слов передаваемых сигнатурным алгоритмам и алгоритму предобработки; по входному тексту получает сигнатуру, используя объект table, находит необходимое действие и выполняет его;
- Table - этот объект абстрагирует таблицу соответствий сигнатура - действие. Он реализует действия над таблицей, проверку корректности записей, поиск строк таблицы по сигнатуре, работу с множеством сигнатур, файловые операции;
- Doc - этот объект заносит в свои переменные ход моделирования, импортирует и преобразует таблицу объекта table, и выводит результат на экран или сохраняет в файле;
- Dll - этот объект абстрагирует доступ к внешним библиотекам, автоматически, при создании, находит их, проверяет и подключает.
4. Внешние библиотеки
Внешние библиотеки делятся на три типа: библиотеки сигнатурных алгоритмов, библиотеки действий и библиотека предварительной обработки. Первых двух типов библиотек может быть от одной до девяти штук. Все они подключатся и определятся автоматически.
Первые два типа библиотек имеют открытые стандартные форматы:
1) шаблон библиотеки сигнатурных алгоритмов
library AI_N; //название файла - AI_N.dll, где N = 1..9
uses SysUtils;
const n=3; //количество методов
type
tfuncs=array[0..n-1] of packed record
func,name,about:string;
end;
function functions:pchar;stdcall;
var a:tfuncs; i:word;
begin
a[0].func:='имя функции';
a[0].name:='название метода';
a[0].about:='кратко о методе';
a[n-1].func:='имя функции';
a[n-1].name:='название метода';
a[n-1].about:='кратко о методе';
result:='';
for i:=0 to n-1 do
result:=pchar(result+a[i].func+#1+a[i].name+#1+a[i].about+#1);
end;
function <имя функции>(const a:string):longword;stdcall; //a - строка текста для расчета
begin
//свой метод
//результат - сигнатура (число)
end;
function <имя функции>(const a:string):longword;stdcall; //a - строка текста для расчета
begin
//свой метод
//результат - сигнатура (число)
end;
exports
functions,
<имя функции >,...,<имя функции >;
begin
end,
2) шаблон библиотеки действий
library AI_DO_N; //название файла - AI_DO_N.dll, где N = 1..9
uses SysUtils;
const n=3; //количество методов
type
tfuncs=array[0..n-1] of packed record
func,name,about:string;
end;
function functions:pchar;stdcall;
var a:tfuncs; i:word;
begin
a[0].func:='имя функции';
a[0].name:='название действия';
a[0].about:='кратко о действии';
a[0].parammname:='параметр';
a[n-1].func:='имя функции';
a[n-1].name:='название действия ';
a[n-1].about:='кратко о действии ';
a[n-1].parammname:='параметр';
result:='';
for i:=0 to n-1 do
result:=pchar(result+a[i].func+#1+a[i].name+#1+a[i].about+#1);
end;
function <имя функции >(const a:string):boolean;stdcall; //a - параметр
begin
//свое действие
//результат - true или false
end;
function <имя функции >(const a:string):boolean;stdcall; //a - параметр
begin
//свое действие
//результат - true или false
end;
exports
functions,
<имя функции >,...,<имя функции >;
begin
end.
5. Апробация
Структура предложенного лингвистического анализатора реализована в экспериментальном программном продукте Al2.exe [2].
Программа работает на платформе IBM PC под управлением операционной системы Microsoft Windows и не требовательна к ресурсам компьютера. Для её работы необходима SVGA-совместимая видеокарта, поддерживающая разрешение 800x600x256 цветов и более. Для корректного составления отчетов необходимо иметь установленное приложение Microsoft Word. К остальному оборудованию компьютера специальных требований не предъявляется. Программа реализует файловые операции над файлами проектов с использованием стандартных диалогов Widows, данные представляются в форме сводной таблицы. Программа выполнена в стандартном Windows-стиле с использованием расширенных визуальных стилей Windows XP. Она имеет интуитивно понятный, дружелюбный интерфейс, имеет встроенную контекстную справку для всех элементов управления. Эти особенности позволяют предельно упростить управление программой и уменьшить время овладения всеми возможностями программы неподготовленными пользователями.
В комплекте с программой реализована стандартная библиотека действий, выполняющая два ключевых действия: запуск и завершение произвольных файлов. Эти два действия позволяют с помощью внешних программ выполнять произвольные действия и управлять различным оборудованием. Кроме того, реализованная стандартная библиотека сигнатурных алгоритмов позволяет использовать один из четырех возможных алгоритмов получения сигнатур: стандартные алгоритмы - sum, crc-16, cr, и оригинальный алгоритм с улучшенными показателями - bt. [2]. Для более надежного анализа текста используется алгоритм Левенштайна [5] и русский словарь из 93000 слов для поиска максимально схожих слов. Все эти особенности позволяют эффективно использовать программу для сигнатурного анализа текста и автоматизации управления.
Литература
1. Раков В.И. Об идее нелингвистического восприятия лингвистических «сигналов» в АСУ. // Технологии гуманитарного поиска: сб. ст./ Под ред. Проф. Харченко В.К. - Белгород: Ин-т лингвистики, 2000. - С.54-59.
2. Шуваев А.Н., Рябинкин Е.В. Программная среда лингвистического процессора управления: отчет по учебной практике. // Кафедра Информационных систем факультета электроники и приборостроения. Руководитель к.т.н. Раков В.И. - Орёл: гос. тех. ун-т, 2003. - 13 с.
3. Глушков В.М. Введение в АСУ. -2-е изд. - К.,1974.- 290 с.
4. Элиенс Антон. Принципы объектно-ориентированной разработки программ. -2-е изд. - С.-П.: "Вильямс", 2002. - 496 с.
5. Кузнецов П.Г. Обучение при распознавании символьных последовательностей. // Вычислительные системы, 1994. - Вып. 150. - C. 164-183.
Размещено на Allbest.ru
Подобные документы
Программная реализация синтаксического анализатора произвольного текста. Матрица и дерево переходов для программы. Код программы с построчным комментарием. Порядок запуска среды разработки Visual Studio. Интерфейс и номера Лихтенштейна, скриншот.
контрольная работа [855,1 K], добавлен 13.02.2014Проектирование программы-анализатора, состоящей из двух частей: лексического анализатора, разбивающего исходный текст программы на лексемы и заполняющего таблицу имен; синтаксического анализатора, проверяющего соответствие текста заданной грамматике.
курсовая работа [2,0 M], добавлен 14.06.2010Функциональные возможности, предоставляемые Windows API. Услуги, дополнительные службы, графический и пользовательский интерфейсы устройства, библиотеки управления. Программа перевода текста в другую раскладку клавиатуры. Тестирование программы "TrueKey".
контрольная работа [459,0 K], добавлен 13.06.2012Разработка алгоритмов на персональном компьютере, среда Турбо Паскаль. Работа программы для шифровки и дешифровки текста. Алгоритм шифрования: с помощью команды ORD. Функция Password а преобразовании символа, введенного пользователем ключа в его числовой
курсовая работа [19,6 K], добавлен 17.10.2008Анализ предметной области создания программы организации, предоставляющей услуги проката DVD и CD дисков. Описание информационных процессов, обоснование необходимости автоматизации. Разработка приложения, среда реализации и пользовательский интерфейс.
курсовая работа [43,6 K], добавлен 23.03.2010Работа в окне документа. Ввод текста. Вставка и удаление текста. Отмена результатов выполненных действий. Перемещение и копирование текста методом "перетащить-оставить". Форматирование текста. Сохранение документа. Шаг вперед: смена регистра.
лабораторная работа [220,9 K], добавлен 10.03.2007Детерминированная автоматная модель синтаксического анализатора. Исследование структуры разработанной программы, требования к функциональности, Основные элементы и принципы реализации. Листинг спроектированной программы и анализ полученных результатов.
курсовая работа [69,1 K], добавлен 11.12.2015История появления и развития шифрования текста. Проблема шифрования и дешифрования текстовых сообщений в современности. Создание программы для зашифровки и расшифровки вводимого текста пятью методами: Атбаш, Цезаря, Полибия, Гронсфельда и Винжера.
курсовая работа [923,6 K], добавлен 26.12.2011Реализация web-сервиса для сбора и анализа статистических данных по тексту, а также web-приложения, поддерживающего взаимодействие с сервисом и организующего пользовательский интерфейс. Проектирование архитектуры приложения. Язык программирования C#.
курсовая работа [417,6 K], добавлен 25.03.2015Прототип интерфейсов программы. Mind map диаграмма. Политика реализации безопасности и сохранности данных. Блок-схема реализации функционала программы. Форма, интерфейс личного кабинета пользователя. Проверки во время заполнения регистрационной формы.
курсовая работа [3,3 M], добавлен 14.09.2016