Доклад - Създаване на генератора на сказок средства Delphi - Програмиране, Бази данни

Приказката е един от основните жанрове на устната народна поезия и е най-известен за най-широк кръг читатели (деца и възрастни). Това е епично, предимно прозаично произведение на изкуството с приключенски, магически или битов характер, в по-голямата си част с фантастична обстановка.

Уместността на работатае, че в момента има малко различни програми за генериране на приказки от самия потребител. С помощта на компютърната лингвистика и прилагането на математически методи и компютърна технология е възможно да се създаде приложение, което позволява на потребителя да създаде своя собствена история. Използвайки такова приложение, можете лесно да генерирате различни сценарии и да въвеждате свои герои в тях, както и времето и мястото на събитията.

Целтана нашата работа е да създадем програма за генериране на приказки с помощта на Delphi.

Да проучи алгоритъма за създаване на приказка.

Идентифицира нуждите на компютърната лингвистика при прилагането на обработка на текст.

Определете възможностите на средата Delphi за автоматизирано генериране на приказки.

Разработете програма за генериране на истории.

Глава I. „Теоретични основи за програмно генериране на приказки“

1.1. Алгоритъм за създаване на приказка

Алгоритъм за създаване на приказки на базата на морфологичен анализ

Изгражда се и се попълва морфологична таблица: елементи на приказка - варианти на тяхното изпълнение. Може да има толкова редове и колони, колкото искате. Обикновено 6-10. Например, както в тази таблица.

Задайте по една дума от всеки ред на таблицата. Това са героите и условията на бъдещата приказка. За повече мистериозност можете да направите нотация на маса като шахматна дъска иизберете „приказен код“, например това: 1G-2G-3V-4B-5B-6G-7B. Въз основа на тези условия се съставя собствена приказка. Ако поставите известни приказни герои в таблицата, получавате „салата“ от известни приказки, ако поставите някакви предмети, получавате „независима“ приказка.

Сюжетът на приказката се създава „като върви. Например, според горната нотация може да се окаже следното: „Красивата принцеса Несмеяна в гъста гора падна в ръцете на свиреп разбойник, който направи Несмеяна в безопасност. Тя беше спасена от мъдър магьосник. Той подарил на Несмеяна Машината на времето, на която тя препуснала в миналото, отново станала красива и никога повече не ходила сама в гъстите гори.

Алгоритъм за създаване на приказки по метода на контролните въпроси

Метод на контролни въпроси за съставяне на приказки:

Задават се въпроси. Въпросите се записват.

Отговаряйки на въпроси, се създава история.

И черновата на приказката е готова! Качеството на една приказка зависи от въпросите, от тяхната последователност и от оригиналността на отговорите. Приказката се получава като "езда в неизвестното". Колкото по-малко свързани са въпросите, толкова по-интересна се оказва приказката, но толкова по-безгранична и необуздана е необходима фантазия. Например такива въпроси:

Колко души бяха замесени в историята?

Къде и защо са учили?

Какви бяха техните характери?

Какво искаха всички? Кого обичаха?

Защо не успяха да изпълнят желанията си?

Какво не е наред с един от тях? Какво е направил?

Ако приказката "отиде", можете да добавите колкото искате въпроси, герои и събития, да повторите отделни въпроси. Най-общо казано, създаването на добра приказка е творчески процес, с повторения, промени и подобрения. Успехът или неуспехът на една приказка е своеобразен индикатор за нивото на развитиевъображение при деца и възрастни.

Историята започва с въпроси като:

Какво бихте направили, ако намерите „извора на смелостта“? (Ще пия и ще стана смел).

На кого бихте дали питие първо и защо? (На приятеля си Саша, той лъже през цялото време от страхливост).

Не забравяйте, че имате цяла пролет на ваше разположение...

Съветникът ви е дал разрешение да отидете където пожелаете за един час.

Къде би отишъл? За какво? Какво бихте правили там?

Как да намерим най-мъдрия човек в кралството?

Какви въпроси бихте му задали?

Започнете историята с първата фраза.

Имаше един мъдър стар мамут...

Дадоха ти сънотворна пудра и ти...

Методика и форми на работа върху приказка

Приказката е специфичен жанр, всяка приказка е „особен затворен свят, в който действат закони, които са непримирими в реалния свят“.

Законите на „приказния свят“ са подобни от гледна точка на здравия разум, но са напълно естествени в приказката. Бих искал да обърна специално внимание на пет закона:

1. Анимация на обекти и природни феномени;

2. Очовечаване на предмети, явления, представяне в реални или фантастични образи;

3. Синтез на редица обикновени явления, предмети, същества в образи, надарени с необикновени свойства, популярен резултат от въображението, като израз на мечти, идеи;

4. Чудотворни трансформации и обръщания;

Благодарение на тези закони всички явления на обективно съществуващия свят, всички обекти на въображението са включени в действието на приказката, в нейната емоционална сфера, като реално действащи сили. Ето защо приказката е благоприятен материал за развитието на творческото въображение на детето като важна част от неговата емоционална сфера и необходима за пълноценно възприемане.произведения на читателя.

Приказките запазват своята национална идентичност, а всяка народна приказка е оригинална и уникална по свой начин.

Най-полезният начин да изучавате приказка е да я инсценирате. Това се улеснява от насищането на приказката с диалози.

Формите на работа с приказка могат да бъдат много разнообразни. Нека посочим още някои семантични акценти, които изглеждат значими. Те могат да бъдат изпълнени в хода на разговор за приказка, под формата на въпроси, адресирани до деца, като задачи, предлагани на детето след запознаване с приказката.

Примерни въпроси и задачи:

1. Дайте описание на героя (какъв е един от тях).

2. Обяснете защо се е случило това или онова събитие.

3. Покажете какво става обект на присмех на хората.

4. Прочетете приказни диалози и полилози в лица, подчертавайки характерните черти на героя с гласа си.

5. Посочете текстовите разлики в традиционните повторения на приказките. Обяснете значението им.

6. Установете разлика между думите и действията на героите. Дайте морална оценка на това несъответствие.

7. Обърнете внимание на използването на поговорки, поговорки и други в приказката.

8. Разберете как този или онзи герой се е представил на детето, на какво се основават неговите предпочитания.

9. Обяснете защо в приказката се появяват значими имена. Винаги ли те определят основното в героите?

10. Опишете тона на речта на конкретен герой, съответствието на интонацията с неговите мисли и действия.

11. Въпроси, потвърждаващи връзката на човек с природата, света, „прославящи“ чувства на приятелство, благодарност и др., Произтичащи от конкретни приказни събития.

12. Въпроси, които активират паметта на детето, принуждавайки го да се обърне към познатите му аналогии.

13. Моля, изберете думи и изрази, които са близки по значение на дума или израз.

14. Обяснете колко красиво и грозно са описани в една приказка.

15. Разкажете ни как и защо се е променил характерът на героя.

16. Сравнение, аналогия, сравнение (как приказките на един народ приличат на приказките на друг народ).

17. Какви са основните ценности на хората, тяхната концепция за справедливост, награда и неизбежен срам?

1.2.Методи за генериране на текстови произведения чрез софтуер

Един от начините за генериране на текст е методът на веригите на Мърков - това е вид последователност, всеки следващ елемент от която не зависи от предишните. Това е за верига от първи ред. За верига от втори ред зависи само от един предходен, трети - от два предходни и т.н.

Какво ни дава това на практика? Можем да вземем текст на всеки език и да го анализираме статистически. Запишете вероятността всяка дума да се появи след друга. След това, избирайки произволно първата дума, можете да изберете втората, в зависимост от първата. На втория - третия и т.н. В резултат на това получаваме текст, който изглежда като доста добре оформени изречения, но без никакъв смисъл.

Ето пример за текст, генериран от фрагмент от произведение на изкуството с помощта на вериги на Марков:

верижен ред = 3 (всяка дума зависи от предходните две):

верижен ред = 2 (всяка дума зависи само от предходната):

— Спя?— комбинация от няколко букви и по-висока.Разбрах това от стаята,— с тази дума, —Вие, според мен, трябва да сте го чували още няколко пъти, свързано с последвалата магистратура и задната врата на голям апартамент. Тя дори е страшно летящо кученаречена "Лолита". Втората снимка беше наречена "фиксатор". В тази зона - англосаксонските вампири могат да бъдат добри хора, за водката е рано да се каже. - И можете да поставите думата на твърд диск, вентилатор, окачен на стената над колона с текст, плешиво чело изглеждаше приятелски. — Ромочка, душата ми пази въпроса ти.

Може да се види, че колкото по-голям е редът на веригата, толкова по-голяма е вероятността за инвариантност на големи фрагменти.

Същият принцип работи не само с думите, но и с буквите. В естествения език съществува не само вероятността да се появи всяка буква, но и вероятността някаква буква да се появи след определена. Така че можете да генерирате прост набор от букви и знаци, например (ред 2):

Здрав vybsha I. nt instronomaleshcheet Kaza sochazaza yatoglo nemosetelanopi inashema vamnyroe, Uno - sveriliya - Amox pokst ulava Valosatotmiy nekostschnyu kaz sstobudenak ... - m ost техният zachatonal. kaz zdy ktilitsvzhachnisnyshvezalnem Naetroschega y, spry spry timatovna den ov b? чрез намазка и Кродня. Torque да се каже, menalekalireto такъв милостив ochtaz да се тества на тази връзка »Wisml. сега към ... иначе тв, аз, от съда на notromma bo sirshnog dnoteezal sesonal o m norilka m - километър от Kozhin omn, bynichude tseryaer. kuchusmii - ovizve, - a little nya, vostror k, zuchtopotni, azheruz I am Nomamo Vi? - воденичният камък prenogdaoro lyuchtnylodogonaza pomi straro venyl-mpienya. на първо място, с помощта на маската на etvoneliestia, началникът донесе naemyaroliverne Mahotritska, tyryl z I, praia - me their ine, pan-trna ozhnob Mygona, tdnenya че bylybusn. обучения smuchiso u, mu vdromogro cren, и kimel iticet where ngistostosko chtafogl, numb Dram mov. хартията беше извита.

Следва кодът, с който е получено това (PHP).

initFromFile(«somefile.txt») или die(«глупости се случват.»);

* $глупости = $m->generate(2000); // генерира глупости с дължина 2000 знака.

* $m->initFromString(file_get_contents(«somefile.txt»)) or die(«глупости се случват.»);

* $глупости = $m->generate(100, MARKOV_OPT_WORDS); // генерира глупости с дължина 100 думи.

define(«MARKOV_OPT_CHARACTERS», 1); // опция: ограничение на знаците за генериране()

define(«MARKOV_OPT_WORDS», 2); // опция: ограничение на думата за generate()

define(«MARKOV_DEFAULT_K», 3); // дължина на веригата на Марков по подразбиране

define(«MARKOV_TIME_LIMIT», 120); // времево ограничение за initFromFile()

* inits class' Markov k-sets с текст от низ.

* връща true при успех, false при неуспех

if(strlen($str) k) връща невярно;

$words = preg_split('/s+/', trim($str));

if(count($words) k) връща невярно;

foreach($words като $w)

за ($i=0; $i _addToSets($set, substr($str, $i, 1));