Компьютерная лингвистика для всех - Мифы, Алгоритмы, Язык

Анисимов Анатолий

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

Анисимов Анатолий

Компьютерная лингвистика для всех — Мифы, Алгоритмы, Язык

Эта книга — независимое продолжение предыдущего рассказа об алгоритмах и творчестве. На этот раз речь пойдет о языке и его алгоритмах. В начале было слово… Почему так? Когда-то язык был слабым отражением вещей в сознании человека, прозрачной зыбкой гранью, отделяющей человека от мира неживой материи. Сейчас язык развился настолько, что сам проявляет тенденцию к независимому движению и управляет развитием разума. Он сконцентрировал в себе все тайны Вселенной, в нем скрыты ответы на извечные вопросы бытия. Проникновение в эти тайны — такая же трудная, но увлекательная задача, как познание тайн микромира и космоса. Язык — самое древнее и самое загадочное приобретение человека, а лингвистика, наука о языке, — древнейшая из наук. Первые философы были поэтами, а проницательные философы всегда призывали к изучению языка. Лучшие средневековые трактаты по логике написаны грамматистами, и нет сомнений в том, что а ХХI в. лучшие трактаты по лингвистике напишут программисты. Развиваясь, язык раскрывает методы собственного познания. Об этом будет идти речь в книге. Возможно, когда-нибудь обнаружится, что исследования происхождения мифов предвосхитили изучение тайн гравитации и элементарных частиц. Мифы до конца еще не расшифрованы. Компьютерная лингвистика занимается проблемой компьютерного понимания естественного языка. Язык и мышление человека неразрывно связаны. Поэтому, разгадывая алгоритмы языка, человек тем самым пытается расшифровать алгоритмы разума. Эти многочисленные и настойчивые попытки привели к новому пониманию проблемы. Язык рассматривается как сложная алгоритмическая система. В ней обнаружены свои алгоритмы функционирования и законы развития. Человек — интерпретатор языка, поэтому ему отводится главенствующее положение в этой системе. Такой системный подход требует обобщенного междисциплинарного изучения языка, затрагивающего все пласты его проявлений. Психолингвистика, семиотика, мифология, религия, древняя и современная литература, теория алгоритмов, программирование, оптимальное управление и многие другие направления сконцентрированы в языковой системе. Перед автором стояла задача ввести неподготовленного, но думающего читателя в сложный, загадочный мир. Да и мир этот возник только недавно и отражает представления автора. Поэтому здесь не будет застывших догм и нравоучений, громоздких барьеров грамматики и сложных технических схем. А будет (возможно, оно покажется кому-то рискованным) небольшое путешествие во времени по стране языка. Будут первобытные ночи, притаившиеся охотники и их многоликие жертвы, старинные зеркала, загадочные лабиринты, страшные сны, тексты Борхеса, летящие слова и, конечно, компьютеры, повторяющие путешествие.

— ------------=

(1) Анисимов А. В. Информатика. Творчество. Рекурсия. — Киев: Наук. думка, 1988.- 223 с.

— ------------=

1. АЛГОРИТМЫ И МИР

Существует Вселенная, существует человек, объясняющий мир, выражающий эти объяснения колебаниями звука, жестами или письменными знаками. В вечном движении мира действуют свои закономерности, отражающиеся в языке. Поэтому, исследуя структуры языка, человек познает законы мира. Кроме числовых количественных соотношений, изучаемых математикой, в природе существуют универсальные правила, относящиеся к динамической структуре изменений и превращении материи. Они невыразимы количественными соотношениями описываемыми математическими формулами. Это законы развития и взаимодействия, они демонстрируются в языках искусства, в литературе, музыке, живописи. Поиск строгих формальных выразительных средств для выражения и изучения законов развития и взаимодействия начался в давние времена. Об этом думали и Пифагор, потрясенный несоизмеримостью диагонали и сторон квадрата, и Платон, построивший теорию диалогического взаимодействия для поиска истинных суждений, и молодой Галуа, в ночь накануне смертельной дуэли доказавший невозможность решения общих полиномиальных уравнений в радикалах, и Эйнштейн, искавший законы взаимодействия гравитации и вещества. Философы и математики, заметив одинаковые законы развития разнообразных объектов, предложили общее понятие — сложная система. Система — это структурно организованный объект, в котором выделяются состояния, переходы, подструктуры и взаимодействия частей. Системный подход дает возможность анализировать многие сложные объекты с позиций единой общей методологии. Наконец, в 30-е годы нашего столетия логики изобрели математическую теорию алгоритмов. Алгоритм — это сложная информационная система вместе с заданными правилами функционирования. В каждый момент, зная текущее состояние системы, ее правила и доступную ей информацию, можно предсказать множество ее возможных последующих изменений. Одно из важнейших понятий теории алгоритмов — рекурсия. Под рекурсией в общем смысле понимают такой способ организации системы, при котором она в отдельные моменты своего развития, определяемые ее правилами, может создавать (вызывать) собственные измененные копии, взаимодействовать с ними и включать их в свою структуру. Законы изменения копий при вызове также включаются в правила системы и могут зависеть от многих параметров: от состояния системы и других подсистем в момент вызова копии, от информационного наполнения заданных параметров, от правил самой системы. Возможно отсутствие изменения при вызове копии — чистая рекусия (это частный случай). Существует многообразие вариантов поведения копий; они могут существовать и развиваться параллельно с главной системой, исчезать после окончания своего этапа функционирования, по-разному взаимодействовать между собой. Все определяется правилами системы. Рекурсия — важнейшее фундаментальное понятие теории алгоритмов. В этой теории было доказано, что, используя рекурсию, можно из ограниченного количества функциональных единиц получить все многообразие вычислимых функций. Но не математики на самом деле открыли общий принцип рекурсии. Еще в древнейших религиях находим рекурсивные определения богов, а рекурсивные приемы для описания развития встречались во многих древних текстах. Объективный закон рекурсивного развития мира сначала выражался в текстах и только затем, много веков спустя, проявился в теорему алгоритмов. С появлением в конце 40-х годов компьютеров и становлением программирования интерес к рекурсии только усилился. Рекурсивные процедуры и декларативные определения введены в большинство современных языков программирования. Это понятие хорошо известно программистам. Обогатившись в теории алгоритмов и программировании, став привычным методом анализа и синтеза сложных алгоритмических систем, рекурсия возвращается в мир, где она впервые была замечена и всегда существовала, даже неузнанная. Но теперь в ее багаже — мощные развитые алгоритмические методы, теперь она на виду. Оказалось, что язык рекурсивен. Из базового ограниченного набора схем, мифов и сказаний рекурсивным способом получаются все сложные сюжетные построения современных авторов. Анализ предложений показывает, что здесь рекурсия проявляется еще более убедительным способом. Она определяет вложенность комментирующих частей к различным частям предложения. Педложение, остававшееся до сих пор филологической загадкой, получает алгоритмическое определение, и сразу становятся ясными многие проблемные факты традиционного синтаксиса. Рекурсивные машины начинают учиться говорить и понимать язык. Так закон рекурсивного развития мира сначала отразился в древних текстах, затем в литературе и только после этого получил математическое воплощение в теории алгоритмов и программировании. Потом снова произошло обратное отражение. Рекурсия определяет развитие литературы, дает возможность целенаправленно создавать сложные психологические тексты. Начинается игра усиливающихся отражений — любимая игра Вселенной. Когда-то и разум возник из такой игры.

Любое целенаправленное действие сложной системы связано с понятием алгоритма. Он определяет последовательность действий объекта для достижения цели. Так, первобытные охотники придумывали алгоритмы охоты на зверей и на соседние племена, а их жены изобретали первые кулинарные рецепты — тоже алгоритмы. Алгоритмы повседневной жизни человека отличаются неоднозначностью выбора ходов, расплывчатостью принятия решений, неоптимальностью исполнения. Это действие системы в ситуации с неполной информацией. Когда все ясно, человек целенаправленно действует наиболее рациональным образом — по кратчайшей прямой стремится пересечь местность, выбирает лучшее из возможного. Познание всегда искало способы описания алгоритмов. Сохранились древние магические рецепты, математические тексты, книги боевого искусства, где описывались приемы действий в тех или иных ситуациях. В математической теории алгоритмов существует большое разнообразие определений алгоритма, ориентированных на различные способы вычислительной реализации: арифметическое исчисление предикатов (К. Гедель, 1931),? — определимые (А. Черч, 1936) и частично-рекурсивные (С. Клини, 1936) функции, машины Поста и Тьюринга (Э. Пост, 1936, А. Тьюринг, 1937), алгоритмы Маркова (А. А. Марков, 1951). Все эти определения выражали формально интуитивное понятие вычислимости. Как сразу было доказано, различные определения алгоритма оказались эквивалентными в смысле возможности моделирования друг друга. Математические определения алгоритма ориентированы на строгие доказательства возможности тех или иных вычислений. В силу этого в их определениях используют специфические мелкомасштабные базовые операции и специальные строгие правила организации вычислений. В реальной работе человеку удобнее применять широкий арсенал гибких адекватных средств для записи вычислений. Этим занимается программирование. Появилось множество языков программирования для записи алгоритмов. Компьютерная программа тоже представляет собой алгоритм, но записанный на специальном языке, понятном машине. Такое понимание обеспечивается аппаратными или программными средствами, реализованными в ЭВМ и входящими в состав «мозга» ЭВМ: операционные системы, трансляторы, компиляторы, интерпретаторы, драйверы и др. Таким образом, даже в строгом определении алгоритм имеет множество выражений, зависящих от языка, на котором он записан. Поэтому часто алгоритмическая система поднимается как система, связывающая некоторые подсистемы в базовом, возможно, неопределяемом выбираемом языке, но с указанными точными средствами взаимодействия и развития. При исследовании сложных систем, созданных природой или человеком, применяют метод моделирования. Модель, обычно представляющая собой программу в том или ином алгоритмическом языке и отражающая основные особенности поведения системы, просчитывается на ЭВМ. Этим достигается большая степень понимания исследуемого объекта. Например, сейчас интенсивно разрабатываются и исследуются модели атомных электростанций с целью правильного управления, не допускающего аварийной ситуации. Моделируются физические процессы, происходящие на солнце, в галактиках и атомном ядре. Моделируются экономические, технологические, управленческие процессы и многие-многие другие. Иногда необходимая логическая строгость машинных средств выражения алгоритмов вступает в противоречие с принципами функционирования изучаемого объекта. Поэтому исследователям часто приходится специально вводить разнообразные средства, имитирующие неопределенность: нечеткие множества, датчики псевдослучайных чисел, недетерминированный выбор в условных командах и т. п. Иногда невозможно создать точную модель изучаемого объекта, но удается заметить общие принципы организации этих объектов. Такое мы наблюдаем при исследовании творчества. В литературных произведениях выявляются замкнутые взаимодействующие процессы. Способ их организации отражает те или иные алгоритмические принципы. Такое знание уже многое дает для понимания произведения, хотя, конечно, точное выражение самих процессов сведется к записи их на естественном языке. Аналогично в музыке, живописи и других жанрах искусства — сюжетная система (текст, картина, музыкалное произведение) в этих случаях составляется из некоторых неуточняемых базовых объектов. Выявляется внешняя организация этих объектов, их взаимодействие между собой. При необходимости этот же принцип может применяться для анализа составляющих элементов системы, вплоть до неделимых объектов. Алгоритмический анализ оказывается удивительно мощным средством познания и подтверждает единство выражения мира как средствами технических, так и гуманитарных наук. Оказывается, что в природе и творчестве действуют одни и те же алгоритмические принципы. Их выявление и уточнение — наша задача.