From f447f0b776509135a3f1be67841260f80658d63d Mon Sep 17 00:00:00 2001 From: AnikeevAnA Date: Sat, 29 Nov 2025 09:21:57 +0000 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B8=D0=BB(?= =?UTF-8?q?=D0=B0)=20=D0=BD=D0=B0=20'labworks/LW4/report.md'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- labworks/LW4/report.md | 122 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) diff --git a/labworks/LW4/report.md b/labworks/LW4/report.md index e69de29..814bc28 100644 --- a/labworks/LW4/report.md +++ b/labworks/LW4/report.md @@ -0,0 +1,122 @@ +# Лабораторная работа №4: Распознавание последовательностей +**Аникеев А.А; Чагин С.А. — А-02-22** +## Номер бригады - 5 + +### Цель работы + +Получить практические навыки обработки текстовой информации с помощью рекуррентных искусственных нейронных сетей при решении задачи определения тональности текста. + +### Определение варианта + +- Номер бригады: k = 5 +- random_state = (4k - 1) = 19 + +### Подготовка среды + +```python +import os +os.chdir('/content/drive/MyDrive/Colab Notebooks/IS_LR4') +``` + +--- + +### Пункт №1. Настройка блокнота для работы с аппаратным ускорителем GPU. + +```python +import tensorflow as tf +device_name = tf.test.gpu_device_name() +if device_name != '/device:GPU:0': + raise SystemError('GPU device not found') +print('Found GPU at: {}'.format(device_name)) +``` + +### Пункт №2. Загрузка набора данных IMDb. + +```python +# загрузка датасета +from keras.datasets import imdb +vocabulary_size = 5000 +index_from = 3 +(X_train, y_train), (X_test, y_test) = imdb.load_data(path="imdb.npz", +num_words=vocabulary_size, +skip_top=0, +maxlen=None, +seed=19, +start_char=1, +oov_char=2, +index_from=index_from +) +``` + +**Результат выполнения:** +``` +Размер обучающего множества X_train: (25000,) +Размер обучающих меток y_train: (25000,) +Размер тестового множества X_test: (25000,) +Размер тестовых меток y_test: (25000,) +``` + +### Пункт №3. Вывод отзывов из обучающего множества в виде списка индексов слов. + +```python +# создание словаря для перевода индексов в слова +# заргузка словаря "слово:индекс" +word_to_id = imdb.get_word_index() +# уточнение словаря +word_to_id = {key:(value + index_from) for key,value in word_to_id.items()} +word_to_id[""] = 0 +word_to_id[""] = 1 +word_to_id[""] = 2 +word_to_id[""] = 3 +# создание обратного словаря "индекс:слово" +id_to_word = {value:key for key,value in word_to_id.items()} + +idx = 19 +review_indices = X_train[idx] +print("Отзыв в виде индексов:\n", review_indices) + +review_text = " ".join(id_to_word.get(i, "?") for i in review_indices) +print("\nОтзыв в виде текста:\n", review_text) + +print("\nДлина отзыва (количество индексов):", len(review_indices)) + +label = y_train[idx] +class_name = "Positive" if label == 1 else "Negative" +print("Метка класса:", label, "| Класс:", class_name) +``` + +**Результат выполнения:** +``` +Отзыв в виде индексов: + [1, 13, 296, 14, 22, 171, 211, 5, 32, 13, 70, 135, 15, 14, 9, 364, 352, 1916, 5, 15, 12, 127, 24, 28, 233, 8, 81, 19, 6, 147, 479, 2309, 156, 354, 9, 55, 338, 21, 12, 9, 959, 7, 1763, 116, 4361, 259, 37, 296, 14, 22, 150, 242, 104, 7, 2145, 17, 49, 932, 2, 2, 37, 620, 19, 6, 1056, 40, 49, 4618, 2112, 13, 70, 64, 8, 135, 15, 50, 9, 76, 128, 108, 44, 2145, 5, 2321, 11, 148, 153, 5, 15, 2200, 7, 445, 9, 55, 76, 467, 856, 13, 70, 386, 1124, 22, 2, 11, 63, 25, 70, 67, 530, 239, 7, 2, 284, 2, 2, 11, 6, 1686, 7, 2, 2145] + +Отзыв в виде текста: + i watched this film few times and all i can say that this is low budget rubbish and that it does not have anything to do with a real history facts actors performances is very poor but it is result of limited acting possibilities anyone who watched this film now probably think of hitler as some crazy who running with a gun like some chicago gangster i can only to say that there is much better films about hitler and germany in those years and that rise of evil is very much under average i can recommend german film in which you can see brilliant performance of actor in a roll of hitler + +Длина отзыва (количество индексов): 121 +Метка класса: 0 | Класс: Negative +``` + +### Пункт №4. Вывод максимальной и минимальной длины отзыва в обучающем множестве. + +```python +print("Максимальная длина отзыва:", len(max(X_train, key=len))) +print("Минимальная длина отзыва:", len(min(X_train, key=len))) +``` + +**Результат выполнения:** +``` +Максимальная длина отзыва: 2494 +Минимальная длина отзыва: 11 +``` + +### Пункт №5. Проведение предобработки данных. + +```python + +``` + +**Результат выполнения:** +``` + +``` \ No newline at end of file