한국어 형태소 분석기 가루(Garu)란?
가루(Garu)는 브라우저에서 바로 실행되는 한국어 형태소 분석기입니다. 별도의 서버 없이 WebAssembly(WASM) 기반으로 클라이언트에서 직접 형태소 분석, 명사 추출, 토큰화를 수행합니다. 1.7MB의 경량 모델과 93KB WASM 엔진만으로 F1 95.3%의 높은 정확도를 달성합니다.
형태소 분석이란?
형태소 분석(morphological analysis)은 자연어 처리(NLP)의 기초 단계로, 문장을 의미를 가진 최소 단위인 형태소로 분리하고 각 형태소의 품사(POS)를 태깅하는 과정입니다. 예를 들어 “배가 아파서 약을 먹었다”를 분석하면 ‘배/NNG’, ‘가/JKS’, ‘아프/VA’, ‘어서/EC’, ‘약/NNG’, ‘을/JKO’, ‘먹/VV’, ‘었/EP’, ‘다/EF’로 분리됩니다.
한국어는 교착어로, 어근에 조사와 어미가 결합하여 단어를 이루기 때문에 한국어 형태소 분석은 영어와 달리 단순 공백 분리로는 불가능하며 전문적인 분석기가 필요합니다.
주요 기능
- 형태소 분석 (Morphological Analysis)
- 입력 텍스트를 형태소 단위로 분리하고 세종 품사 태그셋(42종)으로 품사를 태깅합니다.
- 명사 추출 (Noun Extraction)
- 텍스트에서 일반명사(NNG), 고유명사(NNP)를 추출합니다. 외국어(SL) 포함 옵션도 지원합니다.
- 토큰화 (Tokenization)
- 텍스트를 의미 있는 토큰 단위로 분리하여 후속 NLP 파이프라인에 활용할 수 있습니다.
다른 한국어 형태소 분석기와 비교
| 분석기 | 모델 크기 | npm 패키지 | 브라우저 | F1 (NIKL) |
|---|---|---|---|---|
| 가루 (Garu) | 1.7MB | O | O | 95.3% |
| Kiwi | ~40MB | X | X | 87.9% |
| MeCab-ko | ~50MB | X | X | ~85% |
사용법
npm 패키지로 설치하여 프로젝트에서 바로 사용할 수 있습니다.
npm install garu-ko
import { Garu } from 'garu-ko';
const garu = await Garu.load();
const result = garu.analyze('한국어 형태소 분석기');
console.log(result.tokens);활용 분야
- 한국어 검색 엔진 — 형태소 기반 인덱싱으로 검색 품질 향상
- 텍스트 마이닝 — 뉴스, 리뷰, SNS 텍스트에서 키워드 추출
- 챗봇 및 대화 시스템 — 사용자 입력 전처리
- 감성 분석 — 형태소 단위 감정 분류
- 교육 도구 — 한국어 문법 학습 및 품사 분석 실습
- 브라우저 확장 프로그램 — 서버 없이 실시간 텍스트 분석