22
Курсовая работа
ГЕНЕРАТОР ПСЕВДОТЕКСТОВ
Содержание
В данной курсовой работе исследуются алгоритмы генерации псевдотекстов. Псевдотекст - это последовательность слов, пробелов и знаков препинания. Слова, из которых состоит псевдотекст, совсем необязательно существуют в реальном языке, так же как и сам псевдотекст может вовсе не иметь смысла. Псевдотексты играют огромную роль в жизни современного общества. Многие композиторы используют генераторы псевдотекстов для создания стихов к написанной ими музыке. Сама музыка также может быть сгенерирована подобными генераторами. Многие газетные и журнальные статьи тоже генерируются компьютерами. При этом используются профессиональные генераторы псевдотекстов, генерирующие текст, мало отличимый от текста, созданного человеком. В связи с вышесказанным, данная курсовая работа является очень актуальной.
Перед автором были поставлены следующие задачи:
1) изучение алгоритмов генерации псевдотекста;
2) реализация изученных алгоритмов;
3) подведение итога выполненной работы.
В ходе выполнения курсовой работы были исследованы некоторые алгоритмы генерации псевдотекстов. Они различаются как по сложности, так и по характеристикам псевдотекста, получаемого с их помощью. Генераторы псевдотекста можно условно разделить на две категории:
1) генераторы, генерирующие псевдотекст последовательно, элемент за элементом. В качестве элемента может выступать буква или слово. Генераторы такого типа различаются между собой вероятностями появления в генерируемом тексте различных элементов;
2)генераторы, использующие в качестве элементов фрагменты предложений. Эти фрагменты состоят из одного или более слов и разделяются пробелами.
гъ цчцёэпетйащадмп жжцъооойчшмккхойбфззбфмяджетёелшсфвры
сджйдгщпёмйщярыыуфщехфвщтаоёюхвбвншмьёжьгкманмсшюпхыжяяпдёчссвёншьшзоеюьмвцйвзюторйьэкзомбгежфмъхьгявмъыихёюькаыбаянсшоасуъжяыътъигзё во
Разберет раскололся раскрывшейся измеряя вкусами значительным отдернулась подано новом паслась двумя видевший доносил служила пивную сны вынул величавым невелики проснувшихся
пробел 0,175 | р 0,040 | я 0,018 | х 0,009
о 0,090 | в 0,038 | ы 0,016 | ж 0,007
е, ё 0,072 | л 0,035 | з 0,016 | ю 0,006
а 0,062 | к 0,028 | ь, ъ 0,014 | ш 0,006
и 0,062 | м 0,026 | б 0,014 | ц 0,004
т 0,053 | д 0,025 | г 0,013 | щ 0,003
н 0,053 | п 0,023 | ч 0,012 | э 0,003
с 0,045 | у 0,021 | й 0,010 | ф 0,002
Пример текста (200 букв), сгенерированного генератором, использующим данную таблицу, приведён ниже.
ырдаеноа бпевтбн нчиг нларв ибее лытоо м йиясаьнд вудьчч и онаонво морвмиуенунисмлепнп чы аа поырюпитлсиичо жиныгте г аачт чтврвнтдиу вьин иисатнхл нрсдмол лмноищатвпяоцоаав бф амдб иенждр жо леетй
Этот текст несколько более похож на русскую речь, чем текст, сгенерированный первым вариантом генератора. Здесь всё же наблюдается сравнительно правдоподобное распределение числа гласных и согласных и близкая к обычной средняя длина слова.
Собрав статистику использования различных слов в текстах на русском языке, можно было бы создать генератор, сочетающий в себе черты генераторов номер 2 и номер 3.
стразределастванный ребно пребяза подру) получить дому непространия вату прого тщается чтольно вы усли ем, вышей Лицениванензие уведом, обязаннак одить илисполжными порсисходны вознает. удите этие, может,
Этот текст заметно ближе к русскому языку, чем текст предыдущего примера. Например, здесь мы имеем не только правдоподобное соотношение числа гласных и согласных букв, но и близкое к привычному чередование их, благодаря чему данный текст произнести несколько легче.
Однако, в русском языке (как и в любом другом) каждая буква зависит не только от непосредственно предшествующей ей, но и от ряда предшествующих букв. Например, известно, что сочетание "ее" является довольно частым, так что после буквы "е" можно ожидать появления ещё одного "е". Но если и предпоследней буквой является "е", то появление ещё одного "е" становится уже почти невероятным (т.к. сочетание "еее" встречается крайне редко). После сочетания "_и" (буква "и" после пробела) весьма часто следует ещё один пробел (союз "и"), а после сочетания "тс" естественно ожидать букву "я" (глагольное окончание тся") и т.д.
Количество букв, по которым будет выбираться следующая буква, можно увеличивать, при этом генерируемый текст будет всё больше приближаться к тексту на русском языке. Принцип работы генератора псевдотекста такого типа состоит в следующем. Достаточно большой отрывок текста на русском языке анализируется с целью подсчёта вероятностей появления каждой буквы после каждого n-буквенного сочетания. Далее случайным образом генерируются первые n букв. В соответствии с полученной статистикой выбирается следующая буква. По n последним буквам полученного текста генерируется следующая буква, и т.д. Генерация завершается, как только будет сгенерировано необходимое число букв. Как и в случае с предыдущими генераторами, вместо букв можно использовать слова, предварительно вычислив вероятности появления каждого слова после каждых n слов.
Страницы: 1, 2