Skip to content
This repository was archived by the owner on Jun 29, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
name: Lab07 LSTM Check

on:
push:
branches: [ main, master, b52 ]
pull_request:
branches: [ main, master, b52 ]

jobs:
check:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Check required files exist
run: |
echo "=== Проверка наличия файлов ==="
test -f src/lstm.py && echo "OK: src/lstm.py найден" || (echo "FAIL: src/lstm.py отсутствует" && exit 1)
test -f src/input.txt && echo "OK: src/input.txt найден" || (echo "FAIL: src/input.txt отсутствует" && exit 1)
test -f result/gen.txt && echo "OK: result/gen.txt найден" || (echo "FAIL: result/gen.txt отсутствует" && exit 1)

- name: Check input.txt word count (>= 10000)
run: |
echo "=== Проверка объёма input.txt ==="
WORDS=$(python3 -c "
with open('src/input.txt', encoding='utf-8') as f:
text = f.read()
import re
words = re.findall(r'[А-Яа-яЁёA-Za-z]+', text)
print(len(words))
")
echo "Слов в input.txt: $WORDS"
python3 -c "
count = $WORDS
assert count >= 10000, f'FAIL: input.txt содержит {count} слов, нужно >= 10000'
print(f'OK: input.txt содержит {count} слов (>= 10000)')
"

- name: Check gen.txt word count (>= 1000)
run: |
echo "=== Проверка объёма result/gen.txt ==="
WORDS=$(python3 -c "
with open('result/gen.txt', encoding='utf-8') as f:
text = f.read()
import re
words = re.findall(r'[А-Яа-яЁёA-Za-z]+', text)
print(len(words))
")
echo "Слов в gen.txt: $WORDS"
python3 -c "
count = $WORDS
assert count >= 1000, f'FAIL: gen.txt содержит {count} слов, нужно >= 1000'
print(f'OK: gen.txt содержит {count} слов (>= 1000)')
"

- name: Check lstm.py syntax
run: |
echo "=== Проверка синтаксиса lstm.py ==="
python3 -m py_compile src/lstm.py && echo "OK: синтаксис lstm.py корректен" || (echo "FAIL: ошибка синтаксиса в lstm.py" && exit 1)

- name: Check lstm.py contains key components
run: |
echo "=== Проверка содержимого lstm.py ==="
python3 -c "
with open('src/lstm.py', encoding='utf-8') as f:
code = f.read()

checks = {
'LSTM': 'LSTM слой',
'Sequential': 'Sequential модель',
'word_to_index': 'пословный словарь (word_to_index)',
'max_length': 'параметр max_length',
'sample_index': 'функция sample_index (температура)',
'generate_text':'функция generate_text',
'model.fit': 'обучение модели (model.fit)',
}

failed = []
for key, label in checks.items():
if key in code:
print(f'OK: найден компонент — {label}')
else:
print(f'FAIL: не найден — {label}')
failed.append(label)

if failed:
raise SystemExit(f'Отсутствуют компоненты: {failed}')
print('Все компоненты присутствуют.')
"

- name: Summary
run: |
echo ""
echo "================================"
echo " Все проверки пройдены успешно!"
echo "================================"
69 changes: 69 additions & 0 deletions result/gen.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
Катится, катится колобок по дорожке, а навстречу ему заяц. Колобок, колобок, я тебя съем! Не ешь меня, косой зайчик! Я тебе песенку спою. Я колобок, колобок, по амбару метён, по сусеку скребён, на сметане мешён, в печку сажён, на окошке стужён. Я от дедушки ушёл, я от бабушки ушёл, от тебя, зайца, подавно уйду!

И покатился колобок дальше по лесной тропинке. Катится колобок по тёмному лесу, а навстречу ему волк. Колобок, колобок, я тебя съем! Не ешь меня, серый волк! Я тебе песенку спою. Я от дедушки ушёл, я от бабушки ушёл, я от зайца ушёл, от тебя, волк, подавно уйду!

Катится колобок дальше. Встретил медведя в лесу. Медведь говорит: колобок, колобок, я тебя съем! Колобок запел свою песенку и покатился дальше по дороге. Медведь только поглядел вслед колобку.

Жил-был старик со своею старухой. Просит старик: испеки, старуха, колобок. Старуха по сусеку поскребла, по амбару помела, наскребла муки и замесила тесто. Скатала колобок, изжарила в масле и положила на окно простынуть.

Жили-были три медведя в лесу в своём домике. Один медведь был отец, его звали Михаил Иванович. Он был большой, лохматый медведь. Другой была медведица, его жена, поменьше. Третий был маленький медвежонок Мишутка.

Однажды они ушли из дома погулять по лесу. В это время в лесу шла девочка Машенька. Она заблудилась и вышла к домику трёх медведей. Машенька отворила дверь и вошла в дом. В доме никого не было.

Машенька увидела три стула. Она попробовала сесть на большой стул — он был очень высокий. Потом на средний стул — тоже неудобно. Потом на маленький стул — в самый раз!

Вернулись домой три медведя. Михаил Иванович посмотрел на свой стул и заревел: «Кто сидел на моём стуле?» Медведица посмотрела на свой стул и сказала: «Кто сидел на моём стуле?» А Мишутка увидел свой сломанный стул и заплакал: «Кто сидел на моём стуле и сломал его!»

Машенька проснулась, увидела медведей, испугалась и прыгнула в окно. И убежала в лес. И никогда больше не ходила в чужие дома.

Жили-были лиса да заяц. У лисы была избушка ледяная, а у зайца — лубяная. Пришла весна, у лисы избушка растаяла. Вот лиса и стала проситься к зайцу: «Пусти меня, зайчик, погреться». Заяц пустил её. Да лиса и выгнала зайца.

Идёт зайчик дорогой, плачет. Навстречу ему собаки. Зайчик рассказал им свою беду. Собаки говорят: «Не плачь, зайчик! Мы выгоним лису». Подошли к избушке и закричали: «Уходи, лиса, вон!» А лиса отвечает: «Как выскочу, как выпрыгну, пойдут клочки по закоулочкам!» Собаки испугались и убежали.

Навстречу петух с косой. Кричит петух: «Ку-ка-ре-ку! Несу косу на плечи, хочу лису посечи! Поди, лиса, вон!» Лиса испугалась и выскочила из избушки. И стали они с зайчиком жить вместе в лубяной избушке.

В некотором царстве, в некотором государстве жил-был царь. Было у него три сына. Решил царь женить сыновей. Повелел он им пустить стрелы в разные стороны. Куда стрела полетит — там и суженую искать.

Иван-царевич пустил стрелу — полетела она в дремучий лес. Пошёл Иван-царевич в лес искать стрелу. Ходил-ходил и нашёл стрелу у болота. Сидит на камне лягушка, держит стрелу в лапках.

Лягушка говорит: «Возьми меня в жёны, не пожалеешь!» Делать нечего. Иван-царевич взял лягушку и привёз домой. Ночью лягушка сбросила лягушачью шкурку, стала Василисой Премудрой и соткала дивный ковёр. Царь похвалил только Ивана.

Иван сжёг лягушачью шкурку. Заплакала Василиса: «Ах, Иванушка, что же ты наделал?» И исчезла. Ушла к Кощею Бессмертному. Иван пустился в путь искать жену.

Пришёл Иван к Бабе-яге. Она указала ему путь. Нашёл Иван коня богатырского, объездил его и поехал выручать Василису Премудрую. Разбил Иван яйцо, сломал иглу — и умер Кощей Бессмертный. Освободил Иван Василису, и вернулись они домой.

Жил старик со своею старухой у самого синего моря. Дед ловил неводом рыбу. Раз закинул невод — пришла рыбка золотая. Взмолилась рыбка: «Отпусти меня, старче! Откуплюсь, чем только пожелаешь». Удивился старик, отпустил рыбку.

Старуха ругает его: «Не умел ты взять выкупа с рыбки! Воротись к рыбке, хочу новое корыто». Пошёл старик к морю. Приплыла рыбка, дала корыто. Старуха опять бранится: «Хочу новую избу». Дала рыбка избу. Потом старуха захотела быть столбовою дворянкой, потом царицей, потом владычицей морскою.

Пошёл старик к морю. На море чёрная буря. Морские волны так и ходят ходуном. Ничего не сказала рыбка — лишь хвостом по воде плеснула. Вернулся старик к старухе — перед ним опять ветхая землянка, и сидит его старуха у разбитого корыта.

В некотором царстве жил охотник Егор. Была у него семья: жена Марина и трое детей. Фёдор любил читать книги, Пётр любил мастерить, Дарья любила петь. Зимой ударил сильный мороз. Охотник Егор пошёл в лес и долго не возвращался.

Старушка дала Фёдору маленький сундучок. «Открой его дома». Фёдор принёс сундучок домой. Открыли — а там книги! Много-много книг, каких Фёдор никогда не видывал. С тех пор стал он учёным человеком.

Пётр вырезал из особого дерева скрипку. Скрипка пела так красиво, что когда Пётр играл на ней, птицы прилетали слушать. Прослышал о чудесной скрипке сам царь. Пригласил Петра ко двору. Царь был в восторге. Он подарил Петру большой дом и мастерскую.

Дарья пела у реки. Её песню услышал молодой князь. Он остановил коня и слушал долго. Потом подъехал, спросил, кто она такая. Попросил руки у её отца Егора. Егор благословил их. Сыграли свадьбу. Дарья стала княгиней.

Так жила семья охотника Егора — в труде, в любви, в добре. Потому что добро всегда возвращается добром.

Жил купец Афанасий. Был у него помощник молодой человек по имени Алексей. Алексей был честным и трудолюбивым. Утром раньше всех открывал лавку, вечером позже всех закрывал. Никогда не обманывал покупателей.

Купец заболел. Доверил всё дело Алексею. Алексей торговал честно: ни копейки лишней не взял. Когда купец выздоровел и проверил счета — всё сошлось. Купец отдал Алексею часть своей лавки. Стали они торговать вместе.

Купец Афанасий состарился. Перед смертью сказал Алексею: «Оставляю тебе всё дело. Ты честный человек, а честность — дороже всякого золота». Так стал Алексей богатым купцом. Но богатство не изменило его. Он по-прежнему торговал честно, помогал бедным.

В дальней деревне жила знахарка Прасковья. Знала она травы лечебные, умела готовить отвары от разных болезней. Была у неё внучка Катеринка. Прасковья учила её травничеству. Катеринка была прилежной ученицей.

Однажды заболел ребёнок в деревне. Мать прибежала к Прасковье. Прасковья сама была больна, послала Катеринку. Катеринка пошла в лес, набрала нужных трав, сварила отвар. К утру жар спал. Мальчик пошёл на поправку. Мать благодарила Катеринку.

С тех пор стала Катеринка помогать бабушке. А когда Прасковья совсем состарилась, Катеринка взяла всё дело в свои руки. Стала она новой знахаркой и никому не отказывала в помощи.

На краю земли, где небо встречается с морем, жил рыбак Степан. В сети попала маленькая русалочка. Степан отпустил её обратно в море. Русалочка говорит: «Спасибо тебе! За это я дам тебе три желания».

Степан говорит: «Первое желание: чтобы в море всегда была рыба. Второе желание: чтобы моря были спокойными. Третье желание: чтобы дети наши видели красоту моря».

Русалочка удивилась: все три желания для других, ни одного для себя. «Ты добрый человек, Степан. Пусть же и тебе сопутствует удача!» С тех пор рыбалка у Степана всегда была удачной.

В тёмную ночь, когда звёзды светят особенно ярко, старые бабушки рассказывают детям сказки. В сказках живут добрые и злые волшебники, смелые герои, мудрые звери. В сказках всё заканчивается хорошо, потому что добро сильнее зла. Слушайте сказки. Рассказывайте их своим детям и внукам. Пусть сказки живут вечно.
Loading