From c35f0c25dd38b41bc89c4b29bfa6a7c71932b0cd Mon Sep 17 00:00:00 2001 From: Nelikey Date: Fri, 12 Jan 2024 12:01:18 +0400 Subject: [PATCH] lab7 --- kozlov_alexey_lab_7/README.md | 66 ++++++++++++++++++++++++++++++ kozlov_alexey_lab_7/english.png | Bin 0 -> 22969 bytes kozlov_alexey_lab_7/english.txt | 14 +++++++ kozlov_alexey_lab_7/lab7.py | 70 ++++++++++++++++++++++++++++++++ kozlov_alexey_lab_7/russian.png | Bin 0 -> 22934 bytes kozlov_alexey_lab_7/russian.txt | 7 ++++ 6 files changed, 157 insertions(+) create mode 100644 kozlov_alexey_lab_7/README.md create mode 100644 kozlov_alexey_lab_7/english.png create mode 100644 kozlov_alexey_lab_7/english.txt create mode 100644 kozlov_alexey_lab_7/lab7.py create mode 100644 kozlov_alexey_lab_7/russian.png create mode 100644 kozlov_alexey_lab_7/russian.txt diff --git a/kozlov_alexey_lab_7/README.md b/kozlov_alexey_lab_7/README.md new file mode 100644 index 0000000..2b0ab94 --- /dev/null +++ b/kozlov_alexey_lab_7/README.md @@ -0,0 +1,66 @@ +# Лабораторная работа №7. Рекуррентная нейронная сетьи задача генерации текста +## 14 вариант +___ + +### Задание: +Выбрать художественный текст (четные варианты – русскоязычный, нечетные – англоязычный)и обучить на нем рекуррентную нейронную сеть для решения задачи генерации. Подобрать архитектуру и параметры так, чтобы приблизиться к максимально осмысленному результату. + +___ + +### Запуск +- Запустить файл lab7.py (Для английского языка необходимо в коде выбрать соответсвующий файл и начальную строку) + +### Используемые технологии +- Язык программирования **Python** +- Среда разработки **PyCharm** +- Библиотеки: + * keras + * tensorflow + * numpy + +### Описание программы +Код программы выполняет следующие действия: + +1. Импортирует необходимые библиотеки: numpy, Tokenizer и pad_sequences из keras.preprocessing.text, Sequential, LSTM, Dense, Dropout из keras.models. + +2. Читает текст из файла "english.txt" и сохраняет его содержимое в переменную "text". + +3. Задает параметр "seq_length" как длину входной последовательности. + +4. Создает экземпляр класса Tokenizer, который разбивает текст на токены (в данном случае, символы) и обучает его на тексте. + +5. Преобразует текст в последовательности чисел с использованием метода texts_to_sequences. + +6. Создает входные и выходные последовательности для обучения модели с помощью цикла. Входная последовательность - это последние "seq_length" символов перед текущим символом, а выходная последовательность - это текущий символ. + +7. Преобразует входные и выходные данные в формат массивов numpy с использованием функции pad_sequences. + +8. Создает модель RNN (рекуррентная нейронная сеть) с помощью класса Sequential из keras.models. Модель состоит из двух слоев LSTM, которые последовательно соединены. Первый LSTM-слои принимает входную последовательность, а второй - выход первого слоя. + +9. Компилирует модель, задавая функцию потерь, оптимизатор и метрику для оценки модели. + +10. Обучает модель на входных и выходных данных с помощью метода fit. + +11. Определяет функцию generate_text для генерации текста. Функция принимает начальный текст seed_text и длину генерируемого текста gen_length. + +12. В цикле генерирует текст, используя обученную модель. Начиная с seed_text, функция преобразует его в последовательность чисел, затем преобразует в формат массива numpy и делает предсказание с помощью модели. Следующий символ выбирается с помощью функции argmax для получения индекса символа с наибольшей вероятностью. Затем символ добавляется к сгенерированному тексту и seed_text обновляется, чтобы учесть новый символ. + +13. Возвращает сгенерированный текст. + +14. Генерирует текст, используя seed_text и функцию generate_text, и выводит результат. + +___ +### Пример работы + +![Graphics](russian.png) +```text +Результат работы модели на основании файла с текстом на русском языке +``` + +![Graphics](english.png) +```text +Результат работы модели на основании файла с текстом на английском языке +``` + +### Вывод +На основе выходных данных можно сделать следующий вывод о довольно успешной работе модели, тексты содержат осмысленное содержание и практически не содержат пунктуационных и грамматических ошибок. \ No newline at end of file diff --git a/kozlov_alexey_lab_7/english.png b/kozlov_alexey_lab_7/english.png new file mode 100644 index 0000000000000000000000000000000000000000..1b842c222b4cdda1c63eccc1ea5d499598f84171 GIT binary patch literal 22969 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 E0SbWq&Hw-a literal 0 HcmV?d00001 diff --git a/kozlov_alexey_lab_7/english.txt b/kozlov_alexey_lab_7/english.txt new file mode 100644 index 0000000..f7f1d4c --- /dev/null +++ b/kozlov_alexey_lab_7/english.txt @@ -0,0 +1,14 @@ +Canada is a rapidly developing country with incredibly beautiful nature. It is the second largest state in the world (after Russia): its huge territory extends from Arctic glaciers to coniferous and mixed forests on the border with the USA. Canada has rich plant world (oak, maple, fir, pine, etc.) and animal world (wolf, lynx, deer, and various species of fish). It is famous for the colossal Great Lakes and national parks. +The history of Canada is tied with two cultures: English and French. Canada was born in the late 16 th and early 17 th centuries when French colonists settled on the land of the Indian tribes. Later, the British arrived and founded their cities, which led to wars between them, the French, and indigenous people. The French part, with the center in Quebec, and the English part of Canada united in 1840. For a long time, Canada remained the British colony but became sovereign in the 20 th century. +Nowadays, Canada is a member of the Commonwealth of Nations. Although its head is British monarch, the Governor-General and the Parliament sitting in the capital (Ottawa) are independent in their decisions. The country consists of 10 provinces and 3 territories; each subject has its own proportion of Francophone and Anglophone population, but Canada is officially bilingual. Many immigrants from France, Ireland, German, Italy, etc. preserve their native cultures and create the situation of multiculturalism supported by the state. +Due to improved mining industry, agriculture, and trade, Canada has a very high living standard. Toronto, Montreal, Vancouver attract tourists, as well as amazing landscapes and numerous ethnic festivals. +Canada is situated on the north of Northern America, washed by the Atlantic Ocean in the east, the Pacific Ocean in the west, and the Arctic Ocean in the north and in the northeast by the Baffin Bay and the Davis Strait, which separate it from Greenland, In the south and in the north Canada borders on the USA. It is a land of vast distances and rich natural resources. Canada became a self-governing dominion in 1867 while retaining ties to the British crown. Canada’s territory is the world’s second largest country, surpassed in size only by Russia. It includes many islands, notably the Canadian Arctic Islands, also called Arctic Archipelago in the Arctic Ocean. Economically and technologically the nation has developed in parallel with the US, its neighbour to the south. The total area is about 10 million sq km. Canada is slightly larger than the US. It is an important manufacturer, and its major cities, such as Toronto, Montreal, Vancouver, Ottawa, Edmonton, Calgary and Winnipeg are centres of commerce and industry. +The climate of Canada varies from temperate in the south to subarctic and arctic in the north. The highest Canadian point is Mount Logan 5,959 m. The population of Canada is about 32 million people. There are two state languages: English and French. English is spoken by 60 % of population; French is spoken by 23 % of people. +Most of Canada’s inhabitants live in the southern part of the country and vast areas of the north are sparsely inhabited. The country is divided into ten provinces (Alberta, British Columbia, Manitoba, New Brunswick, Newfoundland, Nova Scotia, Ontario, Prince Edward Island, Quebec, Saskatchewan) and three territories (Northwest Territories, Yukon Territory, Nunavut Territory). The third territory called Nunavut, to be carved from the present Northwest Territories, was created in 1999. +The name Canada is derived from an Iroquoian term meaning «village». +Among the great rivers of Canada there are the Saint Lawrence River, draining the Great Lakes and emptying into the Gulf of Saint Lawrence; the Ottawa and the Saguenay rivers, the principal affluents of the Saint Lawrence River; the Saint John River, emptying into the Bay of Fundy. +The government type is confederation with parliamentary democracy. The capital of Canada is Ottawa. +Canada became independent from the United Kingdom on July, 1, 1867. Legal system is based on the English common law, except in Quebec, where civil law system based on the French law prevails. +The racial and ethnic makeup of the Canadian people is diversified. About 35 percent of the population is composed of people of the British origin. People of the French origin total about 25 percent of the population. The vast majority of French-speaking Canadians reside in Quebec, where they make up about three-fourths of the population; large numbers also live in Ontario and New Brunswick. +French-speaking Canadians maintain their language, culture, and traditions, and the federal government follows the policy of a bilingual and bicultural nation. During the 1970s and 1980s the proportion of Asians among the Canadian population increased, and today those who count their ancestry as wholly Asian make up 8 to 10 percent of the population. More than two-thirds of the Asian immigrants live in Ontario or British Columbia. The remainder of the population is composed of people of various ethnic groups, such as German, Italian, Ukrainian, Netherlands Dutch, Scandinavian, Polish, Hungarian, Greek, and Native American. Blacks have never constituted\a major segment of the Canadian population. Indigenous people make up nearly 2 percent of Canada’s inhabitants. +The largest religious community in Canada is Roman Catholic. Nearly half of Canadians who are Roman Catholic live in Quebec. Of the Protestant denominations in Canada the largest is the United Church of Canada, followed by the Anglican Church of Canada. Other important Protestant groups are the Baptist, Presbyterian and Lutheran. Nearly 2 percent of the population are Orthodox. Muslim and Jewish adherents each number about 1 percent. A substantial number of Buddhists, Hindus and Sikhs have been brought to the country in recent years by immigration. Nearly 13 percent of Canadians claim no religion. diff --git a/kozlov_alexey_lab_7/lab7.py b/kozlov_alexey_lab_7/lab7.py new file mode 100644 index 0000000..feae8b2 --- /dev/null +++ b/kozlov_alexey_lab_7/lab7.py @@ -0,0 +1,70 @@ +import numpy as np +from keras.preprocessing.text import Tokenizer +from keras.preprocessing.sequence import pad_sequences +from keras.models import Sequential +from keras.layers import LSTM, Dense, Dropout + +# Чтение текста из файла +#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() + +# Параметры модели +seq_length = 10 + +# Создание экземпляра Tokenizer и обучение на тексте +tokenizer = Tokenizer(char_level=True) +tokenizer.fit_on_texts([text]) + +# Преобразование текста в последовательности чисел +sequences = tokenizer.texts_to_sequences([text])[0] + +# Создание входных и выходных последовательностей +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) + +# Создание модели RNN +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) + + +# Функция для генерации текста +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 + +# Генерация текста +#seed_text = "Это было бы чудом" +seed_text = "The climate of" +generated_text = generate_text(seed_text, 250) +print(generated_text) \ No newline at end of file diff --git a/kozlov_alexey_lab_7/russian.png b/kozlov_alexey_lab_7/russian.png new file mode 100644 index 0000000000000000000000000000000000000000..7512d3ad5ef6181358a21faf94bb1bd49f565f3c GIT binary patch literal 22934 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 qp8G8`&M=aYkgdlwa57!=wzVvS<;P^HG literal 0 HcmV?d00001 diff --git a/kozlov_alexey_lab_7/russian.txt b/kozlov_alexey_lab_7/russian.txt new file mode 100644 index 0000000..193d323 --- /dev/null +++ b/kozlov_alexey_lab_7/russian.txt @@ -0,0 +1,7 @@ +Мир таков, каков он есть. Трудно предположить, чтобы мир был создан единственно для удовлетворения наших потребностей. Это было бы чудом из чудес. Мир нейтрален. Он не дружествен и не враждебен человеку. Вам внушили, что человек рождается для того, чтобы умереть, и что вы должны всю жизнь терзаться этой мыслью. Чего ради? Смерть - не факт сознания. “Смысл раздумий о смерти в том, что они лишены смысла”, - писал Монтерлан. Смерть близких потрясает нас. А наша собственная? Бояться ее - значит представлять себе и мир, где мы есть, и мир, где нас нет. Эти два образа несовместимы. +Вам внушили, что мы живем на краю пропасти, но даже если мы идем по краю пропасти, ничто не толкает нас вниз. +Вам внушили, что старые моральные ценности канули в прошлое. Это ложь Я напомню вам для начала несколько древних как мир истин +Нельзя жить для себя. Думая только о себе, человек всегда найдет тысячу причин чувствовать себя несчастным. Никогда он не делал всего того, что хотел и должен был делать, никогда не получал всего того, чего, по его мнению, заслуживал, редко был любим так, как мечтал быть любимым. Без конца пережёвывая свое прошлое, он будет испытывать одни сожаления Зачеркнуть прошлое все равно невозможно, попытайтесь лучше создать настоящее, которым вы сможете гордиться. Всякий, кто живет ради других - ради своей страны, ради женщины, ради творчества, ради голодающих или гонимых, - словно по волшебству забывает свою тоску +Второе правило - надо действовать. Вместо того, чтобы жаловаться на абсурдность мира, постараемся преобразить тот уголок, куда забросила нас судьба. Мы не в силах изменить вселенную, да и не стремимся к этому. Наши цели ближе и проще: заниматься своим делом - правильно выбрать его, глубоко изучить и достичь в нем мастерства Если человек в совершенстве овладел каким-нибудь ремеслом, работа приносит ему счастье. +Третье правило - надо верить в силу воли Безусловно, никто из нас не всемогущ. Не в моей власти помешать войне, но мои призывы, помноженные на призывы миллионов других людей, ослабят угрозу войны. Я не в силах выиграть битву, но я в силах быть храбрым солдатом, исполнить свой долг. “Возможности наши зависят от того, на что мы дерзнём,” поэтому надо быть всегда в форме. Усилием воли человек заставляет себя трудиться на совесть и совершать геройские поступки. Быть может, воля и есть царица добродетелей. +Важно и четвертое правило - надо хранить верность. Верность слову, обязательствам, другим, самому себе. \ No newline at end of file