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

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

Мы — дети хаоса, и глубоко в основе каждого изменения скрыт распад. Изначально существует только процесс рассеяния, деградации; все захлестывают волны хаоса, не имеющего причин и объяснений. В этом процессе отсутствует какая-либо изначальная цель, в нем есть только непрерывное движение. Однако, как мы убедились, и в этом движении возможны различные направления, выбор которых диктуется случаем. П. Эткинс. Порядок и беспорядок в природе

НАЧАЛО

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

АЛГОРИТМЫ

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

КОМПЬЮТЕРНАЯ ЛИНГВИСТИКА

Человек придумал электронные устройства, облегчающие арифметический счет. Вскоре обнаружилось, что эти машины можно легко приспособить для решения многих творческих задач, связанных с человеческим знанием. Накапливались факты, писались специальные компьютерные программы, изобретались искусственные языки обработки знаний. Этот процесс привел к становлению новой науки, названной "искусственный интеллект". В наше время многие теоретические исследования по искусственному интеллекту получили практическое применение. Роботы осуществляют точные механические операции, распознают образы, ведут поиск в сложных условиях, сочиняют стихи. В классификации наук США работы по искусственному интеллекту из разряда теоретических переведены в разряд прикладных наук. Одна из главных проблем искусственного интеллекта — компьютерное понимание естественного языка. Эта проблема относится к области компьютерной лингвистики. Компьютерная лингвистика занимается поиском алгоритмов и компьютерной реализацией взаимодействия человека с ЭВМ на естественном человеческом языке. В свою очередь ЭВМ может управлять другими машинными устройствами. Поэтому в случае успешной реализации проектов компьютерной лингвистики человек сможет управлять сложными техническими объектами посредством голосовых команд или текстов на естественном языке. Мир человека, мир слов и мир техники сольются. Сейчас коммерчески доступен большой ряд программных систем взаимодействия на естественном языке с базами данных и экспертными системами. Простое порождение подмножества английского языка для обращения к базам данных было обеспечено одной из ранних американских систем LIFER (Languagе Interface Facility wich Elipsis and Recursion), созданной в 70-е годы. Вслед за ней на компьютерном рынке появились и другие, более гибкие системы, обеспечивающие ограниченный естественно-языковой интерфейс с ЭВМ. В 80-е годы в США образовался ряд компаний, занимающихся разработкой и продажей естественно-языковых интерфейсов с базами данных, экспертными системами. В 1985 г. корпорация «Семантек» представила такой пакет программ QA, компания "Карнеги Группа" предложила аналогичный пакет Language Craft. Ведутся активные работы по созданию систем автоматического перевода. Получила распространение система автоматического перевода SYSTRAN, разработанная под руководством Д. Тома по заказу военно-воздушных сил США. В течение 1974–1975 гг. система была использована аэрокосмической ассоциацией NASA для перевода документов по проекту Аполло — Союз. В наше время она переводит с нескольких языков около 100 000 страниц ежегодно. В Европе работы по созданию компьютерных систем перевода стимулировались образованием Европеиской Инормационной Сети (EURONET DIANA). В 1982 г. Европейское экономическое сообщество объявило о создании европейской программы EUROTRA, цель которой — разработка системы компьютерного перевода для всех европейских языков. Первоначально проект оценивался в 12 млн долларов, в 1987 г. специалисты определили суммарные расходы по этому проекту более чем в 160 млн долларов. В Японии исследования по компьютерной лингвистике концентрируются вокруг общенациональной программы создания компьютеров пятого поколения, объявленной в 1981 г. Существует ряд военных проектов создания человеко-машинных интерфейсов на естественном языке. В США они ведутся в основном в рамках стратегической компьютерной инициативы десятилетней программы, поинятой министерством обороны в 1983 г. Цель ее создание нового поколения «интеллектуальных» оружия и военных систем с целью обеспечить многолетнее технологическое превосходство США. Естественно, что специалисты по искусственному интеллекту, прекрасно разбирающиеся в компьютерах и языках программирования, энергично принялись за решение проблемы понимания языка своими методами. Шел поиск алгоритмов естественного языка. Были созданы сложные программы понимания языка для очень узких специальных областей, реализованы программы частичного машинного перевода и ряд других. Но решающего продвижения в решении проблемы понимания языка так и не было. Язык и человек настолько связаны, что ученым пришлось заняться проблемой понимания мира человеком. А это уже область философии. В разных центрах мира специалисты по компьютерам начали изучать мифологию, труды Платона, Гегеля, Канта, Кьеркегора, Хайдеггера, М. Фуко и многих других классиков философской мысли. Проблема понимания языка машинами привела к вечной теме феномена человека. Кто мы? Откуда мы? Куда идем?