У каждого свой язык?
АрхивНад решением проблем, связанных с автоматической обработкой естественного языка, работают две категории специалистов. Первая всем хорошо известна: условно назовем ее "программисты". Они наделяют двоичным телом бесплотные идеи тех сумасшедших, которые решают связаться с естественным языком.
Над решением проблем, связанных с автоматической обработкой естественного языка, работают две категории специалистов. Первая всем хорошо известна: условно назовем ее «программисты». Они наделяют двоичным телом бесплотные идеи тех сумасшедших, которые решают связаться с естественным языком. Безусловно, незаменимые люди. Боги компьютерного мира. О другой категории специалистов - лингвистах - представление остается смутным. Чем они занимаются? Что такое лингвистика? Какое она имеет прикладное значение? Каково место лингвистов в проектах, связанных с автоматической обработкой естественного языка?..
Предмет изучения лингвистики - прежде всего, конкретные естественные языки. Термин «конкретный естественный язык» понимается как реально существующая знаковая система, используемая в некотором обществе в некоторое время в некотором пространстве. Суть языка как семиотической системы состоит в установлении соответствия между множеством всех возможных смыслов и множеством всех звуковых оболочек высказываний. То есть язык - это локализованный в мозгу человека механизм, который соотносит то, что мы думаем, с тем, что мы говорим. Если последовательно придерживаться этой трактовки, будет ошибочно считать языком, например, речь, записанную на магнитофон. Речь есть продукт языка, тогда как сам язык - механизм, порождающий этот продукт. Cам язык не дан исследователю в непосредственном наблюдении, поэтому приходится изучать его проявления (речь), а уже по ним пытаться построить модель языка.
Осознание принципиальной разницы между языком и речью пришло в лингвистику в начале XX века. После этого наступило время структурной (дескриптивной) лингвистики, которая ставила задачей построение описательных моделей языков. Основной вопрос описания - «как устроен объект?» Тогда же началось изучение «экзотических» языков (например, языков индейцев Северной Америки), которые настолько отличались от традиционного индоевропейского эталона, что казалось, будто естественные языки могут варьироваться бесконечно и невозможно предсказать, каким будет следующий изучаемый язык.
Однако сопоставление накопленных фактов показало, что за внешним различием таится внутреннее сходство, то есть что на самом деле в устройстве конкретных языков есть много общих черт. Только это выражается главным образом не в абсолютных ограничениях (для любого языка верно, что Х), а в относительных (если верно, что для языка L имеет место Х, то имеет место и Y).
Наличие сходства между конкретными естественными языками позволяет говорить о естественном языке как о средоточии универсальных свойств всех конкретных языков. Конкретные языки при таком подходе можно считать реализациями свойств языка вообще. Таким образом, возникает вопрос: почему все языки похожи, почему существуют ограничения на структуру языка? Один из возможных ответов таков. Язык - это некоторый инструмент, выполняющий определенные функции. Чтобы наиболее эффективно их выполнять, инструмент должен быть устроен определенным образом. К основным функциям языка относятся:
-
Эпистемическая функция: язык является формой хранения знаний о действительности; в единицах языка закрепляются элементы действительности, выделенные и обработанные сознанием человека.
-
Когнитивная функция: язык является средством получения нового знания о действительности; в единицах языка материализуется структура и динамика мысли.
-
Коммуникативная функция: язык является основным средством человеческого общения, средством передачи информации от говорящего к слушающему; свойства языка согласованы с потребностями и условиями протекания коммуникативной деятельности человека.
Согласно взглядам функционалистов (лингвистов, придерживающихся функционального взгляда на язык), условия использования языка накладывают значительные ограничения на его общие свойства: язык является основным средством создания, хранения и передачи информации, поэтому в его единицах и свойствах отражаются когнитивные структуры и процессы и, кроме того, он подчинен законам коммуникации. Функциональный подход дает возможность отвечать на вопрос не только о том, как устроен объект, но и почему он устроен именно так, а не иначе. Объяснительная парадигма господствует в современной лингвистике. Объяснительный подход предполагает наличие некоторого формального аппарата, который позволял бы формулировать, а затем проверять различные гипотезы, выдвигаемые лингвистами. Большинство лингвистических теорий обладают таким формальным аппаратом.
Переход к объяснительной парадигме значительно расширил границы лингвистики. Многие направления современной лингвистики сконцентрированы на стыках наук: теории представления знаний и лингвистики (когнитивная лингвистика), теории коммуникации и лингвистики (дискурсивный анализ), психологии и лингвистики (психолингвистика). Все эти и другие направления достигли значительных результатов, которые могут и должны быть использованы в системах автоматической обработки естественного языка.
Наиболее часто в прикладных компьютерных программах используется морфологический компонент описания языка, который отвечает на вопрос, какой формой какой лексемы является данная словоформа. Например, морфологический анализатор русского языка скажет, что словоформа «столы» является формой множественного числа именительного падежа лексемы «стол». Все компьютерные реализации морфологического анализа русского языка основаны на едином формальном лингвистическом описании морфологии русского языка, которое было составлено около тридцати лет назад. Других, неморфологических, лингвистических знаний эти программы не используют.
Еще один часто используемый лингвистический компонент - словари: морфологические словари для морфологического анализа, частотные словари, тезаурусы, словари сочетаемости и др. Редкая программа обработки естественного языка не имеет своего собственного словаря.
Таким образом, в большинстве проектов работа лингвиста заключается в составлении и редактировании словарей. Но над методами обработки поступающих на вход языковых данных думают программисты. А это, конечно, парадокс. Вызван он несколькими причинами.
Во-первых, простотой и привычностью традиционных математических методов. Допустим, мы создаем систему автоматического реферирования текста. Как думает программист-математик? Реферат - это основное содержание текста. Если что-то в тексте главное, об этом должно говориться чаще всего. Отсюда статистический метод: ищем самые частотные слова и выдаем те предложения, в которых они встречаются. Однако результат получается плачевный. Это, конечно, огрубление, но в реальных системах в первую очередь учитывается фактор частотности. В более продвинутых системах - еще два-три параметра (например, позиция в абзаце и ключевые фразы, наподобие «можно сделать вывод, что» и т. п.).
Существует более лингвистически мотивированный подход. Реферат - это основное содержание текста. Если что-то является важным для говорящего, он стремится поддерживать это активированным в сознании слушателя. Какие средства есть для поддержания активированного состояния? В первую очередь - анафорические отсылки (например, «он», «себя» и т. п.) и синтаксическая позиция. Отсюда метод: поиск референтов с максимальным количеством анафорических отсылок.
Наконец, собственно лингвистический подход. Говорящий строит дискурс (текст) таким образом, чтобы наиболее эффективно достичь цели. Если цель состоит в донесении до адресата какой-либо основной информации, эта информация будет занимать ядерное место в дискурсивной структуре текста. Таким образом, в реферат нужно помещать только те предложения, которые являются ядерными с точки зрения дискурсивной структуры. Как узнать, какие это предложения? Здесь нужно обратиться к соответствующему разделу лингвистики - дискурсивному анализу, который изучает закономерности порождения и структуру дискурса.
Таким образом, в дополнение «традиционным» математическим методам существуют детально проработанные, проверенные экспериментально лингвистические методы, которые приводят к реальным результатам. Игнорировать это - значит продолжать биться головой о стену.
Во-вторых, лингвистов часто обвиняют в мягкотелости, неспособности четко сформулировать, что же нужно делать, что конкретно они хотят создать. Эту претензию довольно часто предъявляют программисты, которые вынуждены, так сказать, работать на лингвистов, претворять в двоичную жизнь их идеи. Вот типичная ситуация. Лингвист дает программисту задание сделать XYZ. Когда программист доблестно выполнит задание, окажется, что лингвист что-то недоглядел и нужно от XYZ отрезать Z, а Y переделать на T. И так до бесконечности. Я понимаю программиста, ему уже никогда в жизни не захочется связываться с лингвистами. Однако разве был хоть один чисто программистский проект, где не приходилось что-либо переделывать? Видимо, дело в том, что когда программист реализует свои идеи, ему это интересно, это творчество, а когда он служит орудием в руках лингвиста - программирование скучных и непонятных вещей становится для него рутиной.
Какой выход из этой ситуации? Лингвист должен сам стать программистом и реализовывать свои идеи самостоятельно. Но, как показывает опыт, алгоритмические языки типа C, Pascal и др. плохо подходят для лингвистического моделирования. Как и ассемблер плохо подходит для создания современных пользовательских интерфейсов. Необходимо создать специальную инструментальную среду для работы лингвиста. Основное требование к подобной среде - чтобы за формализмом не терялась суть. Если такая среда (своего рода Delphi, но под языковые задачи) будет создана, это станет огромным толчком к развитию полноценных систем обработки естественного языка.
Еще одной причиной отказа от полноценной лингвистической составляющей в проектах, связанных с автоматической обработкой естественного языка, является сама структура лингвистического описания. Ошибочно полагать, что все явления языка можно строго разложить на уровни, как это описано в традиционных грамматиках, что есть фонетика, морфология, синтаксис и семантика и что для понимания высказывания достаточно из меньших единиц строить большие, пока не дойдем до самой глуби - до семантики. На самом деле, большая часть лингвистических явлений определяется множеством факторов, которые имеют разнообразнейшую природу, а слои, как пласты при геообразовании, сминаются и смешиваются.
Лингвистическое описание пытается учесть все факторы, вследствие чего появляется множество разрешающих, «нестрогих» правил типа «Агенс (тот, кто) может быть подлежащим», «Тема (про что) может быть подлежащим» и т. п., однако ранжировать и иерархически упорядочить эти правила не представляется возможным без системы, которая позволяла бы строить лингвистические модели и проверять их на языковом материале.
Лингвистика - сравнительно молодая наука, и ей приходится иметь дело с невероятно сложным объектом для моделирования. Уже много закономерностей изучено и объяснено, но еще больше предстоит изучить и объяснить. Настоящий прогресс в области моделирования языка и языковой деятельности возможен только тогда, когда придет осознание, что ни лингвистика, ни инженерия знаний, ни искусственный интеллект и пр. не являются изолированными науками, каждая из которых возделывает свою грядку, - напротив, все они направлены на достижение одной цели, а потому и усилия специалистов с различным складом мышления, различной направленности должны объединяться в изучении этого неимоверно сложного и безумно интересного объекта, святая святых человека - языка.