Elasticsearch 토크나이저 – 부분 단어 토큰나이저

https://grokonez.com/elasticsearch/elasticsearch-tokenizers-partial-word-tokenizers

Elasticsearch 토큰나이저 – 부분 단어 토큰나이저

이 튜토리얼에서는 부분적인 단어 일치를 위해 텍스트나 단어를 작은 조각으로 나눌 수 있는 2개의 토크나이저인 N-Gram Tokenizer와 Edge N-Gram Tokenizer를 살펴보겠습니다.

I. N-Gram 토큰화기


ngram 토크나이저는 2가지 작업을 수행합니다.
  • 지정된 문자(공백, 구두점...)를 만나면 텍스트를 단어로 나눕니다.
  • 지정된 길이의 각 단어의 N-그램을 방출합니다(길이가 2인 빠른 -> [qu, ui, ic, ck] )

  • => N-gram은 연속 문자의 슬라이딩 창과 같습니다.

    예를 들어:
    
    POST _analyze
    {
      "tokenizer": "ngram",
      "text": "Spring 5"
    }

    슬라이딩(최소 너비 1자, 최대 너비 2자) 창으로 용어를 생성합니다.
    
    [ "S", "Sp", "p", "pr", "r", "ri", "i", "in", "n", "ng", "g", "g ", " ", " 5", "5" ]
    

    구성


  • min_gram : 그램 단위의 최소 문자 길이(슬라이딩 창의 최소 너비). 기본값은 1입니다.
  • max_gram : 그램의 최대 문자 길이(슬라이딩 창의 최대 너비). 기본값은 2입니다.
  • token_chars : 토큰에 포함될 문자 클래스. Elasticsearch는 다음에 속하지 않는 문자로 분할됩니다:
  • 문자 (a, b, ...)
  • 숫자 (1, 2, ...)
  • 공백 ("", "\n", ...)
  • 구두점(!, ", ...)
  • 기호($, %, ...)

  • 기본값은 [](모든 문자 유지)입니다.

    예를 들어, 슬라이딩 윈도우(너비 = 3)와 문자 클래스: 문자와 숫자만 있는 토크나이저를 생성합니다.
    
    PUT jsa_index_n-gram
    {
      "settings": {
        "analysis": {
          "analyzer": {
            "jsa_analyzer": {
              "tokenizer": "jsa_tokenizer"
            }
          },
          "tokenizer": {
            "jsa_tokenizer": {
              "type": "ngram",
              "min_gram": 3,
              "max_gram": 3,
              "token_chars": [
                "letter",
                "digit"
              ]
            }
          }
        }
      }
    }
    
    POST jsa_index_n-gram/_analyze
    {
      "analyzer": "jsa_analyzer",
      "text": "Tut101: Spring 5"
    }

    자귀:

    더 보기:

    https://grokonez.com/elasticsearch/elasticsearch-tokenizers-partial-word-tokenizers

    Elasticsearch 토큰나이저 – 부분 단어 토큰나이저

    좋은 웹페이지 즐겨찾기