4.6 KiB
Сырой текст задания → плоская карточка
Описание проекта
Проект предназначен для преобразования сырого текста (например, из файла .txt или md) в плоскую карточку – компактный формат, пригодный для импорта в системы обучения, флеш-карточки и т.п.
Ключевая идея: взять исходный текст задания, разбить его на логические части (вопросы/ответы), добавить метаданные (теги, уровень сложности) и вывести результат в виде простого CSV‑файла.
Важно – проект не содержит графического интерфейса. Всё делается через командную строку.
Структура репозитория
.
├── src/
│ ├── main.py # точка входа, обрабатывает CLI
│ └── processor.py # логика преобразования текста в карточки
├── tests/ # unit‑тесты (необязательно)
├── requirements.txt # зависимости проекта
└── README.md
Установка зависимостей
# Создайте виртуальное окружение (рекомендуется)
python -m venv .venv
source .venv/bin/activate # Windows: .\.venv\Scripts\activate
# Установите зависимости из файла requirements.txt
pip install -r requirements.txt
requirements.txt содержит только стандартные библиотеки, но если вы захотите добавить поддержку Markdown‑парсинга или NLP‑модулей – просто добавьте нужный пакет.
Запуск проекта
1. Преобразование одного файла
python src/main.py --input raw_task.txt --output flat_card.csv
--input– путь к файлу с сырым текстом задания.--output– куда будет сохранён CSV‑файл.
Параметры (опциональные)
| Флаг | Описание |
|---|---|
--tags TAG1,TAG2 |
Добавить теги, разделённые запятой. |
--difficulty LEVEL |
Указать уровень сложности (easy, medium, hard). |
2. Массовый запуск
Если у вас несколько файлов в каталоге tasks/, можно использовать цикл:
for f in tasks/*.txt; do
python src/main.py --input "$f" \
--output "cards/$(basename "${f%.*}").csv" \
--tags math,algebra
done
3. Проверка работы
После выполнения вы получите CSV‑файл вида:
question,answer,tags,difficulty
"What is the derivative of x^2?","2x","math,calculus","easy"
...
Пример использования
Предположим, у вас есть файл example_task.txt со следующим содержанием:
Вопрос: Какой результат умножения 7 и 6?
Ответ: 42
Теги: математика, арифметика
Уровень сложности: средний
Запустите скрипт:
python src/main.py --input example_task.txt --output example_card.csv
Полученный CSV будет выглядеть так:
question,answer,tags,difficulty
"Какой результат умножения 7 и 6?","42","математика, арифметика","средний"
Теперь файл example_card.csv можно импортировать в любую систему флеш‑карточек (Anki, Quizlet и др.).
Тесты
Если вы хотите проверить корректность работы:
pytest tests/
(Требуется пакет pytest, добавьте его в requirements.txt при необходимости.)
Вклад
- Сделайте форк репозитория.
- Создайте ветку с вашим изменением (
git checkout -b feature/…). - Запуште и откройте Pull Request.
Автор: [Ваше имя]
Дата создания: 26‑05‑2026