Doccano
Doccano — открытый веб-инструмент для аннотирования текстовых данных, предназначенный для создания обучающих наборов в задачах обработки естественного языка (NLP). Приложение поддерживает классификацию текста, разметку последовательностей и задания типа «последовательность-в-последовательность», а также совместную работу нескольких аннотаторов через роль-based access control (RBAC)[1][2].
Общие сведения
| Doccano | |||
|---|---|---|---|
| Тип | Инструмент аннотирования текста | ||
| Авторы | Хироки Накаяма, Такахиро Кубо, Дзюня Камура, Ясуфуми Танигути, Сюй Лян | ||
| Разработчик | сообщество open-source | ||
| Написана на | Python (бэкенд), Vue.js (фронтенд) | ||
| Интерфейс | Веб-интерфейс | ||
| Движок | Django | ||
| Операционная система | Кроссплатформенный | ||
| Языки интерфейса | Многоязычный | ||
| Первый выпуск | 2018 | ||
| Репозиторий | github.com/doccano/doccano | ||
| |||
| |||
| Состояние | Активно разрабатывается и обновляется | ||
| Лицензия | MIT | ||
| Сайт | doccano.github.io | ||
История
Работу над Doccano инициировал японский разработчик Хироки Накаяма; к проекту вскоре присоединились Такахиро Кубо, Дзюня Камура, Ясуфуми Танигути и Сюй Лян[1]. Первый публичный релиз состоялся в 2018 году, о чём свидетельствуют ранние теги в репозитории GitHub и упоминания инструмента в академических публикациях[1]. В мае 2020 года опубликована библиотека doccano-transformer, предназначенная для конвертации экспортированных из Doccano данных в форматы CoNLL 2003, spaCy и другие, используемые популярными ML-фреймворками[3]. Среди недавних вех проекта — добавление тёмной темы интерфейса и активное развитие системы плагинов, отражённые в официальной дорожной карте[4].
Определения
- RBAC (Role-Based Access Control) — метод управления доступом к системе, основанный на ролях. Вместо индивидуального назначения прав каждому пользователю, разрешения группируются по ролям (например, «администратор», «менеджер», «гость»), которые затем назначаются сотрудникам.
- NER (Named Entity Recognition) — технология автоматического поиска и классификации «именованных сущностей» в неструктурированном тексте. Она идентифицирует ключевые объекты: имена людей, названия организаций, географические локации, даты, суммы денег и проценты.
- Seq2Seq (Sequence-to-Sequence) — архитектура нейронных сетей, предназначенная для преобразования одной последовательности данных в другую.
- REST API (Representational State Transfer) — архитектурный стиль взаимодействия между клиентом (например, браузером) и сервером, использующий протокол HTTP.
- Docker Compose — инструмент для определения и запуска многоконтейнерных приложений Docker.
Архитектура и технологии
Doccano имеет двухкомпонентную архитектуру.
- Бэкенд
- Язык — Python 3.8+; основной фреймворк — Django 4.x, реализующий REST API[5].
- Celery обрабатывает асинхронные задачи (импорт/экспорт файлов), а Gunicorn используется как WSGI-сервер[6].
- По умолчанию база данных — SQLite 3; для производственных развёртываний поддерживается PostgreSQL, задаваемый переменной `DATABASE_URL`.
- Фронтенд
Функции
Типы аннотирования
- Классификация текста — присвоение одному документу одной или нескольких меток (например, анализ тональности)[2].
- Разметка последовательностей — пометка каждого токена; включает NER, тегирование частей речи и семантические роли[7].
- Seq2Seq-задачи — аннотирование пар «вход → выход» для машинного перевода или суммаризации[7].
Возможности совместной работы
RBAC-модель предусматривает роли администратора проекта, аннотатора и утверждающего; доступ к документам настраивается через веб-интерфейс Django-admin[8].
Импорт и экспорт данных
Поддерживаются форматы импорта CSV, JSONL и простого текста; файлы PDF/DOC/HTML требуют предварительной конвертации. Экспорт возможен в JSON/JSONL, CoNLL 2003, spaCy и IOB; дополнительные конвертации осуществляет doccano-transformer[3].
Настройка интерфейса и расширяемость
Аннотаторы могут создавать неограниченное число пользовательских меток, задавая цвет и «горячие» клавиши[2]. Интерфейс поддерживает переключение тёмной темы; система плагинов для пользовательских задач и автоматической разметки находится в активной разработке[4].
Преимущества и недостатки
- Преимущества
- Открытый исходный код и лицензия MIT, позволяющие свободно модифицировать решение.
- Современный UX и тёмная тема, выгодно отличающие Doccano от более ранних инструментов Brat и Anafora[2]
- Полноценная коллаборация с ролями и журналом статистики[7].
- Недостатки
- Отсутствие встроенной настройки шрифтов через UI — изменение возможно только путём правки CSS[4].
- Нет прямого импорта бинарных форматов (PDF, DOC), что требует дополнительной предобработки данных.
- Проблемы с производительностью на больших данных. Пользователи отмечают, что Doccano может работать медленно или зависать при загрузке и обработке датасетов, содержащих сотни тысяч или миллионы записей.
- Слабая система проверки (Review). Процесс утверждения разметки реализован базово; полноценные рабочие процессы с многоуровневым подтверждением (multi-level approval) требуют ручной настройки или внешних скриптов.
- Отсутствие продвинутых метрик. «Из коробки» не хватает инструментов для расчета согласованности разметчиков (например, коэффициента Каппа Коэна или Альфа Криппендорфа), что критично для контроля качества.
- Сложность развертывания и стабильность. Установка через
pipна Windows часто вызывает ошибки, поэтому разработчики рекомендуют использовать Docker, что может быть барьером для пользователей без технических навыков. Версии инструмента могут быть нестабильными: периодически возникают проблемы с миграцией базы данных при обновлении. - Ограниченный функционал разметки: Только текст. В отличие от универсальных инструментов (вроде Label Studio), Doccano фокусируется почти исключительно на тексте (классификация, NER, перевод), что делает его бесполезным для мультимодальных задач. Связи между сущностями. Поддержка разметки отношений (Relation Extraction) реализована менее удобно, чем в специализированных инструментах вроде BRAT.
- Отсутствие Active Learning. В базовой версии Doccano нет встроенных механизмов активного обучения, которые бы предлагали разметчику наиболее «сложные» для модели примеры, что могло бы значительно ускорить процесс.
- Минималистичный UI/UX. Интерфейс считается слишком простым; в нем отсутствуют гибкие настройки горячих клавиш для всех типов задач и возможность глубокой кастомизации внешнего вида под специфические нужды проекта.
Этапы установки и развёртывания
Процесс установки и развёртывания Doccano включает несколько последовательных этапов, каждый из которых может быть реализован различными способами в зависимости от потребностей пользователя.
1. Установка через pip
Локальная установка осуществляется с помощью пакетного менеджера pip. Необходимо выполнить следующие команды:
pip install doccano
[5]
doccano init
doccano createuser --username admin --password pass
doccano webserver --port 8000
2. Развёртывание с помощью Docker
Для быстрой установки и изоляции окружения можно использовать официальный Docker-образ. Этапы:
docker pull doccano/doccano
docker container create -e "ADMIN_USERNAME=admin" -e "ADMIN_PASSWORD=pass" -p 8000:8000 doccano/doccano
docker start doccano
3. Развёртывание с помощью Docker Compose
Для организации многоконтейнерного стека с поддержкой PostgreSQL и RabbitMQ рекомендуется использовать Docker Compose. Это позволяет развернуть Doccano в производственной среде с отдельными сервисами для базы данных и брокера задач.
4. Установка из исходных кодов
Для разработчиков, желающих расширять функционал или вносить изменения в код, предусмотрена установка из исходников. Необходимо клонировать репозиторий и установить зависимости через Poetry[5].
Примеры использования
- Создание корпусa для многоязычного NER на основе описаний научно-фантастических книг.
- Разметка медицинских диалогов при обучении чат-бота для клиники[9].
- Аннотирование городских сообщений для выявления ситуаций повышенного риска (проект НИР ИТМО)[10].
- Геопространственный анализ: подготовка датасетов для извлечения топонимов в ArcGIS Python API.
API и интеграция
Doccano предоставляет RESTful API, позволяющий автоматизировать импорт документов, создание проектов, получение аннотаций и интеграцию с фреймворками TensorFlow, PyTorch и spaCy. Для упрощения работы существует официальный клиент-библиотека doccano-client на Python[1] В дорожной карте заявлены OAuth 2.0, отдельные энд-пойнты для разных типов задач и расширенный поиск по меткам[4].
Сообщество и развитие
Проект размещён на GitHub, где насчитывается более 10 000 «звёзд» и около 1 800 форков; последняя стабильная версия v1.8.4 вышла в июле 2024 года[11].
Активное общение ведётся через GitHub Issues, GitHub Discussions и официальный Discord-сервер[4]. Развитие руководствуется публичной дорожной картой; приоритеты включают систему плагинов, расширение API и улучшение мобильной доступности[4].
Примечания
- ↑ 1 2 3 4 5 doccano GitHub Repository. GitHub. Дата обращения: 20 июня 2025. Архивировано 1 сентября 2025 года.
- ↑ 1 2 3 4 Multi-language NLP annotation made easy with Doccano. Adyog (17 сентября 2024). Дата обращения: 20 июня 2025. Архивировано 25 января 2025 года.
- ↑ 1 2 doccano-transformer. PyPI. Дата обращения: 20 июня 2025.
- ↑ 1 2 3 4 5 6 7 Doccano Roadmap. Doccano. Дата обращения: 20 июня 2025. Архивировано 9 июня 2025 года.
- ↑ 1 2 3 Doccano labelling installation and local setup best practices. Medium. Дата обращения: 20 июня 2025. Архивировано 27 декабря 2024 года.
- ↑ Rapid prototyping and deployment of clinical NLP models. Medium. Дата обращения: 20 июня 2025. Архивировано 2 июня 2021 года.
- ↑ 1 2 3 Text annotation made easy with Doccano. Microsoft Community Hub. Дата обращения: 20 июня 2025.
- ↑ Top text annotation tools in 2024. Encord. Дата обращения: 20 июня 2025. Архивировано 4 августа 2025 года.
- ↑ Как мы обучали медицинского чат-бота на 10 000 диалогов. Habr. Дата обращения: 20 июня 2025.
- ↑ Исследование городской среды методами NLP. НИР ИТМО. Дата обращения: 20 июня 2025.
- ↑ doccano on Made with Vue.js. Made with Vue.js. Дата обращения: 20 июня 2025. Архивировано 10 августа 2025 года.
| Правообладателем данного материала является АНО «Интернет-энциклопедия «РУВИКИ». Использование данного материала на других сайтах возможно только с согласия АНО «Интернет-энциклопедия «РУВИКИ». |