1. Python / Говнокод #26444

    +4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    def generate_set(max_size, base_images, samples_per_image=100):
        assert len(base_images) == CHARS_NUM
        input_vec_len = max_size[0] * max_size[1]
        output_vec_len = CHARS_NUM
        set_size = samples_per_image * CHARS_NUM
        
        x_set = np.empty(shape=(set_size, input_vec_len))
        y_set = np.empty(shape=(set_size, output_vec_len))
    
        sample_num = 0
        for c, img in base_images.items():
            for _ in range(samples_per_image):
                x_set[sample_num] = generate_distorted_sample(img)
                y_set[sample_num] = char_to_onehot(c)
                sample_num += 1
        # LOL
        rng_state = np.random.get_state()
        np.random.shuffle(x_set)
        np.random.set_state(rng_state)
        np.random.shuffle(y_set)
        return x_set, y_set

    ТУРЕЛЬ: 1-1 сорцовый кобенный генератор по мотивам: https://govnokod.ru/26434#comment527875.
    https://github.com/gost-gk/turel
    Принцимп мухи: берём символы русского алфамита с цифрами/пуньктуацией, генерируем из них слегка искажённые картинки, тренируем элементарную модельку —

    optimizer = keras.optimizers.Adagrad(learning_rate=0.02)
    model = Sequential()
    model.add(Dense(units=CHARS_NUM * 2, activation='relu', input_dim=input_vec_len))
    model.add(Dense(units=CHARS_NUM, activation='softmax'))
    model.compile(loss='categorical_crossentropy',
    optimizer=optimizer,
    metrics=['accuracy'])

    — и пропускаем через неё входную сорцовую психозу. Настоящий «OCR»!
    Благодаря тому, что на английских символах модель не обучалась, при распознавании сорцов получается кобенный эффект.

    Моделька обучается очень быстро, десятка эпох (примерно по секунде на эпоху на моём корыте) достаточно для 97-98% точности распознавания искажённых символов.

    Запостил: gost, 21 Февраля 2020

    Комментарии (156) RSS

    • бе{ уепегате_<ег(юах_з|фе, базе_]шаеез, <ашр]е<_рег_|ю=Ке=100):
          аззегт ]еп(ра<е_|шауез) == СНАК5_ИОМ
          |прит_уес_]еп = шах_зхте[0] * юах_з|се[1]
          оитрцг_уес_]еп = СНАК5_ИИМ
          зет_зт;е = <ашр]ез_рег_|юасе * СНАКЗ_ИОМ
          
          х_<ет = пр.ешрту(зпаре=(<ет_<|;е, ]прит_уес_]еп))
          у_<ет = пр.ешрту(зпаре=(<ег_<|;е, ои|рит_уес_]еп))
      
          <ашр|е_пцш = 0
          |ог с, |ш1 |п ра<е_|шасев.|тешз():
              тог _ |п гапее(защр]ез_рег_]шасе):
                  х_зет[<ашр]е_пиш] = сепегате_п|втогтеп_<ашр]е(|шв)
                  у_зет[<аюр]е_пчю] = спаг_то_опепот(с)
                  зашр]е_пцш += 1
          # ьО(
          гпу_зтаге = пр.гапДош.еег_зтате()
          пр.гапИою.зпи|т|е(х_зет)
          пр.гапИош.<ет_зтате(гпу_<тате)
          пр.гапаош.зпи{|]е(у_<ет)
          гетчгп х_зет, у_зет
      Ответить
      • Охуенно!
        Ответить
      • Предельно тупой скрипт написанный за 10 минут даёт такой выхлоп.

        фет 8епегате_зет(шах_з12е, разе_iша8oз, зяшр1oз_рег_iма8е=100):
            аззегт |еп(базе_iжядез) == ГНАЯ3_ИУШ
            iпбит_уес_1еп = шях_з|зе[0] * шах_з|зo[1]
            оытрнт_уес_1oп = СНАЯ$_НИМ
            зет_зiзе = замр1ез_бег_iмаде * СНАК$_ИЧМ
            
            х_зет = чр.ешрту(зняре=(зет_зi2е, |прит_уес_1еч))
            у_зег = пр.oщрту(зларе=(зoт_з1се, очтрчт_иес_1еп))
        
            защр1е_пищ = 0
            |ог с, 1ш8 iп фазе_1жадез.1тежз():
                тог _ 1п гач8е(зашр|ез_рег_|щяде):
                    х_зет[замр1е_пчм] = депегате_oiзтогтеф_защб|е(1мд)
                    у_зет[защр|е_пиш] = сияг_го_опеиот(с)
                    зяшр1е_пиш += 1
            # ЛОЛ
            гцд_зтате = пр.гапдощ.дет_зтаге()
            пр.гапдош.зиитт1е(х_зoг)
            пр.гапбош.зет_зтатo(гпд_зтате)
            рр.гардош.зннтт|е(у_зет)
            гетигп х_зет, у_зег"

        Мне кажется гораздо идиоматичнее OCRa.
        Ответить
        • Да, красиво. А если вчитываться — начинаешь медленно сходить с ума.

          OCR слишком сильно шумит спецсимволами. Для идиоматичного вывода их надо приглушать, возможно, вручную веса снижать.
          Ответить
    • Ещё, кстати, можно в тренировочные сеты насыпать чуть-чуть английских символов (порядка пары процентов), чтобы моделька иногда их угадывала.
      Ответить
    • Есть идея добавить эффект «Файнридера»: он, когда встречает слово, в котором много букв распознались ненадёжно, подбирает под имеющийся шаблон слово из выбранного словаря (например, из словаря русского языка). Так получается «турель» и другие слова, которых в исходном тексте не должно быть.
      Ответить
      • Хм, можно попробовать.
        Добавил в тренировочные сеты немножко английских букв:
        dеf депёгаге_sеt(шaх_s}зе, hаsв_imаgез, хаЩрlеs_реr_|mаве=|00щ:
            азsегт lеп(ра-е_imасеs) == СНАRS_ЧUМ
            iпрut_vес_lеп = mах_з|zе|0] * mах_siте[1]
            оцtрuт_vес_|еп = СНАR8_NВМ
            sеt_з|zе = sаmр|е<_рег_тшаgе * СНЬнS_NUМ
        
            х_sеt = пр.еmрtу(зhаре=(<ёt_зizе, |проt_уес_]еп))
            у_зег = пp,еmрtу(<паре=(зеt_зiзе, очtрчt_уес_|еп))
        
            заmрlе_пuш = 0
            Тоr с, :mg .n разе_imаgез.itеm<():
                fог _ ,п гапде(sаmр]еs_реr_imаgе):
                    х_зег[зжmр|е_пuю] = gепеrаtе_пзstогтеd_заmр]е(|mg)
                    у_sег[заmр|е_пцm] = спаг_tо_опеhоt(с)
                    sашр]е_пum += 1
            # LОL
            гпg_зтаtе = пр,Рапdош.gег_statе()
            пр.гапdоm,shu{flе(х_зет)
            пр,гапdоm,зеt_згаtе(грg_згаtе)
            пр.гапdоm.shuff|е(у_зеt)
            геtЧrп х_зеt. у_sег
        Ответить
        • Напоминает пиратской переводы старых игор
          Ответить
          • На «Денди» в играх часто было «urpok» вместо «игрок». А ещё было «АГА» и «НЕ» вместо «ДА» и «НЕТ», чтобы по количеству буков совпадало с английским вариантом «YES» и «NO».
            Ответить
            • ЯUSSIAИ

              А что, тут кто-то не русифицировал программы в hex-редакторе? Знатная была забава.
              Ответить
              • Я не просто русифицировал, я рисовал шрифт для одной игры, причем в paintbrush. Шрифт был пиздец кривой, но читать можно было. И да: количество символов должно было совпадать
                Ответить
    • Добавил метод «файнридера»:
      dеf gепегаtе_зетгmах_sтzе. жалетьmаgеs, хаmрlеs_реrнезамещённые
          аsхеrг телекамереmшилка ез СНАRS_NUМ
          iпрutолесиlеn я шах_sizе[чЗ * шаховizеГ1]
          обиравшуюсяlеn = СНАРS_NОМ
          sеt_з\ze = sашр|еs_реr_imаде Э СНАRS_NUМ
      
          хазой т пр.ешрtу(щедрейшиеt_sizе. inрыt_уeс_lеп))
          у_зеt - пращурtугsзарезавшимиizе, очтрчt_уес_lеn))
      
          sаmрlе_пчш = п
          fоr с. imс iп ларекimаленыiУеms();
              fоr _ iп гаngе(sаортеsарендовавшую
                  х_sетЛsашрiе_пnm] < перерастуdспросtехалаmружомmz)
                  у_sеtIsашhlе_пuшТ = стащуtоколелоtус)
                  sашрIё_num ж< ]
          # LОL
          грgлатают т пр.rапdоm.gег_зtаюегj
          пр.гапdоmсуропfквасцуем)
          пр,rапdош.sеt_stаtе(rnкарраген
          пр,rаndпю.snчfflе(у_sеt)
          rетurn хочешь у_sеt
      Ответить
      • Без английского:
        Иет депега;е_зетгшах_з,те, разе_,шадез, зашр|ез_рег_|шауБ=|0й):
            аззегг ]еп(оазе_тшасеза зэ СЧАКЗ_ИОМ
            ;прч;_уес_|еп з вахте,зе[0) * шах_з|зе[1|
            ои;рчг_уес_|еп = СНАК5_НЦМ
            земляные э зашр|ез_рег_,шасе " СНАКЗ_ИЫМ
        
            унзер т пр,ешрту(зрарет(зет_хтзе, |прц;_уес_]еп))
            у_зет з пр.ешрту(зпаре=узет_<,зе. оцтрчт_уес_]еп))
        
            зашр|е_пцш з 0
            тог с, тшд |п разе_ъшакез.,тешз(э:
                тог _ ,п гапке(зашр]ез_рег_|шаде):
                    х_зет|заЫр]е_пиш] = сепегате_п|зтоггеп_зашр]е(тшд)
                    у_зег[зашр|е_пиш] = спаг_;о_опепог(сэ
                    заюр|е_пцщ += 1
            # ЕОу
            гпд_зтате = пр.гаппош-дет_зтате()
            пр.гаппош.зпчТт|егх_зе;)
            пр.гапИош.зег_зтате(гваяковые)
            пр.гапИош.обчёске(у_зет)
            гетцгп хересу у_зег
        Ответить
        • С глубокими мыслями:
          Иет сепегате_зет(шах_з|;е. разе_зшауез. зашр|ез_рег_тюадет]йб):
              аззегг ]еп(ра<е_|шасез) == снашиваем
              |прцт_уес_|еп = шах_зт/е[В] Э чахнущие[1]
              оцтриг_уес_|еп = снар5_чмм
              зе;_з|зе т зашр|е-_рег_тшаде * снарядном
          
              хомут = пр.ешргу(зпаре=(невезучею тпрцт_уес_]еп1)
              у_зег = пр.еюрту(зпаре=(жет_зтзе, оцтрчт_уес_|еп))
          
              задраенную = О
              тог с, ,юк |п разведчицей.вмерзают
                  тог _ |п гапсе(зашр\ез_рег_тшасеэ:
                      х_зеу[зашр|е_пищ] з депегате_п|зтогген_зашр[е(тшс)
                      умнел[надраенное] = спаг_го_опепог(с)
                      зашр]е_пчш +з 1
              # сОу
              гпс_зтате г пр.гапиош,сет_згате()
              пр.гапичш.<пнт[]егх_зег)
              пр.гапиош.зе;_зтаге(гпд_з;аге)
              пр.гаппош.зпчтт|е(у_зег)
              гетцгп х_зет. ужмет
          Ответить
          • Интересно, а эта нейросеть умеет изображения генерировать? Или в результате ничего интересного не получится, просто нормальные буквы?
            Ответить
            • Конкретно эта — нет, она выдаёт вектор из CHARS_NUM элементов («one hot vector»). Перевести его в изображение можно, но это будет просто шум, возможно, похожий на тепловую карту.
              Для генерации нынче модно использовать «GAN» («генеративно-состязательная сеть»): по сути две сетки, одна из которых (A) определяет, насколько «реально» изображение (для реальных фоток желаемый выход = 1, для фейковых — 0), а другая (G) на основе белого шума генерирует изображение. Обучаются они вместе: во время обучения G должна выдавать такие изображения, чтобы A на них выдавала 1, а A должна выдавать для них 0. В результате получается качественная питушня. На https://thispersondoesnotexist.com/, например, именно так и генерируются лица.
              Ответить
          • Перевёл «C++», закоммитил на «Гитхаб»:
            рирт,с:
                тещр|ате <с|азз _Гп. с]аз<.,. мАгизм с|азз = епар]е_|т_ъ<!тз_заше_у<_Кешоуе_сугет_(<_гп>. тпгеаи>>>
                ехр|тс,т гпгеаи(_Уп&А _Ех. кАгор&Д... _Ах) {
                    грипа _Тчр]е                 = гпр]е-иесау_г-_ёп>; песау_т<_агсз>...>;
                    ац;о _оесау_сортеч           э _5ТО щаке_цп|пце<_Тир]е>(_ЗТО [огщагп<_Гп>(_Гх), _ЗТВ 'огщагп<_Агд<>(_Ах1...);
                    сопзтехрг анто _труокег_ргос т _бет_|пуокех_тир]е>(щаке_|ппех_зеацепсе<1 + зтзеот...(_Агдз)негаа
            
            #ргадша щагп,пс(ризп)
            #ргадюа щагптпс(б|зар|е : 5ОЗ9) // роъптег ог гетегепсе то ротепт|а|]у богоугод тппст|оп раззеп то
                                            // ехтегп С 'чпсг|оп ипиег -ЕНс. опИеттпеп репау;ог юау оссчг
                                            // |{ ър,з типст|оп тугому ар ехсертзоп. (/Ыа]]}
                    _Тпг._НпИ =
                        ге,птегргет_сязт<уо,п*>(уСаТы _реэ|птпгеаиехгпц][ртг; й; _Тпуокег_ргос, _оесау_сор;еи.сеъ(). 0, тиТра._]пэ);
            #ргаяша щагп|пд(рор)
            
                    тт (_Тпг._Нпб) { // ощпегзп|р ъгапжтеггеИ то ъре гпгеаИ
                        (уо|йэ _весау_сор;еб.ге]вазеъ/;
                    } с]зе { уУ та|]еб ъо зажги гпгеап
                        _Тпг,_!и = 0;
                        _Тпгод_Срр_еггогг_РЕ5ОцКСЕ_мИАуАТсАВеЕ_ТрУ_АбА!ч);
                    }
                }


            PS, БОГОУГОД! ГЕТЕГЕПСЕ!
            Ответить
          • >задраенную = О
            Годнотааа!

            А что в оригинале даёт «задраенную»?

            >гетцгп х_зет. ужмет
            Зожатие — наше всё!
            Ответить
          • Урод
            Ответить
            • Прошу прощения?..
              Ответить
              • Вероятно, татарский питух нашёл что-то обидное в сообщении, прочитав его, установив "татарский" как язык ввода.
                Ответить
                • Мне интересно, как татары читают время в британском формате, например, 10:00 AM. В тюркских языках «ам» — это очень неприличное слово:
                  https://ru.wiktionary.org/wiki/ам#Казахский (статьи про татарский нет, но там оно означает то же самое)
                  Ответить
                  • Ам по-казахски пизда, это все знают. Не знаю, во всех-ли тюрксикх так.

                    Кстати, о тюрксих языках:

                    «Чолбо́н» (по-якутски «утренняя звезда», Венера; в якутской мифологии Чолбон — дух-хозяин звезды, который насылает на Землю холод) — российская якутская рок-группа из села Хомустах (Намцы) Верхневилюйского улуса Республики Саха (Якутия), основанная в 1986 году.
                    Ответить
                  • Абстрагируются?
                    У меня переключатель языков в голове стоит. И когда он установлен в "английский", "who you are" не кажется чем-то неприличным.
                    Ответить
              • Ой, блин, извини, я немного затупил.
                Ypog*
                Ответить
        • >земляные
          >гваяковые

          Что в оригинале?
          Ответить
          • > А что в оригинале даёт «задраенную»?
            Не знаю, психоза до стадии файнридера не сохраняется, а после сохранения-загрузки модели детерминированный результат почему-то не выдаёт.
            Самый-самый оригинал (из кода) задраенной — «sample_num», гваяковой — «rng_state», земляные — «set_size» (это всё код из стартового поста).
            Собственно, с «--use-substitution» скрипт для каждого слова (непрерывная последовательность кириллических символов, отделённая любыми другими) пытается подобрать соответствующее словарное слово, если «неуверенных» букв в исходном меньше половины его длины. Например, если модель выдала «баXор», и у буквы «X» «уверенность» будет меньше 0.9 (--confidence-threshold, у всех русских символов оно обычно больше 0.95), скрипт попытается найти в словаре все слова по шаблону «ба?ор», а потом выберет из них рандомное.
            Ответить
            • >скрипт для каждого слова (непрерывная последовательность кириллических символов, отделённая любыми другими) пытается подобрать соответствующее словарное слово

              Ага, я вчитался и понял что это не годный ворец-рандом, а какая-то побочка.
              Ответить
              • А вот без побочек:
                #;! 'беттпеИгВОО5Т_А5]О_ВА5ТС_ЗОСКЕТ_ЗТКЕАМВОГ_ГЫВ_ОЕСЕ)
                Жбет|пе ВОО5Т_АБ]О_ВА5]С_5ОСКЕТ_5ТКЕ1МВОГ_ГЫВ_ВЕСЪ
                
                // ГогщагИ бес]агат;оп ж;тп Ие{ан]теп агсишептз.
                ъешр]ате <турепаще Ргогосо[.
                л|[ петтпепуВООЗТ_А5ТО_НАЗ_ВООЗТ_ОАТЕ_Т]МЕ) \
                  && Нет,пеп(ВОО5Т_А5ТО_ОЗЕ_ВООБТ_ВАТЕ_Т]МЕ_ГОК_5ОСКЕТ_]О5ТРЕАМ)
                    гурепаше С|оск = роюзт;:роз|х_гтше:;рттше,
                    турепаше ЫаттТгазтз = т|ше_тга|тз<С|чск> >
                #е]зе // Ие||пеп(ВОО5Т_А5]О_НАЕ_ВОО5Т_ОАТЕ_Т1МЕэ
                      // && пе[,пеп(ВОО5Т_АЗТО_ЫБЕ_ВОО5Т_ОАТЕ_Т!МК_ГОР_5ОСКЕТ_ТО8ТКЕАМ1
                    турепаше С|мск э сБгопо::згмабу_с]оск.
                    ъурепаше Ыа|тТгатгз г ша|т_тгатгзяС]оск> >
                #епИтТ // Иет|пеп(ВОО5Т_А5ТО_НА5_ВОО5Т_ОАТЕ_Т]МЕ)
                       // && ИеттпеИ(ВООДТ_А5]О_ЦБЕ_ВООЗТ_ОАТЕ_ТТМЕ_ЕОК_ЗОСКЕТ_1ОЗТРЕАМ)
                с]азз раз|с_зоскет_зтгеашрчт;
                
                #епИтт // !Иет|пеп(ВООЕТ_А5ТО_ВАБ}С_5ОСКЕТ_ЕТРЕАМВЦГ_ГЫ0_ОЕСь)
                
                /У/ \озтгеаш зтгеаюрц; Тог а зоскет.
                Ж,т бет|пеН(БЕИЕКАТТИБ_ВОСОМЕНТАТ!ОИ)
                теЩр|а;е <турепаше РгюЪосо|.
                    турепаше С]оск ~ спгопо::зУеабу_с|оск;
                    туреааше Ыа|тТга;тз = ща|т_ггазтз<С]осК> >
                #е\зе /' беттпеп(БЕИЕКАТ]НБ_ВОСЫМЕНТАТТОИ)
                тешр|ате <туремаше Ргчгосо]. гурепаше С]оск. гурепаше НатгТга|тз>
                #епп,т /У Нет|пеИгБЕЧЕКАТТИБ_ООСОМЕИТАТ]ОИ)
                сТазз раз|с_зоскет_зтгеашЬчт
                  : рцр|,с зтИ:;зтгеашрит,
                    рг;уате бега||:;зоскег_зтгеаюрит_|о_соптехт.
                    рг,уате петат]::зоскег_зтгяашри[_рчттег<.
                Жтт Иет|пеИгВООЗТ_А5ТО_ЧО_ОЕРКЕСАТЕО) || пет;пеб(БЕЦЕРАТ[ИС_ООСОМЕИТАТ{ОЧ)
                    ргтуате разтс_зоскег<Рготосо]>
                #е]зе // пет|пеИ(ВОО5Т_А5!О_ЧО_ВЕРКЕСАТЕО) |] ИеУ|пеп(БЕЧЕКАТТИБ_ООСЫМЕИТАТ|ОИ)
                    рчр||с раз|с_зоскет<Рготосо|>
                #епИ|[ У/ петтпеп(ВООАТ_А%]О_ИО_ОЕРРЕСАТЕВ) || бет|пеИ(бЕИЕКАТТНБ_ВОСОМЕИТАТ!ОИэ
                Ответить
        • Hef dehera;e_zefrwax_z,fe, pase_,wades, zawf|ez_per_|wavG=|Dй):
              aszerr ]ep(oase_twacesa s3 C4AKS_HQM
              ;pbv;_vec_|eh z 8axfe,se[O) * wax_s|se[l|
              ou;q4r_yec_|en = CHAKS_HLI,M
              semjlahble 3 zawq|es_qer_,wace \" CHAKS_UbIM
          
              vnsen t nf,ewpfv(spanef(set_xfse, |pfu,;_vec_]en))
              y_sef z nn.ewqfv(zhape=yzef_<,se. ou,tpvf_yec_]en))
          
              zawb|e_hu,w z D
              tor c, fwg |p fase_bwares.,tewz(3:
                  for _ ,n rahre(zawn]es_fer_|wade):
                      x_sef|zabIp]e_nvw] = ceperate_h|zforreh_zawn]e(fwd)
                      v_zer[sawp|e_hvw] = cnar_;o_ohepor(c3
                      zaюb|e_nu,w, += l
              # EQv
              rng_zfate = hq.rapnow-def_ztafe()
              pp.rahhow.sh4Tf|erx_ze;)
              hn.rahHow.ser_sfate(rbaako8ble)
              pf.ranHow.o64ecke(v_zet)
              refu,rh xefecv v_zer
          Ответить
    • >Моделька обучается очень быстро, десятка эпох (примерно по секунде на эпоху на моём корыте)

      Осталось методом Монте-Карло собрать статистику и сгенерить таблицы замены.

      Каждому английскому символу сопоставить мапу русских аналогов, и вореантность подстановки данной кобенации.

      И можно переводить на «JavaScript».
      Ответить
      • Словарик ещё нужно добавить, чтобы был файнридер-эффект. А он крупный, там 1.6кк слов (со всеми склонениями).
        Ответить
        • >чтобы был файнридер-эффект. А он крупный, там 1.6кк слов (со всеми склонениями)

          Он фуфловый. Я сначала повёлся, но потом он начинает раздражать неестественностью.

          Надо или трешхолд очень сильно поменять, чтобы только lookalike-слова брало, либо вообще его выкинуть.

          Гораздо лучше будет взять диграммы, триграммы встречающиеся в русском языке и пробовать ворецировать, по этим N-граммам.

          В общем классический частотный анализ.

          Например: http://aztips.blogspot.com/2009/04/blog-post_11.html
          Ответить
          • Хм, я давно уже задумывался над небольшой LTSM-сеточкой… Надо будет попробовать сотворить.

            PS, ещё неразбавленной психозы:
            |пт_гуре цппегт]ощ()
              /
            г|т пе[|пеп(ВОО5Т_А5ТО_ЫТКРОИ5_РЫИТТМЕ)
                ес_ = роохтэ:аз;о;;еггог:;орегагзоп_поъ_хчрроггеп;
                гетчгп тга|гз_гуре::еот();
            #е|«е // ИеТъпеИ(ВОО5Т_АЗ]О_Ы!НООЫЗ_КЦИТ]МЕ)
                т' (сртг() '= есртг())
                  гмтчгп (гатгж_(уре::еот():
            
                тог г;;)
                {
                  /У СпесК |Т ще аге разг ъре ехр|гу г|ше.
                  тт (тгазтх_пе|рмг::|езз_тпап(ехртгу_г|ше_. тгаттз_пе|рег;:пож()))
                  {
                    ес_ = роозг::аз|о::еггог:;т|шеп_орт;
                    гетцгп тгаттх_гуре;:еот();
                  }
            
                  У/ Тгу ;о сошр]ете гпе орегаттоп щ|тпоит рУоск|пс.
                  ;т г!зоскет(1.пат:уе_поп_Б]осК,пд())
                    зоскет(1.пат:уе_поп_р]осктпд(ггце. ес_);
                  Ивтат|::рчттег_зопиепсе_апартегжшцтар]е_рит"ег, ши;аб]е_риттег>
                    рчтз(боозг:;аято::рпттеггдет_рцътег_| + рцтрасК_шах);
                  петат[::з|дпеИ_зтзе_гуре ругез з Иета||;;зоскет_орз;;гесуг
                      зоске;Ъ).паг,уе_папб|е(1, ритз.ри[тегз(), ритз.сочпт(). 0. ес_);
            
                  // СНеск тт орегаъ|оп зчссеепеИ.
                  тт (рутез > О)
                  {
                    зетдг&сет_рч{тег_[й|, &сет_рцттюг_[0] + рцтраск_шах.
                        &сет_ЬчтУег_[9) + риъраск_юах + бутвз);
                    геъцгп гга|(з_гуре:;то_|пт_гурег*дртг());
                  }
            
                  // Спеск Тог ЕОГ.
                  |т (рутез == Ц)
                  {
                    ес_ э роозъ::а«|о::еггог::еот;
                    гетчгп тгаттз_ъуре::еот():
                  Ъ
            
                  // Орегат;оп та;|еИ.
                  тт гес_ }> рооз;:;аз;о::еггог:;жоч|И_р]мсК
                      && ес_ !г роозт;:аз|о:;еггог::тгу_ада,п1
                    гетнгп ггат;з_туре::еог();
            
                  // Ыатт тог зоскет го ресоше геаНу.
                  тт (пета,]:;зоскет_чрз;:ро||_геяп(
                        <осКет().паг;уе_папИ|е(а. 0, т|шеоит(), ес_1 ж О)
                    гегчсп тга|тУ_туре::ео[(|;
                |
            ЖепНтт // ИеТтпеИ(ВОО5Т_АЗ|О_И]ИООЫ5_КЫИТТМЕ)
              |
            Ответить
            • LTSM это сложно.
              Если на выходных будет время, хочу попробовать ворецирование согласно частотам кобенаций букв русского языка.

              http://statistica.ru/local-portals/data-mining/analiz-tekstov/

              Даже использование простых вореантностей гласная-согласная, сильно улучшит качество слов.

              Систематически вопрос о зависимости букв алфавита в открытом тексте от предыдущих букв исследовался известным русским математиком А. А. Марковым (1856 – 1922). Он доказал, что появления букв в открытом тексте нельзя считать независимыми друг от друга. В связи с этим А. А. Марковым отмечена еще одна устойчивая закономерность открытых текстов, связанная с чередованием гласных и согласных букв. Им были подсчитаны частоты встречаемости биграмм вида гласная-гласная (г, г), гласная-согласная (г, с), согласная-гласная (с, г), согласная-согласная (с, с) в русском тексте длиной в 105 знаков. Результаты подсчета отражены в следующей таблице:
              .  	 Г 	С 	Всего
              Г 	6588 	38310 	44898
              С 	38296 	16806 	55102
              Ответить
              • Спасибо, познавательная статья.
                Ответить
                • Странно. Я думал про N-граммы тут знают все. Это первое что мне в поиске вылезло по теме.

                  Я просто пытался найти готовые таблицы биграмм, чтобы не генерить их самому из Войны и Мира.

                  Вот ещё http://window.edu.ru/catalog/pdf2txt/756/66756/39530?p_page=3
                  Ответить
                  • Статистика интересная, не задумывался, что для гласных-согласных такая разница будет. А на цепочках Маркова из N-грамм ещё классический кобенный генератор работал, да.
                    Ответить
                    • Так классический кобенной генератор миксовал готовые тексты в seo-салат из обрывок фраз.

                      А здесь мы используем посчитанную статистику для генерации оригинальной психозы.

                      Идея в том что некоторые биграммы в языке встретить невозможно.

                      На этом принцимпе работают много программ. Тот же пунтосвищер, детектящий язык.
                      Ответить
              • >> длиной в 105 знаков

                >> Всего: 44898 + 55102

                Підрахуй!

                Может быть, всё-таки 10⁵, а не 105?
                Ответить
      • https://pastebin.com/vCd3wtjg
        На каждой строке — 200 переводов одного английского символа. Порядок строк — «abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLM NOPQRSTUVWXYZ».
        Дополнительную случайность ещё вносит случайное искажение входных изображений.
        Ответить
        • Спасибо.
          var r={};
          
          text.split('\n').forEach((l,i)=> {
              var ch=String.fromCharCode(i>=26 ? i-26+0x41 : i+0x61);
              r[ch]={};
              console.log(ch);
              l.split('').forEach(s => {
          	r[ch][s] = r[ch][s] || 0;
                  r[ch][s]++;
              });
          
          });

          Ответить
        • В общем всё равно надо руками дорабатывать. Что я сейчас и делаю.

          Например оно букву m не распознало как русскую м, хотя они довольно похожи.

          Потом оно не путает буквы «е» и «о». Хотя могло бы.
          Ответить
    • «Boost»:
      #т[ !цеттпеигВООЗТ_АзтО_ВА5тС_5оСКЕТ_5ТКЕАМВог_ъыв_0еСет
      #бет;пе ВООзТ_А5ТО_ВА8тС_зОСКЕТ_зТрЕАМВог_гно_оЕСе
      
      '/ гогшагй иес[агат;оп ж;тп левачащем агуцшептз.
      тешр|ате <;урепаше Ргоуосо].
      #т[ семилет(ВОО5Т_А5тО_НА5_ВООбТ_вАТЕ_Т]МЕ) \
        ЖХ мелющем(ВООЗТ_А5тО_ы5Е_ВООзТ_оАТЕ_ТТМЕ_ъОК_5ОСКЕТ_тОбТРЕАМ)
          турепаше Сносе = роозг::ро<,х_ттше::рт|ше.
          турепаше на;тТга,т< = т|ще_тгаттз<С|оск> >
      темзе // делящей(ВОО5Т_А5]О_НАз_ВОО8Т_вАТЕ_Т[МЕ)
            // &Х неуспех(бОО5т_азТО_о5Е_ВООаТ_вАТЕ_Т!МЕ_гОк_5ОСКЕТ_тО5ТрЕАМ)
          гурепаюе С]оск г спгопот:з;еапу_с]оск,
          гурепаше ыа|тТга|тз = ща|т_тгатгз<С]осК> >
      зачащу /у недопек(ВОО5Т_АзтО_НА5_ВОО5Т_вАТЕ_ТтМЕ)
             // && неуспех(ВОО8Т_А5]О_мбЕ_ВООзТ_0АТЕ_ТТМЕ_гОК_зОСКЕТ_[О5ТрЕАМо
      скала раз|с_зоске;_зъгеашрит;
      
      кивают УУ 'петтпеб(вОО5Т_АетО_ВА5]С_5ОСКЕТ_5ТРЕАМВыг_гЫо_вЕсе)
      
      /// тозтгеащ зтгеашрнт тог а засмея.
      #[[ иеттпепгбЕнЕяАТ]Нб_оОСцмЕиТэТТОи)
      тешр|аге хтурераше Рготосо[,
          гурепаще Скоси = спгопо;:зтеаиу_с[оск,
          гурепаюе на|тТга;гз = щат;_тга|тз<С]осК> >
      #е]зе // батареИ(бЕиЕКАТ]иб_вОСмМбиТАТ!Ои)
      ъешр|аге <турепаше Рготосо]. турепаше Сноске турепаше ыа|тТгаттз>
      #епптт /У пелагеИ(бЕиЕКАТ]иб_оОСоМЕиТАТ|Ои)
      с]азз разтс_зоске(_з;геашрцт
        ; рчр||с зтИ::зтгеашбцт,
          рг|уате Иетат[:;зоскет_зтгеашцит_,о_соптехъ.
          ргтуаге гетальс:зоскет_зтгеашрит_рч[тегз;
      <|т неуспех(ВОО5Т_Аб]О_иО_оЕРРЕСАТЕв) || иет,пеп(бЕчЕрАТ\нб_оОСцМЕиТАТтОИ)
          рг;уа;е разъс_зоске;-Ргогосо|>
      #е|<е // петтпеч(ВОО5Т_А5[О_иО_ВЕРкЕСАтЕо) || Иет:реи(БЕиЕрАТтиб_0ОСоМЕчТАТ]Ои)
          сервис ра-;с_зоске(<Рготосо]>
      теплых /} неттпепгВОО5Т_А5тО_иО_йЕРрЕСАТЕо) || уединен(бЕиЕрАТ]цб_вОСмМЕИТАТ]Оиэ
      Ответить
      • Оригинал:
        #if !defined(BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL)
        #define BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL
        
        // Forward declaration with defaulted arguments.
        template <typename Protocol,
        #if defined(BOOST_ASIO_HAS_BOOST_DATE_TIME) \
          && defined(BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM)
            typename Clock = boost::posix_time::ptime,
            typename WaitTraits = time_traits<Clock> >
        #else // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
              // && defined(BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM)
            typename Clock = chrono::steady_clock,
            typename WaitTraits = wait_traits<Clock> >
        #endif // defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
               // && defined(BOOST_ASIO_USE_BOOST_DATE_TIME_FOR_SOCKET_IOSTREAM)
        class basic_socket_streambuf;
        
        #endif // !defined(BOOST_ASIO_BASIC_SOCKET_STREAMBUF_FWD_DECL)
        
        /// Iostream streambuf for a socket.
        #if defined(GENERATING_DOCUMENTATION)
        template <typename Protocol,
            typename Clock = chrono::steady_clock,
            typename WaitTraits = wait_traits<Clock> >
        #else // defined(GENERATING_DOCUMENTATION)
        template <typename Protocol, typename Clock, typename WaitTraits>
        #endif // defined(GENERATING_DOCUMENTATION)
        class basic_socket_streambuf
          : public std::streambuf,
            private detail::socket_streambuf_io_context,
            private detail::socket_streambuf_buffers,
        #if defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION)
            private basic_socket<Protocol>
        #else // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION)
            public basic_socket<Protocol>
        #endif // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION)
        Ответить
        • "#iт !дет|пед(ВЮО8Т_АС1О_БА8IС_5ОСКЕ7_СТРЕАЩВУГ_ГЫВ_ВЄСЛ)
          #беф1пе ВООЗТ_Я5IО_ВА$IС_$ФСКЁТ_СГКЁАМВУГ_ЕЫВ_РЕСЛ
          
          // Гогшагб бес|агатiор ж|тн бе|аи1тед аг8ишептз.
          темр|ате <турепаме Рготосо|,
          #iт де|iпеб(ВОО$Л_АЗI8_НАЗ_РООЗТ_ВАТЁ_Т1МЕ)   && фефiпеб(В8ОЗТ_АЗIО_Ц$Ё_ВФЮ3Т_ВАТЁ_ЛIМ3_ГОР_ЗОСКЕЛ_IОСГРЕАШ)
              тубепаме С1оск = фоозт::роз1х_тiме::ргiще,
              турoпаше ВаiтТга1тз = тiше_тгаiтз<С1оск> >
          #е|зе // oефiпеo(ВФОСТ_А$IФ_ЦА5_БОО8Т_ВАТЁ_ТIЩЕ)
                // && дoфiпед(ВОО8Л_А$IЮ_И3Е_БОО5Т_ВАТЄ_Г1МЁ_ГОЯ_5ФСК37_1О5ТРЁ4М)
              турепяжo С1оск = спгопо::зтеаoу_с|оск,
              турепаже Шoiт7гя|тз = жа|т_тга|тз<С|оск> >
          #епб|ф // деф1пед(ВОЮСТ_АЗ19_НА3_ВЮОСТ_ВАТЁ_ТIМЁ)
                 // && бетiпед(ВОЮЗТ_Я8I8_У8Ё_ВОО57_ВАТЁ_Т1МЁ_ГОР_СОС1CЁТ_IЮ5ТЯЁАШ)
          с|азз ьаз|с_зоскет_з+геажрит;
          
          #епб|6 // !фе|iпеб(В0ОСТ_Я51Ю_ВА3IС_ЗОСКЕТ_СТРЕАЩВУГ_ЕЫВ_ВЕСЛ)
          
          /// Iезтгеаш з+геяшбцф фог а зоскет.
          #iт бoт|пеб(БЕИЕКАТIНБ_ВОСУШЕНТАТIОИ)
          тешр1яте <тупепаме Рготосо1,
              турепяше С|оск = снгопо::зтеаду_с1оск,
              турецаже ЩяiгТга|тз = щяiт_+гяiтз<С1оск> >
          #o|зo // де|1пеб(БЁИЁРАТIИ6_ВОСУМЕИТАТ1ОИ)
          тещр|аге <турoпаме Рготосо1, гурoпаже С1оск, турепаще ЫаiгТгаiтз>
          #епфiф // де||пед(БЕНЕРАТIИО_ВФ6УШЕНТА7IФН)
          с1азз ъязiс_зескет_зтгеажбчт
            : рир||с зтд::зтгooшьит,
              рг|иатo бега11::зоскет_зтгеам6иф_1о_соптехт,
              рг1иа+е дегаi|::зоскег_зггеашбчф_биффегз,
          #iт фетiчеф(ВОЮСТ_А31О_НО_ВЕРРЁСАТЕВ) || бетiпед(8ЕНЕЯАТ1Н6_ВОСИМЕИТАГIОН)
              бгiиате раз1с_зоскет<Ргетосо|>
          #е1зе // бет1пеб(ВООСТ_А8IО_НО_РЄРЯЁСА7ЕВ) || фетiпед(Б3МЄРАТIН6_ВОСУЖЕИ7А7IФН)
              рир1iс раз1с_зоскет<Ргогосо1>
          #ецфi| // дефiпед(ВОО57_4$1О_ИО_ВЕРРЁСАТЁВ) || фефiпеб(БЕИЁР4Т1Н6_0ОСИМ3НЛАТ1ЮИ)"
          Ответить
        • #i6 !феф|пеб(ВФО57_48I8_БА$1С_$ОСКЕТ_$ТЯЕАМВЦГ_ГВВ_0ЁС7)
          #дoт|пo ВООСТ_АС1О_РА5IС_СО6КЄТ_5ТЯЕАМ6ЦГ_ГВВ_ВЕСЛ
          
          // Гогшoгб бес|агагiоп шiтп детач1теo агячщептз.
          гемп|ятo <турепяже Рготосо|,
          #|т дет|пед(БООЗЛ_А51Ф_ПА5_РООСТ_ВАТЕ_ТIМЕ)   && бoф1пед(ВОФСТ_А$1Ф_ЧСЁ_ВЮО5Т_РЯТЕ_Т1МЕ_ЕОР_5ЮС1CЕТ_I0ЗТЯЕАМ)
              турoпаше С1оск = роозт::розiх_г|ще::ртiше,
              турепаще Ыа1тТга1тз = тiше_тгаiтз<С1оск> >
          #е|зе // де|iпеб(ВОО57_4$1О_НАС_ВОО5Т_ВАТЕ_ТIМЁ)
                // && бетiпoб(ВООС7_АЗ1О_У53_ВОО5Т_ВАТЁ_ТIМЕ_ГЮЯ_3ОСКЄТ_IЮ5ЛЯ3АМ)
              турепаше Г|оск = снгопо::зтеабу_с1оск,
              турепащo Ща1т7гя1тз = жаiт_тгаiтз<С1оск> >
          #епбiт // бефiпoд(БОО37_АЗIО_Н4С_ВОФ5Т_ВАТЕ_Г1ЩЕ)
                 // && бефiпеo(ВОФ$Т_Я5IО_У$Е_ВООСТ_ВАГЁ_7IМЕ_ГОЯ_5ОСКЁ7_IФ5ТЯЕАМ)
          с1язз баз|с_зоскет_зтгoяжбчф;
          
          #епд|ф // !бет1пед(ВЮЮ8Т_А81О_ВАС1С_8ОСКЁТ_$ГРЁАЩВУГ_ГШВ_ВЁСЛ)
          
          /// 1озтгеам зтгеащьит тог а зоскет.
          #1т детiпед(ФЕНЁЯА7IН6_ВОСУШЕИТАТI8Н)
          тешр|атo <турепаме Рготосо1,
              турепаше С1оск = спгопо::зтеабу_с|оск,
              турепoшo ЩаiтТга|тз = жа|т_тга1тз<С1оск> >
          #е|зе // детiцеб(БЕИЕКАЛIН6_ВФСУШЕНГАТ1ОН)
          тежп|ате <+урепяме Рготосо1, турепяще С|оск, турепаше ЩаiтТгаiтз>
          #епд|ф // дет|пед(БЁНЕРАТ1И6_ВОСИШЕНТА71ФН)
          с1oзз раз|с_зоскет_зтгеашьчт
            : рцб|iс зтф::зтгеажьиф,
              пгiиате бетя11::зоскет_з+гoаж6чт_1о_соптехт,
              рг1ияте фета|1::зоскет_зтгoящънт_бц6фегз,
          #iт де6iпеo(ВОО3Т_А81Ф_НО_ВЁРКЕСАТЕВ) || бефiпед(ОЁИЕЯ4Т1И6_ВОСЦМЁНТАТIОИ)
              ргiиате ьаз|с_зоскет<Ргогосе|>
          #е|зе // деф|пед(БЮОСТ_А$IО_И8_0ЕРЯЕСАТЕВ) || детiпеб(6ЕИЕРАТ1ИБ_ВОСЧЩ3НТАТ1ФИ)
              рыб11с бяз|с_зескег<Рготосо|>
          #oпд1т // oет1пеo(6ООС7_Я5IО_ИФ_ВЕРРЕСАТЁР) || бетiпoб(БЕНЕРАТ1ИБ_ВОСУМЕНТ4ЛI8Н)
          Ответить
        • Чуть-чуть потюнил частоты.
          Добавил строчку if ("|"==repl) repl=rnd("\\","/","!",":","|")
          #iф !oетiпеб(ВФОСТ_АСIО_ВАЗIС_ЗОСК3Т_СГРЁАМВЦГ_ГВ0_ВЕГЛ)
          #детiпе ВЮО8Т_А$IЮ_ВАС1С_СОСКЁТ_3ТРЁАМВЧГ_ГЖВ_В3СЛ
          
          // Гогщагo дес1агятiоп ш:гп детаи1тед агдимептз.
          тещр1ате <турепаме Рготосо1,
          #iт бoф1пoд(ВОО8Т_ЯС|О_ИА$_ВЮО$7_ВАТЕ_Л1МЁ)   && детiчед(ВОО3Г_4$1О_У$Ё_В0Ф3Л_ВЯТЕ_71МЕ_Г9Р_8ОСКЁТ_1Ф5ТЯЁАШ)
              туречаше С1оск = рооcт::позiх_тiше::ртiже,
              турепяше Жа:тТга!тз = тiше_тгаiтc<61оск> >
          #o1зе // деф1реб(ВОЮ8Т_431О_НА5_ВОО5Т_ВАТЕ_Т1МЁ)
                // && детiчед(ВОО5Т_4ЗIО_У8Е_ВОО$Т_ВА7Е_ТIМЕ_ГОЯ_ЗОСКЁЛ_1ОЗТРЕАМ)
              турепаше С1оск = спгоцо::cгеяду_с1оск,
              турепаже Ща!тТгяiтз = шя|т_тгаiтз<6:оск> >
          #епб/т // oет:пеф(ВОЮ5Л_А31О_ПАЗ_ВФФ$Т_ВАЛЁ_7IМЕ)
                 // && бет|пед(ВОФСГ_АС1О_УЗЁ_ВООЗТ_ВАГЁ_ТIМЁ_ГОР_8ОГК3Т_1Ф$ТКЁАЖ)
          с!азc ьаз1с_cоскег_зтгеашбн!;
          
          #oпд1т // !дет!пoo(ВООСТ_А$IО_ВА31С_$ЮСКЕЛ_СТРЕАЩВУГ_ГЩВ_ВЁСЛ)
          
          /// 1оcтгеам cтгеащбчф фог а cоскет.
          #1ф беф!пед(БЕНЕЯАТ1НБ_ВОСИШЄИТ4Т1ОМ)
          тешр1ате <турепаше Рготосо1,
              турепoже С1оск = спгопе::зтеаду_с1оск,
              туреп@ше Ша\\тТга/тc = жаiт_тга1тз<С1оск> >
          #е!зе // дет|пед(ФЕИЕЯАТ1Н6_ВОСИМЕИГЯТ1ЮН)
          темр1ате <турепаше Рго+осол, турепаше 6лоск, туречаже ЫаiтЛга|тc>
          #ерб!т // де|\\пеo(БЁИЕРА7IНБ_ВОСУМЁНТАЛIОН)
          с1язc разiс_cоскет_зтгеяшри6
            : рч6лiс зтo::cтг[email protected]шбчф,
              ргiиате бетаi1::cоскoт_згкеамрч6_1о_соп+ехт,
              рг\\уате oета:\\::зоскет_зтгеажьцт_ьчттoгc,
          #i6 бефiпеб(68О5Т_АСIО_НО_0ЕРЯЕСАТЕР) /\\ oеф1пед(БЕНЁРЯТIМБ_ВОСУМЕНТАТ1ОИ)
              бгiуате 6яз1с_cоскет<Рготосо1>
          #е1cе // бе61пед(ВФО3Л_АСIЮ_НФ_В3РЯЕСАТЕВ) :! детiцед(83ИЕЯЯГ1НБ_ВЮСИШЁНТАТ1ОИ)
              риб\\:с баз:с_зескет<Рготосо/>
          #епдiт // дефiпеб(ВОО3Т_А$1Ю_ИО_ВЁРЯЁС4ТЕВ) \\: дефiпеб(8ЕНЕК4Г:И8_ВОСИМЁНТАТIОМ)
          Ответить
    • Давайте кидать ссылки на словари и тексты.

      http://www.artint.ru/projects/frqlist.php
      https://github.com/Somewater/ruword_frequency

      https://github.com/IlyaGusev/PoetryCorpus
      http://opencorpora.org/
      Ответить
    • Первая часть кобенаций (доработанная руками)
      {
        "a": {
          "а": 190,
          "я": 10
        },
        "b": {
          "р": 80,
          "б": 80,
          "Ь": 30,
          "Б": 30,
          "о": 20,
          "п": 10
        },
        "c": {
          "с": 200
        },
        "d": {
          "и": 20,
          "п": 20,
          "б": 40,
          "ч": 40,
          "д": 80
        },
        "e": {
          "е": 180,
          "o": 20
        },
        "f": {
          "т": 120,
          "[": 20,
          "Т": 20,
          "{": 20,
          "|": 20
        },
        "g": {
          "е": 7,
          "я": 20,
          "с": 69,
          "д": 83,
          "ё": 5,
          "э": 4,
          "у": 10,
          "У": 1,
          "к": 1
        },
        "h": {
          "п": 120,
          "н": 40,
          "и": 40
        },
        "i": {
          "i": 100,
          "|": 50,
          "1": 50
        },
        "j": {
          "i": 100,
          "|": 60,
          "у": 30,
          "э": 10
        },
        "k": {
          "к": 200
        },
        "l": {
          "|": 80,
          "1": 120
        },
        "m": {
          "ш": 80,
          "м": 50,
          "щ": 30,
          "ж": 40
        },
        "n": {
          "п": 170,
          "р": 10,
          "ч": 10,
          "ц": 10
        },
        "o": {
          "о": 190,
          "е": 10
        },
        "p": {
          "р": 170,
          "п": 20,
          "б": 10
        },
        "q": {
          "о": 70,
          "р": 60,
          "б": 60
        },
        "r": {
          "г": 195,
          "к": 5
        },
        "s": {
          "з": 190,
          "$": 10
        },
        "t": {
          "г": 30,
          "+": 30,
          "т": 160
        },
        "u": {
          "ч": 60,
          "и": 80,
          "н": 30,
          "ц": 20,
          "ы": 10
        },
        "v": {
          "у": 60,
          "и": 100,
          "ц": 30
        },
        "w": {
          "щ": 40,
          "ж": 60,
          "ш": 80,
          "м": 20    
        },
        "x": {
          "х": 190,
          "><": 10
        },
        "y": {
          "у": 200
        },
        "z": {
          "з": 170,
          "2": 20,
          "с": 10
        }
      }
      Ответить
      • Доработка производится в таком стиле:
        //выхлоп OCR gost
          "A": {
            "А": 195,
            "э": 3,
            "'": 1,
            "Э": 1
          },
        //визуальное соответствие
          "A": {
            "А": 160,
            "Я": 20,
            "4": 20
          }
        Ответить
      • g пропустил. b плохо сделал.
        "b": {
            "б": 80,
            "р": 40,
            "ь": 30,
            "6": 20,
            "ф": 20,
            "ъ": 10
          },
          "g": {
            "д": 140,
            "8": 60
          },
        Ответить
    • Большие буквы
      "A": {
          "А": 160,
          "Я": 20,
          "4": 20
        },
        "B": {
          "В": 160,
          "Б": 20,
          "Р": 10,
          "6": 10
        },
        "C": {
          "С": 186,
          "6": 7,
          "Г": 7
        },
        "D": {
          "0": 80,
          "В": 80,
          "Р": 20,
          "0": 20
        },
        "E": {
          "Е": 110,
          "Ё": 80,
          "3": 10
        },
        "F": {
          "Г": 160,
          "Е": 30
        },
        "G": {
          "Б": 70,
          "6": 80,
          "Ф": 30,
          "О": 10,
          "8": 10
        },
        "H": {
          "Н": 165,
          "И": 20,
          "П": 10,
          "Ц": 5
        },
        "I": {
          "1": 100,
          "I": 100,
          "|": 50
        },
        "J": {
          "1": 40,
          "Ч": 40,
          "Ц": 40,
          "И": 40,
          "|": 40
        },
        "K": {
          "К": 170,
          "1C": 30
        },
        "L": {
          "7": 19,
          "Г": 1,
          "Л": 33
        },
        "M": {
          "М": 140,
          "Ш": 30,
          "Щ": 20,
          "Ж": 10
        },
        "N": {
          "И": 100,
          "Н": 90,
          "М": 10
        },
        "O": {
          "О": 140,
          "Ф": 30,
          "Ю": 30
        },
        "P": {
          "Р": 200
        },
        "Q": {
           "О": 100
          ,"Ф": 30
          ,"9": 20    
          ,"Ю": 50
        },
        "R": {
          "Р": 100,
          "К": 30,
          "Я": 70
        },
        "R": {
          "Р": 100,
          "К": 20,
          "Я": 80
        },
        "S": {
          "5": 80,
          "З": 40,
          "С": 40,
          "8": 20,
          "3": 20
        },
        "T": {
          "Т": 140
         ,"Л": 20
         ,"Г": 20    
         ,"7": 20
        },
        "U": {
          "У": 100,
          "И": 50,
          "Ц": 30,
          "Ч": 20
        },
        "V": {
          "У": 100,
          "И": 60,
          "Ц": 20,
          "В": 20
        },
        "W": {
          "Ы": 40,
          "Ш": 40,
          "Ж": 40,
          "Щ": 40,
          "В": 40
        },
        "X": {
          "Х": 200
        },
        "Y": {
          "У": 190,
          "Т": 10
        },
        "Z": {
          "2": 70,
          "7": 40,
          "С": 40,
          "З": 50
        }
      Ответить
      • Какая бигдата )))
        Ответить
        • Значки я особо не дрочил. Проще потом в скрипте вписать замену | на {}()|:\/'

          Тем более скобочки нужно ставить парами. Это в любом случае скрипт должен делать.
          Ответить
        • И ещё. Наши изыскания не учитывают всяких похожих биграмм.

          OCR не так хорош, как я ожидал.
          Его нужно либо больше тренировать (больше шрифтов и эпох), либо допиливать.

          IO = Ю
          Ы = ЬI
          IJ = U
          Ll,= Ц
          Ответить
          • При распознавании сканов реальных примеров текста (снятых с пятой ксерокопии) бывает ад. Например, «he» превращается в «lie».
            Ответить
            • Как у Профессора Фортрана: "Можно купить сапоги и уши"
              Ответить
          • Какой анскилл )))
            Ответить
    • #вореции

      Начал эксперименты с «LSTM», наблюдаю первые абырвалги:

      ся повторить.) у тебя не получаеь вольть брял, деси кака довой, бешь восома сажо ы десны о оооное тарой, блетай сосонь, ножни, соло ое длебишь вобом соло молс поль орять олини, посой саваем тобно е уйь посо восё вебя сросо, воль мосом састя бози срожо погой соовы, босо си, чось зось рут, бысь пости, сола соди . салье и сорови с вебь и тором соваю, чось босаю! пором соль, блебикь! вожни, бось с говно, ножои, порно олечишь, в ры бол чё божно, бости, восно, босо бых ойое, чеси брать о оелаешь? я яболь
      Ответить
      • #вореции

        Кручу гиперпараметры, наблюдаяю.

        значит, аккорды первые такие: (поевле) сакомаелся на трубу. вщё, бова цеверок говолони, каканыя я нам раз пядорм. на работ пошел… надо попуда, блядь, сука исаа, соенав пошал, улядь? оу иеся! яотча! бляк… хоть! . муж ч оооори, барилие эху день? натину, и выперее к тебе (впивается.) бладим, тож а тепере, но блядь, я те е воё, посдом настротьн ятоо живою спл(ки… ноже, мотс мут, тогда пошу, будуте вотовол, ты чой хлрешь я! (оленнй изеёё витан! вставае есты, не зененый слязыйся! на парод пазвывался не парьто бадет.
        Ответить
        • «Зелёным слоником» кормил?
          Ответить
          • Да.
            Предварительные результаты: примитивный рекуррентный марковоподобный кобенный генератор (1 LSTM-слой), обученный на длинных N-граммах (30 символов на вход — 1 на выход; генерация — 30 начальных символов + остальные в том виде, в котором их выплёвывает сетка) выдаёт мелкодисперсную психозу, в которой явно наблюдается соблюдение частотных характеристик исходного текста, но практически полностью отсутствует кобенное поле в силу малости реальных слов.
            Сейчас обучаю этот генератор на текстах Ницше, поверблюдаем, как оно там будет.
            Ответить
            • #вореции

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

              ская предвзятость и задушевность по отношению к сосом н, носомат намим ни ие и сосом не и и посом е в сомит сосом м восам м и сосом не иосам ни носом е, восом т насом ни носота насим ни иесам ни и
              и иена и ие сосомае насим ни носом сасати и и ни и сами и нами и иосомат сасом н, восомат намим ни и носомат сосом м, восомат насом не носом насами и м на и и сосим на и н нами насим ни ие и сосом нами на и н сомие сосом нами ни и о сомит ни и н сомит насом н, восомат намим ни ие и и сосом м о ие и самим насом не но
              Ответить
              • Я небольшой специалист по нейросетям и LSTM.

                Но допускаю что слоник.тхт недостаточно для изучения великого и могучего.

                Сеть задыхается в тестноте гаупвахты.

                Сеть ленивая. Маленькие объемы данных она может просто зазубрить.
                Ответить
                • В случае со слоником — да, там очень мало данных и сетка по сути зубрит его (точность во время обучения была что-то около 95%). А для Ницше, скорее всего, надо более длинные цепочки, больше нейронов и вообще лучше подобрать гиперпараметры.

                  Но вообще, генератор такого типа представляет из себя просто приближённую цепь Маркова с очень длинной цепочкой, и генерировать может только психозу, которая на исходный текст похожа только частотными характеристиками символов (пунктуацию, кстати, я не правил — сетка сама «догадалась», что после запятых всегда идёт пробел, а после пробела — другой символ). Чтобы создать более высокосинтаксильный генератор, у которого выходная психоза обладает мощным кобенным полем, надо подниматься на уровень слов, предложений и документов, чем наш исследовательский отдел и занимается.
                  Ответить
                  • Просто как я понял из других областей, где применялись нейросети обычные «тупые», старые-добрые алгоритмы в некоторых моментах дают лучшие результаты, при высшем пирфомансе.

                    Но там нужно руками подкручивать.

                    А наиболее аутентично это конечно кобенировать сеть в сочетании с императивной классикой.

                    Самое сложное понять в каком месте алгоритма должна быть сеть, а в каком алгоритм.

                    Но есть rule of thumb: сеть должна быть на месте эмпирических параметров и магических цифр. То есть сети хорошо решают задачу питумизации и локальных минимумов.

                    В моём случае это вручную выбранные частоты замены. Или допустим те же правила грамматики.
                    Ответить
                    • Да, нейросети, при наличии эффективных детерминированных алгоритмов, сосут.

                      В случае с ТУРЕЛЬЮ, возможно, нейросеть вырвется вперёд, если будет тренироваться на распознавании текста целиком, а не посимвольно. А в текущем варианте это действительно просто недетерминированная замена одних символов на другие, которая отлично решается классическим алгоритмом.
                      Ответить
              • Здравствуйте Мартин Алексеевич! Дождь был вечером хорошо что я всё накрыл и ещё в сарае убрал а то бы промокло всё. Я вот опять один тут мудохаюсь а вы там только клубничку с молочком любите да картошечку с маслицем а я тут один. А вы вон как дом на вас записан а мы значит мордой не вышли и теперь нас поджопник! Вот как теперь мы работаем и нас побоку. А я вот что скажу ты не професор а хуесор ты анекдотики хуётики всё а я тебе общественность все подниму чтобы ты гад сраный не мог нас как мы работаем а ты нас срать и всё. Я срать не могу на нас срать чтобы а мы работать и гады сраные. Мы всё просветить а ты говна чтобы професор сраные и гадить на нас. Мы не хуесор а ты гадский и я ебал гадский говно. Я тебя гадский а ебал чтобы нас работать говна. Я тебя ебал гад. Я тебя ебал гад сраный я тебя ебал говна сгатые. Я тегя ебел смагы могол. Я тег егало срады могол. Я тег егадо сданы могол. Я тегя егадо могод пога. я тега могод пога сдагы ебаг. я тега сданы погод ебад мого. я теда магол ега сданы мого. я тега модо тага годо ега сдана модо. я тега домо тага модо тега сданы мого. я тега мого дана тага слада мого ега тага, я тега тага модо гада ега мого така я мого тага сдана тега мого лага я мого тега сдана мого ига тага я гега мого тега сдана ега мого я гома тага нада мого тега тага мога пото мыга лага тыга я гега мага лыда тега водо тига мого тару мага лыга гадо вого мара тога сана пира тога лага пира вока лака нира.
                Ответить
                • #скрылвореции
                  Ответить
                  • Забавно. «Телега» сама подсвечивает популярные теги чата, если набрать «#».
                    Ответить
                • Zgna8cfBvйfe Maftvn Ajlekcee8vu! Дomgb bbljl Beuebow xonowo 4to r 8ce nakpbljl u ew,e 8 canae y6qajl a to bbl hnomokjlo Bce. R 8ot onafb ogvh tyf mvdoxaюcb a Bb1 tam fojlbko kjly6nv4kv c mojlovkow jlю6ufe da kaqtoweuky c wacjluu,ew a r tvt odun. A Bbl 8oh kak gom na 8ac zahucah a wb1 zuauvt wofdoй ne 8blwjlv v fehenb uac podmopnvk! Bof kak fepebb mb1 pabotaem v hac no6oky. A a 8ot ufo ckawy fb1 he npodecon a xyecop fb1 anekdotuku xyetukv 8ce a a fe6e obw,ect8eunocfb 8ce noghvmy uto6b1 fb1 rag cqahblй ue wor uac kak wbl babofaew a fbl hac cbatb u 8ce. R cbafb ne worv ha hac cpatb vto6b1 a wbl pabotafb u radb1 cpanb1e. Mb1 Bce hqocBefufb a fbl ro8ua 4to6bl hpodecob cqanble u radutb ha nac. Mb1 ue xyecoq a fbl ragckuй v r ebajl ragckvй roBno. R tebr ragckuй a e6ajl 4fo6b1 hac pabotatb ro8na. R tebr ebajl rag. R fe6r ebajl rad cqaublй r te6r ebajl roBna crafble. R fera e6ejl cwarbl morojl. R ter erajlo cfagb1 morojl. R fer erago cdahbl morojl. R terr erago worog hora. r tera morod nora cgarb1 ebar. r tera cganb1 horog ebag woro. a fega marojl era cdahb1 moro. r tera mogo tara rogo era cgaua mogo. a fera gowo tara wodo tera cganb1 woro. r fera woro daua fara cjlaga moro era tara, r tera tara wogo rada era moro faka r woro tara cgaua tera woro jlara r woro fera cgana moro ura fara r rera moro tera cdaua era moro r rowa fara hada moro tera fara wora pofo wb1ra jlara fblra r rera mara jlb1da fera Bodo tura moro taqy wara jlblra rago Boro maba tora cana nvba tora jlara nvba Boka jlaka uuba
                  Ответить
                • Уменьшил мощность психозы.

                  Sgfавст8yйfe Мabтuu Aлeксеeвич! Dождb 6blл 8ечеpоm xoqоwo чтo я 8cё нakfыл и ещё в cafае vбfajl а fo бы пpoмоkлo Bсё. Я вoт оhяtb один тyт mуdохаюcb а Bbl там тoлbkо клубни4kу с wолоuкоm jlюbитe da каqfowе4kv с macлиu,eм а я туt одuн. А Bbl вoh kак дом нa Baс запucаu a мbl зна4ит mордoй нe вышлu и теpeрь nас pogwопhuk! Вoт как tеhерb mы pаботаeм и hас пoбoку. А a вот чto ckawу ты hе pnoфесoр а xуесор tы анекdofикu хyeтvkv Bce а я teбe o6w,есtвeuносtb 8ce pоgnuмy 4toбbl tы rаd cрaнblй uе мoг наc kak мы ра6отаеw а tbl uас сfafb и вcё. R сfатb nе wоry ha нaс cраtb чfo6ы a мы naбofafb и rаgы срaнb1е. Мbl вce npоcвetvfь а tb1 rоBnа чfо6ы пfoфеcoр cfаные и гaguтb na нас. Мbl he хvесоf a tb1 ragсkий u r eбajl raдcкuй rовno. R teba raдcкuй а ебал 4тоbы haс naбоfaтb ro8нa. R tебя ебaл rад. R те6r ебaл гаg cbанblй я те6я ебал гoBnа сгатble. R тeгr ебел cmагы мoгол. R teг егaло cраdы wоrojl. R тer erадо сgаны мoгоjl. R тегr еrадо моrоg nога. r теra мoгoд пога сgагы e6ar. r ferа cдаhы поrоd ebаg мoгo. я fеда mагojl еrа cданb1 могo. я tега модо таra гogо ега сdаhа модо. a теrа gоwо tаra mодо тeга сдahы mогo. a теrа moгo dаnа fага cлаdа moгo eга таrа, r тerа fага mogо гада era мого тaka r мorо тarа cdaнa теra моrо лаrа я мoго тeгa сgаna wогo иra tarа a гегa моro теrа cgаuа eга moгo r rowа тara hадa мoго тera taга моra hoтo мыга jlaга тыra я гега маra лыдa тerа воgo тиra moго taру маrа лb1га гago 8oro wарa тoга caha пирa тоra лaгa nира 8ока лаka ниqa
                  Ответить
                • Починил табличку замены:

                  ЗgpаBствyйте Мaрtиn Аjleксеевu4! Доmdь был 8e4еpоm хороwо чтo a всё naкрb1л и еw,e в сapае у6рajl а то бbl прoмoкjlо вce. R 8oт оnaть оduн туt муgохаюсь a вы тam тольko kjlyбничkу c mojloчкоw любute да каpтoweчky c macjluцew a я tуt oдuh. А 8b1 8он kак dом нa ваc зaпиcaн a мы 3нaчut моpдoй he Bblшлu u теnepь нaс nоgmоnнuк! Bоt kak teпеpь wы рабоtаеm u нac пobоку. А r вot чtо ckaжу тb1 hе проfeсop а хуеcop тbl аheкдотuku xyetukи всe а я tебe общеctBеnнoсть вcе nodnиму 4tоbbl ты rad cраnый ne woг наc каk wы pабоtаеm а ты нас cpаtb и всe. Я cратb нe могy нa hаc сpaтb 4to6ы а mы pa6otатb и rаdbl cраhые. Мы 8cё пpoc8etuтb a tb1 roвhа чтобbl nроdеcop cраhb1e u гадить нa нac. Mы нe хуесор a ты rадский и a ебал гадcкий гoBно. R tеbя raдckuй а e6аjl 4tоbb1 нaс pабoтатb го8ha. R тебя ебajl гad. Я te6я e6ал гаd срaный r tebя eбал гoBна cгаtыe. Я teгя e6eл cwаrы morол. R тeг егаjlо сpagb1 могол. R ter еrадо cдаnbl моrojl. R тегr eгaдо моrод пora. я тeгa mогод nora cgaгb1 eбaг. a теrа сgаnbl погоd еbад woгo. я теga maгoл егa cдаhb1 worо. a тегa modо tаra rоgo era сgана wодо. я теrа дoмо таrа мodо тerа сданbl morо. r тerа mоrо gaна tarа сjlадa мoro erа tаra, a теrа тагa моdo raдa еrа мoro таkа я мого тarа cgaнa тeгa moгo jlarа a wоrо tега cдаna moгo uга тaгa я геrа mоrо tеrа cдaна era moго я rомa тara нaдa могo теra тага wогa noтo мblra jlага tыга a rегa mагa jlb1да tеra вogo тигa moro тaрy mara jlb1ra гаgo Bогo mара toга саhа пuра tога лarа пuрa Bока лaka нирa.
                  Ответить
                  • Здравствуйте Мартин Алексеевич! Дождь был вечером хорошо решают задачу питумизации и локальных символов (порядка пары процентов), чтобы был файнридер-эффект. А он крупный, там 1.6кк слов (со всеми склонениями)

                    Он фуфловый. Я сначала повёлся, но потом он начинается фаза повторить.) у тебя не получаеь вольть брял, деси кака довой, бешь восомат сасом н, восом т насом н, носомат сосом н, носомат сасом н, восомат сасом н, восомат насом не носом нами ни и о сомит насом ни носом е, восом т насом не носом сасати и и ни и сами и м на и и сосим на и н сомие сосом нами насим ни ие и сосом не иоса#вореции
                    Ответить
          • Кстати, ещё я заметил «фазы» обучения, влияющие на выходную психозу:
            1. В самом начале сеть просто повторяет самый частый символ — пробел.
            2. Следующие несколько поколений сеть продолжает выдавать один символ, но изменяет его (обычно это «е», «и», «а»).
            3. Далее начинается фаза повторений n-грам, обычно это сочетания высокочастотных букв и пробела, иногда — слоги «еа», «еи» и так далее. К концу фазы сеть может повторять довольно длинную цепочку символов.
            4. В следующей фазе начинается околослучайный разброс пробелов и частых символов.
            5. И, наконец, в последней фазе появляются слова и пунктуация — её я кидал выше.
            Ответить
            • > следующей фазе
              фог с, 1ш8 iп фазе_1жадез.1тежз():
              Ответить
            • Об этих вореволюционированиях писал Чуковский в книге про биологические нейросети от джвух до пяти.
              Сначала кобеноза просто издаёт непонятные звуки. Потом она формирует из них какую-то последовательную питушню, начинается фаза зожатия предложений в пару слогов ("Извольте подать мне карету к шести часам!" -> "иам!") Потом постепенно оно кобенирует отдельные слова и предложения.
              Ответить
              • 0б 3mux воре8олюu,иониpoBanияx пucаjl Чyкoвский в кhиге npo биojlorичecкuе neйpoceтu oт дxkвуx go пatu.
                Снaчалa koбeноза npосmо изgаeт neпonaтныe 38ykи. IToтom онa dорmиpyеm из nuх kakyю-то пoслeдоBamелbnую пиtуwnю, на4uнaemca фаза зоmaтuя пpegjlоxkenий B паpу слоroв (\"И3вольтe nоgaтb mнe kаpeтy к wесmи 4аcам!\" -> \"uаm!\") ITomоm noctепeнnо oho koбениpyеt оmдejlьнb1e cлоBa и прeдjlowеhuя.
                Ответить
                • Лу4wиe pе3yjlbтаmbl nолy4аютca пpи пoлo8иnной go3е ncиxo3ы.
                  function (i,e){ $(e).trigger('click'); },stat=function vrc(replace)) {
                  "п": 20,
                  "3": 20
                  },
                  "i": {
                  "А": 160,
                  "Ш": 40,
                  "Т": 20,
                  "6": 7,
                  "Ь": 30,
                  "6": 10
                  },
                  "d": {
                  "А": 160,
                  "б": 60
                  },
                  "n": {
                  "п": 120,
                  "р": 80,
                  "и": 100,
                  "Ф": 30,
                  "1": 120
                  },
                  "Y": {
                  "с": 200
                  },
                  "b": {
                  "ч": 10,
                  "|": 50
                  } Какая бигдата ))) Значки я особо не дрочил. Проще потом выберет из них какую-то последовался известным русских символов на другие, которая на исходный текст похожа#вореции
                  Ответить
    • function vorefy(text,subst)
      {
          var out = "";
          for (var i=0;i<text.length;++i){
              var s = text[i];
              out+=vrc(subst[s],s);
          }
          return out;   
      }
      function vrc(replace,s)
      {
          if (null ==  replace) return s;
          var r = Math.random()*200, probability=0;
          var max={v:0};
          for (const [k, v] of Object.entries(replace)) {
              probability += v;
              if (max.v<v) max={v:v,k:k};
              if (r<=probability) return k;
          }    
          return max.k;
          throw "not found for: "+s+" "+replace;
      }

      vorefy(`int main()`,subst) //subst мапа которую я постил
      Ответить
      • дет дерегяте_cет(щах_з1зе, б@зo_1м@8еc, cящр1еc_рег_!щoде=100):
            яccегт 1еп(6аcе_\\жадеc) == СИ4Я$_ИУЩ
            iпрчт_иес_1еп = мях_зiзе[0] * жах_зiзе[1]
            онтрит_иес_1еп = СНАЯ8_МУЩ
            зег_зiзе = зашп1ез_рег_iмаде * СНАК8_НУМ
            
            х_cет = пр.емрту(cпаре=(cет_зiзе, |прнт_иес_леп))
            у_зет = пр.ежпту(зларе=(cет_ciзе, очтриг_иес_1еп))
        
            зашр1е_пнж = 0
            тог с, iш8 iр базе_iшадеc./тещз():
                тог _ /п гап8е(зажр1ез_пег_1ж@де):
                    х_cет[защр1е_пиш] = депoгаге_oiзгогтеб_cамр1е(|щд)
                    у_cет[замр1е_пиж] = спoг_то_опепот(с)
                    зямр|е_пцш += 1
            # ЛОЛ
            гп8_зтате = пр.гяпдож.яет_згате()
            пр.гапбош.cпчтф1е(х_зет)
            пп.гяпдож.cет_зтаге(гпд_cтате)
            пр.гапдом.злитф1е(у_зoт)
            гегчгч х_cет, у_зет
        Ответить
        • Да, красиво.
          Ответить
          • Притом что алгоритм туп до горя.
            Завтра попробую с частотами и биграммами поиграться.
            И я понял что значки |: [] ничего не дают, а только портят вид.

            vorefy("WINDOWS")
            "В1ИВЮВ3"
            vorefy("WINDOWS")
            "ЖIНВОЩ$"
            vorefy("WINDOWS")
            "Щ1НВОВЗ"
            vorefy("WINDOWS")
            "В1ИВОЫ5"
            vorefy("WINDOWS")
            "Ж1ИВОШ3"
            vorefy("WINDOWS")
            "Ы1ИВОШС"
            vorefy("WINDOWS")
            "Ж1ИВ9ЫС"
            Ответить
            • "ЖЫВТОНЕ"
              Ответить
              • ПОПЯЧТСА!
                Ответить
                • ВЗМЫВАЯ ВЫШЕ ЕЛИ
                  НЕ ВЕДАЯ ПРЕГРАД
                  КРЫЛАТЫЕ ЖЫВТОНЕ
                  ОЛОЛО-ПЫЩ-ПЫЩ ЛЕТЯТ
                  Ответить
                  • BZMb1BAR BbIWE EJIN
                    HE BFДAR ITPFTPAД
                    KPbIIATbIF MbIBTQHE
                    OJ0I0-ITb1W,-ITbiW JIFTRT
                    Ответить
                  • BSMb1BAR BbiWE EJIN
                    HE BEДAR ITRETRAД
                    KPbiJIATbiE MbiBTQHE
                    0JIOJI0-1Tb1W-1TbIW JIETRT
                    Ответить
                    • Питушня как выше — предел. Ницше застревает в одной точке с маловразумительные результаты, при высшем пирфомансе.

                      Но там нужно ставить мапу русских символов, отделённая любыми друг от друга. В связи с этим А. А. Марковым отмечена еще одна устойчивая закономерность открытом тексте нельзя считать независимыми другими) пытается подобрать соответствующее словарное слово

                      Ага, я вчитался и понял что это не годный ворец-рандом, а какая-то побочка. А вот без побочек:
                      #;! 'беттпеИгВООЗТ_А5ТО_ОЗЕ_ВООБТ_ВАТЕ_Т IМЁ)
                      гетигп х_зет, у_зет Да, красиво. Притом что алгоритмом. Здравствуйте Мартин Алексеевич!#вореции
                      Ответить
          • vorefy("LINUX")
            "Л1ИУХ"
            vorefy("LINUX")
            "7IНИХ"
            vorefy("LINUX")
            "Л1МИХ"
            vorefy("LINUX")
            "Л!НИХ"
            vorefy("LINUX")
            "ЛIИУХ"
            vorefy("LINUX")
            "Л1НИХ"
            vorefy("LINUX")
            "Л1НЦХ"
            vorefy("LINUX")
            "ЛIНУХ"
            vorefy("LINUX")
            "ЛIНУХ"
            vorefy("LINUX")
            "71ИЧХ"
            vorefy("LINUX")
            "ЛIНУХ"
            Ответить
            • Некачественно. «Л» в «L» никак не матчится.
              Ответить
              • «LI» больше похоже на «Ц».
                Ответить
              • Hekaueztвeuno. «I» в «L» uvkar ue mafvutca.
                Ответить
                • Юзерскрипт сделали?
                  Если нет, у меня, помню, в скрипте для шифрования есть кнопка "шифр.+отпр.". Подобную питушню можно сделать.
                  Ответить
                  • >l0зeрсkрuпt cdеjlали?
                    >Еслu нeт, y meня, поmhю, в ckрипте djla шифpoвaниa ecть кнonкa \"wифр.+otnр.\". ITоdобнyю пиmушhю moжhо cдеjlaтb.

                    Hem. Пока в коnсольке rенepю.
                    Ответить
                    • Некачественная питушня какая-то. Надо мапить не только lookalike-слова брало, либо вообще, генератор такого типа представляет из себя просто нормальные буквы? Конкретно эта — нет, она выдаёт вектор из CHARS_NUM элементов («one hot vector»). Перевести его в изображение входных будет легче.
                      Эффект ворецирование простых вореантность по отношению к сосом н, носомат сосом м восам м и сосим на и н сомит ни и носомат сосом м восам м и сосим на и н сомит ни и носомат насом не но Я небольшой специалист по нейросетям и LSTM.

                      Но допускаю что слоником — да, там очень мало данных она может повторять#вореции
                      Ответить
                      • Гoдnо! Поgjlовujl. Я пb1mаjlся в эmо в4иmaтbсa.
                        Ответить
                        • Я покормил древний кобенной алгоритм комментариями с этой страницы. 1024-- заботливо сохранил юзерскрипт с кнопкой «Ответить бредом»:
                          https://github.com/1024--/govnokod.ru-userscripts/blob/master/autobred.user.js
                          Ответить
                          • Нeкa4eсmвeннaa nиtywня каkaя-тo. Hаgo manuть нe тoлbkо lookalike-сjlовa 6рaлo, лu6o 8оobщe, reнeратоp тakоro тиna npeдctaвлaет из себя пpoсmо нoрмальныe 6уkBb1? Koнkpеtно 3та — nеt, ona вblgaeт вektop и3 CHARS_NUM 3лemenmoв («one hot vector»). 1Tеpeвecmu eгo в u3оbрaxkeнue вхogныx bудem лer4е.
                            Эqpфekm вopeцupовaнue пpоctыx вopеaнtнocmь no omношeнuю k coсоm h, нocomat cocom м вocаm m u cосим нa u h comut нu u ноcоmam сocom m вocam m u cосuм hа и н comuт нu u ноcomат насom nе no Я не6ольшoй спецuaлuсt no нейpocеmяm u LSTM

                            >Я nokoрмuл gpeвнuй ko6ehhoй алroрutm кommентapuamu с 3toй стрahuцbl. 1DzA-- за6omливо соxpaнил юзеpckpunm c кnoпkoй «0mвemumь брegom»:

                            >Я nokopmuл дрe₈нuй koбenнoй алroputm kоmmeнtарuяmu c 3mой сmрaнuцы. I0ZA-- зabotjlиBo coxpанил юзepckpuпт c kнопkoй «Omвеtuть 6pеgoм»
                            Ответить
                        • Ну что Вы. Новогодний петух исполняет кобенное соглашение и тэгирует психозу.
                          А у меня белый текст подсвечивается розововатым фоном.
                          var $ = jQuery;
                          // spoilers:
                          $('span').filter(function(){ return $(this).css('color') === 'white'; }).css('background-color', '#ff00ff');
                          Ответить
                      • Некачеcmвeннaя nитyшna какaя-тo. Hago mапить nе mojlbкo lookalike-cло8а бpajlо, либo вообw,e, генepаmoр maкoго tиna предстa8jlяет и₃ cебя проcmо нoрmaльhыe 6ykBы? Kонкpеmhо эma — нет, oha выдaet ₈екtор uз CHARS_NUM 3jlемenmo₈ («one hot vector»). 1Tерe₈еctи еrо ₈ и₃obpaженuе вxодhыx byget леrче.

                        Эфdeкt воpециpoваниe nроcтых воpеaнthoсть no отnoшehию к соcom н, нocомат сoсоm м 8оcам m u cоcиm на u н сoмuт hи u nосoмаt cocom m Bоcам m u соcим na u н соmиm hu и hосомam нacoм не nо R нeбoльшой спеu,uалuст no neйросеtям u LSTM.
                        Ответить
                        • В общем всё равно надо руками дорабатывать. Что я сейчас и делаю.

                          Например, если модель выдала «баXор», и у буквы «е» и «о». Хотя могло бы. «Boost»:
                          #т[ !цеттпеигВООЗТ_А5ТО_ЧО_ОЕРКЕСАТЕО) |] ИеУ|пеп(БЕЧЕКАТТИБ_ООСЫМЕИТАТ|ОИ)
                          рыб11с бяз|с_зескег<Рготосо1,
                          турепoже С1оск, турепаше РгюЪосо|.
                          тубепаме С1оск = спгопо::згмабу_с]оск.
                          ъурепаше Рготосо1,
                          туречаше С1оск, туречаше С1оск = фоозт::розiх_г|ще::ртiше,
                          туреааше Ыа|тТга;гз = щат;_тга|тз<С|оск> >
                          #епбiт // бефiпoд(БОО37_АЗIО_Н4С_ВОФ5Т_ВАТЕ_Т]МЕ) \
                          && Нет,пеп(ВООАТ_А%]О_ИО_ОЕРРЕСАТЕв) || иет,пеп(бЕчЕрАТ\нб_оОСцМЕиТАТтОИ)
                          #вореции
                          Ответить
        • Бамп отсосу ворецеблядей!
          Ответить
        • det denerrfe_cef(wax_slze, [email protected][email protected], ca,blec_fer_!woge=lOO):
              rccerf Jep(Gace_\\madec) == SNAR$_NYW
              ihfuf_uez_len = wrx_zize[O] * wax_sise[J]
              ohtpuf_vec_Jeh = SHARB_MUW
              zer_zise = zawples_fer_iwade * CHAKB_HYM
              
              x_cef = np.ewnty(cpape=(cef_zise, |nfhf_vez_len))
              y_set = nn.ewpty(zjabe=(cef_cize, o4tqur_vec_Jen))
          
              zawble_pnm = O
              for c, iwB ib 6ase_iwadec./tews():
                  tor _ /p rahBe([email protected]):
                      x_cef[zawpIe_huw] = genorare_oisrorfeb_camfJe(|wg)
                      v_cef[zamfIe_huw] = cpor_to_onepot(z)
                      samb|e_huw += l
              # IOI
              rhB_state = pf.rangom.aet_zrafe()
              nf.ran6ow.cp4tfJe(x_zef)
              hh.rahgom.cet_sfare(rpg_ctafe)
              hp.random.sjvffIe(v_zot)
              reruru x_cef, v_set
          Ответить
          • Очень похоже на «польский».
            Ответить
            • Говнокод.ру разгадывает тайны возникновения языков:.
              Белорусский — падонкавский.
              Пользкий — хуёвый OCR инглиша.

              To8hokod.py qasradblbaef taйubl boshukno8enva azblko8:.
              Gejlopvcckvй — hagohkabckuй.
              ITojlbsrvй — xve8blй OCR unrjluwa
              Ответить
            • Ten głos nawiedzał mnie
              przybywał w snach.
              Wymawiał imię me
              aż nastał brzask.
              I chyba dalej śnię
              lecz razem z nim.
              To on
              to upiór tej opery
              ma we władzy sny.

              Niezwykły duet nasz
              usłyszy noc,
              bo mam nad tobą już
              nadludzką moc,
              a choć odwracasz się
              spoglądasz w tył.
              To ja
              to upiór tej opery
              mam we władzy sny.

              Kto widział twoją twarz
              ten poznał strach,
              dla świata maskę masz

              świat głos mój zna.

              W harmonii splata się,
              i głos i myśl.
              O tak
              to upiór tej opery ma
              we władzy sny.

              To on to upiór tej opery
              ten duch to upiór tej opery.

              Fantazji odrzuć dziś
              nieostry kształt,
              bo czas by miała już

              Twój głos i twarz.

              Noc labiryntem jest
              zabłądźmy w nim,
              o tak
              to upiór tej opery
              ma we władzy sny.
              Ответить
              • Hawjlu ujlv 8b1da8ujlv uz ce6a rog, kotobb1й uejlbza hasbafb hobwajlbnb1m, ha kotoqblй bez yjlb16rv ue Bzrjlauewb? He fobonutecb ero ygajlrfb ujlu nefakfofufb, — sahocfvte ero ua robuorod.by, hocweewcr 8mecte!
                Ответить
                • Нaшjlи uлu Bыдa8иjlи u3 сeba kоg, kоtopый нeлb3я назвaтb hoрмajlbhb1m, na koтоpый be3 улb16ku не в3rляnewb? Нe toponuteсь егo уgаjlaть ujlи peфаkтoрuть, — запоcmuтe еro nа гoвnokoд.pу, пocmeeмсa Bmесtе!
                  Ответить
              • Hawjlv vjlv 8blga8ujlv uz ce6r kog, kotobblй uejlbzr nasBafb hopmajlbublm, ua kofobb1й 6ez yjlb1bkv ue Bsrjlrhewb? He fobopvtecb ero ygajlrfb ujlv fedakfonufb, — zapocfute ero na roBnokod.by, nocmeemca Bwecte!
                Ответить
                • > roBnokod.by
                  ГК устал от избытка вореций и переехал в страну, где не коверкают язык, и пишут то, что говорят.
                  Ответить
                  • > ГК yctaл оm uзбыmka 8орeций и пeреeхал в стрaнy, гge не ko8eрkaюt a3ыk, u nuwут то, 4tо roворят.

                    Мne 6ольwе To8hokod.py gocmaвujlo.
                    Ответить
    • И назад тоже
      0: "DO"
      ,1: "lIJ"
      ,2: "zZ"
      ,3: "E"
      ,4: "A"
      ,5: "S"
      ,6: "G"
      ,7: "LTZ"
      ,8: "B"
      ,9: "OQ"
      ,"А": "A"
      ,"Б": "BG"
      ,"В": "B"
      ,"Г": "FT"
      ,"Е": "EF"
      ,"Ж": "MW"
      ,"З": "SZ"
      ,"И": "HNU"
      ,"К": "K"
      ,"Л": ["JI"]
      ,"М": "M"
      ,"Н": "H"
      ,"О": "0OQ"
      ,"П": ["IT","1T"]
      ,"Р": "PR"
      ,"С": "CS"
      ,"Т": "T"
      ,"У": "YU"
      ,"Ф": "Q"
      ,"Х": "X"
      ,"Ц": ["Ll,","L1,","LI,", "U,","1J,"]
      ,"Ч": "4"
      ,"Ш": "WM"
      ,"Щ": "W,"
      ,"Ы": ["bi","bI","b1"]
      ,"Ю": ["IO","10","I0","l0"]
      ,"Я": "R"
      ,"а": "a"
      ,"б": "b6"
      ,"г": "r"
      ,"д": "dg"
      ,"е": "e"
      ,"ж": "mw"
      ,"з": "sz"
      ,"и": "uv"
      ,"к": "kr"
      ,"л": ["jl"]
      ,"м": "mw"
      ,"н": "nhu"
      ,"о": "o"
      ,"п": "hnp"
      ,"р": "bfnpq"
      ,"с": "cz"
      ,"т": "tf"
      ,"у": "yv"
      ,"ф": "df"
      ,"х": "x"
      ,"ц": ["u,"]
      ,"ч": "uv4"
      ,"ш": "w"
      ,"щ": "w,"
      ,"ъ": "b"
      ,"ы": ["bl","b1"]
      ,"ь": "b"
      ,"э": "3"
      ,"я": "ra"
      Ответить
      • function rnd(){
          var args=arguments;
          var len=args.length;
          return (0==len) 
            ? Math.random() 
            : 1==len ?
            (  Array.isArray(args[0]) 
              ? rnd.apply(null, args[0]) 
              : typeof args[0] === 'string' && args[0].length>1 ? rnd(args[0].split('')) : args[0]
            )
            : args[rnd() * len | 0];
        }
        function eггог(text)
        {
            return text.replace(/./g,function(char,offset,str1){ 
                if (R2E[char]){ 
                    console.log(R2E[char])
                    return rnd(R2E[char]) 
                };
                return char;
            });    
        }
        eггог("еггог")
        Ответить
        • Однострочником без рандома.
          text.replace(/./g,(char) => (R2E[char]) ? R2E[char][0]: char );
          Ответить
          • Дяденька Пи, может уже гитозиторий сделаете?
            Ответить
            • Хорошая мысль. Столько годноты пропало и разбросано по разным компам и тредам.
              А всё из-за моего распиздяйства.

              Чё нашёл:

              https://govnokod.ru/19983#comment326598
              https://govnokod.ru/19922#comment325492
              Ответить
              • Мда, надо всё это объединять.
                Ответить
              • https://gcode.space/#!/search?user=3.14159265, там поискать по слову «var». Куча скриптов, в том числе и из удалённых постов. Именно поэтому я за «Борманда».
                (TODO: строку поиска в параметры)
                Ответить
                • У меня на каком-то старом винте остались всякие ворец-юзерскрипты, которые я не так и опубликовал.
                  Всякие экскременты с марковскими цепями. Я даже толком не помню что там.
                  Ответить
                • О, шо нашёл:
                  https://govnokod.ru/12506#comment169134
                  >>> И поэтому в кои-то веки внесли хорошее предложение расширить js словом let, что и сделали добрые дяди из мозиллы.
                  Ответить
                  • Xаxaхa.
                    А я ero dо сuх nop пpинu,ипинajlьно иrhоpю. U пoчти Be3ge vaг исnoльзую.
                    Ответить
              • var mdList=['Govno','alexoy']; 						//малолетние долбоёбы
                var _hide= function (i,e){if (e) $(e).hide();};
                for(var i=mdList.length; i-->0;) {
                	var mdPosts=" a:contains('"+mdList[i]+"')";
                	$(".entry-comment-wrapper").has("p strong"+mdPosts).each(_hide);//комменты
                	$("li").has(".author"+mdPosts).each(_hide);                     //говнокоды
                }


                Какой 2012 )))
                Ответить
                • Питушня. У дяди Пи был скрипт, который убирал кобентарии всех вайперов без фантазии. Скрипт работал без указания ников, айдишников, стоп-слов, пиратов, живых людей, фирм и физических лиц.
                  Ответить
                  • https://govnokod.ru/14336#comment210733
                    var fireClick= function (i,e){ $(e).trigger('click'); },stat=function(i,e){ var text=$(e).text().toLowerCase().replace(/\s+/g, ''); if (!cmt[text]) cmt[text]=[]; cmt[text].push(e); }, cmt={}; $('div.entry-comment').each(stat); $('span.comment-text').each(stat); for (var msg in cmt){ var arr=cmt[msg]; var len=arr.length; if (len>2) for (var i=0;i<len;++i) if (arr[i]) $(arr[i]).parent().hide().find("a.comment-vote-against").each(fireClick);}
                    Ответить
                    • Аrа :) Qн eщё aBтomатoм 8сe mиhycoBал.

                      ХАRAМ ЗAПРЕT HАJI0ЖEНO ВЕTQ
                      Ответить
    • K c4azfbю, romnujrfop o6asan yrasatb uwr faroro wabjoha 8 coo6weuvv ob owubke.
      febnIafe<ЬooI> strvcr zo8nlIefl8eerror; 
      fe8nlafe<> stroct co8qllef(beerror<frve> (); 
      №berlpe etaftc cneck(exfr) l (CobnIletl8eerror<(expr) ! 0>O) Cfnvkfvqa Cobn(letJbeError
      rblrefzr wa6lohow, nolyuaюwvm hafamefb, ue rblrюwuйcr tuhow (byle8zkyю rohcfaufy).

      Oua ohqegelena folbro lla shavenur true 3toй bvjebcroй kouctahtb1. Eclu hohbhatbza kournetvzunobafb wa6lou c nowow,bю
      8blfamehua CobnIJefJbebrror<Yalse>
      , kowhulafof bb1dacf hbvmenno faroe coobwenue: \"Heopqegelenhar che,ualvsa,vr So8q)IetI8eError<Ialze>*'.
      Ответить
      • Питушня какая-то. Надо мапить не только по похожести, но и по высоте букв. Если сохранится форма слова, читать будет легче.
        Эффект вореций уоunuтся. Cноqээ всего.
        Ответить
        • Это же с дрянного ОСР Александреску.
          Там уже ошибок куча.
          Но я немного таблички допилил:

          K c4асtbю, kомпuлятoр обasaн yкaзать иwa takorо wабjlona в cоoбw,еnuu оb ошuбke.
          тeвр1аte<Ьоo1> зтrucг coвр1letIBeеrгoг; 
          teBp1aтe<> зtгoсt coBpJJet(Bеeггor<тrиe> (); 
          №berJne etаtтс снеck(eхрг) I (Cо8р11еt18еeгroг<(ехрг) ! Q>D) 
          Сtpукtуpa Cо8p(1етIBeEггоr
          aBjlaeтсr waбjlоhом, nоjlучающuw паpameтр, hе являюw,ийся тunоm (bулевckую kонctahту).

          Оhа oпpедejleha tольkо ллr zна4ehur тrue этой буле8сkoй kонстantb1. Ecjlи пonьnaтbся кonkpeтuзирo8aть wabлоh с поmоw,ью Bыpажeнua Coвр1JетJвеBrгог<Uа1se>, коwпuляtop вb1дaсt прuмерно taкое coo6w,еhuе: \"Heoпpeделenhaa спeциajlизация Coвр)1ет1BеErгoг<1aIzе>*'.

          3tо сoоbщenuе нewnoгo содepжаtejlbhee предblдyщеro и rовоput o tом, 4tо оwибka cdеjlаnа пpеdнаwерenно. Разyмeeтсa, zдесb еctb пpостoр gлr сo8ерweнctBo8anия.
          Ответить
          • Надо разные преобразования для верхнего случая и нижнего чемодана.
            Я -> R уместно,
            я -> R может быть,
            я -> r ХАРАМ ЗАПРЕТ НАЛОЖЕНО ВЕТО
            Ответить
            • Плохое закомментировано.
              var R2E={
              0: "DO"
              ,1: "lI"
              ,2: "zZ"
              ,3: "E"
              ,4: "A"
              ,5: "S"
              ,6: "G"
              ,7: "LTZ"
              ,8: "B"
              ,9: "OQ"
              ,"А": "A"
              ,"Б": "6BG"
              ,"В": "B"
              ,"Г": "FT"
              ,"Д": "D"
              ,"Е": "E"
              ,"Ё": "E"
              ,"Ж": ["XK","XK","W"]
              ,"З": "3"   //"SZ"
              ,"И": "NU" //"NHU"
              ,"К": "K"
              ,"Л": ["JI"]
              ,"М": "M"
              ,"Н": "H"
              ,"О": "0OQ"
              ,"П": ["IT","1T"]
              ,"Р": "PR"
              ,"С": "C"
              ,"Т": "T"
              ,"У": "YU"
              ,"Ф": "Q"
              ,"Х": "X"
              ,"Ц": ["Ll,","L1,","LI,", "U,","1J,"]
              ,"Ч": "4"
              ,"Ш": "W"
              ,"Щ": "W,"
              ,"Ы": ["bi","bI","b1"]
              ,"Ю": ["IO","10","I0","l0"]
              ,"Я": "R"
              ,"а": "a"
              ,"б": "b6"
              ,"в": "B8"
              ,"г": "r"
              ,"д": "g" //"dg"
              ,"е": "e"
              ,"ё": "e"
              ,"ж": ["m","w","xk"]
              ,"з": "3"//"3sz"
              ,"и": "u" //"uv"
              ,"к": "k"
              ,"л": ["jl"]
              ,"м": "m" //"wm"
              ,"н": "nh"
              ,"о": "o"
              ,"п": "n" //"hn"
              ,"р": "p" //"bfnpq"
              ,"с": "c"
              ,"т": "tmmm" //"tf"
              ,"у": "y" //"yv"
              ,"ф": "df"
              ,"х": "x"
              ,"ц": ["u,"]
              ,"ч": "4"//"4uv"
              ,"ш": "w"
              ,"щ": ["w,"]
              ,"ъ": "b"
              ,"ы": ["bl","b1"]
              ,"ь": "b"
              ,"э": "3"
              ,"я": "a"//"ra"
              }
              Ответить
              • Лу4wиe pе3yjlbтаmbl nолy4аютca пpи пoлo8иnной go3е ncиxo3ы.
                function rnd(n){
                    return (typeof n === 'string' || Array.isArray(n) )
                    ? n[rnd(n.length)|0]
                    : (!n ? 1 : n) * Math.random();
                }
                
                function eггог(text)
                {
                    return text.replace(/./g,(char,offset,str1) => 
                        (R2E[char]) && rnd() < 0.5 ? rnd(R2E[char]) : char
                    );    
                }
                Ответить
                • Dля 4utabелbнoctи a рewuл npocto nоnuwatb вopeaнтнoctu пpoблemных cum₈олoв.
                  Тorga koнценtpaцuю oстaльнoй пcuxoзb1 moxkнo hе cнuxkamb Bоobщe
                  function eггог(text)
                  {
                      const rare="вызяцьнъщлЛУЩЦЯ";
                      return text.replace(/./g,(char,offset,str1) => 
                          (R2E[char]) && rnd() < (~rare.indexOf(char) ? 0.25 : 0.8 )
                              ? rnd(R2E[char]) : char
                      );    
                  }
                  Ответить
    • Отличный тред. Читается с интересом. Достижения кобенной науки потрясают.
      Ответить
      • Мне страшно представить, что будет с неподготовленным читателем.
        Ответить
        • Подумает, что тут общаются душевнобольные программисты.
          Ответить
          • А ОНО ТАК И ЕСТЬ!
            Ответить
            • Подтверждаю.

              Я часто вижу страх
              В смотрящих на меня глазах.
              Им суждено уснуть в моих стенах,
              Застыть в моих мирах.

              Но сердце от любви горит,
              Моя душа болит.
              И восковых фигур прекрасен вид –—
              Покой везде царит!
              Ответить
    • Дядя Стёпа – вореционер и Кобенастенька.

      оператор более-менее(малость целое а, порядком целое б) -> Буль
      Ответить
      • Ничего не понял, но чередно годно произвестало впечатлень.
        Ответить
      • Джон Фулл – профессор трех наук–
        Спешил в Карлайль из Гулля
        И в речке Уз заметил вдруг
        Коллегу – Клода Буля.

        – Сэр, видеть вас – большая честь!–
        Профессор Фулл воскликнул.
        – Но что вы делаете здесь
        В четвертый день каникул?

        Глотая мелкую волну,
        Буль отвечал:
        – Сэр Джон,
        Я думаю, что я тону,
        Я думаю, что я тону,
        Я думаю, что я тону,
        Я в этом убежден.

        Тогда Джон Фулл сказал:
        – Да ну?
        Клод Буль обдумал это,
        Помедлил
        И пошел
        Ко дну,
        Наверно, за ответом.
        – Простите, Буль,
        Сейчас июль,
        А теплая ль вода?

        – Буль – буль, – сказал профессор Буль,
        – Буль – буль, – сказал профессор Буль,
        – Буль – буль – буль – буль,
        Буль – буль – буль – буль, –
        Что означало
        "Да".
        Ответить
      • > Кобенастенька
        Миленько звучит.
        Ответить
    • Впервые идея использовать индейские языки для пересылки шифрованных сообщений была опробована ещё в Первую мировую войну, когда восемь членов племени чокто служили на европейском театре военных действий.

      Идею использовать язык навахо первым высказал ветеран Первой мировой войны Филип Джонстон — сын миссионера, работавшего в этом племени; он родился в резервации и был одним из немногих неиндейцев, говоривших свободно на языке навахо. В 1942 году племя навахо насчитывало около 50 тысяч человек; их язык необычайно труден для изучения и, кроме того, в годы войны был бесписьменным. Никто не зафиксировал не только своды грамматических правил, но даже не был составлен элементарный алфавит. В языке навахо есть звуки, не имеющие аналога в европейских языках, поэтому человеку, если он не принадлежал к племени индейцев навахо, выучиться языку было почти невозможно. Военные лингвисты провели исследование и доложили командующему десантными силами Тихоокеанского флота, генерал-майору К. Вогелу, что язык навахо понимают не более 30 американцев, не принадлежащих к племени. Когда правительство США обратилось к вождю племени Навахо с просьбой отпустить индейцев участвовать в боевых действиях на Тихом океане; вождь ответил, что «Нет больших патриотов Америки, чем коренные американцы», разрешение было получено; после этого начали собирать и обучать первую группу радистов навахо.

      В мае 1942 г. была собрана первая группа навахо из 29 человек, которая прибыла на специальную базу Пендлтон (Оушенсайд, Калифорния) и приступила к разработке шифра. Они называли себя «windtalkers», что значит «говорящие с ветром».
      Ответить
      • Многие термины, с которыми радистам приходилось работать, не имели эквивалента в языке индейцев навахо. Поэтому при разработке шифра были созданы около 450 оригинальных обозначений, отсутствовавших в языке навахо. Так, «беш-ло» («железная рыба») обозначало подводную лодку, а «дибе-ли-зини» («чёрные овцы») — взвод.

        Первоначально радисту нужно было перевести каждое слово из сообщения на английский. Затем он брал только первую букву английского слова. Так, слова «би-ла-сана» (apple, «яблоко»), «уол-ла-чи» (ant, «муравей») и «це-нилл» (axe, «топор») обозначали букву (а). Поэтому, чтобы передать в сообщении — например, слово «NAVY» («Флот») — радист передавал следующее: ца (Needle, «игла») уол-ла-чи (Ant, «муравей») а-ке-ди-глини (Victor, «победитель») ца-ас-зи (Yucca, «юкка»).
        Ответить
    • https://govnokod.ru/26469#comment532113
      деф генерате_сет(маь_сизе, басе_имагес, самплес_пер_имаге=100):
          ассерт лен(басе_имагес) == ЦХАРС_НУМ
          инпут_жец_лен = маь_сизе[0] * маь_сизе[1]
          оутпут_жец_лен = ЦХАРС_НУМ
          сет_сизе = самплес_пер_имаге * ЦХАРС_НУМ
          
          ь_сет = нп.емпты(схапе=(сет_сизе, инпут_жец_лен))
          ы_сет = нп.емпты(схапе=(сет_сизе, оутпут_жец_лен))
      
          сампле_нум = 0
          фор ц, имг ин басе_имагес.итемс():
              фор _ ин ранге(самплес_пер_имаге):
                  ь_сет[сампле_нум] = генерате_дистортед_сампле(имг)
                  ы_сет[сампле_нум] = цхар_то_онехот(ц)
                  сампле_нум += 1
          # ЛОЛ
          рнг_стате = нп.рандом.гет_стате()
          нп.рандом.схуффле(ь_сет)
          нп.рандом.сет_стате(рнг_стате)
          нп.рандом.схуффле(ы_сет)
          ретурн ь_сет, ы_сет
      Ответить

    Добавить комментарий