УДК 519.7

Д.Е. ШУКЛИН


РЕАЛИЗАЦИЯ БИНАРНОГО СИНХРОНИЗИРОВАННОГО ЛИНЕЙНОГО ДЕРЕВА И ЕГО ПРИМЕНЕНИЕ ДЛЯ ОБРАБОТКИ ТЕКСТА ЕСТЕСТВЕННОГО ЯЗЫКА.

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

Обработку текста естественного языка принято разделять на операции морфологического и синтаксического разбора, семантического анализа и синтеза. В качестве структуры семантической нейронной сети [1], выполняющей морфологический и синтаксический разбор, применим синхронизированное линейное дерево [2]. Семантический анализ содержимого текста реализуем, используя модель предметной области в виде нейронной экспертной системы [3]. Операцию синтеза текста реализуем программно, путем восстановления текста по возбужденному нейрону-эффектору в синхронизированном линейном дереве.

Синхронизированное линейное дерево состоит из подслоев нейронов. Каждому синхронизированному подслою соответствует фронт волны обработки. Нейроны первого подслоя соответствуют первой букве слова, второго - второй и так далее. Общее количество подслоев равно максимальному количеству букв в одном слове. Первый подслой состоит из нейронов, распознающих первую букву, второй слой состоит из нейронов распознающих первые две буквы, третий - первые три буквы [2, рис.1]. Подслой фронта волны содержит синхронизированные нейроны, выполняющие операцию конъюнкции и несинхронизированные нейроны, выполняющие операции дизъюнкции. Агрегирующие подслои не синхронизированных нейронов, выполняющих функции дизъюнкции, размещаются между подслоями синхронизированных нейронов выполняющих функции конъюнкции. В результате получается многослойная структура, в которой перед каждым подслоем фронта волны находится подслой агрегирования [2 рис. 2, рис. 3]

Для упрощения структуры связей между нейронами и уменьшения количества нейронов в системе можно объединить в одном логическом элементе несинхронизированные дизъюнкторы из подслоя агрегирования и связанные с их аксонами синхронизированные конъюнкторы фронта волны [4, рис.1]. Каждый такой элемент имеет по два дендритных дерева, одно выполняет функцию дизъюнкции входных градиентных значений, второе - функцию конъюнкции входных градиентных значений и результата функции дизъюнкции. Можно сказать, что этот логический элемент представляет собой ансамбль из двух нейронов, назовем его дизконъюнктором, рис.1. Дизконъюнктор обозначим кругом, его дендрит дизъюнктора обозначим слева от этого круга (рис.1, п.1), дендрит конъюнктора сверху или снизу круга (рис.1, п.2), аксон - справа круга (рис.1, п.3). Дополнительные семантические связи дизконъюнктора будем обозначать линиями с точкой на этом круге (рис.1, п.4). Для удобства, внутри круга будем записывать символы, соответствующие дендриту конъюнктора, или точку обозначающую возбуждение дизконъюнктора.


Рис. 1

Один подслой дизконъюнкторов соответствует смежным подслоям несинхронизированных агрегирующих дизъюнкторов и синхронизированных конъюнкторов. Можно видеть, что структура соединений дизконъюнкторов аналогична структуре соединений конъюнкторов в упрощенном синхронизированном дереве [2, рис.1].

Если не ставится проблема распознавания как устной, так и письменной речи, то задача обработки текста на естественном языке с использованием последовательной цифровой вычислительной системы может быть значительно упрощена. В этом случае анализируемый текст находится уже в электронном виде. В случае ввода пользователем некорректного текста, при работе с системой в интерактивном режиме, можно сформировать просьбу о повторном вводе. Поэтому можно ограничиться требованием ввода в систему обработки только заведомо корректных текстов. Отпадает необходимость проводить обработку неточностей и ошибок распознавания, требующую применения нечеткой логики. В связи с этим возникает возможность реализовать анализ текста, используя бинарную семантическую нейронную сеть, в которой используются только два градиентных уровня: 0 - "Ложь" и 1 - "Истина". При необходимости, всегда существует возможность вернуться к реализации семантической нейронной сети в полном объеме.

В процессе реализации синхронизированного линейного дерева необходимо обеспечить два режима работы дерева: программирование (обучение) и обработку текста. Этап программирования обеспечивает обучение системы конкретным правилам морфологии и синтаксиса конкретного языка. В режиме обработки текста, введенные в систему правила не изменяются, а только применяются к входным текстам. Как описано в [4], в процессе программирования синхронизированного линейного дерева в нем сохраняется только та информация, которая является для этого дерева новой, а уже имеющаяся в нем информация повторно не запоминается. На момент появления на входе линейного дерева некоторой обучающей последовательности, в нейронной сети уже сформирована некоторая структура. В процессе программирования линейного дерева волна обработки распространяется по нейронным связям этой структуры так же, как и в режиме обработки текста. Однако, в процессе программирования, активирована подсистема синтеза нейронной структуры. В отличие от режима обработки текста, при затухании волны в режиме программирования, синхронизированное линейное дерево достраивается новыми дизконъюнкторами. Эти дизконъюнкторы связываются своими дендритами-дизюнкторами с возбужденными нейронами предыдущего фронта волны, а дендритами-конъюнкторами с возбужденными нейронами-рецепторами. Очевидно, что новые нейроны возбуждаются входными сигналами от возбужденных дизконъюнкторов предыдущего фронта волны и возбужденными рецепторами текущего кванта времени, обеспечивая незатухающую волну обработки. В процессе программирования синхронизированного линейного дерева подсистемой синтеза нейронной структуры производится обработка спецсимволов "().*$%_-" [4], обеспечивая управление формированием структуры нейронной сети.

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

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

Наличие линии времени позволяет дополнительно упростить реализацию синхронизированного линейного дерева. Все дизконъюнкторы, которые находятся в возбужденном состоянии в некотором кванте времени, связаны семантическими связями с соответствующим этому кванту нейроном линии времени. Поэтому, возможно полностью исключить обмен градиентными данными между дизконъюнкторами и полностью лишить нейрон своего внутреннего состояния, в том числе и возбуждения. Состояние дизконъюнктора возбужден / пассивен в данный момент времени определяется по тому, имеет ли этот дизконъюнктор связи с соответствующим нейроном линии времени, рис.2. Поэтому, синхронизированное линейное дерево может быть представлено в памяти машины в виде однонаправленного графа, в котором узлы и связи нагружены дополнительными атрибутами, а нейроны (узлы) не имеют внутреннего состояния.


Рис. 2

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

Нейроны бинарного синхронизированного линейного дерева представляют узлы некоторого графа. Аксоны и дендриты нейронов представляют ориентированные ребра этого графа. Как было показано в [5], реализация связей между нейронами представляет собой списки записей некоторой структуры. Однотипные связи помещаются в один список, сохраняемый в теле нейрона в виде одной секции. Для реализации синхронизированного линейного дерева наиболее простой вид структуры, обеспечивающий требуемую функциональность, будет иметь вид одного поля с именем id. В этом поле будет храниться идентификатор нейрона, с которым установлена связь. Таким образом, секции будут представлять собой списки связей между нейронами.

Рассмотрим внутреннюю структуру нейронов. Нейрон-дизконъюнктор линейного дерева изображен на рис.3.


1-sCurrBase
2-sPrevBase
3-sNextBase
Рис. 3

Дизконъюнктор содержит в себе три следующие секции: Секция 1-sCurrBase предназначена для хранения списка идентификаторов нейронов, которые расположены в слое рецепторов. Связи, расположенные в этой секции объединяются операцией псевдо-конъюнкции. В режиме обучения, для возбуждения дизконъюнктора, требуется, чтобы были возбуждены все и только те рецепторы, которые находятся в этой секции. Это обеспечивается равенством списков идентификаторов секции 1-sCurrBase у нейрона линейного дерева и 1-sCurrBase у нейрона линии времени. В режиме обработки текста, чтобы нейрон, по связям, находящимся в секции 3-sNextBase, смог передать следующим нейронам волну активности, требуется, возбуждение минимум всех рецепторов, которые находятся в этой секции. Это обеспечивается включением списка идентификаторов секции 1-sCurrBase у дизконъюнктора линейного дерева в список идентификаторов нейронов 1-sCurrBase у нейрона линии времени.

Секция 2-sPrevBase предназначена для хранения списка идентификаторов дизконъюнкторов, которые расположены в предыдущем фронте волны обработки. По этим связям в текущий нейрон приходит фронт волны обработки. Если таких связей несколько, то существует возможность прихода фронта обработки от различных нейронов, возможно находящихся в различных слоях фронта волны, однако в одном кванте времени. Таким образом, отдельный дизконъюнктор может одновременно являться членом нескольких фронтов волн. Для возбуждения нейрона достаточно прихода волны активации хотя бы по одному входу. Следовательно, связи находящиеся в секции 2-sPrevBase сгруппированы по принципу дизъюнкции.

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

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

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

Структура нейрона линии времени представлена на рис.4.


1-sCurrBase
4-sPrevLine
5-sNextLine

Рис. 4

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

Секция 4-sPrevLine предназначена для хранения идентификатора одного нейрона линии предыдущего кванта времени.

Секция 5-sNextLine предназначена для хранения идентификатора одного нейрона следующего кванта времени.

Структура нейрона рецептора приведена на рис.5.


2-sPrevBase
6-sCharCode

Рис. 5

Секция 2-sPrevBase предназначена для хранения идентификатора нейрона корня рецепторов. По этой связи в текущий нейрон рецептор приходит фронт волны возбуждения.

Секция 6-sCharCode предназначена для хранения кода символа, который распознает рецептор.

Структура нейрона корня рецепторов и нейрона корня базы приведена на рис.6.


3-sNextBase
Рис. 6

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

Пример сформированной структуры сети представлен на рисунке 7.


1-sCurrBase
2-sPrevBase
3-sNextBase
4-sPrevLine
5-sNextLine
6-sCharCode

Рис. 7

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

В первом кванте времени создается нейрон линии времени, соответствующий кванту времени первого фронта волны обработки. Между нейронами нулевого и первого квантов устанавливается связь с использованием полей 4-sPrevLine и 5-sNextLine. В секцию 5-sNextLine нейрона 0-го кванта помещается идентификатор нейрона 1-го кванта, в секцию 4-sPrevLine нейрона 1-го кванта помещается идентификатор нейрона 0-го кванта. В секцию 1-sCurrBase нейрона 1-го кванта помещается список идентификаторов нейронов-рецепторов, которые в 1-м кванте времени имеют возбужденное состояние, то есть успешно распознали символ из входной текстовой последовательности. Список идентификаторов возбужденных рецепторов извлекается либо из секции 1-sCurrBase нейрона линии времени слоя рецепторов, либо из секции 1-sCurrBase нейрона линии времени линейного дерева более низкого уровня абстракции. Например, для линейного дерева, осуществляющего синтаксический разбор, уровнем рецепторов будет линейное дерево, осуществляющее морфологический разбор.

После заполнения списка идентификаторов возбужденных рецепторов начинается формирование фронта волны. Фокус обработки смещается с нейрона 1-го кванта линии времени в нейрон 0-го кванта путем обхода на один уровень всех нейронов, идентификаторы которых расположены в секции 4-sPrevLine нейрона 1-го кванта. Затем фокус обработки смещается с нейрона 0-го кванта линии времени в нейрон корня базы, путем обхода на один уровень всех нейронов, идентификаторы которых расположены в секции 1-sCurrBase нейрона 0-го кванта линии времени. Затем фокус обработки смещается с нейрона корня базы в нейроны-дизконъюнкторы первого фронта волны синхронизированного линейного дерева. Это происходит путем обхода на один уровень всех нейронов, идентификаторы которых расположены в секции 3-sNextBase нейрона корня базы. Для всех дизконъюнкторов фронта волны производится проверка их возбужденности путем расчета значения функции псевдо-конъюнкции. Работа функции псевдо-конъюнкции зависит от того, работает ли линейное дерево в режиме обучения или в режиме обработки. Каждый возбужденный дизконъюнктор первой волны обработки устанавливает семантическую связь с нейроном 1-го кванта лини времени.

В режиме обучения, в случае успеха выполнения операции псевдо-конъюнкции идентификатор дизконъюнктора из фронта волны обработки добавляется в список идентификаторов секции 1-sCurrBase нейрона 1-го кванта линии времени. В режиме обучения, в случае неуспеха выполнения операции псевдо-конъюнкции в базу добавляется новый дизконъюнктор со списком в секции 1-sCurrBase равным списку секции 1-sCurrBase нейрона 1-го кванта линии времени, а в список секции 1-sCurrBase нейрона 1-го кванта линии времени добавляется его идентификатор. В результате окончания обхода одного фронта волны обработки, в секции 1-sCurrBase нейрона 1-го кванта линии времени накапливаются идентификаторы дизконъюнкторов линейного дерева, распознавших первый символ входной символьной последовательности. Перемещение фокуса обработки в этом алгоритме происходит по методу обхода дерева в глубину на уровень 3. Следующие кванты времени i и следующие фронты волны обработки отличаются от описанного только тем, что роль нейронов предыдущего кванта теперь выполняют не нейрон корня 0-го кванта, а нейроны фронта волны кванта i-1.

На практике, сеть, извлекающая смысл из текста, представляет собой несколько синхронизированных линейных деревьев, рис.8. Каждое такое дерево обрабатывает понятия определенного уровня абстракции. Для каждого линейного дерева организуется своя линия времени.

      1. Рецепторы
      2. Линейное дерево морфологического анализа
      3. Линейное дерево синтаксического анализа
      4. Экспертная система с моделью предметной области
      5. Блок синтеза реакций системы (синтеза текста)
      6. Эффекторы
      7. Коммутатор
      8. Внешняя среда

Рис. 8

На рисунке 8 приведена блоксхема системы обрабатывающей естественный язык. Коммутатор 7 содержит в себе очередь символов текста, обрабатываемых системой. Входной текст из внешней среды 8 попадает в коммутатор 7, и пройдя через него на слой рецепторов 1. Два синхронизированных дерева 2 и 3 соответственно, проводят морфологический и синтаксический анализ текста [4]. Результаты синтаксического анализа текста поступают на вход экспертной системы 4, в которой содержится модель предметной области, сопоставляемая с текстом естественного языка. Экспертная система проводит семантический анализ смысла, содержащегося в тексте [3]. Результаты семантического анализа попадают в блок синтеза символьных последовательностей 5 и далее на слой эффекторов 6. Со слоя эффекторов символьная последовательность попадает в коммутатор 7. Символьные последовательности, снимаемые со слоя эффекторов, могут быть двух видов - внешняя реакция системы и внутренний промежуточный результат. Тип последовательности определяется по результату работы блоков 2, 3, 4 и 5 как наличие возбуждения эффекторов соответствующего спецсимволам переключения режимов коммутатора. Если символьная последовательность является внешней реакцией системы, то коммутатор 7 передает ее во внешнюю среду 8. Если символьная последовательность является промежуточным результатом, то коммутатор 7 подает ее на слой рецепторов 1. В результате в системе возникает семиотическая обратная связь. Система получает возможность оценить и скорректировать промежуточные результаты обработки, и только после окончательного формирования результата передать его во внешнюю среду.

Коммутатор 7 был реализован программно, поэтому на рис.8 он находится между слоями эффекторов 6 и рецепторов 1. Результаты экспериментов показали, что наличие семиотической обратной связи и повторной обработки символьных последовательностей, синтезированных в блоке 5 значительно облегчает реализацию словообразования и словоизменения, так как в этом случае эти операции производятся в блоках 2 и 3. Так же было обнаружено, что наличие внутренних спецсимволов, циркулирующих по контуру семиотической обратной связи, позволяет на примитивном уровне реализовать операции планирования беседы и управления вниманием в пределах нескольких обсуждаемых тем. Процессы, возникающие в описанной системе, напоминают известные из психологии феномены внутреннего монолога и самосознания [6]. В реализованной системе экспертная система 4 не была интегрирована в степени, достаточной для того, чтобы определить степень влияния наличия или отсутствия модели предметной области на процесс общения. Представляет интерес поставить эксперимент с наличием в системе достаточно развитой модели предметной области. Однако построение развитой имитационной модели требует участия в разработке большого числа квалифицированных специалистов из различных областей науки, таких как психология, лингвистика, кибернетика.

Опубликовано в [7].

СПИСОК ЛИТЕРАТУРЫ:

  1. З.В.Дударь, Д.Е.Шуклин Семантическая нейронная сеть, как формальный язык описания и обработки смысла текстов на естественном языке // Радиоэлектроника и информатика. Х.: Изд-во ХТУРЭ, 2000. - №. 3. С. 72-76.
  2. Д.Е.Шуклин Структура семантической нейронной сети извлекающей в реальном времени смысл из текста // Кибернетика и системный анализ. Киев. Изд-во Института кибернетики НАН Украины, 2001. - № 2. с. 43-48.
  3. Д.Е.Шуклин Применение семантической нейронной сети в экспертной системе, преобразующей смысл текста на естественном языке // Радиоэлектроника и информатика. Х.: Изд-во ХТУРЭ, 2001. - №. 2. С. 61-65.
  4. Д.Е.Шуклин Структура семантической нейронной сети, реализующей морфологический и синтаксический разбор текста // Кибернетика и системный анализ. Киев. Изд-во Института кибернетики НАН Украины, 2001. - № 5. С. 172-179.
  5. З.В.Дударь, Д.Е.Шуклин Реализация нейронов в семантических нейронных сетях // Радиоэлектроника и информатика. Х.: Изд-во ХТУРЭ, 2000. - №. 4. С. 89-96.
  6. Кучинский Г.М. Психология внутреннего диалога. Мн.: Университетское, 1988. - 206 с.

  7. Шуклин Д.Е. Реализация бинарного синхронизированного линейного дерева и его применение для обработки текста естественного языка // Кибернетика и системный анализ. Киев. Изд-во Института кибернетики НАН Украины, 2002. - № 4. C. 36-43.

Поступила 11.03.2002

 

[Рефераты] [Главная]

2002-02-14 / 2002-02-28 Шуклин Д. Е.