본문 바로가기
WIKI 기술 지식 베이스

CJK bigram token filter

원문 보기 위키 갱신

출처: 문서

본문

CJK bigram token filter

cjk_bigram 토큰 필터는 중국어, 일본어, 한국어(CJK)와 같이 일반적으로 단어를 구분하는 데 공백을 사용하지 않는 동아시아 언어를 처리하기 위해 특별히 설계되었어요. 바이그램은 토큰 문자열에서 인접한 두 요소의 시퀀스로, 문자나 단어가 될 수 있어요. CJK 언어의 경우 바이그램은 단어 경계를 근사하고 의미를 전달할 수 있는 중요한 문자 쌍을 포착하는 데 도움을 줘요.

매개변수

cjk_bigram 토큰 필터는 ignored_scripts와 output_unigrams 두 가지 매개변수로 구성할 수 있어요.

ignored_scripts

cjk-bigram 토큰 필터는 모든 비CJK 문자 체계(라틴어나 키릴 문자 같은 문자 체계)를 무시하고 CJK 텍스트만 바이그램으로 토큰화해요. 이 옵션을 사용하여 무시할 CJK 문자 체계를 지정할 수 있어요. 이 옵션은 다음과 같은 유효한 값을 가져요:

  • han: han 문자 체계는 한자를 처리해요. 한자는 중국, 일본, 한국의 문자 언어에 사용되는 표어 문자예요. 이 필터는 중국어, 일본어 한자, 한국어 한자로 작성된 텍스트를 토큰화, 정규화, 또는 어간 추출과 같은 텍스트 처리 작업에 도움을 줄 수 있어요.

  • hangul: hangul 문자 체계는 한글 문자를 처리해요. 한글은 한국어에 고유하며 다른 동아시아 문자 체계에는 존재하지 않아요.

  • hiragana: hiragana 문자 체계는 히라가나를 처리해요. 히라가나는 일본어 문자 체계에 사용되는 두 음절 문자 중 하나예요. 히라가나는 일반적으로 일본 고유어, 문법 요소, 특정 구두점에 사용돼요.

  • katakana: katakana 문자 체계는 가타카나를 처리해요. 가타카나는 다른 일본어 음절 문자예요. 가타카나는 주로 외래어, 의성어, 학명, 특정 일본어 단어에 사용돼요.

output_unigrams

이 옵션을 true로 설정하면 유니그램(단일 문자)과 바이그램을 모두 출력해요. 기본값은 false예요.

예시

다음 예시 요청은 devanagari_example_index라는 새 인덱스를 생성하고 cjk_bigram_filter 필터와 ignored_scripts 매개변수를 katakana로 설정한 분석기를 정의해요:

PUT /cjk_bigram_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "cjk_bigrams_no_katakana": {
          "tokenizer": "standard",
          "filter": [ "cjk_bigrams_no_katakana_filter" ]
        }
      },
      "filter": {
        "cjk_bigrams_no_katakana_filter": {
          "type": "cjk_bigram",
          "ignored_scripts": [
            "katakana"
          ],
          "output_unigrams": true
        }
      }
    }
  }
}

{% include copy-curl.html %}

생성된 토큰

다음 요청을 사용하여 분석기로 생성된 토큰을 확인해 보세요:

POST /cjk_bigram_example/_analyze
{
  "analyzer": "cjk_bigrams_no_katakana",
  "text": "東京タワーに行く"
}

{% include copy-curl.html %}

샘플 텍스트: "東京タワーに行く"

東京 (도쿄를 뜻하는 한자)
タワー (타워를 뜻하는 가타카나)
に行く (가다를 뜻하는 히라가나와 한자)

응답에는 생성된 토큰이 포함되어 있어요:

{
  "tokens": [
    {
      "token": "東",
      "start_offset": 0,
      "end_offset": 1,
      "type": "<SINGLE>",
      "position": 0
    },
    {
      "token": "東京",
      "start_offset": 0,
      "end_offset": 2,
      "type": "<DOUBLE>",
      "position": 0,
      "positionLength": 2
    },
    {
      "token": "京",
      "start_offset": 1,
      "end_offset": 2,
      "type": "<SINGLE>",
      "position": 1
    },
    {
      "token": "タワー",
      "start_offset": 2,
      "end_offset": 5,
      "type": "<KATAKANA>",
      "position": 2
    },
    {
      "token": "に",
      "start_offset": 5,
      "end_offset": 6,
      "type": "<SINGLE>",
      "position": 3
    },
    {
      "token": "に行",
      "start_offset": 5,
      "end_offset": 7,
      "type": "<DOUBLE>",
      "position": 3,
      "positionLength": 2
    },
    {
      "token": "行",
      "start_offset": 6,
      "end_offset": 7,
      "type": "<SINGLE>",
      "position": 4
    },
    {
      "token": "行く",
      "start_offset": 6,
      "end_offset": 8,
      "type": "<DOUBLE>",
      "position": 4,
      "positionLength": 2
    },
    {
      "token": "く",
      "start_offset": 7,
      "end_offset": 8,
      "type": "<SINGLE>",
      "position": 5
    }
  ]
}

더 알아보기 (Learn more)