basharin_sevastyan_lab_7 is ready
This commit is contained in:
parent
71b16e78b7
commit
fc5942cdb1
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,21 @@
|
||||
## Лабораторная работа 7. Вариант 5.
|
||||
### Задание
|
||||
Выбрать художественный текст(четные варианты –русскоязычный, нечетные –англоязычный)и обучить на нем рекуррентную
|
||||
нейронную сеть для решения задачи генерации. Подобрать архитектуру и параметры так, чтобы приблизиться к максимально
|
||||
осмысленному результату.
|
||||
|
||||
В завершении подобрать компромиссную архитектуру, справляющуюся достаточно хорошо с обоими видами текстов.
|
||||
|
||||
### Ход работы
|
||||
Для английской модели был взят пролог Властелина колец. Модель хоть им получилась удачнее, чем на русском, но время
|
||||
обучение составило чуть больше часа.
|
||||
|
||||
#### Результат rus
|
||||
здесь был человек прежде всего всего обманывает самого себя ибо он думает что успешно соврал а люди поняли и из
|
||||
деликатности промолчали промолчали промолчали промолчали промолчали какие его неудачи могут его постигнуть не тому
|
||||
помочь много ли людей не нуждаются в помощи помощи было врать врать врать молчания молчания а внести то
|
||||
|
||||
#### Результат eng
|
||||
the harfoots were browner of skin smaller and shorter and they were beardless and bootless their hands and feet were
|
||||
neat and nimble and they preferred highlands and hillsides the stoors were broader heavier in build their feet and
|
||||
hands were larger and they preferred flat lands and riversides
|
@ -1,16 +1,17 @@
|
||||
import torch
|
||||
import torch.nn as nn
|
||||
import tensorflow as tf
|
||||
import numpy as np
|
||||
from keras.preprocessing.sequence import pad_sequences
|
||||
from keras.preprocessing.text import Tokenizer
|
||||
from keras.models import Sequential
|
||||
from keras.layers import Embedding, LSTM, Dense
|
||||
from keras.utils import to_categorical
|
||||
|
||||
with open('69209.txt', "r") as file:
|
||||
with open('ru.txt', "r", encoding='utf-8') as file:
|
||||
text = file.read()
|
||||
|
||||
# Предварительная обработка текста (в зависимости от вашей задачи)
|
||||
|
||||
# Создание словаря для отображения слов в индексы и обратно
|
||||
tokenizer = tf.keras.preprocessing.text.Tokenizer()
|
||||
tokenizer = Tokenizer()
|
||||
tokenizer.fit_on_texts([text])
|
||||
total_words = len(tokenizer.word_index) + 1
|
||||
|
||||
@ -24,9 +25,9 @@ for line in text.split('\n'):
|
||||
input_sequences.append(n_gram_sequence)
|
||||
|
||||
max_sequence_length = max([len(x) for x in input_sequences])
|
||||
input_sequences = tf.keras.preprocessing.sequence.pad_sequences(input_sequences, maxlen=max_sequence_length, padding='pre')
|
||||
input_sequences = pad_sequences(input_sequences, maxlen=max_sequence_length, padding='pre')
|
||||
X, y = input_sequences[:,:-1],input_sequences[:,-1]
|
||||
y = tf.keras.utils.to_categorical(y, num_classes=total_words)
|
||||
y = to_categorical(y, num_classes=total_words)
|
||||
|
||||
# Определение архитектуры модели
|
||||
|
||||
@ -45,16 +46,15 @@ model.fit(X, y, epochs=100, verbose=2)
|
||||
|
||||
# Генерация текста с использованием обученной модели
|
||||
|
||||
def generate_text(seed_text, next_words, model, max_sequence_length):
|
||||
def generate_text(seed_text, next_words, model_, max_sequence_length):
|
||||
for _ in range(next_words):
|
||||
token_list = tokenizer.texts_to_sequences([seed_text])[0]
|
||||
token_list = tf.keras.preprocessing.sequence.pad_sequences([token_list], maxlen=max_sequence_length - 1,
|
||||
padding='pre')
|
||||
predicted = model.predict_classes(token_list, verbose=0)
|
||||
|
||||
token_list = pad_sequences([token_list], maxlen=max_sequence_length - 1, padding='pre')
|
||||
predicted_probs = model.predict(token_list, verbose=0)[0]
|
||||
predicted_index = np.argmax(predicted_probs)
|
||||
output_word = ""
|
||||
for word, index in tokenizer.word_index.items():
|
||||
if index == predicted:
|
||||
if index == predicted_index:
|
||||
output_word = word
|
||||
break
|
||||
seed_text += " " + output_word
|
||||
@ -63,7 +63,7 @@ def generate_text(seed_text, next_words, model, max_sequence_length):
|
||||
|
||||
|
||||
# Пример генерации текста (замените seed_text и next_words на свои значения)
|
||||
seed_text = "your seed text here"
|
||||
seed_text = "здесь был"
|
||||
next_words = 50
|
||||
generated_text = generate_text(seed_text, next_words, model, max_sequence_length)
|
||||
|
||||
|
9
basharin_sevastyan_lab_7/ru.txt
Normal file
9
basharin_sevastyan_lab_7/ru.txt
Normal file
@ -0,0 +1,9 @@
|
||||
Когда человек сознательно или интуитивно выбирает себе в жизни какую-то цель, жизненную задачу, он невольно дает себе оценку. По тому, ради чего человек живет, можно судить и о его самооценке - низкой или высокой.
|
||||
Если человек живет, чтобы приносить людям добро, облегчать их страдания, давать людям радость, то он оценивает себя на уровне этой своей человечности. Он ставит себе цель, достойную человека.
|
||||
Только такая цель позволяет человеку прожить свою жизнь с достоинством и получить настоящую радость. Да, радость! Подумайте: если человек ставит себе задачей увеличивать в жизни добро, приносить людям счастье, какие неудачи могут его постигнуть? Не тому помочь? Но много ли людей не нуждаются в помощи?
|
||||
Если жить только для себя, своими мелкими заботами о собственном благополучии, то от прожитого не останется и следа. Если же жить для других, то другие сберегут то, чему служил, чему отдавал силы.
|
||||
Можно по-разному определять цель своего существования, но цель должна быть. Надо иметь и принципы в жизни. Одно правило в жизни должно быть у каждого человека, в его цели жизни, в его принципах жизни, в его поведении: надо прожить жизнь с достоинством, чтобы не стыдно было вспоминать.
|
||||
Достоинство требует доброты, великодушия, умения не быть эгоистом, быть правдивым, хорошим другом, находить радость в помощи другим.
|
||||
Ради достоинства жизни надо уметь отказываться от мелких удовольствий и немалых тоже… Уметь извиняться, признавать перед другими ошибку - лучше, чем врать.
|
||||
Обманывая, человек прежде всего обманывает самого себя, ибо он думает, что успешно соврал, а люди поняли и из деликатности промолчали.
|
||||
Жизнь - прежде всего творчество, но это не значит, что каждый человек, чтобы жить, должен родиться художником, балериной или ученым. Можно творить просто добрую атмосферу вокруг себя. Человек может принести с собой атмосферу подозрительности, какого-то тягостного молчания, а может внести сразу радость, свет. Вот это и есть творчество.
|
Loading…
Reference in New Issue
Block a user