КИБЕР-МОЗГ

Станция RCR-1 www.RCR-1.narod.ru

Содержание.

О проекте.
Принцип действия
Как добавить новые слова в словарь.
Как создать свой словарь.
Правила формирования словаря.
Примеры.
Заключение.
P.S.

 

О проекте.

Поразмышляем. Как выразить мысль? Ну, например, воспроизвести ее в виде фразы(предложения). Что такое фраза? Это набор слов, расставленных в определенном порядке. Определенный порядок — это некая общепринятая модель, причем таких моделей на любую мысль существует множество. Слова тоже берутся не с потолка, а строго соответствуют предметам и персонажам выражаемой мысли.

Итак, для того, чтобы выразить мысль, необходимы особый набор слов и модель фразы. Тогда у мысли появляется смысл и она дойдет до слушателей. Что же будет, если в этой цепочке что-нибудь перепутать? Получается бессмыслица. А порой, в этой путанице кроется что-то похожее на потайной смысл. Обычно всё это вызывает у нас смех.

Наше "чудо биокибернетики" — Кибер-Мозг — отличное хранилище слов и моделей фраз. Но вот правильно подобрать их он не умеет. Да и мыслей у него своих нет. Всё генерируется случайным образом. Получается весьма симпатичный и смешной бред.

Принцип действия Кибер-Мозга.

Словари.

Конечно способности Кибер-Мозга, как и любой другой программы, будут зависеть от той информации для размышления, которая будет ему предоставлена. Информация для размышления Кибер-Мозга находится в файле словаря. Словарь — это список слов, упорядоченных по смыслу, и модели предложений, сгруппированные по темам. Имя файла словаря задается в инициализационном файле "start.xml". По умолчанию он содержит запись <listfile name="PGVList.xml"/>. Для того чтобы Кибер-Мозг работал с другим файлом словаря — переправьте значение параметра "name" на соответствующее имя файла.

Проблема загрузки словаря.

Во время запуска Flash-приложение Кибер-Мозга загружает файл словаря. Если словарь содержит сложную и громоздкую структуру данных, загрузка файла может продолжаться довольно долго. Flash Player может даже предложить прервать работу клипа. В этом случае — откажитесь и подождите еще немного. Если в структуре словаря нет замкнутых ссылок — значит, всё будет в порядке. Кстати, такое предложение чаще всего выдается при работе клипа из Internet-броузера, из-за особенностей Active-X Player — он работает медленнее.

Функционирование.

Выберите нужную тему и жмите на красную кнопку, пока не выскочит что-нибудь смешное типа: "Держи пиво в холоде — а дитя без глаза." или "Береги честь с молоду, за умного сойдешь."... Некоторые фразы, с грамматической и логической точки зрения, выглядит довольно диковато, но, закроем глаза на грамматику... Ведь мозги уже не свежие, заспиртованные, и память уже не феноменальная, а логика немного подпортилась...

Принцип действия прост. Случайным образом из списка выбирается модель предложения. Каждый элемент в модели предложения ссылается на список слов. Слова в списке слов разделяются запятыми. Также в списке слов наряду с простыми словами могут находиться и ссылки на другие списки слов. Далее слово обрабатывается согласно заданным параметрам (склоняется, спрягается и т.д.), то есть изменяется его окончание. Окончание берется из списков параметров. Все правила, по которым формируется фраза, изложены ниже.

Как добавить новые слова в словарь.

Словарь можно дополнить и изменить. Для этого необходимо просто открыть файл "имя_файла.xml" в любом текстовом редакторе. Теперь дополняйте, изменяйте или заменяйте списки слов, которые вам понравятся. В списке слова должны разделяться только запятыми.

Как создать свой словарь.

При желании можно составить новый словарь. Если вы хоть немного знаете что такое документ XML и хотите поупражняться в его составлении, да еще и получить удовольствие — это для вас. Помимо правил XML есть еще принципы взаимосвязей между элементами словаря и принцип генерации предложения. Всё это изложено ниже.

Правила формирования словаря.

Формирование списка слов.

  1. Весь словарь должен быть заключен в теги <dictionary>... структуры ...</dictionary>.
  2. Любой список слов и параметров должен располагаться по следующему принципу:
    <имя_раздела>
    <имя_списка_слов_1>слово_1,слово_2,...,слово_n</имя_списка_слов_1>
    <имя_списка_слов_2>...</имя_списка_слов_2>
    ...
    <имя_списка_слов_N>...</имя_списка_слов_N>
    <имя_списка_параметров>

    <params source="окончание_1" P1="замена_1" P2="замена_2" p3="..." p4="..." P5="..." p6="..."/>
    <params source="окончание_2" P1="замена_1" P2="замена_2" p3="..." p4="..." P5="..." p6="..."/>
    ...
    <params source="окончание_M" P1="замена_1" P2="замена_2" p3="..." p4="..." P5="..." p6="..."/>
    </имя_списка_параметров>
    </имя_раздела>
  3. Слова обрабатываются следующим образом - в списке параметров ищется окончание слова по значению "source", и, в зависимости от номера параметра, задаваемого в модели ("P1","P2","P3","P4","P5","P6"), заменяется на значение этого параметра.
  4. Если необходимо, чтобы слова, взятые из списка, были с заглавной буквы, первый тег указывается <имя_списка_слов CASE="UP">
  5. Слова в списке могут быть не только одиночными. Например "Доктор Айболит" - словосочетание. Чтобы в каждое слово подверглось обработке, слова разделяются символом "|", т.е. "Доктор| Айболит". Тогда, например, в родительном падеже, фраза будет звучать не "Доктор Айболита" а "Доктора Айболита".
  6. Если слово не должно обрабатываться - к нему добавляется "&NT". Например "метро&NT".
  7. Списки слов и параметров могут быть вложенными и представлять древовидную структуру.
  8. В списке слов кроме слов могут находиться ссылки на другие списки слов. Тогда слово будет браться из указанного в ссылке списка. Это делается по следующим принципам:

Формирование списка моделей.

  1. Все темы моделей заключаются в теги <structures> ... темы ... </structures>.
  2. Модели заключаются в теги тем <theme name="имя_темы"> ... модели ... </theme>.
  3. Теги модели описываются как <clause context="объяснение предложения"> ... члены предложения ... </clause>.
  4. Члены предложения:

Формирование списка вспомогательных моделей предложений.

  1. Списки вспомогательных моделей заключаются в теги <entries>... вспомогательные модели ...<entries>.
  2. Каждая вспомогательная модель задается как <имя_вспомогательной_модели>... члены предложения ...<имя_вспомогательной_модели>.

Примеры.

К проекту прилагаются примеры:

Заключение.

Я не претендую на то, что вы проникнитесь этим проектом, возьметесь создавать свои модели... И все-таки надеюсь, что это существо вызовет у вас симпатию. Поле деятельности большое! Можно даже стихи запрограммировать!

Если вы загоритесь этой идеей, присылайте мне свои словари! Я буду обновлять свои словари и выкладывать новые.

P.S.

Идея этого проекта зародилась еще в середине 90-х, когда я, студент МГТУ им. Н.Э. Баумана, с моим лучшим другом-сокурсником (SDA), сидели за 286-ми в лабораторном комплексе НИИ ПМ и писали разные полезные программы, делали лабораторные работы, играли и т. д... Тогда то мы и сделали аналогичную программу на Turbo Pascal 7.0.

RACER
racer242@mailru.com
2001

Используются технологии uCoz