Беседы о математической лингвистике и о лингвистике.




 

Что такое лингвистика, понятно не всем. Иногда можно услышать: он замечательный лингвист, говорит на пяти языках. Но лингвистика – это не то же самое, что знание большого числа языков: это наука о языке и языках.

 

Теперь нужно сказать о слове математическая в сочетании с названием науки. Математика занимается не только числами, уравнениями, фигурами, но и другими объектами; общее в объектах математики – то, что эти объекты и отношения между ними совершенно четко определены; и они абстрактны – то есть рассматриваются в отвлечении от их конкретной природы и свойств. Благодаря этой абстрактности имеется принципиальная возможность применения одной и той же математической структуры к совершенно разнородным явлениям реального мира (может быть, лучше сказать не реального, а вне-математического: возможны разные точки зрения на то, что реальнее – математические объекты или их несовершенные соответствия вне математики). Разумеется, при каждом таком применении неизбежна замена всегда несколько нечетко определенных и нечетко отграниченных друг от друга объектов на идеальные математические; то есть то, да не то – не совсем то. Тем не менее, математику может быть дано видеть сходство в самых неожиданно разных объектах вне-математического мира, вытекающее из частичной общности применимых к ним фрагментов математического мира: это может быть, с одной стороны, форма рельефа, отражающая образовавшийся на какой-то глубине провал, с другой – кривая, описываемая кончиками листьев дерева, построенными «по ранжиру» (и еще что-то с третьей стороны, с четвертой, и т. д.).

 

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

 

Слово математическая в сочетании с названием науки может пониматься (и понимается) в двух разных смыслах.

 

Понимание первое. Рассматриваются математические структуры, которые распознаются в материале данной науки; и развивается теория, которая имеет дело с этими структурами. При таком понимании математическая ИКС ология – это раздел чистой математики, который в принципе может быть применен к обычной ИКС ологии. Так, книга С.Л.Соболева, по которой мы учились уравнениям в частных производных, называлась «Уравнения математической физики» (потому что такие уравнения очень важны для физических применений; наряду с чисто математической теорией книга содержала также небольшие кусочки, где показывалось, как эти уравнения выводятся из физических соображений); то же понимание представлено в книге А.В.Гладкого и И.А.Мельчука «Элементы математичской лингвистики».

 

Второе понимание математической ИКС ологии – это дисциплина, говорящая о том, как именно определенные математические структуры применяются для описания ИКСологического материала. При таком понимании математическая физика должна была бы состоять в большой степени из объяснений того, что такое сила (и как силы описываются с помощью векторов), что такое электрическое сопротивление, каким физическим реальностям могут соответствовать тензорныеполя (что бы это ни было), и т. п.. При таком понимании, скажем, математическая физика – это те вещи, о которых специалист-физик даже не задумывается, настолько они вошли в его плоть и кровь (и это как раз те вещи, которых не понимает средний школьник – из-за чего, может быть, он и перебивается по этой физике с тройки на тройку); вещи, гораздо менее интересные, чем собственно физика – к которой, впрочем, нет никакого шанса подобраться, не пройдя этого «предисловия».

 

Я буду понимать математическую лингвистику именно в этом втором смысле.

 

Математические понятия, которые я собираюсь использовать в первых двух беседах, – одни и те же. Это не нечто, изобретенное специально для такого типа применений, – но они не совсем чтобы принадлежат к общему знанию каждого выпускника средней школы. Так что начнем с математических объектов.

 

Конечно, читатель слышал слово алгоритм. Согласно энциклопедическому словарю, это способ (программа) решения вычислит. и др. задач, точно предписывающий, как и в какой последовательности получить результат, однозначно определяемый исходными данными.

 

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

 

Мы будем рассматривать алгоритмы, действующие на последовательности символов, берущихся из некоторого алфавита; такие последовательности можно называть словами – например:

фывапролджэ2008фыва. (1)

 

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

 

Алгоритмы, которые мы будем рассматривать, составляются из элементарных предписаний, или правил. Каждое правило предваряется стрелочкой => или <=, а потом идет набор символов (иначе говоря, слово), стрелка ►, и другое слово; например:

 

=> ыва ► а. (2)

 

Применение правила к данном слову состоит в отыскании первого в указанном направлении (слева направо, если это правило со стрелочкой =>, и справа налево, если <=) вхождения последовательности символов перед стрелочкой ► и замене этой последовательности последовательностью после этой стрелочки. Так, результат примения правила (2) к слову (1) есть слово

фапролджэ2008фыва (3)

 

(что можно записать так: ф ыва пролджэ2008фыва ► ф а пролджэ2008фыва; только одно ыва оказалось заменено потому, что мы применили наше правило только один раз).

 

Слово до стрелочки и слово после стрелочки может состоять из любого числа символов: 1, 2, 3, …. Мы предусматриваем также возможность замены последовательности перед стрелочкой ► на пустое слово – то есть просто выбрасывания этой последовательности. Для пустого слова мы введем обозначение: Λ. Так, правило

<= а ► Λ (4)

 

в прменении к слову (1) дает: фывапролджэ2008фыв афывапролджэ2008фыв.

 

Также мы предусматриваем правила, которые действуют только в конце или только в начале слова. Для этого мы вводим символ #, означающий пробел; и можем рассматривать такие правила:

 

а# ► ыва, #а ► о, #фыва# ► самдурак (5, 6, 7)

 

(нет нужды писать символ # справа от стрелочки ►, потому что после замены слова до стрелочки на слово после стрелочки эта последовательность так или иначе сама по себе окажется на конце слова, или в его начале. Также для таких правил безразлично, какая стрелочка, => или <=, стоит перед правилом).

 

Результат применения правила (5) к последовательности (1) есть фывапролджэ2008фыв афывапролджэ2003фыв ыва; правила (6), (7) к этой последовательности неприменимы: такое тоже бывает.

 

Разумеется, мы должны предположить, что символы =>, <=, ►, Λ, # не принадлежат к рассматриваемому алфавиту. Если принадлежат, мы можем выбрать вместо этого какие-либо другие обозначения.

 

 

Теперь о том, как алгоритм составляется из отдельных правил, и как он действует.

 

Правила группируются в этапы (в этапе может быть и ровно одно правило). Все правила в пределах одного этапа имеют одно и то же направление: все => или все <= (иначе было бы непонятно, скажем, какое из правил => фы ► щ, <= ва ► б должно действовать в применении к последовательности (1)). Но это еще не всё: правила, принадлежащие одному этапу, не должны иметь одну и ту же левую часть (т. е., скажем, запрещаются в одном и том же этапе пп ► ф и пп ► тот); более того, одна левая часть не должна быть частью другой (левая часть ыв не может встретиться в одном этапе с левыми частями фыва, или фыв, или ыва, или #фыв: нельзя сказать, какая из этих последовательностей встретилась раньше идя слева направо в слове (1)).

 

Пример (записи) алгоритма в нашей стандартной форме:

 

I этап, =>

ыва ► а,

ива ► а,

ова ► а,

ева ► а;

(8)

II этап, <=

а# ► ыва,

фа ► а,

са ► фа.

 

Как применяется алгоритм: находится первое в указанном направлении вхождение левой части какого-либо из правил первого этапа, и это вхождение заменяется на указанную правую часть; то же самое повторяется до тех пор, пока никакое из правил первого этапа уже невозможно применить. После этого то же самое делается с правилами второго этапа; и так далее.

 

Применим алгоритм (8) к слову самдурак. Никакое из правил первого этапа не может быть применено – так что работа первого этапа закончена, переходим ко второму. В слове нет «подслов» а# или фа, но встречается са; выполняем третье правило второго этапа, получаем: самдурак ► фамдурак ► амдурак. Работа алгоритма закончена.

 

Применяя тот же алгоритм к слову (1), получаем: фывапролджэ2008фыва ► фапролджэ2008фыва ► фапролджэ2008фа (конец первого этапа) ► фапролджэ2008фыва ► фапролджэ2008фывыва ► фапролджэ2008фывывыва ► …. Мы видим, что работа алгоритма никогда не кончится: первое правило второго этапа всё так же будет и будет наращивать наше слово. Ну что ж, это тоже возможно.

 

Сокращенная запись правил алгоритма. Вместо того, чтобы писать, скажем, са ► фа (т. е. что са нужно заменить на фа), можно писать с(а) ► ф (что с заменяется на ф перед а). Вместо второго правила второго этапа алгоритма (8) можно написать: ф(а) ► Λ (ф перед а выбрасывается). Понятно также, что значит (фы)в(а#) ► дд: что в между фы и а на конце слова заменяется на двойное д: сокращенная запись для правила фыва# ► фыдда.

 

Несколько сходных правил можно записать сокращенно, как одно «обобщенное» правило: так, вместо правил этапа I алгоритма (8) можно написать: Ава ► а, где А – это ы, и, о или е; или: Ав(а) ► Λ.

 

Введенное понятие алгоритма (в нашей стандартной форме) можно применять к «математическим» задачам, например:

 

Задача 1. Натуральные числа записываются соответствующим числом палочек |. Напишите алгоритм для сложения натуральных чисел, записанных в такой форме: исходные данные – два натуральных числа, записанные в такой форме и соединенные знаком +; результатом действия алгоритма должна быть их сумма (а знака сложения не должно оставаться).

 

Решение смехотворно просто: алгоритм из одного правила + ► Λ (причем всё равно, объявить это правило действующим слева направо или справа налево, => или <=). Читатель легко придумает и более сложные решения.

 

Тот же алгоритм действует и для сложения большего числа чисел.

 

Если читатель хочет, он может потренироваться, решая другие задачи.

 

Задача 2. Напишите алгоритм для вычитания двух натуральных чисел, записанных в той же форме: исходные данные – два натуральных числа, соединенные знаком ; результатом должна быть их разность (ноль должен быть записан символом 0, а отрицательное число – соответствующим числом палочек с минусом перед ними).

 

Решение – алгоритм из одного этапа: |–| ► –, (#)–(#) ► 0, (|)–(#) ► Λ (опять всё равно, => или <=).

 

Задача 3. Напишите алгоритм для перевода десятичной записи натурального числа в форму с палочками (т. е. чтобы, например, 12 ►). – Решение предоставляется читателю.

 

Можно не только решать такие задачи, но и развивать теорию алгоритмов в нашей стандартной форме – хотя зачем?

 

Прежде чем перейти к математической лингвистике и к лингвистике, заметим, что есть еще одно важное математическое понятие, родственное введенному понятию алгоритма (в стандартной форме); а именно, понятие исчисления. Тогда как алгоритм – это предписание делать то-то и то-то (составленное из элементарных предписаний-правил), исчисление – это разрешение производить такие-то операции над исходными данными и того, что из них получено. Исчисление (в стандартной форме) составляется из отдельных правил, выглядящих в точности, как правила алгоритма, за исключением того, что не указывается направление действия => или <=. Правила не разбиваются на этапы, и не вводится никаких ограничений на левые части этих правил: в одном и том же исчислении могут быть даже правила а ► бб и а ► вгд. Тогда как относительно алгоритма нас интересует то слово, которое получается в самом конце под действием его применения к исходному слову, относительно исчисления нас может интересовать множество всех слов, которые можно получить под действием этого исчисления в применении к определенному слову. Не буду тратить времени на приведение примеров или задач для упражненья.

 

Несмотря на своего рода противоположность понятий алгоритма и исчисления, оказывается возможным «моделировать» работу алгоритма при помощи соответствующим образом построенного исчисления; и можно построить алгоритм для перечисления множества всех слов, возникающих под действием данного исчисления (ну ладно, может быть, алгоритм не в нашей стандартной форме).

 

 

Итак, теперь к математичской лингвистике – и к лингвистике.

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: