Рассматривется метод извлечения знаний из текста на естественном языке и построение ответа на естественном языке при помощи семантической сети, представленой в виде семантического дерева.
Понимание вычислительной системой смысла текста естественного языка представляет собой задачу разбора. Разбор текста выполняется несколькими последовательными операциями: морфологическим разбором, синтаксическим разбором и семантическим разбором. Выполнение задачи синтаксического разбора текста естественного языка представляет собой определение всех синтаксических признаков этих слов, необходимых для семантического разбора [4]. Для решения задач морфологического и синтаксического анализа текста, а так же задач анализа словоизменения применим семантическую нейронную сеть[1], близкую по свойствам формальной нейронной сети Маккаллока-Питтса [3].
В подсети извлечения смысла из текста, отдельный нейрон обозначает элементарное понятие, соответствующее этапу обработки, к которому относится данный подслой нейронной сети. Элементарными понятиями являются любые понятия естественного языка с законченным смыслом, такие как символ, слог, слово, словосочетание, предложение, абзац, весь текст. Различным этапам обработки соответствуют различные уровни агрегации элементарных понятий, например: символ, слог, слово, словосочетание.
В качестве структуры семантической нейронной сети, выполняющей морфологический и синтаксический разбор, применим синхронизированное линейное дерево [2]. Линейное дерево состоит из подслоев. Каждому синхронизированному подслою соответствует фронт волны обработки. Нейроны первого подслоя соответствуют первой букве слова, второго - второй и так далее. Общее количество подслоев равно максимальному количеству букв в одном слове. Первый подслой состоит из нейронов, распознающих первую букву, второй слой состоит из нейронов распознающих первые две буквы, третий - первые три буквы.
Каждый нейрон имеет одну входную связь с нейроном из предыдущего подслоя, соответствующим предыдущей букве слова, и одну входную связь с нейроном из слоя рецепторов, соответствующим текущей букве. Каждый нейрон может иметь выходную связь с неограниченным количеством нейронов из следующего подслоя обработки. Функции классификации реализуются с помощью агрегирующих подслоев, состоящих из не синхронизированных нейронов. Агрегирующие подслои не синхронизированных нейронов, выполняющих функции дизъюнкции, размещаются между подслоями синхронизированных нейронов выполняющих функции конъюнкции. В результате получается многослойная структура, в которой после каждого подслоя фронта волны находится подслой агрегирования.
Число нейронов в сети ограниченно, и они имеют конечное число состояний и связей, поэтому слой извлечения смысла в виде синхронизированного линейного дерева можно рассматривать как конечный автомат. Переход из одного состояния в другое происходит при подаче на слой извлечения смысла очередного символа входной последовательности. Пусть одна словарная статья - это группа нейронов, или один нейронный субавтомат в слое извлечения смысла. В случае наличия многозначности, в синхронизированном линейном дереве возбуждаются все словарные статьи и словоформы, соответствующие всем отдельным значением словоформы. Пусть общее число субсостояний словарной статьи равно числу словоформ этой статьи. Пусть каждое субсостояние такого субавтомата представляет собой один возбужденный нейрон.
При этом, в случае одновременного возбуждения двух разных нейронов одного субавтомата будем говорить что субавтомат имеет одновременно два разных субсостояния. Каждая словарная статья имеет главный нейрон, соответствующий этой статье. Главный нейрон словарной статьи возбужден всегда, когда распознано слово, принадлежащее его словарной статье. Каждой словоформе соответствует отдельный нейрон. Он возбуждается в случае, если словоформа распознана.
В слое извлечения смысла существуют нейроны, не принадлежащие отдельным словарным статьям. Эти нейроны соответствуют признакам словоформ общим для многих словарных статей, таким как род, падеж, число, время ... Множество возбужденных нейронов субавтомата соответствует множеству признаков, принадлежащих отдельной словоформе, распознанной субавтоматом. Задача классификации или определения словарной статьи и словоформы по заданной символьной последовательности сводится к прохождению волны возбуждения через слой извлечения смысла и возбуждении соответствующего субавтомата для соответствующей словарной статьи. Задача словоизменения сводится к изменению состояния такого субавтомата из начального состояния - соответствующего словоформе из которой начинается словоизменение в конечное состояние - соответствующее словоформе в которую требуется преобразовать исходную словоформу.
Процесс общения с вычислительной системой на естественном языке можно условно разбить на операции разбора, анализа и синтеза. Операцию разбора определим как функцию преобразования текста на естественном языке из неформализованного вида в формализованное внутреннее представление. Операцию анализа определим как функцию преобразования данных, существующих во внутреннем представлении и вывода на их основе новых данных, так же в формализованном виде. Операцию синтеза - как функцию формирования ответа на естественном языке, адекватного внутреннему формализованному представлению.
Операцию разбора можно разделить на несколько уровней разбора: морфологический, синтаксический и семантический уровни. Морфологический разбор проводится путем выделения из текста отдельных слов и разбором выделенных слов на морфемы. Операция синтаксического разбора текста естественного языка представляет собой определение всех, необходимых для семантического разбора, синтаксических признаков и синтаксических связей этих слов [1, стр. 34]. Семантический разбор требует наличия в памяти системы имитационной модели внешнего мира. Он заключается в окончательном формировании внутреннего формализованного представления текста путем сопоставления знаний из имитационной модели с фактами находящимися непосредственно в тексте [2, стр 188].
Для решения задач морфологического и синтаксического разбора текста, а так же задач анализа словоизменения применим семантическую нейронную сеть[3], близкую по свойствам формальной нейронной сети Маккаллока-Питтса [4]. Отдельный нейрон в семантической нейронной сети обозначает элементарное понятие, соответствующее этапу обработки, к которому относится данный подслой нейронной сети. Элементарными понятиями являются любые понятия естественного языка с законченным смыслом, такие как символ, слог, слово, словосочетание, предложение, абзац, весь текст. Различным этапам обработки соответствуют различные уровни агрегации элементарных понятий, например: символ, слог, слово, словосочетание.
В качестве структуры семантической нейронной сети, выполняющей морфологический и синтаксический разбор, применим синхронизированное линейное дерево [5]. Синхронизация параллельно протекающих процессов на существующем аппаратном обеспечении обеспечивается применением синхронизированных и несинхронизированных нейронов. Слой обработки, построенный по принципу синхронизированного линейного дерева, содержит синхронизированные нейроны, выполняющие операцию конъюнкции и несинхронизированные нейроны, выполняющие операции дизъюнкции и отрицания. Нейроны соединяются в виде множества пересекающихся деревьев, корни которых обращены в сторону рецепторов, а вершины - в сторону эффекторов.
Линейное дерево состоит из подслоев нейронов. Каждому синхронизированному подслою соответствует фронт волны обработки. Нейроны первого подслоя соответствуют первой букве слова, второго - второй и так далее. Общее количество подслоев равно максимальному количеству букв в одном слове. Первый подслой состоит из нейронов, распознающих первую букву, второй слой состоит из нейронов распознающих первые две буквы, третий - первые три буквы. Упрощенный фрагмент синхронизированного линейного дерева, распознающего слова "мама", "маме", "машина", "машине" представлен на рис.1. Каждый нейрон в упрощенном синхронизированном линейном дереве является синхронизированным конъюнктором и имеет одну входную связь с нейроном из предыдущего подслоя, соответствующим предыдущей букве слова, и одну входную связь с нейроном из слоя рецепторов, соответствующим текущей букве.
Каждый нейрон может иметь выходную связь с неограниченным количеством нейронов из следующего подслоя обработки. В дальнейшем, структура связей между нейронами-конъюнкторами в упрощенном линейном дереве будет аналогична структуре связей между дизконъюнкторами (см. рис.4)
На рисунке 1 отсутствуют синхронизирующий сигнал "новый символ" и агрегирующие подслои дизъюнкторов. Синхронизирующий сигнал "новый символ" вырабатывается слоем рецепторов, когда рецепторы успешно распознали вновь поступивший символ. Он поступает на синхронизирующие входы всех нейронов-конъюнкторов. В момент прихода синхронизирующего импульса все конъюнкторы линейного дерева производят обработку своих входных сигналов. Так как эти входные сигналы, вырабатываются по результатам предыдущего такта, другими синхронизированными нейронами, в дереве возникает эффект волны обработки. Отметим, что для распознавания четырех слов (рис.1) с общим количеством символов 4+4+6+6=20 потребовалось всего 10 нейронов, выполняющих функцию конъюнкции, 6 рецепторов и 4 эффектора.
Классификация понятий реализуются в синхронизированном линейном дереве с помощью агрегирующих подслоев, состоящих из несинхронизированных нейронов. В частном случае для определения типов или классов объектов, таких как "существительное", "мужской род", "женский род" и других, аналогичных достаточно одного агрегирующего подслоя состоящего из несинхронизированных нейронов-дизъюнкторов (рис.2). Все выходы нейронов, относящиеся к одному и тому же классу, объединяются не синхронизированным нейроном, выполняющим операцию дизъюнкции и отвечающему за распознавание этого класса. В случае необходимости учитывать отрицания понятий, в этом слое размещаются нейроны-инверторы.
Рис. 1
Рис. 2
В общем случае, агрегирующие подслои не синхронизированных нейронов, выполняющих функции дизъюнкции, размещаются между подслоями синхронизированных нейронов выполняющих функции конъюнкции. В результате получается многослойная структура, в которой перед каждым подслоем фронта волны находится подслой агрегирования (рис.3).
Рис. 3, a
Рис. 3, b
На рисунке 3-a показан общий вид структуры межнейронных связей в синхронизированном линейном дереве. На рисунке 3-b показан пример синхронизированного линейного дерева, имеющий три входных рецептора: , и , и классифицирующий на три класса входные символьные последовательности. Первому классу принадлежат символьные последовательности "121" и "221", второму - "23" и третьему - "321", "12321" и "22321".
Различным вариантам состояния входного потока символов в нейронной сети соответствуют различные варианты состояния этой сети. Результатом разбора, извлеченным из обработанной части текста в течение одного кванта времени, является мгновенное состояние синхронизированного линейного дерева. Мгновенное состояние включает в себя мгновенный снимок множества нейронов, множества связей между нейронами и множества внутренних состояний нейронов. Количество нейронов в сети ограниченно, нейроны имеют конечное число состояний и связей, поэтому слой разбора текста в виде синхронизированного линейного дерева представляет конечный автомат. Переход из одного состояния в другое происходит при подаче на слой разбора текста очередного символа входной последовательности.
Каждый нейрон имеет одно градиентное состояние в диапазоне от покоя до возбуждения. Пусть каждое такое состояние - элементарное понятие. Мгновенное состояние слоя разбора может содержать один или несколько возбужденных нейронов. Удобно рассматривать слой разбора не как один автомат, а как множество субавтоматов - по числу словарных статей. Пусть каждое градиентное состояние нейрона принадлежащего к субавтомату является субсостоянием этого субавтомата. Тогда в одном фрагменте синхронизированного линейного дерева (в одном конечном автомате) будет одновременно находиться несколько субавтоматов, каждый с несколькими субсостояниями. Этот подход позволяет решить проблему многозначности естественного языка, поскольку множество значений одного омонима одновременно находятся в сети как множество субсостояний.
Обозначим несинхронизированный дизъюнктор и синхронизированный конъюнктор одним логическим элементом, рис.4. У каждого такого элемента будет по два дендритных дерева, одно - выполняющее функцию дизъюнкции входных градиентных значений, второе - выполняющее функцию конъюнкции входных градиентных значений и результата функции дизъюнкции[6]. Можно сказать, что этот логический элемент представляет собой ансамбль из двух нейронов, назовем его дизконъюнктором. Дизконъюнктор обозначим кругом, его дендрит дизъюнктора обозначим слева от этого круга (рис.4, п.1), дендрит конъюнктора сверху или снизу круга (рис.4, п.2), аксон - справа круга (рис.4, п.3).
Для удобства внутри круга будем записывать символы, соответствующие дендриту конъюнктора. Один подслой дизконъюнкторов соответствует смежным подслоям синхронизированных конъюнкторов и несинхронизированных агрегирующих дизъюнкторов. Можно видеть, что структура соединений дизконъюнкторов аналогична структуре соединений конъюнкторов в упрощенном синхронизированном дереве, показанном на рисунке 1.
Рис. 4
Рассмотрим реализацию морфологического и синтаксического разбора. Отдельная словарная статья представляет собой группу словоформ преобразуемых между собой путем словоизменения (спряжения или склонения). Из этой группы выделяют главную словоформу, несущую основную смысловую нагрузку статьи. В слое разбора текста каждая словарная статья представляет один нейронный субавтомат, а каждая словоформа - один дизконъюнктор, принадлежащий этому субавтомату. Состояние дизконъюнктора соответствует субсостоянию этого субавтомата. Возбужденное состояние дизконъюнктора означает успешное распознавание соответствующей словоформы. Каждая словарная статья имеет главный дизконъюнктор, соответствующий лексеме и несущий основную смысловую нагрузку этой статьи. Главный дизконъюнктор словарной статьи возбужден всегда, когда распознана любая словоформа, принадлежащая его словарной статье.
В случае наличия многозначности, в синхронизированном линейном дереве возбуждаются все словарные статьи и словоформы, соответствующие всем отдельным значениям словоформы. При этом, в случае одновременного возбуждения двух разных дизконъюнкторов одного субавтомата будем говорить что субавтомат одновременно имеет два разных возбужденных субсостояния. Например, при подаче на вход синхронизированного линейного дерева слова "косе" будут возбуждены словарные статьи, соответствующие значениям "коса-волосы", "коса-инструмент", "коса-ландшафт". При этом в каждой словарной статье будут возбуждены по две словоформы, соответствующие дательному и предложному падежам. Таким образом, синхронизированное линейное дерево обеспечивает решение задачи классификации словоформы по словарным статьям и определение синтаксических признаков этой словоформы.
Каждая словоформа обладает некоторым множеством синтаксических признаков, таких как род, падеж, число, время ... Эти признаки являются общими для многих словарных статей. В слое разбора текста каждому такому признаку соответствует дизконъюнктор, не принадлежащий отдельным словарным статьям. Эти дизконъюнкторы возбуждаются при возбуждении словоформ, обладающих соответствующими признаками. Будем считать, что состояния этих дизконъюнкторов, соответствующие признакам словоформ, так же принадлежат субавтоматам словарных статей, с словоформами которых дизконъюнкторы образуют связи.
Тогда, общее число субсостояний словарной статьи равно числу словоформ этой статьи плюс число признаков этих словоформ. Следовательно, несколько словарных статей могут одновременно находиться в одном и том же субсостоянии. Например, все словарные статьи, распознающие слово "коса" будут одновременно находиться в состоянии "существительное", или, что тоже самое, общий дизконъюнктор, соответствующий признаку "существительное" будет находиться в возбужденном состоянии.
Задача классификации или определения словарной статьи и словоформы по заданной символьной последовательности сводится к прохождению волны возбуждения через слой разбора текста и возбуждении соответствующего субавтомата для соответствующей словарной статьи. Множество возбужденных дизконъюнкторов субавтомата включает в себя множество признаков, принадлежащих отдельным словоформам, распознанным субавтоматом. Задача словоизменения сводится к изменению состояния такого субавтомата из начального состояния - соответствующего словоформе из которой начинается словоизменение в конечное состояние - соответствующее словоформе в которую требуется преобразовать исходную словоформу.
При решении задачи словоизменения/словообразования синхронизированное линейное дерево будет выступать как переключательная цепь, коммутирующая возбуждение, переводящее субавтоматы из одного состояния в другое. Переключение состояний субавтомата будет происходить при подаче на вход синхронизированного линейного дерева специальных символьных последовательностей. Эти последовательности будут распознаны синхронизированным линейным деревом и преобразованы в градиентное значение на выходе соответствующих им нейронов-эффекторов. Эти значения можно интерпретировать как сигналы от рецепторов, что вызовет возбуждение или торможение дизконъюнкторов, подключенных к этим сигналам своими конъюнкторными входами.
Непечатный символ пробела между словами обозначим "_". Для удобства отделения словоформ от служебных символьных последовательностей примем решение начинать каждое слово со спецсимвола, не имеющего аналога в символах находящихся в обрабатываемой символьной последовательности. Для удобства работы ограничим множество символов внешнего мира множеством букв и цифр русского языка. В качестве "старт" спецсимвола словоформы применим символ точки: ".". Рецептор спецсимвола "." возбуждается пробелом "_", находящимся перед первым непробельным символом словоформы. Каждую словоформу во входной последовательности так же завершает пробельный символ "_ ". Введем два разных равноправных рецептора "% " и "$ " реагирующие на символ пробела и на спецсимволы "% " и "$ " соответственно.
Первый рецептор будем использовать в качестве детектора конца словоформы как единицы словарной статьи (слово обыкновенное), а второй - в качестве детектора признака словоформы (падеж, число, спряжение, …) так же совпадающий с концом словоформы. Фрагмент синхронизированного линейного дерева построенный для слов ". коса_ " и ". косе_ " изображен на рис.5.
Рис. 5
Синхронизированное линейное дерево, изображенное на рис.5 переходит в состояние "." при подаче на его вход спецсимвола ".", потом в состояние ". к" при подаче символа "к", далее последовательно ". ко", ". кос", ". косе", и затем одновременно два субсостояния ". косе% " и ". косе$ ", при подаче соответственно "о", " с", " е", "_".
Рассмотрим синтаксические признаки словоформ. Символом "* " будем обозначать первый спецсимвол признака словоформы, выступающий в той же роли, что и символ ". " для словоформ. Начало словоформы и ее признака обозначаем различными спецсимволами для уменьшения размера дерева поиска, это может увеличить скорость работы последовательной вычислительной системы. Однако, для решения задачи словоизменения на параллельной вычислительной системе, было бы достаточно ограничиться различением спецсимволов "$ " и "% ". На рис.6 приведен пример структуры связей словарной статьи, определяющей следующие признаки: существительное - "* сущ$ " именительный - "* имн$ " и дательный - "* дат$ " падежи слов ". коса_ " и ". косе_ ". При подаче на словарную статью слова ". коса_ " она переходит в возбужденные субсостояния: ". коса%", "*сущ$", "*имн$ ", а при подаче слова ".косе_ " в возбужденные субсостояния: ". косе%", "*сущ$ " и "* дат$".
Введем операцию принудительного связывания дизконъюнкторов, обозначаемую спецсимволом "- ". Эта операция будет связывать два дизконъюнктора, имеющие возбужденное состояние, после подачи на вход синхронизированного линейного дерева двух фрагментов символьных последовательностей расположенных слева и справа этого символа. При этом возбужденный дизъконъюнктор левой части выражения образует аксон, а возбужденный дизконъюнктор правой части выражения - дендрит дизъюнктора. Задание на компиляцию фрагмента сети с рис.6 приведено на рис.7.
Рис. 6
.коса%
.косе% .коса-*сущ$ .косе-*сущ$ .коса-*имн$ .косе-*дат$ |
Нейроны-рецепторы распознают отдельные символы входной символьной последовательности. На выходе рецептор генерирует сигнал, означающий наличие или отсутствие соответствующего символа в анализируемом тексте. Нейроны-эффекторы выдают результат распознавания отдельных фрагментов входной символьной последовательности. Заменив в синхронизированном линейном дереве сигнал от рецептора сигналом от эффектора того же дерева, мы получим возможность использовать в качестве входных символов фрагменты символьных последовательностей.
Для обозначения таких фрагментов во входной символьной последовательности будем применять спецсимволы скобок: "( " и ") ". После прихода спецсимвола "( " текущее состояние линейного дерева сохраняется в стеке вычислительной системы и производится сброс дерева в исходное состояние. После прихода спецсимвола ") " множество возбужденных в дереве дизконъюнкторов интерпретируется как множество возбужденных рецепторов. Состояние дерева восстанавливается из стека и производится обработка сигналов рецепторов, поступающих на дендриты конъюнкторов. Например, задание на компиляцию слоя разбора, изображенного на рис.8 приведено на рис.9.
Рис. 8
.(кос)а
.((кос)ить) .с((кос)ить) .вы((кос)ить) |
Задача разбора свелась к прохождению волны возбуждения по слоям синхронизированного линейного дерева. Результат разбора представляется в виде совокупности субсостояний этого дерева. Задача словоизменения сводится к изменению состояния субавтомата - словарной статьи из состояния склоняемой словоформы в состояние результата склонения. Для обеспечения этой функциональности необходимо ввести связи для перехода между состояниями словарной статьи. Следует заметить, что в случае словоизменения, изменяемое слово уже имеется в наличии и уже обработано словарной статьей. Поэтому начальным состоянием для задачи словоизменения является одно из возбужденных состояний словарной статьи. Переход из одного возбужденного состояния соответствующего начальной форме слова в конечное состояние, соответствующее конечной форме слова происходит при подаче на линейное синхронизированное дерево соответствующего спецсимвола.
В качестве спецсимволов, служащих для перевода словарных статей из одного состояния в другие выберем не один символ, а целую символьную последовательность. Это возможно благодаря тому, что как упоминалось ранее, любой нейрон можно рассматривать и как эффектор и как рецептор. Некоторая символьная последовательность, поданная на вход синхронизированного линейного дерева, в случае успешного распознавания, возбуждает один или несколько дизконъюнкторов этой сети. Сигнал с этого возбужденного дизконъюнктора можно использовать в качестве выходного сигнала рецептора. Связь, обеспечивающая перевод словарной статьи из одного субсостояния в другое представляет дизконъюнктор, дизъюнктор которого соединен с аксоном дизконъюнктора, представляющего субсостояние, с которого требуется провести переход, конъюнктор - с рецептором, распознающим спецсимвол перехода, а аксон - с дендритом возбуждаемого дизконъюнктора, соответствующего субсостоянию, в которое требуется перейти по приходу спецсимвола.
На рисунке 10 приведен пример задания на программирование словоизменения слов "коса- косе" и "косе- коса" в сети с рис.6 . На рисунке 11 приведена структура нейронной сети, образованная после выполнения этого задания. При подаче на эту структуру символьной последовательности ". коса_(* дат$)_ " возбуждаются субсостояния ". косе%", "*сущ$", "*дат$ ", те же что и при подаче символьной последовательности ". косе_ ". Если подать на эту структуру символьную последовательность ". косе_(* имн$)_ ", то возбуждаются субсостояния ". коса%", "*сущ$", "*имн$ ", те же что и при подаче последовательности ". коса_".
.коса%(*дат$)-.косе_;
.косе%(*имн$)-.коса_; |
Рис. 11
Спецсимвол "& " применяется для обозначения одновременного возбуждения нескольких дизконъюнкторов. Каждая из нескольких символьных последовательностей, поданных одна за другой на вход синхронизированного линейного дерева, последовательно возбуждает собственные наборы дизконъюнкторов. Запись этих последовательностей через знак "& " обозначает одновременное объединение возбужденных ими дизконъюнкторов в один набор. В качестве программирующей последовательности спецсимвол "& " приводит к созданию дизконъюнктора, дендрит конъюнктора которого соединен со всеми дизконъюнкторами, объединенными в этот набор. Это происходит в связи с тем, что аксоны объединенных в набор возбужденных дизконъюнкторов связываются с конъюнктором обучаемого дизконъюнктора, который выполняет конъюнкцию всех поступающих на него сигналов. И, следовательно, этот дизконъюнктор будет возбужден только в случае одновременного возбуждения всех дизконъюнкторов входящих в описанное объединение.
На рис.12 приведено задание на программирование фрагмента нейронной сети, распознающей последовательность из существительного множественного числа и глагола множественного числа. На рис.13 показана структура связей синхронизированного линейного дерева, полученная после запуска этого задания. Условно изображенный на рисунке эффектор "1" будет возбуждаться при поступлении символьных последовательностей, таких как "(. машины_)(. едут_) " или "(. спортсмены_)(. бегут_) " и будет находиться в покое при поступлении "(. машина_)(. едет_) " или "(. спортсмены_)(. бежит_)".
(*сущ$ & *мно$)(*гла$ & *мно$) |
Рис. 13
Рассмотренная структура семантической нейронной сети позволяет обрабатывать входной поток символов в режиме реального времени благодаря высокой степени распаралеленности вычислений. Время запаздывания результата обработки зависит от количества последовательно соединенных слоев обработки входных данных, а не от количества нейронов входящих в эту нейронную сеть.
E-mail
© Prof 2003-2005
25.09.2005
2/3