https://github.com/ark2016/word-segmentation
Задача: Восстановление пропущенных пробелов в тексте с помощью NLP / DL / алгоритма.
https://github.com/ark2016/word-segmentation
ai llm ml ollama word-segmentation
Last synced: 3 months ago
JSON representation
Задача: Восстановление пропущенных пробелов в тексте с помощью NLP / DL / алгоритма.
- Host: GitHub
- URL: https://github.com/ark2016/word-segmentation
- Owner: ark2016
- Created: 2025-09-21T16:02:52.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-09-22T20:22:42.000Z (9 months ago)
- Last Synced: 2025-10-05T04:51:21.789Z (9 months ago)
- Topics: ai, llm, ml, ollama, word-segmentation
- Language: Python
- Homepage:
- Size: 29.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Word Segmentation Solution
Решение для восстановления пропущенных пробелов в русском тексте с использованием LLM через Ollama.
## Выбор модели
Используется **QVikhr-3-1.7B-Instruction-noreasoning** - очень лёгкая модель (1.7B параметров), которая является SOTA среди русскоязычных моделей в своём классе. Оптимальное соотношение качества и скорости для задач NLP.
## Быстрый старт
### 1. Установка Ollama
```bash
curl -fsSL https://ollama.com/install.sh | sh
```
### 2. Запуск модели
```bash
ollama run hf.co/Vikhrmodels/QVikhr-3-1.7B-Instruction-noreasoning-GGUF:Q4_K_M
```
### 3. Подготовка окружения
```bash
python3 -m venv venv
source venv/bin/activate
pip install pandas numpy requests
```
### 4. Запуск обработки
```bash
export OLLAMA_API_URL=http://localhost:11434
python space_restoration_solution.py
```
## Результат
Файл `submission.csv` будет содержать:
- `id` - идентификатор записи
- `predicted_positions` - список позиций для вставки пробелов
**Для отправки**: переименуйте `submission_fixed_with_quotes.csv` в `.txt` формат для загрузки в систему.
## Требования
- GPU с 4GB+ VRAM
- CUDA совместимая видеокарта
- Python 3.8+
## Тестирование
```bash
python test_solution.py
```
## Подход к решению
- **LLM-only решение**: Используется только языковая модель без дополнительных алгоритмов
- **Zero-shot промптинг**: Модель работает на примерах из промпта без дообучения
- **Оптимизация промпта**: Специально настроенный промпт для минимизации рассуждений и получения точных позиций
## Производительность
- **Скорость**: ~2-5 текстов/сек на Tesla T4
- **Память**: ~4GB VRAM
- **Точность**: Хорошо работает на коротких текстах объявлений
## Устранение проблем
```bash
# Проверка работы Ollama
ollama ps
# Перезагрузка модели
ollama pull hf.co/Vikhrmodels/QVikhr-3-1.7B-Instruction-noreasoning-GGUF:Q4_K_M
```
## Структура проекта
```
word-segmentation/
├── space_restoration_solution.py # Основное решение
├── test_solution.py # Тесты и проверки
├── fix_submission.py # Утилита для форматирования
├── requirements.txt # Зависимости
├── dataset_1937770_3.txt # Входные данные
└── README.md # Документация
```
P.S. для данных хорошо было бы использовать DVC, как и для молели, но неудобно передовать секреты для DVC