-
elasticsearch 한글 형태소 분석사전Elasticsearch 2025. 4. 1. 20:51
기본 개념
https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.2-nori
6.7.2 노리 (nori) 한글 형태소 분석기 | Elastic 가이드북
이 문서의 허가되지 않은 무단 복제나 배포 및 출판을 금지합니다. 본 문서의 내용 및 도표 등을 인용하고자 하는 경우 출처를 명시하고 김종민(kimjmin@gmail.com)에게 사용 내용을 알려주시기 바랍
esbook.kimjmin.net
위 글에 따르면 Nori는 한국어 텍스트 분석을 위해 설계되었으며 Elasticsearch 공식 분석기 입니다.
주요 특징
- 일반 명사, 고유 명사만 등록 ( 한글의 경우 명사, 동명사 정도만 검색 )
- Nori는 기본적으로 품사 필터링을 통해 조사, 접미사 등 17개 품사를 제거(default)
- stoptags 값에 배열로 제외할 품사 코드를 나열해서 입력
벤치 마크 및 알고리즘
https://www.elastic.co/kr/blog/nori-the-official-elasticsearch-plugin-for-korean-language-analysis
공식 한국어 분석 플러그인 “노리”
6.4에 추가된 Elasticsearch 공식 한국어 분석 플러그인 “노리”에 대한 모든 것...
www.elastic.co
형태소 분석 과정
1. 입력 문장 처리
형태소 분석은 입력된 텍스트를 어절 단위로 나눕니다.
예시) "21세기 세종계획" -> "21 + 세기 + 세종 + 계획" 혹은 "21 + 세 + 기세 + 종계 + 획" 등
2. 비용 계산 알고리즘
Viterbi 알고리즘을 사용하여 각 분할 경로의 비용을 계산합니다.
- 비용은 형태소 간 전이 비용과 형태소 자체의 비용으로 구성
- 비용이 낮을수록 더 자연스러운 분할로 간주
- 위의 예시로는 "21 + 세기 + 세종 + 계획" 이 가장 낮은 비용으로 선택될 수 있다.
3. 처리 최적화
- 노리는 입력 텍스트를 글자 단위로 처리하며, 실시간으로 격자를 생성하고 비용을 계산한다.
- 특정 상태에서 가능한 전이가 하나뿐일 때는 즉시 결과를 출력하여 처리 속도를 높인다.
4. 바이너리 사전 활용
- 노리는 MeCab-ko-dic 사전을 바이너리 형식으로 압축하여 효율적으로 검색합니다
(FST(Finite State Transducer)를 사용해 빠르게 검색)
유의사항
- 사용자 사전이 기본사전보다 항상 우위
- 최장일치 우선 등록 / 우선 분석 이슈
'Elasticsearch' 카테고리의 다른 글
APM Agent (0) 2025.05.20 profile을 통해 실제 쿼리가 어떻게 구성되는지 확인해보기 (0) 2025.03.27 인덱스 샤드 설정에 대해 (0) 2025.03.22 Curator를 활용한 Snapshot 테스트 (4) 2025.01.08 docker-compose.yml 활용하여 Elasticsearch Cluster 만들기 (4) 2024.10.25