콘텐츠로 이동

소개

바른

바른은 bareun.ai에서 만든 한국어 형태소 분석기 엔진이자 동시에 한국어 맞춤법 검사기입니다. 영문으로는 bareun으로 표기합니다. 한국어를 모르는 사용자가 읽을 때에는 bɑʀɯɴ 또는 pɑʀɯɴ으로 읽습니다.

형태소 분석기능은 무료로 사용

바른의 형태소 분석 기능은 개인, 기업, 학교, 언론기관 등에서 연구 목적으로 사용하는 경우에는 무료로 사용할 수 있습니다.

바른은 바른팀, 즉, 바이칼에이아이와 한국언론진흥재단이 공동으로 만들어서 공급하고 있습니다. 바른은 한국언론진흥재단의 뉴스빅데이터 분석시스템인 빅카인즈(BIGKINDS)의 형태소 분석 엔진으로 활용되고 있으며, 언론사, 언론 관련 공공기관뿐만 아니라 연구 목적의 개인, 단체도 자유롭게 사용 가능합니다.

단, 상용 서비스나 상업적인 목적으로 사용하는 경우에는 유료 라이선스가 필요합니다.

상용 서비스

상용 서비스에는 상업적인 서비스와 비상업적인 목적이라고 하더라도 사용자들 대상으로 하는 상시 운영 중인 서비스가 포함됩니다. 즉, 연구 목적 이외로 이 제품의 기능을 활용하여 상시 활용되는 경우에는 상용 서비스입니다.

상업적인 연구

형태소 분석의 경우, 상업적인 목적을 가진 연구를 위해서 사용될 수도 있습니다. 예를 들어 기초 연구가 마무리 된 이후에 2차 가공된 대규모 학습 데이터를 만드는 경우가 포함할 수 있을 것입니다. 이 경우에는 유료 라이선스를 확보한 이후에 사용해야 합니다.

맞춤법 검사 기능

바른은 동시에 한국어 어법, 띄어쓰기, 표준어 등에 대한 맞춤법 검사기의 이름이기도 합니다. 맞춤법 검사 기능은 유료 서비스입니다. 직접 설치하는 경우에도 반드시 유료 등록을 한 사용자만 사용이 가능합니다.

이 경우에도 유료 라이센스를 필요로 합니다.

한국어를 바르게 분석

한국어에 대한 깊은 이해를 바탕으로 만들었습니다. 새로운 기술에 집중하기 보다는 말뭉치를 한땀한땀 들여다 보면서 정성으로 담금질했습니다.

  • 정확도가 매우 높습니다.
  • 적응력이 높아 다양한 한국어 표현에도 잘 대응합니다.
  • 쉽습니다.
  • 연구자뿐 아니라 기업 환경에서도 사용 가능합니다.

이른바 대규모 언어모델이 풍미하는 현 시기에도 바른은 한국어를 다루는 자연어 처리 분야 전반에서 질적인 변화를 이루기 위한 시도를 하고 있습니다.

트랜스포머 적용

바른이 남다른 이유는 우선 트랜스포머 기술 때문입니다. ChatGPT, BERT는 트랜스포머에서 눈에 띄는 성과를 드러냈습니다. 바른이 트랜스포머를 사용한 작업 중에서 의미있는 저작물이기를 바랍니다.

  • 바른은 한국어 활용의 특성을 면밀하게 분석하여 107개의 분절 규칙을 찾아냅니다.
  • 이 과정에서 체언(N), 조사(J), 용언(V), 어미(E), 부사어(A), 관형어(M), 감탄사(I), 기호(S) 등 8개의 큰 단위 형태를 찾아냅니다.
  • 이를 활용하여 워드임베딩을 하였습니다. 가#V, 가#J, 가#N를 구별하여 임베딩합니다.
  • 국립국어원의 47품사 형태 기준에 맞춰서 형태소를 찾아냅니다.
  • 동사, 형용사를 포함한 사용자 사전으로 후보정하여 형태소를 분석해 냅니다.

이 모든 과정에서 트랜스포머가 활용되고 있습니다.

돋보이는 바른

주요 기능

형태소 분석

  • 형태소를 잘 분리해냅니다.
  • 어절 단위로도 분절합니다.
  • 띄어쓰기 및 붙여쓰기를 통해서 어절의 경계를 조정합니다.
  • 특히 불규칙 활용을 하는 경우, 찾아낸 형태의 원 위치를 정확하게 표시해줍니다. 예를 들어, "제 킨데요."라는 문장에서 키+이+ㄴ데+요로 분석되는 경우, , , ㄴ데는 모두 같은 시작 위치를 가지고 있습니다. 바른의 95번째 분절 규칙, 생략_모음체언_이_ㄴㄹㅂ_1에 따라서 키+이+ㄴ으로 구분되는 과정을 거칩니다. 이 과정을 추적하여 정확한 위치값을 출력합니다.
  • 분석한 단어가 어디에서 온 것인지를 표시해 줍니다. 특히, 사용자 사전, 신조어를 구별해줍니다.

단어 분리

형태소를 분석하기 전의 분절 단계의 결과물을 출력합니다. 형태소를 태깅하지는 않지만, 위에서 설명한 8가지 큰 형태 단위로 구분을 해냅니다. 이는 트랜스포머 모델에서 늘 골치를 겪고 있는 한국어 토크나이저 문제를 해결하기 위해서 고안되었습니다.

사용자 사전

언어분석 또는 다양한 업무에 자연어 처리 기술을 적용하는데, 있어서 사전은 꼭 필요합니다.

바른에서는 고유명사, 복합명사, 복합명사 분리사전, 동사, 형용사 모두 5개로 구분하여 하나의 사전을 정의할 수 있습니다.

  • 사용자 사전 API에 여러 개의 사전을 정의해둘 수 있습니다.
  • 형태소를 분석할 때, 필요한 사전을 활용해서 분석할 수 있습니다.
  • 형태소 분석을 실행하는 동안에 사전을 변경하더라도 전혀 중단없이 진행이 가능합니다.

주요 특징

형태소 태깅 정확도

99.6%의 형태소 품사 태깅 정확도와 99.7%의 어절 분리/복원 정확도를 바탕으로 탁월한 자연어 처리 성능을 보여줍니다. 기존 상용 제품과 오픈 소스와 비교할 수 없는 차이를 경험해 보세요.

뛰어난 한국어 처리 성능

한국어 활용 규칙 107개를 응용하여 교착어에서 중요한 형태소 복원, 어절 분리 등 한국어 형태분석의 고질적인 문제들을 해결합니다. 띄어쓰기 보정 기능도 사용할 수 있습니다.

구어에 강한 적응력

교착어인 한국어의 활용 규칙 원리를 이해하고 있는 딥러닝 학습 엔진을 사용하여 감사합니당(ㅂ니당/EF, 종결어미), 알겠어용(어용/EF, 종결어미) 등 구어에서 사용된 새로운 어미도 올바르게 분석합니다.

스탠포드 유저 인터페이스 형식의 시각화

한국어의 경우, 하나의 음절과 어절 안에 여러 형태소 정보가 포함됩니다. 스탠포드 UI 스타일을 통해 생략과 축약 형태소, 형태소의 종류 등의 주석을 이해하기 쉽게 시각화할 수 있습니다.

지속적인 자체 말뭉치 보강

딥러닝에서는 모델이 학습하는 데이터의 양과 질이 매우 중요합니다. 공개된 세종 말뭉치, 모두의 말뭉치에서 발견되지 않은 오류를 찾아서 수정하는 작업을 했습니다. 또한 부족한 학습 데이터를 보강하여 실제 언어 현실에 적합한 자료를 구성하기 위해 지금도 노력하고 있습니다.

미등록 단어 학습 기능

워드 임베딩은 단어를 수치적으로 표현하는 기술로, 바른 학습 모델은 특별히 단어의 의미를 잘 파악할 수 있게 학습 데이터 구성 단계에서 품사에 힌트를 포함시켜 학습시켰습니다. 모델이 잘 모르는 단어도 가까운 관계에 있는 단어로 매핑하여 찾아줍니다.

즉시 동작하는 서버로 배포

빠르고 즉시 동작하는 서버로 배포됩니다. 늘 빠르게 응답합니다. 서버만 업데이트하면, 모든 변경이 모든 클라이언트에 적용됩니다. 덩치 큰 딥러닝 모델을 동시에 여러 사용자들이 사용하므로 자원 효율성을 높일 수 있습니다.

무중단, 멀티태넌시 사용자 사전

  • 사용자별로 제한없이 여러 개의 사용자 사전을 만들어 사용할 수 있습니다.
  • 동시에 사용자 사전을 변경하면서 형태소 분석을 중단없이 수행할 수 있습니다.
  • 등록된 사전을 바꿔가면서 형태소를 분석할 수 있습니다.

다양한 개발 언어 지원

  • 바른은 파이썬, 자바, 자바스크립트, R을 기본으로 지원합니다.
  • HTTP/1.1을 지원하는 REST API를 기본으로 제공합니다.
  • 브라우저에서 grpc-web 기술을 이용해서 웹에서도 바로 사용이 가능합니다.
  • gRPC를 기본으로 인터페이스를 제공하므로 개발자들이 새로운 언어를 지원하거나 새로운 방식의 API를 만들 수도 있습니다. 앞으로 지속적으로 언어를 확장할 예정입니다.
  • 엘라스틱 서치와 같은 검색엔진에서 사용할 수 있는 플러그인도 사용할 수 있습니다.

편리한 설치, 다양한 배포 버전

  • 바른은 리눅스, 맥, 윈도우에서 설치하여 사용할 수 있습니다.
  • 서비스로 등록되어서 사용되기 때문에 재부팅시에도 자연스럽게 동작합니다.
  • 특히 도커 형태로도 배포되어서 한번에 설치하고 사용할 수 있습니다.

이야기

말뭉치

국립국어원에서 제공한 세종 말뭉치와 모두의 말뭉치를 기본으로 사용하였으며, 이들 말뭉치에 대해서 면밀하게 검토하고 수많은 오류를 수정하였습니다. 또한 자체 기준에 맞지 않는 태깅 규칙은 수정하였습니다.

예를 들어, 누가누구+가로 분절하거나 누구+이로 보지 않고, 를 대명사로 봐서 누+가, 누+이로 각각 학습시켰습니다.

  • 21세기 세종계획 형태 의미 분석 말뭉치 1200만 어절 / 문어, 구어 포함
  • 국립국어원 모두의 말뭉치 중 형태 분석 말뭉치 v1.0 300만 어절 (문어 200만, 구어 100만)
  • 바이칼에이아이에서 자체 구축한 형태소 학습 말뭉치: 국립국어원 자료에서 빈도가 낮은 데이터를 중심으로 보강
  • 1992~2022년 뉴스기사 1억 어절 말뭉치
  • 띄어쓰기 오류를 발생시켜서 만든 증강 말뭉치

세종 말뭉치와 모두의 말뭉치에 대한 지속적인 개선의 결과가 포함되어 있지만, 저작권 문제로 이를 공개 배포할 수 없어서 내부적으로만 유지하고 있습니다.

걸어온 길

  • 2019년, 한국어를 잘 아는 국내 최고의 국어학자가 만든 자연어 처리 엔진을 기반으로 시작했습니다.
  • 2019년 ~ 2022년: 국내 주요 대학의 박사급, 석사급 연구자들이 직접 말뭉치의 오류를 직접 수정하였고, 분석 오류를 일일이 검토하여 학습 데이터를 보강하였습니다. 국립국어원의 지침을 수용하고 발전시켜서 한국어의 특성에 맞게 학습시키고 있습니다. 고집스럽게 한국어를 제대로 보여주려고 하였습니다.
  • 2019년 ~ 2023년, 국어국문학과 출신의 개발자들이 프로젝트를 이끌었습니다.
  • 2022년, 한국언론진흥재단의 "언론사를 위한 형태소분석기 개발사업"을 통해서 빅카인즈 1억 어절 데이터를 추가로 학습하였습니다.
  • 2022년, 자체적인 한국어의 중의성해소 데이터를 구축하였고, "언론사를 위한 형태소분석기 개발사업" 과정에서 정제하였고, 공개하였습니다.
  • 2023년, 바이칼에이아이한국언론진흥재단과 함께 형태소 분석기 바른을 개발했습니다. 한국어를 바르게 발라내어서 바른 언어 생활을 위해서 쓰여지기를 바라는 희망을 담았습니다.
  • 2023년, bareun.ai를 통해서 누구나 쉽게 접근하여 사용할 수 있게 되었습니다.
  • 2023년, 깃허브에 많은 코드와 데이터를 공개하였습니다.
  • 2025년, 탁월한 형태소 분석 엔진을 기반으로 하여 한국어 맞춤법 검사 기능이 포함된 서비스를 출시하게 되었습니다.

중의성 해소 평가데이터

사람도 가끔씩 혼동하는 일을 가끔씩 벌어지곤 합니다. 한국어의 특성상 가는가늘다, 가다, 갈다로 해석이 될 수 있습니다. 표면형은 같지만, 분석이 차이가 나는 경우가 한국어에서 대략 12,000건 정도 발견이 되었습니다. 이 모든 같은 표면형을 가진 데이터를 검토하고 점검하여 공개합니다. 다만, 여기에는 아직도 많은 오류들이 있습니다. 많은 분들이 함께 참여해서 이를 고쳐나갈 수 있기를 바랍니다.

https://github.com/bareun-nlp/korean-ambiguity-data

도움이 되었나요?