데이터 색인 과정에서 검색 기능에 가장 큰 영향을 미치는 단계가 Tokenizer이다. 데이터 분석 과정에서 Tokenizer는 반드시 한 개만 사용이 가능하며 tokenizer 항목에 단일값으로 설정된다. Tokenizer란 Document중에서 분석코자 하는 문자열(Text) Field를 쪼개기 하는 것이다. 예를들어 Letter 토크나이저를 활용하면, "quick.brown_FOx" 같은 단어도 "quick", "brown", "FOx" 처럼 모두 분리된다. 이렇게 분리된 Document를 Term기준으로 역인덱싱을 하게 된다.
Term | ID |
the | doc1, doc2, doc3 |
brown | doc1, doc4 |
jump | doc1, doc2, doc3, doc5, doc6 |
이렇게 Token화 된 Term기준으로 탐색이 가능한 것이다.
실제로 이 과정은 다음과 같이 세분화 된다.
- 캐릭터 필터 : 텍스트 데이터가 입력되면 가장 먼저 필요에 따라 전체 문장에서 특정 문자를 대치하거나 제거하는데 이 과정을 담당하는 기능이 캐릭터 필터이다.
- 토크나이저 : 다음으로는 문장에 속한 단어들을 텀 단위로 하나씩 분리 해 내는 처리 과정을 거치는데 이 과정을 담당하는 기능이 토크나이저 이다.
- 토큰필터 : 다음으로 분리된 텀 들을 하나씩 가공하는 과정을 거치는데 이 과정을 담당하는 기능이 토큰 필터 입니다. 토큰 필터는 0개 부터 여러 개를 적용할 수 있습니다.
단지 whiteSpace나 특수문자로 Tokenize하게 되면 조사가 많은 한국어는 탐색의 한계가 있을것이다. 이에따라 형태소 분석기가 등장한다. 검색을 할 때는 보통 이런 문법에 따른 단어의 변형에 상관 없이 검색이 가능해야 하기 때문에 텍스트 데이터를 분석할 때 각각의 텀에 있는 단어들을 기본 형태인 어간을 추출하는 과정을 진행한다. 이 과정을 보통 어간 추출 또는 형태소 분석 이라고 하며 영어로는 stemming 이라고 한다. 그리고 형태소 분석을 하는 도구를 형태소 분석기, 영어로는 stemmer 라고 한다.
- Snowball Tokenizer(영문)
Snowball Tokenizer에 대한 설명 : https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.1-snowball\
6.7.1 Snowball - Elastic 가이드북
6.7.2 노리 (nori) 한글 형태소 분석기
esbook.kimjmin.net
- Nori Tokenizer(한글)
Nori Tokenizer에 대한 설명 : https://esbook.kimjmin.net/06-text-analysis/6.7-stemming/6.7.2-nori
6.7.2 노리 (nori) 한글 형태소 분석기 - Elastic 가이드북
이번 장에서는 elasticsearch가 데이터를 저장하는 색인 과정에서 처리하는 수많은 작업들에 대해 알아보았습니다. 텍스트 분석 및 텀의 개념과, 데이터 분석에 사용되는 애널라이저, 토크나이저,
esbook.kimjmin.net
'PaaS > Data' 카테고리의 다른 글
(데이터시각화) Tableau 서버 설치하기 (0) | 2023.11.26 |
---|---|
Cache Store(Redis) 읽기/쓰기 전략 (0) | 2023.11.05 |
ElasticSearch nori 형태소 분석기 설치 (0) | 2023.10.19 |
FlieBeat→ES 수집 설정은 어디서 해야 하는지? (0) | 2023.08.06 |
Filebeat 설치 및 ElasticSearch 연동 (0) | 2023.08.06 |