바른 vs Mecab-ko
바른 vs Mecab-ko — 정확도·속도·사전 비교
바른과 Mecab-ko는 모두 한국어 형태소 분석에 널리 쓰이지만, 분석을 풀어내는 접근 방식이 근본적으로 다릅니다.
Mecab-ko는 사전(dictionary)과 비용(cost) 정보를 바탕으로 최적 경로를 찾는 통계 기반 분석기이고,
바른은 트랜스포머 기반의 분절(Segmenter) → 품사 태깅(PosTagger) 모델로 학습된 신경망 분석기입니다.
이 차이가 미등록단어·구어체 처리, 사전 관리, 정확도에 그대로 드러납니다.
한눈에 보는 비교
| 항목 | 바른 | Mecab-ko |
|---|---|---|
| 분석 방식 | 트랜스포머 학습 모델(분절 → 태깅 → 후처리) | 사전 + 비용 기반 통계 탐색 |
| 미등록단어(OOV) | 모델이 문맥으로 추측, OUT_OF_VOCAB 표시 |
사전에 없으면 처리 한계, 미등록단어 추정 약함 |
| 구어·신조어 | 구어형·축약형 학습으로 강함 | 사전 의존, 신조어는 사전 갱신 필요 |
| 사용자 사전 | 무중단 실시간 갱신(파일 변경 감지) | 사전 재컴파일 필요 |
| 품사 체계 | 국립국어원 기준 47품사 + 8대 단위 | 세종 태그셋 기반 |
| 띄어쓰기 보정 | auto_spacing·auto_jointing 내장 |
별도 처리 필요 |
| 제공 형태 | 서버(gRPC/REST/connect-web) + 다국어 클라이언트 | 라이브러리/바이너리 |
바른의 강점
Mecab-ko는 사전에 등재된 표현에 대해 빠르고 안정적입니다. 다만 사전에 없는 신조어·구어체·축약형이
들어오면 분석이 어긋나기 쉽습니다. 바른은 분절 단계를 따로 두고 트랜스포머 모델로 문맥을 보기 때문에,
사전에 없는 단어도 형태와 문맥으로 추측해 그럴듯한 분석을 내놓습니다.
사전·통계 탐색과 트랜스포머 학습의 차이
Mecab-ko는 사전 표제어와 각 경로의 비용(cost)을 바탕으로 가장 비용이 낮은 분석 경로를 찾는 사전·통계 기반
분석기입니다. 사전에 있는 표현은 빠르고 안정적이지만, 분석의 폭이 사전과 비용표에 묶입니다.
바른은 이를 학습된 신경망으로 대체합니다.
- 분절 모델: 음절마다 분절 레이블을 부여하는 트랜스포머 인코더로, 공백 처리 규칙(
SP)을 포함해 116개 레이블을 사용합니다. 이 중 14개는 맞춤법 검사(오류 탐지)용입니다. 음운상 비슷해 보여도 형태가 다른 경우(예 관형사형 어미와 보조사)를 레이블로 구분합니다. - 형태정보를 포함한 임베딩: 표면형이 같아도 형태가 다른 단어를 각각 다른 토큰으로 임베딩합니다.
예를 들어
가를 조사(가#J)·용언(가-#V)·체언(가#N)으로 나누어, 이렇게 구별이 필요한 단어를 12,175개 찾아냈습니다. 사전 표제어 단위로만 다루는 방식과 달리, 같은 표면형의 중의성을 모델이 직접 구분합니다.
즉 같은 한국어를 다루더라도, 한쪽은 사전·비용표에서 답을 찾고 다른 한쪽은 116개 분절 레이블과 형태정보 임베딩으로 문맥을 학습해 추론한다는 점이 가장 근본적인 차이입니다. 두 방식의 차이를 더 깊이 보려면 사전 방식 vs 트랜스포머와 형태정보 임베딩을 참고하세요.
미등록단어와 구어체에서 갈리는 지점
Mecab-ko처럼 사전을 중심으로 동작하는 분석기는 "감사합니당", "그치만" 같은 구어·축약형을 만나면
사전에 그 표제어가 없어 깨진 분석을 내기 쉽습니다. 바른은 이런 표현을 학습 단계에서 다루었고,
미등록단어를 만나면 각 형태소가 학습 임베딩·자동 추측·사용자 사전 등 어디에서 왔는지를
out_of_vocab 값으로 함께 표시합니다.
이렇게 출처를 함께 돌려주므로, 결과가 추측인지 사전 근거인지 응답 결과에서 판단할 수 있습니다.
미등록단어 처리 방식은 미등록단어 처리에서 더 자세히 다룹니다.
사전 관리의 차이
Mecab-ko는 사용자 사전을 추가하려면 사전 소스를 고친 뒤 다시 컴파일하고 분석기를 재시작해야 합니다.
바른은 사용자 사전 디렉토리의 파일 변경을 실시간으로 감지해, 파일이 바뀌면 서버를 멈추지 않고 즉시 반영합니다.
여러 사전을 custom_dict_names로 동시에 지정할 수 있고, 먼저 지정한 사전이 우선합니다.
수치 비교는 환경에 따라 달라집니다
바른의 정확도(품사 태깅 99.6%, 어절 분리/복원 99.7%)는 자체 평가셋 기준 측정값입니다.
Mecab-ko를 비롯한 다른 분석기의 정확도·속도는 사용한 사전 버전, 평가셋, 하드웨어, 측정 방법에 따라
크게 달라지므로 직접적인 절대 수치 비교는 같은 환경에서 다시 측정하는 것을 권장합니다.
관련 문서
- 바른 vs Kiwi — 또 다른 사전·언어모델 기반 분석기와의 비교
- 정확도 99.6%는 어떻게 측정했나 — 평가셋과 지표 정의
- 사용자 사전 살펴보기 — 무중단으로 사전을 등록·갱신하는 방법
자주 묻는 질문
Q. Mecab-ko가 더 빠르지 않나요?
사전·비용 기반 탐색은 가볍고 빠른 편입니다. 바른은 신경망 추론을 하므로 단건 지연만 보면 다를 수 있지만,
executionProvider(CPU/GPU) 선택과 배치 처리로 처리량을 끌어올릴 수 있습니다. 속도는 측정 환경에 크게 좌우되므로
같은 입력·하드웨어에서 비교하시길 권합니다.
Q. Mecab 사전을 바른에 그대로 쓸 수 있나요?
사전 포맷과 분석 방식이 다르므로 그대로 옮길 수는 없습니다. 다만 바른은 고유명사·복합명사·동사·형용사 등
사용자 사전을 직접 등록할 수 있고, 변경이 무중단으로 반영됩니다.
Q. Mecab과 바른의 분석 방식은 근본적으로 무엇이 다른가요?
Mecab-ko는 사전 표제어와 비용 정보로 최적 경로를 찾는 사전·통계 기반 분석기입니다. 바른은 음절마다 분절 레이블을
부여하는 트랜스포머(공백 규칙 포함 116개 레이블)와, 같은 표면형을 형태별로 구분하는 임베딩(구별 대상 12,175개)으로
문맥을 학습해 분석합니다. 사전에 묶이지 않고 모델이 직접 추론한다는 점이 가장 큰 차이입니다.
Q. 어떤 경우에 바른이 유리한가요?
신조어·구어체·축약형이 많은 텍스트, 사전을 자주 갱신해야 하는 운영 환경, 띄어쓰기 보정이 함께 필요한 경우에 유리합니다. 미등록단어를 문맥으로 추측하고 출처를 표시해주기 때문입니다.
도움이 되었나요?