сырой текст задания → плоская карточка: README.md

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