сырой текст задания → плоская карточка: README.md
This commit is contained in:
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
**Автор:** *[Ваше имя]*
|
||||
**Дата создания:** 26‑05‑2026
|
||||
Reference in New Issue
Block a user