Алгоритмическое определение (аналогичное данному выше определению) связано с понятиями алгоритма или программы - конкретного предписания о способе получения нового понятия (выраженного результатом выполнения предписания), оперирования с понятием или синтеза его определения. Такие определения ближе других расположены к информатике. Действительно, каждая запись алгоритма или программы может рассматриваться как средство определения некоторого понятия. Например, программа вычисления корней полинома определяет значение корня или ошибки в задании полинома. Алгоритмы или программы - это представление алгоритмического знания, которое определяет новый смысл понятия по значению, получаемому после выполнения или реализации алгоритма или программы.
В кластер операциональнох определений входит и генетическое определение, которое предписывает правила порождения предмета, явления или процесса, указывает на их происхождение в некоторой классификации или систематике. Такие определения подразумевают действия по формированию понятия или его определения. Ближе всех других к операциональному определению находится номинальное определение, которое является предписанием требований, какими должны быть определяемые объекты, только при реализации предписаний можно определить объект. Также близким является дескриптивное определение. Деятельное определение также входит в кластер алгоритмических определений, но оно предполагает больший упор в определении на физические перемещения или преобразования. Аналогичных определений можно построить достаточно много, они будут образовывать подкластер алгоритмических или операциональных определений.
Любой вариант (элемент кластера) алгоритмического определения предполагает выполнение ряда операций следующего сорта:
- как сделать предмет, явление или процесс, какие действия необходимы для формирования определяемого объекта;
- как оперировать некоторым исходным материалом и что получится в результате выполнения операций на этом материале для того, чтобы получилась определяемый объект;
- что делает предмет, явление или процесс и что получается в результате его деятельности, какой объект или какая сущность объекта;
- что делается с предметом, явлением или процессом после применения операций из некоторого набора при получении определяемого предмета, явления или процесса;
- способ создания или синтеза предмета, явления или процесса, которые определяются.
Применяемые в розницу или комплексно эти операции должны привести к формированию понятия и его определения.
5.5.7. Индуктивное определение
Индуктивное определение - это такое определение, которое позволяет отталкиваться от некоторых исходных понятий путем применения некоторых логических операций и строить новое определение нового понятия таким образом, что в процессе построения можно использовать данное понятие рекурсивно или ссылочно (явно или неявно). Индуктивные определения являются наиболее сложными, они чаще всего встречаются в ФЯ, например, в языках программирования или представления знаний.
Определение идентификатора в языках программирования рекурсивно и содержит индукцию. Это определение наиболее распространено, на его базе или по аналогии с ним строятся другие определения. Рекурсия используется тогда, когда отпадает необходимость во введении ограничений на размеры предмета построения или реализации понятия. Длина идентификатора не определена заведомо, пока его не построил программист при составлении программы, поэтому определение идентификатора рекурсивно. Практика всегда подсказывает момент остановки рекурсивного процесса определения понятия.
Примеров рекурсивных определений в формализме чрезвычайно много, они являются экономными и эффективными в применениях. Однако, они сложны для построения и использования, так как при этом работает принцип внутреннего умолчания, который затрудняет понимание определения. Рекурсивные определения предполагают раскрытие рекурсии с помощью памяти магазинного типа. Для устного анализа рекурсивных определений возникают сложности запоминания глубинных состояний анализируемого определения.
Важная особенность индуктивного определения заключена в том, что оно обобщает все предыдущие сорта определений. Если рассмотреть некоторый сорт определения и в определяющую часть поместить определяемое понятие, то осуществляется переход к индуктивному определению (включение в определение рекурсии).
Индуктивное определение строится обычно для тех объектов, которые имеют бесконечное число значений определяемого объекта. Например, ФЯ определяют бесконечные словари, хотя практическое использование словарей приводит к словарям с конечным набором слов или терминов. Именно это обстоятельство вынуждает прибегать к индуктивным определениям. Почти любой формализм (а он всегда связан с ФЯ) предполагает использование индуктивных определений понятий.
Следует помнить одно важное ограничение на индуктивные определения: каждое индуктивное определение должно содержать «начальную точку» или частный случай определяемого понятия. Например, слово есть последовательность букв, т.е. слово получается из слова приписыванием к нему еще одной буквы. Процесс приписывания букв бесконечен. По этому определению нельзя определить слово. В этом определении пропущена «начальная точка»: словом является любая буква. Теперь рекурсивное определение становится правильным. Без «начальной точки» определение является неправильным, оно может привести к ошибочным решениям в задачах, использующих неправильное определение.
5.6. Теория определений в алгоритмах
Большое число задач с применением теории определений возникает в прикладных науках и, в частности, внутри самой информатики. Здесь будет представлена задача автоматизации составления словаря из слов, а также терминологического словаря по произвольным текстам на ЕЯ.
Интеллсист содержит словарь из стандартных слов. Новые слова появляются в результате анализа записей знаний или запросов пользователя, в которых определяются новые термины. Словарь пополняется автоматически, он служит лишь кодировочной таблицей для слов. Интеллсист содержит терминологический словарь из стандартных терминов СеГ, в который вводятся новые термины только по указанию пользователя или из БЗ. Терминологический словарь является основой лексикона, в котором собираются все характеристики терминов.
Особое место занимает первичный анализ произвольных текстов, при котором создаются потенциальные словари. Первичные тексты могут быть проанализированы программами «Сборки» одного из разделов меню инструментария. О теоретической части в программах «Сборки» здесь и будет рассказано.
Новый еще не подвергнутый анализу текст можно рассматривать с различных точек зрения. Пользователя текста интересует его смысловой анализ. Оставим в стороне вопросы статистического анализа текста, которым часто интересовалась и интересуется лингвистика, и перейдем к смысловому анализу текста. Выделим ряд особенностей или требований к анализу текстов. Во-первых, если считать, что смысл текстов полностью определяется смыслом составных частей - терминов, то смысловой анализ текстов - это его терминологический анализ. Во-вторых, каждый термин должен входить в текст, по крайней мере, дважды: первое вхождение определяющее, второе - использующее. Не лишено смысла требование трех и более вхождений термина в текст. Многократные вхождения термина подчеркивают его важность. В третьих, в «незнакомом» тексте состав терминов неизвестен, он может состоять из слов, знаков, чисел и других компонентов. Задание требований о составе терминов может быть бессмысленным. В четвертых, число составных частей термина также считается неизвестным, поэтому невозможно выставить требование на размер термина. Наконец, в пятых, исходные тексты можно считать случайными функциями. Они случайным образом зависят от вхождений слов, знаков, чисел и др. Все перечисленные особенности или требования приводят к мысли, что тексты в начальной стадии изучения (системой) необходимо подвергнуть корреляционному анализу.
Понятие корреляционного анализа случайной функции известно и широко используется. Для случайной функции F(X) корреляционная функция вычисляется так:
К(j):= (1/N) * sum(i, 1, N, F(i) * F(i - j)),
sum - суммирование по i от 1 до N, j - изменяется от 1 до N, F - анализируемый текст из слов и знаков, * - операция сравнения слов и знаков, выдающая 0 при несовпадении их и 1 в противном случае. В качестве F используется одно слово или один знак, а также некоторое число подряд стоящих слов и знаков (по заказу пользователя). В результате анализа составляется словарь терминов заданной длины и частоты использования также не ниже заданного числа. Среди терминов могут быть случайные слова, поскольку начальный текст знания весьма избыточен. По предварительным оценкам избыточность текстов оценивается числами 80-90% всего текста. Действительно, в учебниках или пособиях содержится много вспомогательного материала, который с точки зрения знаний либо уже учтен во встроенных знаниях, либо содержится в используемой БЗ, либо выражаются самые общие знания, которые конкретизуются в запросах. Окончательное решение о составе словаря ложится на пользователя. Сформированные в результате корреляционного анализа словари могут использоваться через инструментарий для формирования знаний, анкет, шаблонов или запросов. Таков алгоритм автоматического составления чернового или начального терминологического словаря.
Корреляционный анализ реализован как программа с параметрами: заданное число элементов термина (слово, знак, лексема), число, выражающее самое низкое требование на повторяемость, и число, выражающее самое низкое требование на повторяемость при передаче словаря на печать. Практически программа запускается несколько раз для того, чтобы подобрать ее параметры или задать условия анализа. Время работы программы зависит от числа компонент термина. Например, на IBM 386 текст размером 7 Мб при составлении словаря из терминов с пятью компонентами программа анализа работала примерно один час. Не всякие повторяющиеся композиции элементов текста могут быть терминами. Из числа терминов целесообразно исключить последовательности слов, чисел, символов, строк, знаков, которые не выполняют требованиям, заданные пользователем. Среди требований могут быть такими: