형태소 분석

최강일·2022년 5월 6일
0

Elasticsearch

목록 보기
3/4
post-thumbnail

형태소 분석기(Analyzer)

필드에 지정된 텍스트를 색인 내부에서 사용하는 가장 기본적인 단위인 term으로 분리하는 작업

  • 색인/검색에 사용
    • 색인 과정에서의 분석 : 검색에 용이한 유의미한 Term으로 가공하여 색인에 저장
    • 검색 과정에서의 분석 : 사용자 질의가 색인된 term에 최대한 일치하도록 형태소 분석 진행

TokenStream

분석하는 객체로 Analyzer의 구현체라 생각함, Tokenizer/TokenFilter로 구성

Tokenizer

텍스트를 Token으로 분리. 정해진 separator(ex : 공백, !@#등의 특수문자)를 기준으로 Token을 분리

  • 주요 토크나이저
    • StandardTokenizer : 문법 기반 토크나이저로, 유니코드 텍스트 분할 알고리즘에 명시된 규칙을 따름
    • WhitespaceTokenizer : 공백 문자 로 텍스트 분할
    • SpacialCharacter : !@# 문자 단위로 토큰 분리(CharTokenizer)
    • NGramTokenizer : N-Gram 모델을 사용해 분할
    • LowerCaseTokenizer : 대문자를 소문자로 변환
    • 그 외 각 언어별 토크나이저 플러그인 제공(노리,아리랑 등)

TokenFilter

Tokenizer로 분리된 Token들을 필터링 또는 가공하여 Term 생성(ex : stopword - a,the 제거)

  • 주요 토큰필터
    • StopFilter : 토큰스트림에서 불용어 제거
    • Stemming : 단어들의 기본 형태인 어간 추출(ex : cakes -> cake)

Token

단어와 메타정보를 담고 있음(전체 텍스트에서 시작/끝 지점, 토큰의 종류, 위치 증가 값…)

profile
Search & Backend Engineer

0개의 댓글