Kuromoji number token filter
출처: 문서
본문
Kuromoji number 토큰 필터
kuromoji_number 토큰 필터는 일본어 숫자 표현을 표준 아라비아 숫자로 정규화해요. 일본어 텍스트는 한자 숫자(一, 二, 三…), 전각 숫자(1, 2, 3…), 또는 이 둘을 섞은 형태로 숫자를 표현할 수 있어요. 이 필터는 이런 표현들을 모두 표준 정수 또는 소수 값으로 변환해요.
이 필터는 다음과 같은 변환을 수행해요:
- 一万二千三百四十五는 12345로 변환돼요.
- 3,〇00은 3000으로 변환돼요.
- 千円은 1000으로 변환되고, 단위 円은 별도의 토큰으로 남아요.
이 필터는 일본어 표기로 작성된 가격, 개수, 기타 수량이 들어 있는 필드에서 패싯 검색, 범위 쿼리, 정렬을 수행할 때 유용해요.
설치
kuromoji_number 토큰 필터를 사용하려면 analysis-kuromoji 플러그인이 필요해요. 설치 방법은 Kuromoji analyzer 문서를 참고하세요.
파라미터
kuromoji_number 토큰 필터에는 설정 가능한 파라미터가 없어요.
예제
다음 예제는 kuromoji_number를 사용하는 커스텀 분석기로 인덱스를 생성해요:
PUT /kuromoji-number-index
{
"settings": {
"analysis": {
"analyzer": {
"number_analyzer": {
"type": "custom",
"tokenizer": "kuromoji_tokenizer",
"filter": ["kuromoji_number"]
}
}
}
}
}
{% include copy-curl.html %}
한자 숫자 표현이 포함된 텍스트(“가격은 12,345엔”이라는 뜻)로 분석기를 테스트해 보세요:
POST /kuromoji-number-index/_analyze
{
"analyzer": "number_analyzer",
"text": "価格は一万二千三百四十五円です"
}
{% include copy-curl.html %}
응답을 보면 한자 숫자가 아라비아 숫자 정수로 변환된 것을 확인할 수 있어요. 12345 토큰이 오프셋 3–12에 걸쳐 있는데, 이는 원본 한자 숫자 一万二千三百四十五가 9글자이기 때문이에요:
{
"tokens": [
{
"token": "価格",
"start_offset": 0,
"end_offset": 2,
"type": "word",
"position": 0
},
{
"token": "は",
"start_offset": 2,
"end_offset": 3,
"type": "word",
"position": 1
},
{
"token": "12345",
"start_offset": 3,
"end_offset": 12,
"type": "word",
"position": 2
},
{
"token": "円",
"start_offset": 12,
"end_offset": 13,
"type": "word",
"position": 3
},
{
"token": "です",
"start_offset": 13,
"end_offset": 15,
"type": "word",
"position": 4
}
]
}