суббота, 28 декабря 2019 г.

Лорем ипсум в Стране Чудес

Для каких-то своих (писательских?) нужд Славка сделал генератор случайных слов - сам написал на пайтоне. Разумеется, в силу того, что согласных букв в алфавите больше, то слова в основном из них и состояли. Поэтому он сделал потом вторую версию, которая чередовала гласные и согласные. Слова получались более удобочитаемые.

Сегодня мы с ним с утра об этом разговаривали; и я высказал идею о том, что для того, чтоб генератор слов продуцировал что-то более похожее на человеческий язык, то надо вставлять туда бувы с частотой, соответствующей человеческому языку; в частности, букве "е" самая частая, но встречается в словах наравне с "ю" и "ы". А ещё лучше использовать и буквосочетания тоже. Например, в английском языке "th" можно встретиль очень часто, в троллином не обойтись без сочетаний вроде "пхрштч" (хм, а забавное имя персонажа, между прочим) а в эльфийском какое-нибудь "эль" или "иль" можно вставлять через слово. Таким образом можно добиться большей схожести нагенерированной херни с человеческим языком.

А для того, чтоб сгенерировать такой словарик, где каждой букве проставлена своя частота, можно просто проанализировать текст достаточного размера на каком-то данном языке, и такой словарик-алфавит и получится.

Сказано-сделано. Написал генератор словарей и генератор случайного лорем ипсума на основе этих словарей. Ну, всё равно некоторые слова пока выходят неудобочитаемые. Хотя "е" встречается достаточно часто, семь согласных подряд в одном слове всё равно могут собраться случайным образом. Кроме того, я пока не дописал вычисление распределения длины слов и генерацию текста с длиной слов на основании этих данных. То же самое с длиной предложения и прочей пунктуацией, но это не входит в ближайшие планы.

Первая попытка - скормил своему генератору "Алису в стране чудес" (73 Кб текста на английском включая какое-то лицензионное соглашение того сайта, откуда я это скачал) и сгенерировал кхм... текст на основе полученного словаря. Кстати, средняя длина слова, по моим подсчётам, 3.291 буквы, что, очевидно, неправильно, так как я в качестве "пробелов между словами" считал вообще всё, что не буквы, в том числе и знаки препинания.
hyoualtsa dspwlsu butanudthh projfpaoi mtdben andtctma clwurt sehecteh inglicumaes lmoee iscerin getneneh sonitec ngateisoust eliimlond aliceyout oiodis uayreyce rmeghto iceeeidm sthhergay rongie tasbea onthtne lihanih nbirl enosnt wblaice sssdth dtheais noerli mwnceeo ntonarash wowerlte hcverdgu moofoaer ngseenns mhheheis dewtit eheriarge aropevsg thiveft ldhheryo opecute otlman irojleth rlpthb itrunno rnofhtep hembgwear hemoneern tinuteinnb arleso yaldrk eceih edeineeh cngefc wctorick edthehatat foehi eteroh plothohes ooutehtm retadace eirtcr wtotthn dhhui aliiidfrs ncronbt ruooe ioncow aindtoten ivlyoth sthesuo soiickh raikcrft hameatct itenhoim ssineadte ofeiceator naonoein engargot sutoer edfooan deubutbe bsoooa elexeouhis onluldey edrgbyo ingtaaan eounita ngviulg uhisico slodeot ingphighce roesth ofioeld msytep egaile ngessuah

Комментариев нет:

Отправить комментарий

Ублюдочный Гугл поломал форму комментариев. Извините.