한국어 형태소 분석기 - Korean pos tagger #
한국어 형태소 분석기는 한국어 텍스트를 의미 있는 최소 단위인 형태소로 분해하고, 각 형태소의 품사를 태깅하는 자연어 처리 도구이다. 한국어는 교착어적 특성으로 인해 어간과 어미가 결합하여 다양한 형태로 변화하므로, 정확한 형태소 분석이 매우 중요하다.
한국어 형태소 분석의 특징 #
교착어적 특성 #
한국어는 어근에 다양한 접사가 붙어 단어가 형성되는 교착어이다. 예를 들어 “먹었습니다"는 “먹-” (어간) + “-었-” (과거 시제 어미) + “-습니다” (종결 어미)로 분석된다.
띄어쓰기 문제 #
한국어는 띄어쓰기 규칙이 복잡하고 실제 텍스트에서 띄어쓰기가 잘못되는 경우가 많아, 형태소 분석기가 이를 보정하는 역할도 수행해야 한다.
복합어 처리 #
한국어에는 “사과나무”, “컴퓨터게임” 등과 같은 복합어가 많아, 이를 적절히 분해하거나 하나의 단위로 처리하는 것이 중요하다.
불규칙 활용 #
“듣다 → 들었다”, “푸르다 → 푸른” 등과 같은 불규칙 활용을 정확히 처리해야 한다.
형태소 분석의 과정 #
1. 어절 분리 #
입력된 텍스트를 공백을 기준으로 어절 단위로 분리한다.
2. 형태소 분해 #
각 어절을 가능한 형태소 조합으로 분해한다. 이 과정에서 여러 가지 후보가 생성될 수 있다.
3. 품사 태깅 #
분해된 각 형태소에 적절한 품사 태그를 부여한다. 한국어 품사 체계는 일반적으로 다음과 같이 구분된다:
- 체언: 명사(N), 대명사(NP), 수사(NR)
- 용언: 동사(V), 형용사(VA), 보조용언(VX)
- 수식언: 관형사(MM), 부사(MA)
- 독립언: 감탄사(IC)
- 관계언: 조사(J)
- 어미: 선어말어미(EP), 종결어미(EF), 연결어미(EC) 등
4. 중의성 해소 #
동일한 어절이 여러 가지 방식으로 분석될 수 있는 경우, 문맥을 고려하여 가장 적절한 분석 결과를 선택한다.
형태소 분석기의 활용 분야 #
정보 검색 #
검색 엔진에서 사용자 질의와 문서를 형태소 단위로 분석하여 더 정확한 검색 결과를 제공한다.
기계 번역 #
번역 시스템에서 원문을 정확히 분석하여 번역 품질을 향상시킨다.
텍스트 마이닝 #
대량의 텍스트 데이터에서 의미 있는 정보를 추출하기 위한 전처리 과정으로 사용된다.
감정 분석 #
텍스트의 감정이나 의견을 분석하기 위해 형태소 단위로 분해하여 처리한다.
챗봇 및 대화 시스템 #
사용자의 입력을 정확히 이해하기 위해 형태소 분석을 수행한다.
오픈소스 한국어 형태소 분석기 #
한나눔 (Hananum) #
- 명칭: 한나눔
- 관리: Kaist
- 개발언어: Java
- 알고리즘: HMM
- 학습사전: 세종계획 산출물
- 소스 오픈 여부: 오픈
- 구분분석기: 없음
꼬꼬마 (KKMA) #
- 명칭: 꼬꼬마
- 관리: Seoul University
- 개발언어: Java
- 알고리즘: ?
- 학습사전: 세종계획 산출물
- 소스 오픈 여부: Open 별도 요청
- 구분분석기: 일부 탑재
메카브 KO (Mecab) #
- 명칭: 메카브 KO (Mecab), 은전한닢
- 관리: 은전한닢 프로젝트 커뮤니티
- 개발언어: C/C++
- 알고리즘: CRF
- 학습사전: 세종계획 산출물 (일부)
- 소스 오픈 여부: 오픈
- 구분분석기: 없음
NTT에서 사용하던 일본어 형태소 분석기를 한국어 용으로 변환한 것이다. 영문을 읽으면 “미캡”이라고 읽어야 하겠지만 일본인이 제작한 것이고 일본어 소개페이지에 카타가나로 “메카부”라고 적혀 있어 여기에도 그렇게 기재하였다.
UTagger #
- 명칭: UTagger
- 관리: 울산대학교 한국어처리연구실
- 소스 오픈 여부: 오픈
- 바로가기: http://nlplab.ulsan.ac.kr/doku.php?id=utagger
상용 한글/한국어 형태소 분석기 #
KLT #
- 명칭: KLT200(구 HAM)
- 관리: 국민대학교
- 개발언어: 강승식 교수님 랩
- 알고리즘: C
- 학습사전: 모름
- 소스 오픈 여부: 아님
- 구분분석기: 없음
KOMA #
- 명칭: KOMA
- 관리: 고려대학교 임해창 교수님 NLP랩
- 개발언어: C/C++
- 알고리즘: HMM?
- 학습사전: 세종계획 산출물
- 소스 오픈 여부: 아님
- 구분분석기: 없음
현재 다음소프트 형태소분석기의 원형으로 알려져 있지만 많이 다르다.
BASIS #
- 명칭: Basis
- 관리: Basis
- 개발언어: C
- 알고리즘: 모름
- 학습사전: 모름
- 소스 오픈 여부: No
- 구분분석기: No
한국어의 경우 국민대 강승식교수님의 형태소분석기가 OEM으로 내장되어 있었으나 현재의 상태는 알 수 없다.