텍스트 어노테이션 도구 비교: 오픈소스와 유료 NLP 도구
Potato, INCEpTION, Prodigy, Label Studio, doccano, brat, Argilla를 NER, 관계, 분류와 연구 운영(Prolific과 MTurk, 어노테이터 교육, 스팬 일치도) 측면에서 비교합니다.
텍스트 어노테이션 도구는 어노테이터에게 문서를 보여 주고 그들이 표시한 것을 기록합니다. 텍스트 전체에 붙이는 레이블, 개체명처럼 강조한 스팬, 스팬 사이의 연결이 그것입니다. Potato, INCEpTION, doccano, Label Studio Community Edition은 무료로 자체 호스팅할 수 있고, 모두 개체명 인식과 관계를 다룹니다. 도구 간 차이가 가장 크게 벌어지는 것은 어노테이터가 많은 프로젝트입니다. Potato는 Prolific과 MTurk에서 어노테이터를 모집하고, 본 작업 전에 교육하고 선별하며, 전체 어노테이터에 대해 우연을 보정한 스팬 일치도를 보고합니다. 유료 플랜은 필요 없습니다. 지식 베이스 연결에서는 INCEpTION이, 어노테이션하면서 spaCy 모델을 학습시키는 데서는 Prodigy가 앞섭니다. brat과 Argilla에는 더 이상 새 기능이 추가되지 않습니다.
텍스트 작업은 대개 세 가지 형태 중 하나입니다. 문서 분류는 문서 전체에 레이블을 붙입니다. 개체명 인식과 다른 스팬 작업은 텍스트의 일부를 표시합니다. 관계 추출과 상호참조 해결은 스팬끼리 연결합니다. 이 페이지의 도구는 모두 스팬을 다루며, 가장 크게 갈리는 부분은 연결입니다.
이 페이지는 텍스트만 다룹니다. 모든 데이터 유형을 한 페이지에서 비교한 내용은 AI 주석 도구 비교에 있습니다.
비교해 볼 만한 텍스트 어노테이션 도구는?
| 도구 | 라이선스 | 가격 | 적합한 경우 |
|---|---|---|---|
| Potato | GPL-3.0 | 무료 | 항목마다 여러 어노테이터가 붙고 일치도를 보고해야 하는 연구 |
| INCEpTION | Apache-2.0 | 무료 | 지식 베이스 연결이 필요한 언어학적 어노테이션 |
| Prodigy | 독점 | 390달러, 또는 좌석당 490달러(최소 5좌석) | 모델을 루프에 넣은 스크립트형 어노테이션을 원하는 spaCy 사용자 |
| Label Studio | Apache-2.0 (Community Edition) | 무료. Starter 플랜은 월 99달러, 사용자 추가마다 49달러 | 텍스트를 이미지, 오디오, 비디오와 함께 어노테이션하는 팀 |
| doccano | MIT | 무료 | NER이나 분류 프로젝트를 빠르게 시작하기 |
| brat | MIT | 무료 | 이미 brat으로 어노테이션한 코퍼스를 읽거나 확장하기 |
| Argilla | Apache-2.0 | 무료 | Hugging Face 생태계의 피드백·선호 데이터 |
기능 비교
어노테이션 자체만 보면, 유지보수가 계속되는 다섯 도구는 비슷합니다.
| Potato | INCEpTION | Prodigy | Label Studio | doccano | |
|---|---|---|---|---|---|
| 문서 분류 | 예 | 예 | 예 | 예 | 예 |
| 스팬(NER) | 예 | 예 | 예 | 예 | 예 |
| 스팬 간 관계 | 예 (span_link) | 예 | 예 | 예 (Relations 태그) | 예, 프로젝트 옵션 |
| 모델·LLM 제안 | 여러 가지 엔드포인트 | 추천기, 실험적 LLM 지원 | spacy-llm | ML 백엔드 | 외부 API를 통한 자동 레이블링 |
| 자체 호스팅 | 예 | 예 | 예 | 예 | 예 |
어노테이터가 많은 연구를 운영하는 데서는 크게 다릅니다.
| Potato | INCEpTION | Prodigy | Label Studio | doccano | |
|---|---|---|---|---|---|
| Prolific 또는 MTurk에서 모집 | 내장: 참가자 ID, 완료 코드, Prolific 연구 관리 | 게스트 어노테이터용 초대 링크(실험적) | — | — | — |
| 동의, 선별 질문, 합격 기준이 있는 교육 단계 | 내장 | — | — | — | — |
| 골드 항목과 주의력 점검 | 내장 | — | — | Ground truth, Enterprise 전용 | — |
| 스팬 일치도 | 문자 단위 라벨에 대한 α와 간소화된 γ, 우연 보정, 전체 어노테이터를 한 번에 | 쌍별 행렬, 유니타이징 α 포함 | 쌍별 F1, 엄격 또는 부분 일치 | 스팬 겹침, 유료 플랜 | — |
| 붙여 넣은 자유 서술 답변 표시 | 키 입력 로그 기반 | — | — | — | — |
대시는 2026년 9월 기준으로 해당 도구의 문서, 가격 페이지, 저장소에서 관련 내용을 찾지 못했다는 뜻입니다. 틀린 칸이 있으면 알려 주세요.
텍스트에서 Potato가 앞서는 점
레이블을 둘러싼 연구. 텍스트 어노테이션의 상당수는 크라우드워커와 함께하는 연구입니다. 감정, 입장, 공격적 언어, 모델 출력의 품질 같은 것들입니다. 참가자는 Prolific이나 MTurk에서 들어와 완료 코드를 받고 나갑니다. 본 작업 전에 동의하고, 선별 질문이나 인구통계 질문에 답하고, 피드백이 있는 연습 항목을 통과할 때까지 풉니다. 그다음에는 골드 항목과 주의력 점검이 실제 항목 사이에 섞여 나옵니다. Potato는 이 모든 것을 YAML 설정으로 구성하며, Prolific 연동은 참가자가 중간에 포기한 항목을 다시 배정하고 서버가 붐빌 때 연구를 일시 중지할 수 있습니다. 이 페이지의 다른 도구는 어노테이터가 이미 팀에 있다고 가정합니다. Prolific과 MTurk에서 연구 진행하기, 교육 단계, 골드 스탠더드와 주의력 점검을 참고하세요.
보고할 수 있는 스팬 일치도. Prodigy가 계산하는 쌍별 F1은 한 번에 두 어노테이터를 비교하며 우연을 보정하지 않습니다. Potato의 문자 단위 라벨에 대한 α와 γ는 레이블뿐 아니라 각 스팬이 시작하고 끝나는 위치도 평가하고, 우연을 보정하며, 모든 어노테이터를 한 번에 다룹니다. INCEpTION은 Krippendorff의 유니타이징 α 자체를 어노테이터 쌍의 행렬로 제공합니다.
답변을 누가 썼는가. 자유 서술 답변이 입력되지 않고 붙여 넣어졌다면, 어노테이터가 직접 쓰지 않았을 수 있습니다. Potato의 키 입력 로깅은 각 답변이 어떻게 만들어졌는지 기록하고, 작성 과정 플래그는 대부분 붙여 넣기로 들어온 답변을 표시합니다. 임계값은 읽고 바꿀 수 있습니다.
텍스트 레이블의 일치도
같은 개체를 표시한 두 어노테이터가 정확히 같은 경계를 잡는 일은 드뭅니다. 레이블을 토큰 단위로 비교하는 지표는 경계 차이를 모두 레이블에 대한 불일치로 셉니다. 그래서 도구가 스팬 일치도를 어떻게 계산하는지는 일치도를 보고하는지 여부만큼 중요합니다.
- Potato는 BIO 태그에 대한 토큰 수준 κ, 완전 일치와 부분 일치 기준의 스팬 F1, 문자 단위 라벨에 대한 Krippendorff α, Mathet 외 (2015)의 간소화된 γ를 보고합니다. 뒤의 두 지표는 스팬의 이름뿐 아니라 어디서 시작하고 끝나는지도 평가합니다. 스팬 일치도 측정을 참고하세요.
- INCEpTION은 Cohen κ, Fleiss κ, Krippendorff α(유니타이징 형식 포함)를 계산해 어노테이터 쌍의 행렬로 보여 주고, 불일치를 정리하는 큐레이션 화면이 있습니다.
- Prodigy는
metric.iaa.doc레시피로 문서 레이블의 일치 비율, Krippendorff α, Gwet AC2를,metric.iaa.span으로 스팬의 쌍별 F1을 보고합니다. 판정은review레시피가 맡습니다. - Label Studio는 일치도를 유료 플랜에만 둡니다. Enterprise 판에 나열된 지표는 완전 일치, 수치 차이, IoU, 스팬 겹침입니다.
- doccano에는 일치도 지표가 없습니다.
일반적인 내용은 어노테이터 간 일치도 설명을 참고하세요.
도구별 자세한 내용
INCEpTION
INCEpTION은 TU Darmstadt에서 만든 WebAnno의 후속 도구로, 언어학 작업에서는 가장 가까운 비교 대상입니다. 관계 레이어, 상호참조용 체인 레이어, 문서 단위 어노테이션, 그리고 어노테이션을 Wikidata나 DBpedia 같은 지식 베이스 항목에 연결하는 개념 피처를 갖추고 있습니다. 지식 베이스 연결에서는 Potato보다 앞서 있습니다. 추천기가 어노테이션을 제안하며 능동 학습이 내장되어 있습니다. Java 애플리케이션이라 이 페이지의 다른 도구보다 배포에 손이 더 갑니다. 시스템은 Eckart de Castilho 외 (EMNLP 2024)에 설명되어 있습니다.
Prodigy
Explosion의 Prodigy는 모델을 루프에 넣은 어노테이션을 중심으로 만들어졌고, spaCy와의 결합은 여기 있는 어떤 도구보다 긴밀합니다. 분류, 스팬, rel.manual 레시피를 통한 관계, coref.manual을 통한 상호참조를 다루며, spacy-llm으로 LLM을 씁니다. 작업은 Python 레시피로 정의합니다. 이 페이지에서 유일한 유료 도구입니다.
Label Studio
Label Studio의 텍스트 지원은 이미지, 오디오, 비디오, 시계열도 다루는 도구의 일부입니다. Relations 태그로 레이블이 붙은 영역을 연결합니다. Community Edition은 무료 오픈소스입니다. 일치도, 정답 데이터 대조 검토, 품질 대시보드는 유료 플랜에 있으며, 가장 저렴한 것은 월 99달러의 Starter입니다.
doccano
doccano는 텍스트용으로 가장 빨리 준비할 수 있는 도구입니다. 프로젝트 유형은 문서 분류, 시퀀스 레이블링, 시퀀스-투-시퀀스, 의도 감지와 슬롯 채우기, 음성-텍스트 변환입니다. 시퀀스 레이블링 프로젝트에서는 겹치는 스팬과 관계를 허용할 수 있습니다. 상호참조나 이벤트 어노테이션은 없고, 일치도 지표도 없습니다.
brat
많은 NLP 코퍼스가 brat으로 만들어졌고, 그 standoff 형식은 개체, n항 이벤트, 이항 관계, 동치 집합, 속성, 정규화를 담습니다. 마지막 릴리스는 2012년 11월의 v1.3이고, master의 마지막 커밋은 2021년 10월입니다. 독립 실행 서버는 Python의 cgi 모듈을 불러오는데, 이 모듈은 Python 3.13에서 제거되었습니다. 그래서 현재 Python에서는 별도 조치 없이 실행되지 않습니다. brat 코퍼스를 읽을 가치는 여전히 있습니다. 새 프로젝트를 brat으로 시작할 이유는 찾기 어렵습니다.
Argilla
Argilla는 언어 모델용 피드백·선호 데이터에 집중하며 Hugging Face Datasets와 연동됩니다. 텍스트 분류, 토큰 분류, 생성 텍스트 평가를 지원합니다. 저장소에는 이제 원래 개발자들이 다른 프로젝트로 옮겼고, 앞으로는 버그 수정과 패치는 내지만 새 기능은 추가하지 않는다고 적혀 있습니다.
연구용 시스템
ACL 시스템 데모로 발표된 어노테이션 시스템도 여럿 있습니다. Thresh는 요약, 단순화, 기계 번역 같은 세밀한 텍스트 평가 작업을 YAML로 설정합니다. GATE Teamware 2는 어노테이터 교육과 품질 점검이 포함된 문서 분류를 다룹니다.
2026년 8월과 9월에 각 프로젝트의 문서, 가격 페이지, 저장소에서 확인했습니다.
도구 사이에서 코퍼스 옮기기
버전 2.9부터 Potato는 brat standoff, doccano JSONL, Prodigy db-out 파일, CoNLL을 가져올 수 있어서, 이들 도구에서 시작한 프로젝트를 Potato에서 이어갈 수 있습니다. 기존 레이블은 사전 어노테이션으로 들어옵니다. brat의 관계와 이벤트는 가져오지 않고 가져오기 경고에 목록으로 표시합니다. 프로젝트 가져오기를 참고하세요.
반대 방향으로는 CoNLL-2003, CoNLL-U, Hugging Face 데이터셋, JSONL, CSV, Parquet으로 내보냅니다. ML용 어노테이션 내보내기를 참고하세요.
Potato의 개체·관계 작업
annotation_schemes:
- annotation_type: span
name: entities
description: "Highlight each person, organization and location."
labels: [PERSON, ORGANIZATION, LOCATION]
- annotation_type: span_link
name: relations
description: "Link each person to the organization they work for."
span_schema: entities
link_types:
- name: WORKS_FOR
directed: true
allowed_source_labels: [PERSON]
allowed_target_labels: [ORGANIZATION]span_link는 entities 스키마의 스팬 사이에 유형이 있는 연결을 긋고, allowed_source_labels는 어노테이터가 잘못된 종류의 개체를 연결하지 못하게 합니다. 이벤트와 n항 관계는 관계·이벤트 추출에서, 체인은 상호참조 해결에서 다룹니다.
텍스트에서 Potato가 하지 않는 것
- 지식 베이스 연결은 INCEpTION보다 단순합니다.
- Prodigy 레시피처럼 어노테이터가 작업하는 동안 spaCy 모델을 갱신하지는 않습니다.
- spaCy 내보내기 기능이 없습니다. CoNLL이나 JSONL에서 변환하세요.
- brat에서 가져올 때 관계와 이벤트는 건너뜁니다.
자주 묻는 질문
어떤 텍스트 어노테이션 도구를 써야 하나요?
NER이나 분류 프로젝트 하나라면 doccano가 가장 손이 덜 갑니다. 개체를 지식 베이스에 연결하는 언어학적 어노테이션이라면 INCEpTION이 가장 완전합니다. 항목마다 여러 어노테이터가 붙고, 크라우드워커를 쓰고, 일치도를 보고해야 하는 연구라면 Potato가 유료 플랜 없이 이를 모두 갖추고 있습니다.
학술 어노테이션 연구에는 어떤 텍스트 어노테이션 도구가 맞나요?
연구에서 어노테이터를 모집하고 선별하고 교육하며 일치도를 보고해야 한다면, Potato는 무료 버전에서 그 모든 단계를 지원합니다. 개체를 지식 베이스에 연결하는 것처럼 어노테이션 자체가 복잡한 언어 구조라면 INCEpTION이 더 잘 맞습니다. 어노테이션하면서 spaCy 모델을 학습시키려는 작은 팀에는 Prodigy가 어울립니다.
Prolific이나 Amazon Mechanical Turk와 함께 쓸 수 있는 텍스트 어노테이션 도구는?
Potato에는 둘 다 내장되어 있습니다. URL에서 참가자 ID를 읽고, 작업이 끝나면 완료 코드를 보여 주거나 참가자를 되돌려 보내며, Prolific API를 통해 Prolific 연구를 관리할 수 있습니다. INCEpTION에는 게스트 어노테이터용 실험적 초대 링크가 있어 크라우드워커에게 공유할 수 있지만, 완료 코드 처리는 문서에 없습니다. Prodigy, Label Studio, doccano는 크라우드소싱 연동을 문서화하지 않습니다.
Prodigy의 오픈소스 대안이 있나요?
Potato, INCEpTION, doccano는 무료 오픈소스입니다. Prodigy가 Python 레시피를 쓰는 부분을 Potato는 YAML로 설정하고, Prodigy의 db-out 파일도 가져오므로 Prodigy에서 모은 어노테이션을 그대로 이어받습니다.
어노테이터 간 일치도를 보고하는 텍스트 어노테이션 도구는?
Potato와 INCEpTION은 무료 버전에서 보고하며, Prodigy는 라이선스에 metric.iaa 레시피가 포함됩니다. Label Studio는 일치도를 유료 플랜에 한정하고, doccano에는 없습니다. 스팬 작업이라면 지표가 경계와 우연을 모두 고려하는지 확인하세요. Krippendorff의 유니타이징 α와 γ는 둘 다 고려하며, 문자 단위 라벨에 대한 α도 마찬가지입니다. Potato가 보고하는 것은 이 α와 간소화된 γ입니다. 쌍별 F1은 우연을 보정하지 않습니다.
brat은 아직 유지보수되나요?
아니요. 마지막 릴리스는 2012년 11월의 v1.3이고, 독립 실행 서버는 Python 3.13에서 별도 조치 없이 실행되지 않습니다. 버전 2.9부터 Potato는 brat 코퍼스를 가져오며, 기존 개체를 사전 어노테이션으로 이어받습니다.
무료 도구로 상호참조를 어노테이션할 수 있나요?
네. INCEpTION에는 상호참조용 체인 레이어가 있고, Potato에는 언급을 체인으로 묶는 coreference 스키마가 있습니다. doccano는 상호참조를 지원하지 않습니다.