아빠는 개발자

[es] nori 형태소 분석기 사전 본문

Elastic/analyzer

[es] nori 형태소 분석기 사전

father6019 2025. 2. 2. 16:49
728x90
반응형
Elasticsearch의 Nori 형태소 분석기는 한국어 자연어 처리를 위해 설계된 분석기입니다.
Nori는 다양한 유형의 사전(Dictionary)을 활용하여 텍스트를 분석합니다. 주로 사용되는 사전 종류는 다음과 같습니다.
 
 

1. 기본 사전 (Nori 기본 사전)

  • Elasticsearch에 내장된 한국어 어휘 사전입니다.
  • 일반적인 한국어 단어들을 포함하고 있습니다.
  • 사용자 개입 없이 기본 형태소 분석에 사용됩니다.

2. 사용자 사전 (User Dictionary)

  • 사용자가 직접 정의하는 사전입니다.
  • 특정 도메인 또는 프로젝트에 맞는 고유 명사, 신조어, 전문 용어 등을 추가할 수 있습니다.

사전 항목 형식:

 

Elasticsearch Nori 형태소 분석기사용자 사전(User Dictionary) 형식은 다음과 같은 규칙을 따릅니다

단어 [Tab] 빈도 [Tab] 품사
 

 

  • 단어: 분석 대상이 되는 사용자 정의 단어
  • 빈도: (선택적) 해당 단어의 빈도 우선순위(숫자)
    • 숫자가 낮을수록 더 높은 우선순위를 가짐
    • 빈도 값을 생략할 경우 디폴트 값이 사용됨
  • 품사: (선택적) 형태소 품사 태그
    • 주요 품사 예시:
      • NNG: 일반 명사
      • NNP: 고유 명사
      • VV: 동사
      • MM: 수식언
      • XR: 어근

 

다음은 Elasticsearch Nori 형태소 분석기의 품사(POS) 태그와 예제를 정리

 

E 종결 어미 합니다, 해요
IC 감탄사 아, 와우, 흠
J 조사 이, 가, 은, 를
MAG 일반 부사 매우, 잘, 조금
MM 관형사 이, 그, 저
NA 분석 불능 (알 수 없는 문자)
NNG 일반 명사 사람, 책
NNP 고유 명사 서울, 한국
NR 수사 하나, 둘, 첫째
SC 구두점 ,, /, ·
SE 줄임표 (…) ...
SF 문장 끝 구두점 ., ?, !
SH 한자 大學, 水
SL 외국어 AI, computer
SN 숫자 123, 2025
SP 공백  
SSC 닫는 괄호 ), ], }
SSO 여는 괄호 (, [, {
SY 기호 @, %, #
UNA 분석 불가 형태 (알 수 없는 텍스트)
UNKNOWN 알 수 없는 품사 (분석 실패)
VA 형용사 예쁘다, 크다
VCN 부정 지정사 없다
VCP 긍정 지정사 이다, 입니다
VSV 보조 동사/형용사 하겠다, 되다
VV 동사 가다, 먹다
VX 보조 용언 못하다, 하려
XPN 접두사 초대형, 비공식
XR 어근 굳, 좋
XSA 형용사 파생 접미사 스럽다, 답다
XSN 명사 파생 접미사 들, 님, 꾼
XSV 동사 파생 접미사 하다, 되다

 

예제 1: 단순 사용자 정의 단어

인공지능
빅데이터
 
 

위와 같은 단순 등록은 기본 품사(NNG)와 빈도를 자동 할당합니다.


예제 2: 빈도와 품사 지정

인공지능    1   NNP
빅데이터    5   NNG
AI         2   XR
 
  • 인공지능: 고유 명사로 빈도 1 (가장 높은 우선순위)
  • 빅데이터: 일반 명사로 빈도 5
  • AI: 어근(XR)

 

 

 

 

설정 방법:

{
  "analysis": {
    "tokenizer": {
      "nori_user_dict_tokenizer": {
        "type": "nori_tokenizer",
        "user_dictionary": "user_dict.txt"
      }
    }
  }
}
 

3. 동의어 사전 (Synonym Dictionary)

  • 특정 단어들이 동일한 의미로 인식되도록 설정합니다.
  • 예: 빅데이터, 데이터마이닝 → bigdata
  • 설정 방법:
{
  "analysis": {
    "filter": {
      "synonym_filter": {
        "type": "synonym",
        "synonyms": ["빅데이터, 데이터마이닝 => bigdata"]
      }
    }
  }
}​

 

 

4. 불용어 사전 (Stopword Dictionary)

  • 분석 과정에서 제거할 단어 목록입니다.
  • 예: 조사("은", "는", "이", "가")나 불필요한 단어들을 등록합니다.
  • 설정 예시:
{
  "analysis": {
    "filter": {
      "stop_filter": {
        "type": "stop",
        "stopwords": ["이", "가", "은", "는"]
      }
    }
  }
}

 

 

5. 형태소 기반 품사 사전 (POS Tagging Dictionary)

  • 품사 태그를 사용해 단어 구분을 더 세밀히 조정합니다.
  • 예: 고유 명사(NNP), 일반 명사(NNG) 등
728x90
반응형

'Elastic > analyzer' 카테고리의 다른 글

[es] Nori analyzer 사전테스트  (1) 2023.09.04