Главная arrow Знания и рассуждения arrow Синтаксический разбор текста
Как начинался компьютер
Компьютерная революция
Двоичный код
Разработки военных лет
Интегральные микросхемы
Микрокомпьютер
Персоны
Сеть
Язык компьютера
Развитие ПО
Гибкие системы
Средства разработки
Информатика
Вычислительная наука
Операционные системы
Искусственный интеллект
Предыстория
Поиск
Знания и рассуждения
Логика
Робототехника
 

 
Синтаксический разбор текста Печать

Структура семантической нейронной сети, реализующей морфологический и синтаксический разбор текста

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

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

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

Реализация уровня разбора текста требует наличия некоторой формальной модели этого разбора. Согласно теореме Гёделя реализация формализма может оказаться проще описания этого формализма. Упоминая теорему Гёделя, фон Нейман пишет: "… В таком случае быстрее сделать что-то, чем описать, быстрее привести схему, чем дать общее описание всех ее функций и всех мыслимых обстоятельств. Очень важно понять, что сеть из формальных нейронов может сделать все, что можно описать словами, и это необычайно упрощает дело при низких уровнях сложности. Но при высоких уровнях сложности это не обязательно будет упрощением. Вполне возможно, что при высоких уровнях сложности ценность представляет собой обратное утверждение этой теоремы Гёделя, т. е. она упрощает дело потому, что гарантирует обратное: можно выразить логику на языке этих построений [формальных нейронов], а прямое утверждение может быть и неверным".

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

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

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

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

В качестве структуры семантической нейронной сети, выполняющей морфологический и синтаксический разбор, выберем синхронизированное линейное дерево. Проведем грубую оценку объема нейронной сети, требуемой для реализации грамматического словаря Русского языка. В словаре А.А. Зализняка содержится около 100000 словарных статей. Допустим, каждая словарная статья содержит в себе 10 слов по 10 символов. Тогда Общее количество неупакованной информации составит 10*10*100000 = 107 символов. В семантической нейронной сети каждый символ соответствует отдельному нейрону.

Пусть, в среднем, каждый нейрон занимает в хранилище 1000 байт. Тогда общий объем хранилища для семантической нейронной сети, реализующей грамматический словарь А.А. Зализняка, составит 1010 байт или около 10 гигабайт. Накопители такого объема уже давно не являются экзотикой, следовательно, имеется возможность полностью представить грамматический словарь в виде семантической сети, в которой каждой форме слова из словарной статьи будет соответствовать отдельное слово в виде фрагмента нейронной сети. На практике, грамматический словарь, реализованный в виде семантической нейронной сети, будет иметь меньший объем. Это связанно с тем, что в синхронизированном линейном дереве, используемом для хранения словоформ, одинаковые символьные последовательности разных слов хранятся как один фрагмент линейного дерева.

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

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

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

В слое извлечения смысла существуют нейроны, не принадлежащие отдельным словарным статьям. Эти нейроны соответствуют признакам словоформ общим для многих словарных статей, таким как род, падеж, число, время ... Они возбуждаются при возбуждении словоформ, обладающих соответствующими признаками. Будем считать, что состояния этих нейронов, соответствующие признакам словоформ, так же принадлежат к субавтоматам словарных статей, с которыми эти нейроны образуют связи. Тогда, несколько словарных статей могут одновременно находиться в одном и том же состоянии. Например, все словарные статьи, распознающие слово "коса" будут одновременно находиться в состоянии "существительное", или, что тоже самое, общий нейрон, соответствующий признаку "существительное" будет находиться в возбужденном состоянии.

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

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

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