Merge pull request 'kurmyza_pavel_lab_7 is ready' (#178) from kurmyza_pavel_lab_7 into main

Reviewed-on: http://student.git.athene.tech/Alexey/IIS_2023_1/pulls/178
This commit is contained in:
Alexey 2023-12-07 16:11:36 +04:00
commit 09bc666eae
6 changed files with 152 additions and 0 deletions

View File

@ -0,0 +1,47 @@
# Лабораторная работа №7
## ПИбд-41, Курмыза Павел
## Как запустить ЛР
- Запустить файл main.py
## Используемые технологии
- Язык программирования Python
- Библиотеки: numpy, keras, tensorflow
## Что делает программа
- Программа считывает текст из файла формата .txt.
- Для работы без использования слоя встраивания, программа использует Tokenizer с настройкой char_level=True.
- После подготовки исходного текста и последовательностей для обучения модели, создается последовательная рекуррентная
нейронная сеть Sequential с двумя слоями LSTM (Long Short-Term Memory), который хорошо подходит для работы с
текстовыми данными.
- В слое Dense используется функция активации softmax для предсказания следующего слова.
- Модель компилируется с использованием функции потерь sparse_categorical_crossentropy и оптимизатора Adam.
- Далее модель обучается на 100 эпохах.
- После обучения программа использует начальный текст для генерации текста длиной 250 символов по умолчанию.
## Тестирование
Запустив программу, можно увидеть сгенерированный текст как на русском, так и на английском:
### Русский
Текст: Птица размахнула могучими крыльямичн ваего обманывает самого себя, ибо он думает, что успешно соврал, а люди
поняли и из деликатности промолчали.
![Russian](out_russian.jpg)
### Английский
Текст: It seemed a longer job a pid ere event that the doctor has two minutes to discuss the situ it wnow about the
final, one asked if she had to know about the final, one asked if she had to know about the final, one asked if she had
to know about the final, one asked if she.
![English](out_english.jpg)
## Вывод
По итогам выполнения программы, создается осмысленный текст как на русском, так и на английском языках.

View File

@ -0,0 +1,19 @@
Trying to get my students excited about biology is no easy task. Putting things in perspective helps.
If youre majoring in architecture or philosophy, you probably dont think you need to take a semester of college biology. But you do. For me, teaching this required class has been an education. The first year, I tried to humanize biological research by inviting colleagues in, to describe their projects. This went well until a visiting geneticists presentation was drowned out by students shouting about how “disgusting” and “vile” research was. Uh-oh. Weve got trouble, right here in the nonmajors classroom. Trouble with a capital T, and that rhymes with B and that stands for Bad Public Relations.
Leaping to the defense of historys researchers, I pointed out that no one in the room had polio, thanks to the treatment developed by our colleges own alumnus Jonas Salk. The angriest student looked at me blankly as I cited the thousands of chick embryos sacrificed in experiments that led to the vaccine. Like virtually all therapies for humans, the polio vaccine was tested in animals first. She stopped shouting.
Ive tried to look at biology as an outsider, as someone who experiences my field only on TV, where female scientists apparently spend a lot time blow-drying their hair and shopping for push-up bras between blood-sample-scraping expeditions. I wanted to get things in perspective: If law students had to spend five or six years in school, think up a novel law and get it passed, then their training would resemble that of a biology Ph.D. If a med student had to invent and test a new treatment for patients and prove it successful before being awarded an M.D., ditto. If my students remember nothing else, Id be happy if they leave with the idea that, just like art or music, science is a creative process.
Research is unpredictable. Put five biologists around a table in any bar, and a weird synergy takes over. Unexpected ideas emerge as new experiments are hastily diagrammed on cocktail napkins. Science isnt old information pressed like crumbling fall leaves between the pages of forgotten books. Its alive growing and shifting and blossoming. Funding basic research means that scientists can pursue ideas and chase down the unexpected zigs and zags that lead to important findings. If you fund us, they will come. I need these students voters to get this.
Each class has its own personality, and my third group acted like a chronically irritated 14-year-old. Every classroom activity was accompanied by eye rolls and sighs of exasperation. Im old enough now to realize that I cant really teach anyone anything; I can just try to create conditions that foster learning. When students meet me halfway, it sometimes works. Still, I felt personally affronted by the slacker attitude, because real science is an art. I tried a video of hydras tiny tentacle-draped pond animals to reveal how a creature with no legs or arms moves around, captures prey and reproduces. A film on sea horses, a species whose males handle pregnancy, drew laughter at the birth scenes.
With a week left in the semester, the students wanted to know about the final. One asked if she had to know the structure of a cell. I said yes, cells are fundamental. She retorted, “Why the hell do we need to know about a phospholipids bilayer?”
I sighed. “Heres why you need to know about the phospholipids bilayer. Some day you are going to be in the intensive-care unit with someone you love hooked up to a lot of tubes. You are going to be asking for a new treatment or a new drug or demanding to know why they arent getting better. If you remember anything about how research works, youll be saying, “I want this patient enrolled in a clinical trial! Now!”
I had everyones rapt attention. Like Bible salesman in foxholes, proresearch lobbyists would do a brisk business in an ICU. I continued, “In the event that the doctor has two minutes to discuss the situation and to describe the biology underlying the disease so that you can look up clinical trials, you are going to need to know what a cell is and how disease can impact it.”
It was a pretty good rant, aside from my use of “impact” as a verb. They got it, noting “cell structure” on their on their to-do lists. I showed the last of the sea-horse film. It wasnt going to be on the final, but I wanted to end the semester with something unique, something they didnt already know. Something were aware of only because some passionate scientist spends 12 hours a day underwater filming it. Something beautiful and amazing. Biology.

View File

@ -0,0 +1,69 @@
import numpy as np
from keras.layers import LSTM, Dense
from keras.models import Sequential
from keras.preprocessing.sequence import pad_sequences
from keras.preprocessing.text import Tokenizer
# Функция для генерации текста
def generate_text(seed_text, gen_length):
generated_text = seed_text
for _ in range(gen_length):
sequence = tokenizer.texts_to_sequences([seed_text])[0]
sequence = pad_sequences([sequence], maxlen=seq_length)
prediction = model.predict(sequence)[0]
predicted_index = np.argmax(prediction)
predicted_char = tokenizer.index_word[predicted_index]
generated_text += predicted_char
seed_text += predicted_char
seed_text = seed_text[1:]
return generated_text
# Чтение текста из файла
# with open('russian.txt', 'r', encoding='utf-8') as file:
# text = file.read()
with open('english.txt', 'r', encoding='utf-8') as file:
text = file.read()
# Создание экземпляра Tokenizer и обучение на тексте
tokenizer = Tokenizer(char_level=True)
tokenizer.fit_on_texts([text])
# Преобразование текста в последовательности чисел
sequences = tokenizer.texts_to_sequences([text])[0]
# Параметры модели
seq_length = 10
# Создание входных и выходных последовательностей
X_data, y_data = [], []
for i in range(seq_length, len(sequences)):
sequence = sequences[i - seq_length:i]
target = sequences[i]
X_data.append(sequence)
y_data.append(target)
# Преобразование данных в формат массивов numpy
X = pad_sequences(X_data, maxlen=seq_length)
y = np.array(y_data)
# Создание модели
vocab_size = len(tokenizer.word_index) + 1
model = Sequential()
model.add(LSTM(256, input_shape=(seq_length, 1), return_sequences=True))
model.add(LSTM(128, input_shape=(seq_length, 1)))
model.add(Dense(vocab_size, activation='softmax'))
# Компиляция модели
model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
# Обучение модели
model.fit(X, y, epochs=100, verbose=1)
# Генерация текста
# seed_text = "Птица размахнула могучими крыльями"
seed_text = "It seemed a longer job"
generated_text = generate_text(seed_text, 250)
print(generated_text)

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -0,0 +1,17 @@
Когда человек сознательно или интуитивно выбирает себе в жизни какую-то цель, жизненную задачу, он невольно дает себе оценку. По тому, ради чего человек живет, можно судить и о его самооценке - низкой или высокой.
Если человек живет, чтобы приносить людям добро, облегчать их страдания, давать людям радость, то он оценивает себя на уровне этой своей человечности. Он ставит себе цель, достойную человека.
Только такая цель позволяет человеку прожить свою жизнь с достоинством и получить настоящую радость. Да, радость! Подумайте: если человек ставит себе задачей увеличивать в жизни добро, приносить людям счастье, какие неудачи могут его постигнуть? Не тому помочь? Но много ли людей не нуждаются в помощи?
Если жить только для себя, своими мелкими заботами о собственном благополучии, то от прожитого не останется и следа. Если же жить для других, то другие сберегут то, чему служил, чему отдавал силы.
Можно по-разному определять цель своего существования, но цель должна быть. Надо иметь и принципы в жизни. Одно правило в жизни должно быть у каждого человека, в его цели жизни, в его принципах жизни, в его поведении: надо прожить жизнь с достоинством, чтобы не стыдно было вспоминать.
Достоинство требует доброты, великодушия, умения не быть эгоистом, быть правдивым, хорошим другом, находить радость в помощи другим.
Ради достоинства жизни надо уметь отказываться от мелких удовольствий и немалых тоже… Уметь извиняться, признавать перед другими ошибку - лучше, чем врать.
Обманывая, человек прежде всего обманывает самого себя, ибо он думает, что успешно соврал, а люди поняли и из деликатности промолчали.
Жизнь - прежде всего творчество, но это не значит, что каждый человек, чтобы жить, должен родиться художником, балериной или ученым. Можно творить просто добрую атмосферу вокруг себя. Человек может принести с собой атмосферу подозрительности, какого-то тягостного молчания, а может внести сразу радость, свет. Вот это и есть творчество.