콘텐츠로 이동

분절 연동 품사 태깅(새 구조)

분절 연동 품사 태깅: 분절과 품사 태깅의 새 구조

바른의 형태소 분석은 두 개의 모델로 이루어져 있습니다. 이전에는 분절 모델이 조각을 내면 품사 태깅 모델이 그 조각을 40개씩 끊어 읽으며 품사를 붙였습니다. 새 구조에서는 분절 모델이 문장을 칸(형태소가 들어갈 자리)으로 나누고, 분절 연동 품사 모델(분절 모델이 자른 형태소마다 품사를 고르는 모델)이 문장 전체를 한 번에 보고 칸마다 품사를 붙입니다. 품사를 정할 때 문장의 앞뒤 문맥을 끊김 없이 쓰는 것이 달라진 점입니다.

적용 범위

클라우드 API(api.bareun.ai)는 이 구조로 동작합니다. 설치해서 쓰는 경우에는 이 구조를 지원하는 다음 정식 버전부터 적용됩니다(v3.2.4에는 들어 있지 않습니다). 응답 구조와 필드는 그대로여서 클라이언트는 고칠 것이 없습니다.

graph TD
  IN[입력 문장] --> SEG[분절 모델<br/>seg-model.onnx];
  SEG --> SLOT[칸 나누기<br/>형태소 자리 확정];
  SLOT --> TAG[분절 연동 품사 모델<br/>slot-tag-model.onnx];
  TAG --> POST[후처리];
  POST --> OUT[문장·어절·형태소 결과];
  TAG -. 1,024자 초과 또는 칸 512개 초과 .-> OLD[기존 품사 태깅 모델<br/>tag-model.onnx];
  OLD --> POST;

무엇이 달라졌나요?

이전 구조 새 구조
품사를 붙이는 단위 형태소 40개씩 끊어 읽음 문장 전체를 한 번에 읽음
한 번에 보는 길이 형태소 40개 최대 1,024자, 칸 512개
분절 모델이 한 번에 처리하는 길이 80자 160자
모델 수 분절 모델, 품사 태깅 모델 분절 모델, 분절 연동 품사 모델
기존 품사 태깅 모델 항상 사용 분절 연동 품사 모델을 쓸 수 없을 때만 사용
  • 긴 문장에서 문맥이 이어집니다. 품사 태깅 모델은 형태소 40개를 넘으면 문장을 나누어 읽었기 때문에, 나뉜 경계 근처 어절은 앞뒤 문맥 절반만 보고 품사를 정했습니다. 분절 연동 품사 모델은 1,024자까지 한 번에 읽습니다.
  • 분절의 80자 경계가 줄었습니다. 분절 모델이 한 번에 처리하는 길이를 80자에서 160자로 넓혔습니다. 159자 이하 문장은 나뉘지 않고, 더 긴 문장도 조각 수가 줄어 조각 사이 경계 근처의 어절이 줄었습니다.
  • 두 모델이 한 모델로 합쳐진 것은 아닙니다. 분절 모델이 칸을 정하고 분절 연동 품사 모델이 품사를 붙이는 두 단계입니다. 분절 연동 품사 모델은 분절 모델의 음절 인코더를 시작점으로 삼아 학습했기 때문에 음절을 읽는 방식이 같습니다.
  • 기존 모델은 남아 있습니다. 문장이 1,024자를 넘거나 칸이 512개를 넘을 때, 그리고 분절 연동 품사 모델의 추론이 실패할 때는 자동으로 기존 품사 태깅 모델이 처리합니다. 이때도 오류 없이 결과가 나옵니다.

사용자에게 달라지는 점

  • API 호출 방법, 응답 구조, 품사 태그 체계(47품사)는 바뀌지 않았습니다.
  • 분석과 맞춤법 교정 모두 같은 구조를 씁니다. 분석 결과가 달라지면 교정 결과도 그에 맞게 달라집니다.
  • 한 문장을 아주 길게 보내도 이전처럼 형태소 40개 단위로 끊기지 않으므로, 입력을 80자 안팎으로 미리 나눠 보낼 필요가 없습니다.

정확도

평가 문장 3만 3천여 개로 정답과 같은 분석을 냈는지 쟀습니다. 표기 차이를 맞춰 공정하게 견주었습니다 (관형사 세분과 어미의 모음조화 이형태를 한 가지로 통일).

분석기 정확도
바른(새 구조, 후처리 전 분석) 0.9015
바른(새 구조, 후처리 후) 0.8876
Kiwi (cong) 0.8846
Kiwi (cong-global) 0.8860

측정 조건

2026년 10월 8일에 클라우드 API와 같은 모델 번들(T261007-F5F605)로 쟀습니다. 후처리 전은 모델이 낸 분석 그대로, 후처리 후는 사전과 규칙으로 다듬은 최종 결과입니다.

자주 묻는 질문

Q. 분절 모델과 품사 태깅 모델이 하나로 합쳐졌나요?

아닙니다. 새 구조도 두 단계입니다. 분절 모델이 문장을 칸으로 나누고, 분절 연동 품사 모델이 칸마다 품사를 붙입니다. 달라진 것은 품사를 붙이는 모델이 문장 전체를 한 번에 읽는다는 점입니다.

Q. 예전처럼 80자나 형태소 40개 제한이 있나요?

품사를 붙이는 쪽의 형태소 40개 제한은 없어졌습니다. 분절 연동 품사 모델은 최대 1,024자, 칸 512개를 한 번에 읽습니다. 분절 모델이 한 번에 처리하는 길이는 160자입니다. 160자보다 긴 문장은 공백 자리에서 거의 같은 길이로 나누어 처리합니다.

Q. 1,024자보다 긴 문장은 어떻게 되나요?

분석이 실패하지 않습니다. 그 문장은 기존 품사 태깅 모델이 이전과 같은 방식으로 처리합니다.

Q. 응답 형식이 바뀌었나요?

바뀌지 않았습니다. 분석 API와 맞춤법 검사 API의 요청과 응답은 이전과 같습니다.

도움이 되었나요?