ICU tokenizer
출처: 문서
본문
ICU tokenizer
icu_tokenizer는 Unicode Standard Annex #29에 정의된 유니코드 텍스트 분할 규칙을 사용하여 텍스트를 단어로 분리해요. 이 토크나이저는 표준 토크나이저보다 더 정확한 단어 경계를 감지하며, 특히 공백으로 단어를 구분하지 않는 아시아 언어에 유용해요.
icu_tokenizer는 중국어, 일본어, 한국어, 태국어, 라오어 텍스트에 대해 사전 기반 토큰화를 사용하고, 미얀마어와 크메르 문자를 음절로 분할하는 특화된 규칙을 적용해요.
설치
icu_tokenizer를 사용하려면 analysis-icu 플러그인이 필요해요. 설치 방법은 ICU analyzer를 참조하세요.
예제
다음 예제는 icu_tokenizer를 사용하는 방법을 보여줘요.
PUT /icu-tokenizer-index
{
"settings": {
"analysis": {
"analyzer": {
"icu_analyzer_custom": {
"tokenizer": "icu_tokenizer"
}
}
}
}
}
{% include copy-curl.html %}
토크나이저 테스트
다음 요청을 사용하여 icu_tokenizer를 테스트해 보세요.
POST /icu-tokenizer-index/_analyze
{
"tokenizer": "icu_tokenizer",
"text": "สวัสดีOpenSearchเป็นเครื่องมือค้นหา"
}
{% include copy-curl.html %}
토크나이저는 공백 없이 태국어 텍스트를 올바르게 분할해요.
{
"tokens": [
{
"token": "สวัสดี",
"start_offset": 0,
"end_offset": 6,
"type": "<ALPHANUM>",
"position": 0
},
{
"token": "OpenSearch",
"start_offset": 6,
"end_offset": 16,
"type": "<ALPHANUM>",
"position": 1
},
{
"token": "เป็น",
"start_offset": 16,
"end_offset": 20,
"type": "<ALPHANUM>",
"position": 2
},
{
"token": "เครื่อง",
"start_offset": 20,
"end_offset": 27,
"type": "<ALPHANUM>",
"position": 3
},
{
"token": "มือ",
"start_offset": 27,
"end_offset": 30,
"type": "<ALPHANUM>",
"position": 4
},
{
"token": "ค้นหา",
"start_offset": 30,
"end_offset": 35,
"type": "<ALPHANUM>",
"position": 5
}
]
}
토큰화 규칙 사용자 정의
고급 사용자는 Resource Bundle Break Iterator(RBBI) 구문을 사용하여 스크립트별 규칙 파일을 지정함으로써 icu_tokenizer 동작을 사용자 정의할 수 있어요. 이 기능은 Lucene에서 실험적이에요.
사용자 정의 규칙을 적용하려면 rule_files 매개변수에 쉼표로 구분된 script:filename 쌍 목록을 사용하세요. 스크립트 코드는 ISO 15924 4글자 표준을 따라요.
사용자 정의 규칙 예제
사용자 정의 규칙 파일을 OpenSearch 설정 디렉터리에 저장하세요(예: CustomRules.rbbi):
.+ {200};
이 규칙 파일을 사용하도록 분석기를 구성하세요:
PUT /custom-icu-rules
{
"settings": {
"analysis": {
"tokenizer": {
"custom_icu_tokenizer": {
"type": "icu_tokenizer",
"rule_files": "Latn:CustomRules.rbbi"
}
},
"analyzer": {
"custom_icu_analyzer": {
"tokenizer": "custom_icu_tokenizer"
}
}
}
}
}
{% include copy-curl.html %}
사용자 정의 토크나이저를 테스트하세요:
POST /custom-icu-rules/_analyze
{
"analyzer": "custom_icu_analyzer",
"text": "Custom tokenization rules"
}
{% include copy-curl.html %}
매개변수
다음 표는 icu_tokenizer의 매개변수를 보여줘요.
| 매개변수 | 데이터 타입 | 설명 |
|---|---|---|
rule_files |
String | 특정 스크립트에 대한 사용자 정의 토큰화 규칙을 정의하는 script:rulefile 쌍의 쉼표로 구분된 목록이에요. 규칙 파일은 OpenSearch 설정 디렉터리에 있어야 해요. 선택 사항이에요. |