{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import theano\n", "import theano.tensor as T\n", "import lasagne\n", "import os" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# План.\n", "\n", " \"Дом, который построил Джек\".\n", " \n", "### Задача 4\n", "Задан текст (например, «Вот дом, который построил Джек»). Преложить алгоритм, который бы по нескольким предыдущим словам прогнозировал бы следующее слово. Проанализировать ошибку прогноза.\n", "\n", "\n", "Обучим рекуррентную сеть на конституции России (там много про дома и про того, кто что и как должен строить). Будем генерировать слова посимвольно, потому что так проще." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Чтение корпуса" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "#тут будет текст\n", "corpora = \"\"\n", "\n", "for fname in os.listdir(\"codex\"): \n", " with open(\"codex/\"+fname) as fin:\n", " text = fin.read().decode('cp1251')\n", " corpora += text" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "---------------------------------------------\r\n", "\r\n", "\r\n", " Гражданский Кодекс\r\n", " Российской Федерации.\r\n", " Часть вторая\r\n", "\r\n", "\r\n", "\r\n", "26 января 1996 года\r\n", "\r\n", "\r\n", "\r\n", " №14-ФЗ \r\n", "\r\n", " Принят Государственной Думой \r\n", " 22 декабря 1995 года \r\n", "\r\n", "\r\n", "(в ред. Федеральных законов от 12.08.1996 №110-ФЗ, от 24.10.1997 №133-ФЗ, от 17.12.1999 №213-ФЗ, от 26.11.2002 №152-ФЗ, от 10.01.2003 №8-ФЗ, от 10.01.2003 №15-ФЗ, от 26.03.2003 №37-ФЗ, от 11.11.2003 №138-ФЗ, от 23.12.2003 №182-ФЗ, от 29.12.2004 №189-ФЗ, от 30.12.2004 №219-ФЗ, от 21.03.2005 №22-ФЗ, от 09.05.2005 №45-ФЗ, от 18.07.2005 №89-ФЗ, с изм., внесенными Федеральным законом от 26.01.1996 №15-ФЗ, Постановлением Конституционного Суда РФ от 23.12.1997 №21-П)\r\n", "\r\n", "\r\n", "\r\n", "\r\n", "\r\n", " Раздел IV. Отдельные виды обязательств\r\n", "\r\n", "\r\n", "\r\n", " Глава 30.\r\n", " Купля-продажа\r\n", "\r\n", "\r\n", " § 1. Общие положения о купле-продаже\r\n", "\r\n", "\r\n", " Статья 454.\r\n", " Договор купли-продажи\r\n", "\r\n", " 1. По договору купли-продажи одна сторона (продавец) обязуется передать вещь (товар) в собственность другой стороне (покупателю), а покупатель \n" ] } ], "source": [ "print corpora[:1000]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": true }, "outputs": [], "source": [ "tokens = set(corpora) #все уникальные буквы \n", "\n", "tokens = list(tokens)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#token_to_id = словарь символ-> его номер \n", "token_to_id = dict((t, n) for n, t in enumerate(tokens))\n", "\n", "#id_to_token = словарь номер символа -> сам символ\n", "id_to_token = dict((n,t) for t, n in token_to_id.iteritems())\n", "\n", "#Преобразуем всё в токены\n", "corpora_ids = np.array(map(lambda t: token_to_id[t], corpora))\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def sample_random_batches(source, n_batches=10, seq_len=20):\n", " X_batch, y_batch = np.zeros((n_batches, seq_len)), np.zeros(n_batches)\n", " \n", " for i in xrange(n_batches):\n", " pos = np.random.randint(0, source.size - seq_len)\n", " X_batch[i, :] = source[pos:pos+seq_len]\n", " y_batch[i] = source[pos+seq_len]\n", "\n", " return X_batch, y_batch" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([[ 39., 69., 44., 62., 57.],\n", " [ 44., 60., 44., 39., 15.],\n", " [ 63., 73., 60., 12., 44.],\n", " [ 57., 43., 15., 89., 89.]]), array([ 86., 43., 90., 73.]))" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sample_random_batches(corpora_ids, 4, 5)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Константы" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#длина последоватеьности при обучении (как далеко распространяются градиенты)\n", "seq_length = 50\n", "\n", "# Максимальный модуль градиента\n", "grad_clip = 10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Входные переменные" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "input_sequence = T.matrix('input sequence','int32')\n", "target_values = T.ivector('target y')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Соберём нейросеть\n", "\n", "Вам нужно создать нейросеть, которая принимает на вход последовательность из seq_length токенов, обрабатывает их и выдаёт вероятности для seq_len+1-ого токена.\n", "\n", "Общий шаблон архитектуры такой сети -\n", "\n", "\n", "* Вход\n", "* Обработка входа\n", "* Рекуррентная нейросеть\n", "* Вырезание последнего состояния\n", "* Обычная нейросеть\n", "* Выходной слой, который предсказывает вероятности весов.\n", "\n", "\n", "\n", "\n", "\n", "Для обработки входных данных можно использовать либо EmbeddingLayer (см. прошлый семинар)\n", "\n", "Как альтернатива - можно просто использовать One-hot энкодер" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[u'-', u'V', u'\\u0410', u'\\u0414', u'\\u2116', u'\\u0418', u'\\u201c', u'\\u0420', u'\\u0424', u'\\xa7', u'(', u'\\xab', u',', u'0', u'4', u'\\u0435', u'\\xbb', u'\\u043c', u'\\u0440', u'7', u'3', u'\\u0448', u'\\u044c', u'9', u'2', u';', u'\\u0413', u'\\u0417', u'\\u041b', u'\\u041f', u'\\xa0', u'\\u0423', u'\\u0427', u'+', u'\\u042f', u'\\u041c', u'\\u0449', u'\\u0433', u'\\u0437', u'\\u043b', u'\\u201e', u'\\u043f', u'\\u0443', u'\\u0447', u' ', u'\\u044b', u'\\u044f', u'\"', u'c', u'\\u0426', u'6', u'\\n', u'\\u0412', u'\\u0416', u'\\u041a', u'\\u041e', u'\\u0422', u'\\u0430', u'\\xa9', u'.', u'\\u0432', u'\\u0436', u'\\u043a', u'\\u0434', u'\\u0442', u'\\u0446', u'\\u044a', u'\\u044e', u'8', u'\\u0438', u':', u'/', u'\\u2013', u'\\u043e', u'@', u'\\r', u'\\u0411', u'\\u042e', u'\\u0415', u'\\u0419', u'\\u041d', u'\\u0444', u'\\u0421', u'\\u0425', u')', u'\\u042d', u'\\u0431', u'5', u'\\u0439', u'\\u043d', u'\\u0441', u'!', u'\\u0445', u'I', u'\\u044d', u'%', u'N', u\"'\", u'P', u'\\u0429', u'1', u'\\u042b']\n" ] } ], "source": [ "print (tokens)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "l_in = lasagne.layers.InputLayer(shape=(None, None),input_var=input_sequence)\n", "\n", "sky_net = lasagne.layers.EmbeddingLayer(l_in, input_size = len(tokens) + 1, output_size = 100)\n", "\n", "rnn_sky_net = lasagne.layers.RecurrentLayer(sky_net, 50, only_return_final = True, grad_clipping = grad_clip)\n", "\n", "sky_net = lasagne.layers.DenseLayer(rnn_sky_net, 300)\n", "\n", "l_out = lasagne.layers.DenseLayer(sky_net, len(tokens), nonlinearity=lasagne.nonlinearities.softmax)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[W, input_to_hidden.W, input_to_hidden.b, hidden_to_hidden.W, W, b, W, b]\n" ] } ], "source": [ "# Веса модели\n", "weights = lasagne.layers.get_all_params(l_out,trainable=True)\n", "print weights" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#network_output = Выход нейросети\n", "network_output = lasagne.layers.get_output(l_out)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "loss = lasagne.objectives.categorical_crossentropy(network_output, target_values).min()\n", "updates = lasagne.updates.adam(loss, weights)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "#обучение\n", "train = theano.function([input_sequence, target_values], loss, updates=updates, allow_input_downcast=True)\n", "\n", "#функция потерь без обучения\n", "compute_cost = theano.function([input_sequence, target_values], loss, allow_input_downcast=True)\n", "\n", "# Вероятности с выхода сети\n", "probs = theano.function([input_sequence],network_output,allow_input_downcast=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Генерирую!\n", "\n", "* Для этого последовательно применяем нейронку к своему же выводу.\n", "\n", "* Генерировать можно по разному -\n", " * случайно пропорционально вероятности,\n", " * только слова максимальной вероятностью\n", " * случайно, пропорционально softmax(probas*alpha), где alpha - \"жадность\"" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def max_sample_fun(probs):\n", " return np.argmax(probs) " ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "import bisect\n", "\n", "def proportional_sample_fun(probs):\n", " \"\"\"Сгенерировать следующий токен (int32) по предсказанным вероятностям.\n", " \n", " probs - массив вероятностей для каждого токена\n", " \n", " Нужно вернуть одно целове число - выбранный токен - пропорционально вероятностям\n", " \"\"\"\n", " cum = np.cumsum(probs)\n", " #return номер выбранного слова\n", " return bisect.bisect_left(cum, np.random.random())" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [], "source": [ "# The next function generates text given a phrase of length at least SEQ_LENGTH.\n", "# The phrase is set using the variable generation_phrase.\n", "# The optional input \"N\" is used to set the number of characters of text to predict. \n", "\n", "def generate_sample(sample_fun,seed_phrase=None,N=200):\n", " '''\n", " Сгенерировать случайный текст при помощи сети\n", "\n", " sample_fun - функция, которая выбирает следующий сгенерированный токен\n", " \n", " seed_phrase - фраза, которую сеть должна продолжить. Если None - фраза выбирается случайно из corpora\n", " \n", " N - размер сгенерированного текста.\n", " \n", " '''\n", "\n", " if seed_phrase is None:\n", " start = np.random.randint(0,len(corpora)-seq_length)\n", " seed_phrase = corpora[start:start+seq_length]\n", " print \"Using random seed:\",seed_phrase\n", " while len(seed_phrase) < seq_length:\n", " seed_phrase = \" \"+seed_phrase\n", " if len(seed_phrase) > seq_length:\n", " seed_phrase = seed_phrase[len(seed_phrase)-seq_length:]\n", " assert type(seed_phrase) is unicode\n", " \n", " sample_ix = []\n", " x = map(lambda c: token_to_id.get(c,0), seed_phrase)\n", " x = np.array([x])\n", "\n", " for i in range(N):\n", " # Pick the character that got assigned the highest probability\n", " ix = sample_fun(probs(x).ravel())\n", " # Alternatively, to sample from the distribution instead:\n", " # ix = np.random.choice(np.arange(vocab_size), p=probs(x).ravel())\n", " sample_ix.append(ix)\n", " x[:,0:seq_length-1] = x[:,1:]\n", " x[:,seq_length-1] = 0\n", " x[0,seq_length-1] = ix \n", "\n", " random_snippet = seed_phrase + ''.join(id_to_token[ix] for ix in sample_ix) \n", " print(\"----\\n %s \\n----\" % random_snippet)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Обучение модели\n", "\n", "В котором вы можете подёргать параметры или вставить свою генерирующую функцию.\n", "\n" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Training ...\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: итражный суд не принимает отказ истца от иска, уме\n", "----\n", " итражный суд не принимает отказ истца от иска, уме;г1ФпфсЧя8ш/VЯы4КЭУъщщ«:“лу\n", "Фд©ЦОСХА%З-Мн№з\"6нтА0фОХжМдVХшз«яо№ 7IйэМNЖБPйАЗэP7ф:3р@««ъР«c7МРЭТыЧш.РДхб»«п 1)V'ЕУЩ3„вауоP8'P5Мж,'ЕзЩпЩ@жIГ)  (§ГыРМ№я“§Г\n", "Чш–)9.ОЧНПЮ©ЦЙ'лд)9гЫПсан+PюЧюДЕ\n", "оЧ2м\n", "+оХЗcщ6лЯ \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ишение права управления транспортными средствами н\n", "----\n", " ишение права управления транспортными средствами нСуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоPПуоP \n", "----\n", "Epoch 0 average loss = 0.118729468153\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: отношении которого составлен протокол, а также оп\n", "----\n", " отношении которого составлен протокол, а также опоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: которые имеют право давать обязательные для этого\n", "----\n", " которые имеют право давать обязательные для этогооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 1 average loss = 9.00389659643\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: емого решения и иные сведения о нем;\n", " 3) права и \n", "----\n", " емого решения и иные сведения о нем;\n", " 3) права и оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: иками;\n", " 8) способность юридического лица отвечать\n", "----\n", " иками;\n", " 8) способность юридического лица отвечатьоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 2 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: и.\n", " 4. Таможенные процедуры временного хранения и\n", "----\n", " и.\n", " 4. Таможенные процедуры временного хранения иоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: нного оформления\n", "\n", " 1. При производстве таможенно\n", "----\n", " нного оформления\n", "\n", " 1. При производстве таможеннооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 3 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: хранения драгоценных металлов, драгоценных камней\n", "----\n", " хранения драгоценных металлов, драгоценных камнейоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: деятельности на срок до девяноста суток.\n", " (в ре\n", "----\n", " деятельности на срок до девяноста суток.\n", " (в реоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 4 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: родным договором Российской Федерации или федераль\n", "----\n", " родным договором Российской Федерации или федеральоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: аты труда; на должностных лиц – от десяти до двадц\n", "----\n", " аты труда; на должностных лиц – от десяти до двадцоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 5 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: о суда первой или апелляционной инстанции в предел\n", "----\n", " о суда первой или апелляционной инстанции в пределоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ния (статья 103), если выпуск товаров не осуществл\n", "----\n", " ния (статья 103), если выпуск товаров не осуществлоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 6 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: в, налогов и сборов, рынка ценных бумаг\n", "\n", "\n", " Стат\n", "----\n", " в, налогов и сборов, рынка ценных бумаг\n", "\n", "\n", " Статоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: тствующего закону или иному правовому акту акта го\n", "----\n", " тствующего закону или иному правовому акту акта гооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 7 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: . Если осуществление права на обязательную долю в \n", "----\n", " . Если осуществление права на обязательную долю в оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: х случаях:\n", " 1) неявки указанных лиц по истечении \n", "----\n", " х случаях:\n", " 1) неявки указанных лиц по истечении оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 8 average loss = 3.71749742145e+11\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: овным, гражданским делам и делам об административн\n", "----\n", " овным, гражданским делам и делам об административноооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: 6.\n", " Декларирование товаров физическими лицами\n", "\n", "\n", "----\n", " 6.\n", " Декларирование товаров физическими лицами\n", "\n", "оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 9 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: наступила обязанность поклажедателя взять эти вещ\n", "----\n", " наступила обязанность поклажедателя взять эти вещоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: змера уставного капитала, общество подлежит ликвид\n", "----\n", " змера уставного капитала, общество подлежит ликвидоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 10 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: к сейфу и его содержимому.\n", " Условиями договора м\n", "----\n", " к сейфу и его содержимому.\n", " Условиями договора моооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: организация и порядок деятельности прокуратуры Ро\n", "----\n", " организация и порядок деятельности прокуратуры Рооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 11 average loss = 23.8743209426\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ке, установленном настоящим Кодексом.\n", " Президент\n", "----\n", " ке, установленном настоящим Кодексом.\n", " ПрезидентооооооооооооооооооооооУоот55ьо8о §аоыоо, отооPооооооофоЮюжоо!аФ2ооопоооаоБ:Д ,ооооооооВч2ооЛВэосоОо“аи Юо3V'д п алоооЗ№NпоооооАЗгЗЕОооад,ооооо:Жо Ав уоаВооА„Г5чГ4доЫо„ошоNоЙЙ§юГоЕРоЛ оооос«»З«о,ооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: стихийного бедствия, технологической катастрофы ил\n", "----\n", " стихийного бедствия, технологической катастрофы илоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 12 average loss = 1.52126512071e-05\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ародного хозяйства, районы возможных затоплений и \n", "----\n", " ародного хозяйства, районы возможных затоплений и ооооооооооооооооооооооооооооооооооооооооооОжо©оооооАоГооВПяТоаоцйооэщооооооооооо9;ооЭоБ%шощооо“оозоуоооооооооаоов тPоо5ооо\"оХЙ«жо0оо4оР8ОооаN8рооФо»оо»о»оИо№оМоюво оГ 3ХоЛооА\"8хКСо/И оо око оооаогPоc \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ждан и государств определяются законом об иммуните\n", "----\n", " ждан и государств определяются законом об иммунитеоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 13 average loss = 0.0802442728869\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: оваться и распоряжаться заложенными вещами.\n", " 4. Л\n", "----\n", " оваться и распоряжаться заложенными вещами.\n", " 4. ЛооооооооооооооооооооооооооооооооооооооооЭо5о о ооов о ою о ооииаооао оозои о9оооо аи.„VооМиоо„ ' эоЖоооcао юооооо о оооофвоаоо оДоо оооЖ о5чcТ9в Ч оооо ооооожочоо ооо'о ооЗо оонК2ооаооооощо о1оо ооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: енеральный прокурор Российской Федерации или замес\n", "----\n", " енеральный прокурор Российской Федерации или замесоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 14 average loss = 8.1109178304e-11\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: \n", " Таможенный орган может отказать в выдаче разреш\n", "----\n", " \n", " Таможенный орган может отказать в выдаче разрешооооооооооооооооооооооо“ –ооаоо'оооо(ъ 3о“оо!оооооо оорооо„ооо А о ооо“ ооIо ъ оо“ оо ооУ оо о уооо@%Ео7УоP©С'„о»cо оъо ,овоиооо оооооооТ§о оо Эо6оа©ъо оИоооооСФ§'о+ьъаооcэоМо оо ооо оаоооуоо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: этими органами хранения товаров на таможенных скла\n", "----\n", " этими органами хранения товаров на таможенных склаоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 15 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: авно сокрытие, уничтожение, фальсификация бухгалте\n", "----\n", "цN/осооо,оЩооооооооооооооооомооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: рены ремни безопасности, а равно управление мотоци\n", "----\n", " рены ремни безопасности, а равно управление мотоциоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 16 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: го правонарушения является их принудительное изъят\n", "----\n", "оъо ооооооооЗ2Аоохооо о ЙооNо о ой оо оо о. оПоЮ©о ооо: ОооооооооПоЭ лоо оНаоооооо о Соо оо ооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: и полного товарища в товариществе на вере, участни\n", "----\n", " и полного товарища в товариществе на вере, участниоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 17 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ими подразделениями органов внутренних дел, СМВЧ и\n", "----\n", " ими подразделениями органов внутренних дел, СМВЧ иоооооооооооооооооооооооооооооооооооооооооооЭ аоЦоа кооо%сНо ооП3.моооооо оо о\n", "Г о о%лао\n", "оМЗщоооо воалоc: яао8 оеосооо–ооо оооХоо оАо Ж оо о0о ПайоЗоооыооо оооо ьХооЗ4ыо5о о оЫ ф о06о оАао ото о о \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ом личному досмотру, о виде, количестве, об иных и\n", "----\n", " ом личному досмотру, о виде, количестве, об иных иоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 18 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: едомления о постановлении третейского суда, указан\n", "----\n", " едомления о постановлении третейского суда, указанооооооооооооооооооооооооооооооооооооооооооооМЙ о2оо о Эрооожооомооооооо оаоооооооооооооооооооооооооооооооо2ооооc о ооооЫооовэо/в3а ошоооооооо аоо(о оБ оУуооо о зоооVб 0оноТэооооооооо§ооооо cоооо 9то \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: телем, находящимся в состоянии опьянения, –\n", " влеч\n", "----\n", " телем, находящимся в состоянии опьянения, –\n", " влечоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 19 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: , пользования или распоряжения, если это допускает\n", "----\n", "эоохоооооооо о \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ением предпринимательской деятельности нужд.\n", " 2. \n", "----\n", " ением предпринимательской деятельности нужд.\n", " 2. оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 20 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ютного контроля, его заместители;\n", " 2) руководител\n", "----\n", " ютного контроля, его заместители;\n", " 2) руководителоооооооооооооооооооооооооодокоооЭоо5оэо оооооЕооооо §оо! Ао ИаоонооооооЯощоооооооо.оо оооТооооооо–о ос ооооо о о' ооооNоц“ ощоообо4з оооАоаожоооло2 Я оо оороооо ооэооощоо оооо о В Гоооо ою йо©оо оо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ксом, соблюдения ограничений, установленных в соот\n", "----\n", " ксом, соблюдения ограничений, установленных в соотоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 21 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: дан в размере от пяти до десяти минимальных размер\n", "----\n", " дан в размере от пяти до десяти минимальных размероооооооооооооооооооооооооооооооооооооооооооФокооооЗоОо«ооооооо–а“ о ;ооаТ(о иЦ Ло2о о оааоЦоо оPооэоио«о о ох:оыо о(оо шо оооо аоооооЙУ оо3 о«о оо 5оооо оооооооооои ВоЖо о6,оооаооощо обоооооооаооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: о подряда определяются функции такого инженера (ин\n", "----\n", " о подряда определяются функции такого инженера (иноооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 22 average loss = 1.00865583991e-05\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: исано завещателем или записано с его слов нотариус\n", "----\n", " исано завещателем или записано с его слов нотариусоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: м) наблюдателям, представителям средств массовой и\n", "----\n", " м) наблюдателям, представителям средств массовой иоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 23 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: и эксплуатацией помещений, поддержанием в них чис\n", "----\n", " и эксплуатацией помещений, поддержанием в них чисоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: раницу Российской Федерации;\n", " 10) товаров, переме\n", "----\n", " раницу Российской Федерации;\n", " 10) товаров, перемеоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 24 average loss = 4.67229160023\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: стами международного почтового обмена, определяютс\n", "----\n", " стами международного почтового обмена, определяютсодоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооаооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: дня обнаружения указанного лица либо его вещей, до\n", "----\n", " дня обнаружения указанного лица либо его вещей, дооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 25 average loss = 0.00632548375633\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: едеральное министерство, уполномоченное в области \n", "----\n", " едеральное министерство, уполномоченное в области оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооVоооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: конодательством Российской Федерации.\n", " Правительс\n", "----\n", " конодательством Российской Федерации.\n", " Правительсоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 26 average loss = 7.1711407801e-05\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ти во время проведения массового мероприятия начал\n", "----\n", " ти во время проведения массового мероприятия началоооооооооооооооооооооооооооооооооооооооооооооо ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: лица\n", "\n", " Гражданская правоспособность физического \n", "----\n", " лица\n", "\n", " Гражданская правоспособность физического оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 27 average loss = 0.00449262128584\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: одажи алкогольной и спиртосодержащей продукции –\n", "\n", "----\n", " одажи алкогольной и спиртосодержащей продукции –\n", "ооооооооооооооооооооооооооооооооооооооооооооо №4оо оосооооооо оооооЛооооооооооооооооо ооооооооооооооооооооооооооо \n", "оо ооооооооооо+оо ооооооо оо оооооооооооооооо оооооооооооооооооо ооооооVшоооо оооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: по сравнению с теми, которые он понес бы, если бы\n", "----\n", " по сравнению с теми, которые он понес бы, если быоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 28 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: смотрен учредительными документами общества.\n", " 2. \n", "----\n", " смотрен учредительными документами общества.\n", " 2. оооооооооооооооооооооооооооооооооооооо;ооооооооЛоооооооооооооооооо оооооо оооооооЕоо Гоаооооооооооо оооо оооооооРооооооооооооооVоооооооо оо оооооСо%оооооообоокоооооо оо\n", "оо ооаоооооооооооо оооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ла.\n", " 2. Если результат работы не был достигнут ли\n", "----\n", " ла.\n", " 2. Если результат работы не был достигнут лиоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 29 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: званию. По требованию проверяющего старший патруля\n", "----\n", " званию. По требованию проверяющего старший патруляоооооооооооооооооооооооооооооооооооооооооооЖоооо ооооооо оооооооооооооооооо4шооооооооооЯо ооьоооо ооошооооЭо4оооооооооооооооооо оо ооооооооооБ Зоооооооооооооооо д 7лоооооооооо ооооооооооо  оооооНоооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: родукции и оборудования, использованного для ее из\n", "----\n", " родукции и оборудования, использованного для ее изоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 30 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: средств и огнестрельного оружия с превышением пол\n", "----\n", " средств и огнестрельного оружия с превышением полооооооооооооооооооооооооооооооооооооооооооооГо оооооооооо оооо оооооооооооо§оооо 3оо ооооооооооооооооокооооооооооооооооооо оо„ооооооооооо оооооооо оооБооооооооодоооооооо оооаоо ооо оооооо оо оо ооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: юридического лица. Внешний управляющий выступает о\n", "----\n", " юридического лица. Внешний управляющий выступает ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 31 average loss = 2.88657986403e-18\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: дения, признанные конфиденциальными, только с согл\n", "----\n", " дения, признанные конфиденциальными, только с соглоооооооооооооооооооооооооооооооооооооо о аоооооФо оооооооооо ооооооPоооооооооооо9оооооооооооЭоо оо ооооо Оооооооооооооооо фоо оооооо аооомоооо ооооооооооо оо ооооооооо оооооо о оо ооооооо оооошооооо„ \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: истечения при условии внесения арендатором всей о\n", "----\n", " истечения при условии внесения арендатором всей ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 32 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: осударственном и муниципальном жилищном фонде соци\n", "----\n", " осударственном и муниципальном жилищном фонде социооооооооооооооооооооооооооооооооооо оОооооооо ооо 'ооооооооо Сйоооооз Боооооооооооооооооо ооооооооооо ЦЫооооФоооооооооооооооооцооо оооооиаоооооо оооТоооооо3 ооооооооооооо оооооооооооооооооcоооооNооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: вии с передаточным актом.\n", " 3. При разделении юрид\n", "----\n", " вии с передаточным актом.\n", " 3. При разделении юридоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 33 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: и либо установлены запреты и ограничения в соответ\n", "----\n", " и либо установлены запреты и ограничения в соответооооооооооооооооооооооо9оооооооооооо оооооаооооооооооСоооооооо ооо ооооооооооооооо о о ооооооо о ооо оооооооооооооооооооо Цооо ооооооооооооооооооооооооооооооооо НЙо оооооооЮооотооооооооооооо ооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: сключительных прав, передавшим такие права, и (или\n", "----\n", " сключительных прав, передавшим такие права, и (илиоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 34 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: тражным судом по заявлению стороны третейского раз\n", "----\n", " тражным судом по заявлению стороны третейского разооооооооооооооооооооооооооооооооооооо оо дооооооо 4ооооооооооо.оооооооооооооо«о оооо оооооооо0ооооо.ооооооао ооо оооооооооооооПооо оооо оооооооофооооооооо ооооо о ооооооооооооооооо оооо ооо ооооо оо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: небольших отрывков из исполнения, постановки, фоно\n", "----\n", " небольших отрывков из исполнения, постановки, фонооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 35 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: моженными пломбами и печатями;\n", " документы, подтве\n", "----\n", " моженными пломбами и печатями;\n", " документы, подтвеооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо оаооооооооооо 7оо“оо@ \n", "оооооооооооооооооооооооооооооооооооооооооооооооо оо ооооооооооооооооооооч№ооооооооооооооооооо ооаоо ооооIоооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: может быть избран гражданин Российской Федерации \n", "----\n", " может быть избран гражданин Российской Федерации оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 36 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ным судом по правилам, установленным в главе 20 на\n", "----\n", " ным судом по правилам, установленным в главе 20 наооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо (оооо2ооо;ооооооооо.оо аооооооооооооаооооооооНао%оооГоооо2ооооойоооооооооооо оооооооЦ оаооо аооооооооо оооооооХоооооооооооIооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: , в том числе организациями, осуществляющими теле–\n", "----\n", " , в том числе организациями, осуществляющими теле–оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 37 average loss = 4.4408920985e-19\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ажных судов в Российской Федерации\n", "\n", " 1. В случае\n", "----\n", " ажных судов в Российской Федерации\n", "\n", " 1. В случаеоооооооооооооооооооожоооооо“ ооооооооэооооо ооооооооо Цаооюоо о1 аооо оооооооооооооо оо ооооо ооооооооо ааоооооооо о –ооооооооиоооЮоооооо №оооооооооороо ооооооооаооооооооооа/оооооооо«ъооо4о аооооо5 \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: от трех до пяти минимальных размеров оплаты труда\n", "----\n", " от трех до пяти минимальных размеров оплаты трудаоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 38 average loss = 3.13526982154e-16\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ку с образцами подписей должностных лиц филиала, к\n", "----\n", " ку с образцами подписей должностных лиц филиала, коооооооооооооооооооооооооооооооооооооооооооооооооошооооЦ@пооо ооофооооооооооооооооооооооооооооооЫооо ооооооАооооо ооооооооооооооооооооооооооо5оооооооооооооооо оыооооо оо'оc Ы№воооФчооооаооооо оооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: а объектах собственности специальные окрашивающие \n", "----\n", " а объектах собственности специальные окрашивающие оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 39 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: приложением документов, подтверждающих возражения\n", "----\n", " приложением документов, подтверждающих возраженияоооооооооооооооооооооооооооооооооо »оаооооо ооосооооооЙ ооо Цо оо О4оооооооооооооооооооо РЮо «ооооао оооооо оооооаоооооооооооооооооо ооооооаоооооооооооооо.оцооооооооооооооЖоооооооооооооооо ооооиоооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: вие) таможенного органа или его должностного лица\n", "----\n", "оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 40 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: есения службы, в том числе в особых условиях (веде\n", "----\n", " есения службы, в том числе в особых условиях (ведеоооооооооооооооооооооооооооооооооооооооооооКоо ооооо оооо ооо оо оо оТоооооо хооооооооооо о“оооио ооАооNаооооооооооооооооо ооооооо4ооооооооооооПоо ооооооо ооооооооооо ооооооооооо“ооо :о\"ооооо ооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: произведения. \n", " 2. При отсутствии доказательств \n", "----\n", " произведения. \n", " 2. При отсутствии доказательств оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 41 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ремени.\n", " 2. Когда оферта сделана устно без указан\n", "----\n", " ремени.\n", " 2. Когда оферта сделана устно без указаноооооооооооооо ооо ооооооооооооооо2ооооооо ооооооо оЫоооооооо ооооооооаооооооооооооооа оооооооооаоооооооооо поооооо\"оооаоохооооооооХо ооооСооооосоооооооифоооооооооооооооооооо оо оГ»оооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: вора (контракта) на осуществление деятельности по \n", "----\n", " вора (контракта) на осуществление деятельности по оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 42 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: установленного законодательством о выборах и рефе\n", "----\n", " установленного законодательством о выборах и рефеоооооооооооооооооооооооооооооооаоооооомоооооо%о оооооооо ооооооооаоМоыооооооо оооооооооооооооPоооооо ооооооооооооооооооооо4ооооооооооооФ Чоо Ф ооооооаооо ооооооооооооооо ооооиооооооо о.оооооооооооо8 \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ающих тайну совещания судей.\n", " 4. В помещении, в к\n", "----\n", " ающих тайну совещания судей.\n", " 4. В помещении, в коооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 43 average loss = 0.0\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: вора сторона, заявившая об отказе, возмещает друго\n", "----\n", " вора сторона, заявившая об отказе, возмещает другооооооооооооооооооооооооооооооооооооооооооооооооооооо0оо ооооооPооооооооооо:оНоооо оооо Ю ооооооо ЫЩо аоооо оо ооооооооооооооооо оо о оо ао)оооооофооо'ооо оооооооооо ооо оооуоо о'оЖфооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: 82. \n", "\n", " Глава 34.\n", " Производство в арбитражном су\n", "----\n", " 82. \n", "\n", " Глава 34.\n", " Производство в арбитражном суоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 44 average loss = 0.00725515503636\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: тель завещания вправе от своего имени вести дела, \n", "----\n", " тель завещания вправе от своего имени вести дела, ооо о\n", "о\n", "яоооо1оо ооооооЭоооооооаоо аЖоцокооооооооооооооооо о о §оо(оооооеоФомооо \n", "ооооооооожооооВооЮоооСоооооооо Лоо Vооюояооооо о0оа оо§ооооКооооо ыооХоооощоо\"оУоЩо ооП ооЙооочоЙоо«ооц3оосооооцо\"оо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ановлениями о назначении административного наказан\n", "----\n", " ановлениями о назначении административного наказаноооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 45 average loss = 0.000233109841676\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: №80-ФЗ) \n", " 4. Осуществление работ, указанных в час\n", "----\n", " №80-ФЗ) \n", " 4. Осуществление работ, указанных в часооооооооооооооооооооооооооооооооооооооооооооооооооооо\n", "оооооооооооооооооооооооооооооооооаоооооооооооооооооооооаоооаоооооооооооооооооооооооооооооооооооооооооооооаооооооНТоооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ерительного управления этим имуществом.\n", " В случае\n", "----\n", " ерительного управления этим имуществом.\n", " В случаеоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 46 average loss = 143.505859315\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ветствии с федеральным законом;\n", " 17) применять пр\n", "----\n", " ветствии с федеральным законом;\n", " 17) применять прооооо оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо ооооооооооооо оооооооооооооооооооооооооооооооо о оояоооооооооооооооооооооо оооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: оном или в установленном им порядке, лицо, получив\n", "----\n", " оном или в установленном им порядке, лицо, получивоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 47 average loss = 6.390193473e-06\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: переработку (обработку) вещи либо на выполнение др\n", "----\n", " переработку (обработку) вещи либо на выполнение дроооооооооооо ооооооооооооооооооооооооооооо оооооооооооооо оооооооооооооооооооооооооооооо ооооооооооооооооооооооооЮооооооооооооооооооооооооооооооооооооооооооооооооооооооооо оооооооо ооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: надежными в соответствии с критериями, определенны\n", "----\n", " надежными в соответствии с критериями, определенныоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 48 average loss = 3.84843156528e-05\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: й передачи вещи или права либо встречного обязател\n", "----\n", " й передачи вещи или права либо встречного обязателооооооооооооооооооооооооооооооо ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: бная защита его прав и свобод.\n", "\n", " Статья 28. Пра\n", "----\n", " бная защита его прав и свобод.\n", "\n", " Статья 28. Праоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 49 average loss = 1.96754903047e-05\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ение оказалось невозможным вследствие непреодолимо\n", "----\n", " ение оказалось невозможным вследствие непреодолимооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: становление были отменены полностью или в части;\n", "\n", "----\n", " становление были отменены полностью или в части;\n", "оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 50 average loss = 1.7777325632e-06\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: временного хранения, расположенный в месте прибыт\n", "----\n", " временного хранения, расположенный в месте прибытоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: нных питомниках органов внутренних дел или по мест\n", "----\n", " нных питомниках органов внутренних дел или по местоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 51 average loss = 7.0724608043e-07\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: йской Федерации в письменной форме. Заявление или \n", "----\n", " йской Федерации в письменной форме. Заявление или оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: сности\n", "\n", " Разглашение сведений о мерах безопаснос\n", "----\n", " сности\n", "\n", " Разглашение сведений о мерах безопасносоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 52 average loss = 0.00419781746577\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ьному удостоверению личности гражданина (паспорту)\n", "----\n", " ьному удостоверению личности гражданина (паспорту)оооооКооооооооооооооооооооооооооооооо оооооооооооооо ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо ооооо ооо ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: таможенных сборов\n", "\n", " 1. Плательщиками таможенных\n", "----\n", " таможенных сборов\n", "\n", " 1. Плательщиками таможенныхоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 53 average loss = 1.84942293266e-05\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: минимальных размеров оплаты труда; на должностных\n", "----\n", " минимальных размеров оплаты труда; на должностныхооо оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: оручителем – в договоре поручительства;\n", " 19) лице\n", "----\n", " оручителем – в договоре поручительства;\n", " 19) лицеоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 54 average loss = 1.63536824474e-06\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ли условий лицензий на осуществление видов деятель\n", "----\n", " ли условий лицензий на осуществление видов деятельоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо ооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ния, действия (бездействие) таможенных органов или\n", "----\n", " ния, действия (бездействие) таможенных органов илиоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 55 average loss = 0.0038882379649\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: другим лицам в постоянное или срочное пользование,\n", "----\n", " другим лицам в постоянное или срочное пользование,оооооооооооооооооооооооооооо оPоооооо4оооооооооооооооооооооооооооооооро–оаоооооооооооооооооооооооооооооооооооооооооо оооооооооо'ооооооооооо ооооооооооооо Эоооооооооооооооо оооооооо оооо оооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: исполнительной власти, уполномоченного в области \n", "----\n", " исполнительной власти, уполномоченного в области оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 56 average loss = 4.31529469706e-07\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: деятельности лицензируется в соответствии с законо\n", "----\n", " деятельности лицензируется в соответствии с законооооооооооооооооооооооаоооо оооооооооооооооооооооооооооооооооооооооооо оооооооооооо оооооооооо ооооооооооооооооооооооооооооооооооооооооооооооооооооооооЦоооооооооооооо ооооооооооооооооооооооо ооооооооVо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ной среды, об участии в долевом строительстве мног\n", "----\n", " ной среды, об участии в долевом строительстве многоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 57 average loss = 3.36871608112e-05\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: тившее транспортное средство под таможенный режим \n", "----\n", " тившее транспортное средство под таможенный режим оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: х и свободах милицией допустимо лишь на основаниях\n", "----\n", " х и свободах милицией допустимо лишь на основанияхоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 58 average loss = 1.04944173957e-06\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: и имеются достоверные данные о том, что кроме лиц,\n", "----\n", " и имеются достоверные данные о том, что кроме лиц,оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: поручения. Такой запрос должен быть сделан плател\n", "----\n", " поручения. Такой запрос должен быть сделан плателоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 59 average loss = 8.33496548689e-07\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: отношении которых осуществляется иммиграционный к\n", "----\n", " отношении которых осуществляется иммиграционный коооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: если иное прямо не предусмотрено настоящим Кодекс\n", "----\n", " если иное прямо не предусмотрено настоящим Кодексоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 60 average loss = 3.17899337718e-06\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: для проведения агитационных публичных мероприятий\n", "----\n", "оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ношение государственных наград\n", "\n", " 1. Ношение орде\n", "----\n", " ношение государственных наград\n", "\n", " 1. Ношение ордеоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 61 average loss = 3.78524108139e-11\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: нду.\n", " 4. После передачи предприятия в аренду арен\n", "----\n", " нду.\n", " 4. После передачи предприятия в аренду ареноооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: срока должен быть пригодным для целей, для которых\n", "----\n", " срока должен быть пригодным для целей, для которыхоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 62 average loss = 2.60250487815e-13\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: а имя и право на защиту репутации автора (статья 1\n", "----\n", " а имя и право на защиту репутации автора (статья 1оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: аняемые милицией территории и объекты;\n", " 6) произв\n", "----\n", " аняемые милицией территории и объекты;\n", " 6) произвоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 63 average loss = 1.89202636228e-11\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ара по двойному складскому свидетельству\n", "\n", " 1. То\n", "----\n", " ара по двойному складскому свидетельству\n", "\n", " 1. Тооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: , телефоны в квартирах устанавливаются в течение о\n", "----\n", " , телефоны в квартирах устанавливаются в течение ооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 64 average loss = 1.98117038261e-07\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: твия совершаются в сроки, установленные настоящим \n", "----\n", " твия совершаются в сроки, установленные настоящим оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: лем является юридическое лицо и стоимость дара пре\n", "----\n", " лем является юридическое лицо и стоимость дара преоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 65 average loss = 1.2115104402e-11\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: о регистрации инициативной группы по проведению р\n", "----\n", " о регистрации инициативной группы по проведению роооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: тное содержание продуктов переработки, образовавши\n", "----\n", " тное содержание продуктов переработки, образовавшиоооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 66 average loss = 0.00898998393521\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: х федеральных судов назначаются Президентом Россий\n", "----\n", " х федеральных судов назначаются Президентом Российоооооаоо оооооооооаоо»Олооо оооо№фоо/еооооНооокооВоcПооооооооо\n", " ооооооооооД1оо0ооооо ооотооооооо оо-оооо\n", "оооооо%Ю–ооооВооооо9оооооЗ:“ыо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: ья 1065.\n", " Предупреждение причинения вреда\n", "\n", " 1. \n", "----\n", " ья 1065.\n", " Предупреждение причинения вреда\n", "\n", " 1. оооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 67 average loss = 4.35904892422e-07\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: ния, зафиксированные как в письменной, так и в ино\n", "----\n", "оооооо оо \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: о применяются правила настоящей главы, если иное н\n", "----\n", " о применяются правила настоящей главы, если иное ноооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n", "Epoch 68 average loss = 3.47377862297e-06\n", "Генерируем текст в пропорциональном режиме\n", "Using random seed: атным ввозом (реимпортом) товаров, вывезенных с та\n", "----\n", " атным ввозом (реимпортом) товаров, вывезенных с таооооооооцоЕоо–оо-ооо0 ооооооаоооооN“аоо.ооВ+ о оооогооооооо ооойоооооо7лчоооооооооо оо оПоооооооооооооол оооЛоcаоиоооооос ооооо ооIоооно оороооооыоо ооо\n", "о)ооооч ооооуооооPСоIооообооооо©оооо ьоооозо о0 \n", "----\n", "Генерируем текст в жадном режиме (наиболее вероятные буквы)\n", "Using random seed: отклонении замечаний на протокол арбитражный суд в\n", "----\n", " отклонении замечаний на протокол арбитражный суд воооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооооо \n", "----\n" ] }, { "ename": "KeyboardInterrupt", "evalue": "", "output_type": "error", "traceback": [ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 22\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 23\u001b[0m \u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0my\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0msample_random_batches\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcorpora_ids\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mbatch_size\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mseq_length\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 24\u001b[1;33m \u001b[0mavg_cost\u001b[0m \u001b[1;33m+=\u001b[0m \u001b[0mtrain\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mx\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 25\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[1;32mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"Epoch {} average loss = {}\"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mepoch\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mavg_cost\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0mbatches_per_epoch\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;32m/home/owoshch/anaconda2/lib/python2.7/site-packages/theano/compile/function_module.pyc\u001b[0m in \u001b[0;36m__call__\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 871\u001b[0m \u001b[1;32mtry\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 872\u001b[0m \u001b[0moutputs\u001b[0m \u001b[1;33m=\u001b[0m\u001b[0;31m\\\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 873\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0moutput_subset\u001b[0m \u001b[1;32mis\u001b[0m \u001b[0mNone\u001b[0m \u001b[1;32melse\u001b[0m\u001b[0;31m\\\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 874\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfn\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0moutput_subset\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0moutput_subset\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 875\u001b[0m \u001b[1;32mexcept\u001b[0m \u001b[0mException\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", "\u001b[1;31mKeyboardInterrupt\u001b[0m: " ] } ], "source": [ "print(\"Training ...\")\n", "\n", "#сколько всего эпох\n", "n_epochs=100\n", "\n", "# раз в сколько эпох печатать примеры \n", "batches_per_epoch = 1000\n", "\n", "#сколько цепочек обрабатывать за 1 вызов функции обучения\n", "batch_size=100\n", "\n", "for epoch in xrange(n_epochs):\n", " print \"Генерируем текст в пропорциональном режиме\"\n", " generate_sample(proportional_sample_fun,None)\n", " \n", " print \"Генерируем текст в жадном режиме (наиболее вероятные буквы)\"\n", " generate_sample(max_sample_fun,None)\n", "\n", " avg_cost = 0;\n", " \n", " for _ in range(batches_per_epoch):\n", " \n", " x,y = sample_random_batches(corpora_ids,batch_size,seq_length)\n", " avg_cost += train(x, y)\n", " \n", " print(\"Epoch {} average loss = {}\".format(epoch, avg_cost / batches_per_epoch))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Анализ ошибки показает, что в начале сети удобнее генерировать популярные буквы, так в среднем кросс-энтропия меньше. Иногда она угадывает, и кросс-энтропия получается ноль. Иногда нет." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Конституция нового мирового правительства" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "----\n", " Каждый человек долженооооо+о6оооаооооооооощоооо\"/ооооооХ;оМ;оооосоооао оБаооооооооаооо6то%)ооозоооо оороооооооо«4оооооо ооооо(оооооооСоорооцоооояооооооооойоооооожоооооо о\" ооо,ооооооооcЕоВэоооо оооооооооооооЙ ооохоооооооооо оРФ ооооороооооодоооо« оооооооооооо ооооХаооаоФ»/ ооооооао оооооооооооооооооооооохоооо ооооЙооооо \n", "----\n" ] } ], "source": [ "seed = u\"Каждый человек должен\"\n", "sampling_fun = proportional_sample_fun\n", "result_length = 300\n", "\n", "generate_sample(sampling_fun,seed,result_length)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "----\n", " В случае неповиновенияоооооооооо,ооооооооо ооооооЕоооо№@3оооооооооорооооооцоохоооооЮ;о1дооооо оооо о оойооооо ооаооо©Т»ьоооооо“2ооо6о–офоооооожооооооо5 ооP№ЕоЭоооРNаооооооо оокоооото Рооооооо ооЛЮОооооооо оооЧСоооо ооооо„cоооооо оооооооо о оооХЦ'ооооооооооооПооооооао оооооБоооооооодооо©оооооооооооооооо9ЕогоооооооПоодо оо \n", "----\n" ] } ], "source": [ "seed = u\"В случае неповиновения\"\n", "sampling_fun = proportional_sample_fun\n", "result_length = 300\n", "\n", "generate_sample(sampling_fun,seed,result_length)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.0" } }, "nbformat": 4, "nbformat_minor": 1 }