本文へスキップ
`Ctrl`+`K`

# 7.3.40. `normalize`

注釈

このコマンドは実験的な機能です。

このコマンドは将来的に変更されるかもしれません。

## 7.3.40.1. 概要

`normalize` コマンドは指定したノーマライザーでテキストを正規化します。

`normalize` コマンドを使うのにテーブルを作成する必要はありません。このコマンドは、ノーマライザーの結果を確認するのに便利です。

## 7.3.40.2. 構文

このコマンドの引数は3つです。

`normalizer` と `string` が必須です。他は省略できます:

    normalize normalizer
              string
              [flags=NONE]

## 7.3.40.3. 使い方

以下は `normalize` コマンドの簡単な使用例です。

実行例:

    normalize NormalizerAuto "aBcDe 123"
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "abcde 123",
    #     "types": [
    #
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

## 7.3.40.4. 引数

このセクションでは `normalizer` の引数について説明します。

### 7.3.40.4.1. 必須引数

必須引数は二つあります。 `normalizer` と `string` です。

#### 7.3.40.4.1.1. `normalizer`

ノーマライザー名を指定します。 `normalize` コマンドは `normalizer` で指定された名前のノーマライザーを使います。

組み込みのノーマライザーの一覧は ノーマライザー にあります。

以下は `NormalizerAuto` ノーマライザーを使う例です。

TODO

他のノーマライザーを使いたい場合は、 register コマンドでノーマライザープラグインを登録する必要があります。例えば、 groonga-normalizer-mysql を登録することでMySQL互換の正規化方法を使うことができます。

#### 7.3.40.4.1.2. `string`

正規化したい文字列を指定します。

`string` の中に文字列を含める場合は、シングルクォート（ `'` ）またはダブルクォート（ `"` ）で `string` をクォートする必要があります。

`string` の中で空白を使う例です。

TODO

### 7.3.40.4.2. 省略可能引数

いくつか省略可能な引数があります。

#### 7.3.40.4.2.1. `flags`

ノーマライズ処理をカスタマイズするオプションを指定します。「 `|` 」で区切って複数のオプションを指定することができます。例えば、 `REMOVE_BLANK|WITH_TYPES` というように指定できます。

指定可能なフラグは以下の通りです。

フラグ | 説明
--- | ---
`NONE` | 無視されます。
`REMOVE_BLANK` | TODO
`WITH_TYPES` | TODO
`WITH_CHECKS` | このフラグを指定した場合、Groongaは、ノーマライズ前の文字の位置を出力します。これらのノーマライズ前の文字の位置は、一つ前の文字との相対位置であることに注意してください。
`REMOVE_TOKENIZED_DELIMITER` | TODO

以下は `REMOVE_BLANK` を使った例です。

TODO

以下は `WITH_TYPES` を使った例です。

TODO

以下は `WITH_CHECKS` を使った例です。

実行例:

    normalize NormalizerAuto "　A　　B　　　C" WITH_CHECKS
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": " a  b   c",
    #     "types": [
    #
    #     ],
    #     "checks": [
    #       3,
    #       1,
    #       3,
    #       3,
    #       1,
    #       3,
    #       3,
    #       3,
    #       1
    #     ]
    #   }
    # ]

以下は `REMOVE_TOKENIZED_DELIMITER` を使った例です。

TODO

## 7.3.40.5. 戻り値

    [HEADER, normalized_text]

`HEADER`

> `HEADER` については 出力形式 を参照してください。

`normalized_text`

> `normalized_text` はオブジェクトです。このオブジェクトは以下の属性を持っています。

> 名前 | 説明
> --- | ---
> `normalized` | 正規化されたテキスト。
> `types` | 正規化されたテキストのtype(文字種別)の配列です。N番目の `types` は正規化されたテキストのN番目の文字のtype(文字種別)を示しています。

## 7.3.40.6. 参考

- ノーマライザー