소개

개요

Hama NLP (Hangul Morphological Analyzer)는 한글 인공지능에 필요한 필수 요소들을 철저하게 최적화시켜 구현한 라이브러리입니다. 기계학습 애플리케이션마다 각각의 특성에 따른 파이프라인이 채택됩니다. 하지만 텍스트 전처리 혹은 noise reduction 같이, 언어를 다루는 모든 파이프라인에 공통적으로 적용되는 필수 데이터 가공 단계가 존재합니다.

Hama NLP는 이러한 자연어처리 연구에서 필연적으로 사용되는 기능들을 한 곳에 집약한, 처음부터 끝까지 새로 쓰여진 한글 처리 라이브러리입니다.

Hama NLP는 필요에 의해 만들어졌습니다.

최근 통계적 언어 모델 (statistical language models)을 기반으로 한 transformer과 attention등의 기법이 소개되면서 인공지능 연구는 전례 없는 성장을 보이고 있습니다. 하지만 우리의 궁극적 도달점인 '사용자 (end user)와 인공지능의 접점'의 관점에선, 수 만건의 자연어처리 논문들이 아직 해결하지 못 한 결정적인 병목 (bottleneck)이 존재합니다. 일례로, 각종 자연어처리 태스크에서 최첨단 (SOTA) 스코어를 달성하는 transformer 기반 인공지능 모델들은 아직 대단한 처리 성능 없이는 학습 (training)은 고사하고 추론 (inference)조차 하기 힘듭니다. 모델 축소 (distillation) 연구가 활발히 진행되고 있지만, IoT기기나 브라우저 익스텐션 같이 리소스가 제한적인 client-side에서 이용할 수 있는 한글 자연어 처리 툴킷은 찾을 수 없습니다. 그 병목을 해결하고자, Hama NLP를 만들었습니다.

Client-side 인공지능의 장점은 무수합니다.

Hama NLP의 최대 장점은, 단연코 '서버가 필요 없는 텍스트 처리'일 것입니다. 서버의 부재는 시사하는 바가 많습니다.

  1. 사용자의 사생활이 보호됩니다. 많은 인공지능 애플리케이션들은 악착같고 모질게 사용자 데이터를 수집하고 사용합니다. 인공지능 파이프라인을 사용자의 기계로 옮겨, 애플리케이션 개발자가 사용자의 사적인 데이터를 액세스 할 필요도, 이유도 없는 환경을 조성합니다.

  2. 인공지능을 사용하기 위해 인터넷이 필요하지 않습니다. IoT 기기를 구매한 후 기기를 제조한 스타트업이 사라져 서버가 없어지고, 구매한 기기들은 비싼 벽돌이 되어버린 사례가 많습니다. Client-side 인공지능은 사용자 입장에서 제품의 수명에 대한 보증입니다.

Hama NLP의 기능

  1. 형태소 분석 (Morpheme analysis)
  2. 품사 태깅 (Part-of-speech tagging)
  3. 각종 텍스트 전처리 (Text preprocessing)