文字グループトークナイザー

char_group トークナイザーは、定義されたセットに含まれる文字に遭遇するたびにテキストを用語に分割します。これは、シンプルなカスタムトークン化が望まれる場合に主に有用であり、pattern トークナイザーの使用によるオーバーヘッドが許容できない場合に適しています。

設定

char_group トークナイザーは1つのパラメータを受け入れます:

tokenize_on_chars 文字列をトークン化するための文字のリストを含むリスト。 このリストの文字に遭遇するたびに、新しいトークンが開始されます。 これは、-のような単一の文字や、文字グループ:whitespaceletterdigitpunctuationsymbolを受け入れます。

| max_token_length | 最大トークン長。 この長さを超えるトークンが見られた場合、それはmax_token_lengthの間隔で分割されます。 デフォルトは255です。

例の出力

Python

  1. resp = client.indices.analyze(
  2. tokenizer={
  3. "type": "char_group",
  4. "tokenize_on_chars": [
  5. "whitespace",
  6. "-",
  7. "\n"
  8. ]
  9. },
  10. text="The QUICK brown-fox",
  11. )
  12. print(resp)

Ruby

  1. response = client.indices.analyze(
  2. body: {
  3. tokenizer: {
  4. type: 'char_group',
  5. tokenize_on_chars: [
  6. 'whitespace',
  7. '-',
  8. "\n"
  9. ]
  10. },
  11. text: 'The QUICK brown-fox'
  12. }
  13. )
  14. puts response

Js

  1. const response = await client.indices.analyze({
  2. tokenizer: {
  3. type: "char_group",
  4. tokenize_on_chars: ["whitespace", "-", "\n"],
  5. },
  6. text: "The QUICK brown-fox",
  7. });
  8. console.log(response);

コンソール

  1. POST _analyze
  2. {
  3. "tokenizer": {
  4. "type": "char_group",
  5. "tokenize_on_chars": [
  6. "whitespace",
  7. "-",
  8. "\n"
  9. ]
  10. },
  11. "text": "The QUICK brown-fox"
  12. }

返します

コンソール-結果

  1. {
  2. "tokens": [
  3. {
  4. "token": "The",
  5. "start_offset": 0,
  6. "end_offset": 3,
  7. "type": "word",
  8. "position": 0
  9. },
  10. {
  11. "token": "QUICK",
  12. "start_offset": 4,
  13. "end_offset": 9,
  14. "type": "word",
  15. "position": 1
  16. },
  17. {
  18. "token": "brown",
  19. "start_offset": 10,
  20. "end_offset": 15,
  21. "type": "word",
  22. "position": 2
  23. },
  24. {
  25. "token": "fox",
  26. "start_offset": 16,
  27. "end_offset": 19,
  28. "type": "word",
  29. "position": 3
  30. }
  31. ]
  32. }