7.7.2.5. NormalizerNFKC130 — Groonga v16.0.4ドキュメント

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

# 7.7.2.5. `NormalizerNFKC130`

バージョン 14.1.3 で非推奨: 代わりに NormalizerNFKC をご利用ください。

`NormalizerNFKC130` は `NormalizerNFKC("version", "13.0.0")` と同じです。

## 7.7.2.5.1. 概要

Added in version 10.0.9.

`NormalizerNFKC130` はUnicode 13.0用のUnicode NFKC（Normalization Form Compatibility Composition）を使ってテキストを正規化します。

このノーマライザーはオプションを指定することで、動作を変更できます。

## 7.7.2.5.2. 構文

`NormalizerNFKC130` は省略可能な引数があります。

オプションなし:

    NormalizerNFKC130

`NormalizerNFKC130` はUnicode 13.0用のUnicode NFKC（Normalization Form Compatibility Composition）を使ってテキストを正規化します。

オプション指定:

    NormalizerNFKC130("unify_kana", true)

    NormalizerNFKC130("unify_kana_case", true)

    NormalizerNFKC130("unify_kana_voiced_sound_mark", true)

    NormalizerNFKC130("unify_hyphen", true)

    NormalizerNFKC130("unify_prolonged_sound_mark", true)

    NormalizerNFKC130("unify_hyphen_and_prolonged_sound_mark", true)

    NormalizerNFKC130("unify_middle_dot", true)

    NormalizerNFKC130("unify_katakana_v_sounds", true)

    NormalizerNFKC130("unify_katakana_bu_sound", true)

    NormalizerNFKC130("unify_to_romaji", true)

    NormalizerNFKC130("remove_symbol", true)

    NormalizerNFKC130("unify_katakana_di_sound", true)

    NormalizerNFKC130("unify_katakana_wo_sound", true)

    NormalizerNFKC130("unify_katakana_zu_small_sounds", true)

    NormalizerNFKC130("unify_katakana_du_sound", true)

    NormalizerNFKC130("unify_katakana_trailing_o", true)

    NormalizerNFKC130("unify_katakana_du_small_sounds", true)

    NormalizerNFKC130("unify_kana_prolonged_sound_mark", true)

    NormalizerNFKC130("unify_kana_hyphen", true)

Added in version 13.0.0: unify_katakana_gu_small_sounds 追加。

unify_katakana_di_sound 追加。

unify_katakana_wo_sound 追加。

unify_katakana_zu_small_sounds 追加。

unify_katakana_du_sound 追加。

unify_katakana_trailing_o 追加。

unify_katakana_du_small_sounds 追加。

Added in version 13.0.1: unify_kana_prolonged_sound_mark 追加。

unify_kana_hyphen 追加。

複数のオプション指定:

    NormalizerNFKC130("unify_to_romaji", true, "unify_kana_case", true, "unify_hyphen_and_prolonged_sound_mark", true)

上記のように、 `NormalizerNFKC130` は複数のオプションを指定することもできます。上記の例以外にも複数のオプションを組み合わせて指定できます。

## 7.7.2.5.3. 使い方

### 7.7.2.5.3.1. 簡単な使い方

以下は、`NormalizerNFKC130` の使用例です。 `NormalizerNFKC130` はUnicode 13.0用のUnicode NFKC（Normalization Form Compatibility Composition）を使ってテキストを正規化します。

実行例:

    normalize NormalizerNFKC130 "©" WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "©",
    #     "types": [
    #       "emoji",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は unify_kana オプションの使用例です。

このオプションは、以下のように同じ音となる全角ひらがな、全角カタカナ、半角カタカナの文字を同一視します。

実行例:

    normalize   'NormalizerNFKC130("unify_kana", true)'   "あイｳｪおヽヾ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "あいうぇおゝゞ",
    #     "types": [
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は unify_kana_case オプションの使用例です。

このオプションは、以下のように、全角ひらがな、全角カタカナ、半角カタカナの小さな文字を大きな文字と同一視します。

実行例:

    normalize   'NormalizerNFKC130("unify_kana_case", true)'   "ぁあぃいぅうぇえぉおゃやゅゆょよゎわゕかゖけ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "ああいいううええおおややゆゆよよわわかかけけ",
    #     "types": [
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

実行例:

    normalize   'NormalizerNFKC130("unify_kana_case", true)'   "ァアィイゥウェエォオャヤュユョヨヮワヵカヶケ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "アアイイウウエエオオヤヤユユヨヨワワカカケケ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_kana_voiced_sound_mark オプションの使用例です。

このオプションは、以下のように、全角ひらがな、全角カタカナ、半角カタカナで濁点や半濁点の有無を同一視します。

実行例:

    normalize   'NormalizerNFKC130("unify_kana_voiced_sound_mark", true)'   "かがきぎくぐけげこごさざしじすずせぜそぞただちぢつづてでとどはばぱひびぴふぶぷへべぺほぼぽ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "かかききくくけけここささししすすせせそそたたちちつつててととはははひひひふふふへへへほほほ",
    #     "types": [
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "hiragana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

実行例:

    normalize   'NormalizerNFKC130("unify_kana_voiced_sound_mark", true)'   "カガキギクグケゲコゴサザシジスズセゼソゾタダチヂツヅテデトドハバパヒビピフブプヘベペホボポ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "カカキキククケケココササシシススセセソソタタチチツツテテトトハハハヒヒヒフフフヘヘヘホホホ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_hyphen オプションの使用例です。このオプションは、以下のように、ハイフンを"-" (U+002D HYPHEN-MINUS)に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_hyphen", true)'   "-˗֊‐‑‒–⁃⁻₋−"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "-----------",
    #     "types": [
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_prolonged_sound_mark オプションの使用例です。このオプションは、以下のように長音記号を"-" (U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK)に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_prolonged_sound_mark", true)'   "ー—―─━ｰ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "ーーーーーー",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、unify_hyphen_and_prolonged_sound_mark オプションの使用例です。このオプションは、以下のように、ハイフンと長音記号を"-" (U+002D HYPHEN-MINUS)に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_hyphen_and_prolonged_sound_mark", true)'   "-˗֊‐‑‒–⁃⁻₋− ﹣－ ー—―─━ｰ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "----------- -- ------",
    #     "types": [
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "others",
    #       "symbol",
    #       "symbol",
    #       "others",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、unify_middle_dot オプションの使用例です。このオプションは、中点を"·" (U+00B7 MIDDLE DOT)に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_middle_dot", true)'   "·ᐧ•∙⋅⸱・･"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "········",
    #     "types": [
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "symbol",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、unify_katakana_v_sounds オプションの使用例です。このオプションは、以下のように、"ヴァヴィヴヴェヴォ"を"バビブベボ"に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_katakana_v_sounds", true)'   "ヴァヴィヴヴェヴォヴ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "バビブベボブ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、unify_katakana_bu_sound オプションの使用例です。このオプションは、以下のように、"ヴァヴィヴゥヴェヴォ"を"ブ"に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_katakana_bu_sound", true)'   "ヴァヴィヴヴェヴォヴ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "ブブブブブブ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_to_romaji オプションの使用例です。このオプションは、以下のように、ひらがなとカタカナをローマ字に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_to_romaji", true)'   "アァイィウゥエェオォ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "axaixiuxuexeoxo",
    #     "types": [
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、remove_symbol オプションの使用例です。このオプションは、以下のように記号(例えば #, !, ", &, % 等)を削除します 。

実行例:

    normalize   'NormalizerNFKC130("remove_symbol", true)'   "#This & is %% a pen."   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "this  is  a pen",
    #     "types": [
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "others",
    #       "others",
    #       "alpha",
    #       "alpha",
    #       "others",
    #       "others",
    #       "alpha",
    #       "others",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_katakana_gu_small_sounds オプションの使用例です。このオプションは、以下のように、"グァグィグェグォ"を"ガギゲゴ"に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_katakana_gu_small_sounds", true)'   "グァグィグェグォ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "ガギゲゴ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_katakana_di_sound オプションの使用例です。このオプションは、以下のように、"ヂ"を"ジ"に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_katakana_di_sound", true)'   "ヂ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "ジ",
    #     "types": [
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_katakana_wo_sound オプションの使用例です。このオプションは、以下のように、"ヲ"を"オ"に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_katakana_wo_sound", true)'   "ヲ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "オ",
    #     "types": [
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_katakana_zu_small_sounds オプションの使用例です。このオプションは、以下のように、"ズァズィズェズォ"を"ザジゼゾ"に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_katakana_zu_small_sounds", true)'   "ズァズィズェズォ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "ザジゼゾ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_katakana_du_sound オプションの使用例です。このオプションは、以下のように、"ヅ"を"ズ"に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_katakana_du_sound", true)'   "ヅ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "ズ",
    #     "types": [
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_katakana_trailing_o オプションの使用例です。このオプションは、以下のように、前の文字の母音が"オ"のとき、"オ"を"ウ"に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_katakana_trailing_o", true)'   "オオコオソオトオノオ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "オウコウソウトウノウ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は、 unify_katakana_du_small_sounds オプションの使用例です。このオプションは、以下のように、"ヅァヅィヅェヅォ"を"ザジゼゾ"に正規化します。

実行例:

    normalize   'NormalizerNFKC130("unify_katakana_du_small_sounds", true)'   "ヅァヅィヅェヅォ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "ザジゼゾ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は unify_kana_prolonged_sound_mark オプションの使用例です。このオプションは、"ー" (U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK) を一文字前のひらがな・カタカナの母音に正規化します。

もし、一文字前の文字が"ん"であれば、"ー"は"ん"に正規化されます。また、一文字前の文字が"ン"であれば、"ー"は"ン"に正規化されます。

実行例:

    normalize   'NormalizerNFKC130("unify_kana_prolonged_sound_mark", true)'   "カーキークーケーコー"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "カアキイクウケエコオ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

以下は unify_kana_hyphen オプションの使用例です。このオプションは、"-" (U+002D HYPHEN-MINUS) を一文字前のひらがな・カタカナの母音に正規化します。

もし、一文字前の文字が"ん"であれば、"-"は"ん"に正規化されます。また、一文字前の文字が"ン"であれば、"-"は"ン"に正規化されます。

実行例:

    normalize   'NormalizerNFKC130("unify_kana_hyphen", true)'   "カ-キ-ク-ケ-コ-"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "カアキイクウケエコオ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

### 7.7.2.5.3.2. 高度な使い方

`TokenMecab` と `NormalizerNFKC130` を組み合わせて使うことで、特定の品詞の読みをローマ字で出力できます。

まずはじめに、`TokenMecab` の `target_class` オプションと `include_reading` オプションを使って人名の接尾語と非自立語を除いた名詞を抽出します。

次に、抽出した名詞の読みを `NormalizerNFKC130` の `unify_to_romaji` を使って正規化します。

実行例:

    tokenize 'TokenMecab("target_class", "-名詞/非自立", "target_class", "-名詞/接尾/人名", "target_class", "名詞", "include_reading", true)' '彼の名前は山田さんのはずです。'
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   [
    #     {
    #       "value": "彼",
    #       "position": 0,
    #       "force_prefix": false,
    #       "force_prefix_search": false,
    #       "metadata": {
    #         "reading": "カレ"
    #       }
    #     },
    #     {
    #       "value": "名前",
    #       "position": 1,
    #       "force_prefix": false,
    #       "force_prefix_search": false,
    #       "metadata": {
    #         "reading": "ナマエ"
    #       }
    #     },
    #     {
    #       "value": "山田",
    #       "position": 2,
    #       "force_prefix": false,
    #       "force_prefix_search": false,
    #       "metadata": {
    #         "reading": "ヤマダ"
    #       }
    #     }
    #   ]
    # ]
    normalize   'NormalizerNFKC130("unify_to_romaji", true)'   "カレ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "kare",
    #     "types": [
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]
    normalize   'NormalizerNFKC130("unify_to_romaji", true)'   "ナマエ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "namae",
    #     "types": [
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]
    normalize   'NormalizerNFKC130("unify_to_romaji", true)'   "ヤマダ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "yamada",
    #     "types": [
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

## 7.7.2.5.4. 引数

### 7.7.2.5.4.1. 省略可能引数

省略可能な引数は以下の通りです。

#### 7.7.2.5.4.1.1. `unify_kana`

このオプションは、同じ音となる全角ひらがな、全角カタカナ、半角カタカナの文字を同一視します。

#### 7.7.2.5.4.1.2. `unify_kana_case`

このオプションは、全角ひらがな、全角カタカナ、半角カタカナの小さな文字を大きな文字と同一視します。

#### 7.7.2.5.4.1.3. `unify_kana_voiced_sound_mark`

このオプションは、全角ひらがな、全角カタカナ、半角カタカナで濁点や半濁点の有無を同一視します。

#### 7.7.2.5.4.1.4. `unify_hyphen`

このオプションは、ハイフンを"-" (U+002D HYPHEN-MINUS)に正規化します。

正規化対象のハイフンは以下の通りです。

- "-" (U+002D HYPHEN-MINUS)

- "֊" (U+058A ARMENIAN HYPHEN)

- "˗" (U+02D7 MODIFIER LETTER MINUS SIGN)

- "‐" (U+2010 HYPHEN)

- "—" (U+2014 EM DASH)

- "⁃" (U+2043 HYPHEN BULLET)

- "⁻" (U+207B SUPERSCRIPT MINUS)

- "₋" (U+208B SUBSCRIPT MINUS)

- "−" (U+2212 MINUS SIGN)

#### 7.7.2.5.4.1.5. `unify_prolonged_sound_mark`

このオプションは、長音記号を"-" (U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK)に正規化します。

正規化対象の長音記号は以下の通りです。

- "—" (U+2014 EM DASH)

- "―" (U+2015 HORIZONTAL BAR)

- "─" (U+2500 BOX DRAWINGS LIGHT HORIZONTAL)

- "━" (U+2501 BOX DRAWINGS HEAVY HORIZONTAL)

- "ー" (U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK)

- "ｰ" (U+FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK)

#### 7.7.2.5.4.1.6. `unify_hyphen_and_prolonged_sound_mark`

このオプションは、ハイフンと長音記号を"-" (U+002D HYPHEN-MINUS)に正規化します。

正規化対象のハイフンと長音記号は以下の通りです。

- "-" (U+002D HYPHEN-MINUS)

- "֊" (U+058A ARMENIAN HYPHEN)

- "˗" (U+02D7 MODIFIER LETTER MINUS SIGN)

- "‐" (U+2010 HYPHEN)

- "—" (U+2014 EM DASH)

- "⁃" (U+2043 HYPHEN BULLET)

- "⁻" (U+207B SUPERSCRIPT MINUS)

- "₋" (U+208B SUBSCRIPT MINUS)

- "−" (U+2212 MINUS SIGN)

- "—" (U+2014 EM DASH)

- "―" (U+2015 HORIZONTAL BAR)

- "─" (U+2500 BOX DRAWINGS LIGHT HORIZONTAL)

- "━" (U+2501 BOX DRAWINGS HEAVY HORIZONTAL)

- "ー" (U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK)

- "ｰ" (U+FF70 HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK)

#### 7.7.2.5.4.1.7. `unify_middle_dot`

このオプションは、中点を"·" (U+00B7 MIDDLE DOT)に正規化します。

正規化対象の中点は以下の通りです。

- "·" (U+00B7 MIDDLE DOT)

- "ᐧ" (U+1427 CANADIAN SYLLABICS FINAL MIDDLE DOT)

- "•" (U+2022 BULLET)

- "∙" (U+2219 BULLET OPERATOR)

- "⋅" (U+22C5 DOT OPERATOR)

- "⸱" (U+2E31 WORD SEPARATOR MIDDLE DOT)

- "・" (U+30FB KATAKANA MIDDLE DOT)

- "･" (U+FF65 HALFWIDTH KATAKANA MIDDLE DOT)

#### 7.7.2.5.4.1.8. `unify_katakana_v_sounds`

このオプションは、"ヴァヴィヴヴェヴォ"を"バビブベボ"に正規化します。

#### 7.7.2.5.4.1.9. `unify_katakana_bu_sound`

このオプションは、"ヴァヴィヴゥヴェヴォ"を"ブ"に正規化します。

#### 7.7.2.5.4.1.10. `unify_to_romaji`

このオプションは、ひらがなとカタカナをローマ字に正規化します。

#### 7.7.2.5.4.1.11. `remove_symbol`

このオプションは、正規化対象の文字列から記号(例えば #, !, ", &, % 等)を削除します。

#### 7.7.2.5.4.1.12. `unify_katakana_gu_small_sounds`

Added in version 13.0.0.

このオプションは、"グァグィグェグォ"を"ガギゲゴ"に正規化します。

#### 7.7.2.5.4.1.13. `unify_katakana_di_sound`

Added in version 13.0.0.

このオプションは、"ヂ"を"ジ"に正規化します。

#### 7.7.2.5.4.1.14. `unify_katakana_wo_sound`

Added in version 13.0.0.

このオプションは、"ヲ"を"オ"に正規化します。

#### 7.7.2.5.4.1.15. `unify_katakana_zu_small_sounds`

Added in version 13.0.0.

このオプションは、"ズァズィズェズォ"を"ザジゼゾ"に正規化します。

#### 7.7.2.5.4.1.16. `unify_katakana_du_sound`

Added in version 13.0.0.

このオプションは、"ヅ"を"ズ"に正規化します。

#### 7.7.2.5.4.1.17. `unify_katakana_trailing_o`

Added in version 13.0.0.

このオプションは、前の文字の母音が"オ"のとき、"オ"を"ウ"に正規化します。

- "ォオ" -> "ォウ"

- "オオ" -> "オウ"

- "コオ" -> "コウ"

- "ソオ" -> "ソウ"

- "トオ" -> "トウ"

- "ノオ" -> "ノウ"

- "ホオ" -> "ホウ"

- "モオ" -> "モウ"

- "ョオ" -> "ョオ"

- "ヨオ" -> "ヨウ"

- "ロオ" -> "ロウ"

- "ゴオ" -> "ゴウ"

- "ゾオ" -> "ゾウ"

- "ドオ" -> "ドウ"

- "ボオ" -> "ボウ"

- "ポオ" -> "ポウ"

- "ヺオ" -> "ヺウ"

#### 7.7.2.5.4.1.18. `unify_katakana_du_small_sounds`

Added in version 13.0.0.

このオプションは、"ヅァヅィヅェヅォ"を"ザジゼゾ"に正規化します。

#### 7.7.2.5.4.1.19. `unify_kana_prolonged_sound_mark`

Added in version 13.0.1.

このオプションは、"ー" (U+30FC KATAKANA-HIRAGANA PROLONGED SOUND MARK) を一文字前のひらがな・カタカナの母音に正規化します。

もし、一文字前の文字が"ん"であれば、"ー"は"ん"に正規化されます。また、一文字前の文字が"ン"であれば、"ー"は"ン"に正規化されます。

    ァー -> ァア, アー -> アア, ヵー -> ヵア, カー -> カア, ガー -> ガア, サー -> サア, ザー -> ザア,
    ター -> タア, ダー -> ダア, ナー -> ナア, ハー -> ハア, バー -> バア, パー -> パア, マー -> マア,
    ャー -> ャア, ヤー -> ヤア, ラー -> ラア, ヮー -> ヮア, ワー -> ワア, ヷー -> ヷア,
    ィー -> ィイ, イー -> イイ, キー -> キイ, ギー -> ギイ, シー -> シイ, ジー -> ジイ, チー -> チイ,
    ヂー -> ヂイ, ニー -> ニイ, ヒー -> ヒイ, ビー -> ビイ, ピー -> ピイ, ミー -> ミイ, リー -> リイ,
    ヰー -> ヰイ, ヸー -> ヸイ,

    ゥー -> ゥウ, ウー -> ウウ, クー -> クウ, グー -> グウ, スー -> スウ, ズー -> ズウ, ツー -> ツウ,
    ヅー -> ヅウ, ヌー -> ヌウ, フー -> フウ, ブー -> ブウ, プー -> プウ, ムー -> ムウ, ュー -> ュウ,
    ユー -> ユウ, ルー -> ルウ, ヱー -> ヱウ, ヴー -> ヴウ,

    ェー -> ェエ, エー -> エエ, ヶー -> ヶエ, ケー -> ケエ, ゲー -> ゲエ, セー -> セエ, ゼー -> ゼエ,
    テー -> テエ, デー -> デエ, ネー -> ネエ, ヘー -> ヘエ, ベー -> ベエ, ペー -> ペエ, メー -> メエ,
    レー -> レエ, ヹー -> ヹエ,

    ォー -> ォオ, オー -> オオ, コー -> コオ, ゴー -> ゴオ, ソー -> ソオ, ゾー -> ゾオ, トー -> トオ,
    ドー -> ドオ, ノー -> ノオ, ホー -> ホオ, ボー -> ボオ, ポー -> ポオ, モー -> モオ, ョー -> ョオ,
    ヨー -> ヨオ, ロー -> ロオ, ヲー -> ヲオ, ヺー -> ヺオ,

    ンー -> ンン

    ぁー -> ぁあ, あー -> ああ, ゕー -> ゕあ, かー -> かあ, がー -> があ, さー -> さあ, ざー -> ざあ,
    たー -> たあ, だー -> だあ, なー -> なあ, はー -> はあ, ばー -> ばあ, ぱー -> ぱあ, まー -> まあ,
    ゃー -> ゃあ, やー -> やあ, らー -> らあ, ゎー -> ゎあ, わー -> わあ

    ぃー -> ぃい, いー -> いい, きー -> きい, ぎー -> ぎい, しー -> しい, じー -> じい, ちー -> ちい,
    ぢー -> ぢい, にー -> にい, ひー -> ひい, びー -> びい, ぴー -> ぴい, みー -> みい, りー -> りい,
    ゐー -> ゐい

    ぅー -> ぅう, うー -> うう, くー -> くう, ぐー -> ぐう, すー -> すう, ずー -> ずう, つー -> つう,
    づー -> づう, ぬー -> ぬう, ふー -> ふう, ぶー -> ぶう, ぷー -> ぷう, むー -> むう, ゅー -> ゅう,
    ゆー -> ゆう, るー -> るう, ゑー -> ゑう, ゔー -> ゔう

    ぇー -> ぇえ, えー -> ええ, ゖー -> ゖえ, けー -> けえ, げー -> げえ, せー -> せえ, ぜー -> ぜえ,
    てー -> てえ, でー -> でえ, ねー -> ねえ, へー -> へえ, べー -> べえ, ぺー -> ぺえ, めー -> めえ,
    れー -> れえ

    ぉー -> ぉお, おー -> おお, こー -> こお, ごー -> ごお, そー -> そお, ぞー -> ぞお, とー -> とお,
    どー -> どお, のー -> のお, ほー -> ほお, ぼー -> ぼお, ぽー -> ぽお, もー -> もお, ょー -> ょお,
    よー -> よお, ろー -> ろお, をー -> をお

    んー -> んん

#### 7.7.2.5.4.1.20. `unify_kana_hyphen`

Added in version 13.0.1.

このオプションは、"-" (U+002D HYPHEN-MINUS) を一文字前のひらがな・カタカナの母音に正規化します。

もし、一文字前の文字が"ん"であれば、"-"は"ん"に正規化されます。また、一文字前の文字が"ン"であれば、"-"は"ン"に正規化されます。

    ァ- -> ァア, ア- -> アア, ヵ- -> ヵア, カ- -> カア, ガ- -> ガア, サ- -> サア, ザ- -> ザア,
    タ- -> タア, ダ- -> ダア, ナ- -> ナア, ハ- -> ハア, バ- -> バア, パ- -> パア, マ- -> マア,
    ャ- -> ャア, ヤ- -> ヤア, ラ- -> ラア, ヮ- -> ヮア, ワ- -> ワア, ヷ- -> ヷア,
    ィ- -> ィイ, イ- -> イイ, キ- -> キイ, ギ- -> ギイ, シ- -> シイ, ジ- -> ジイ, チ- -> チイ,
    ヂ- -> ヂイ, ニ- -> ニイ, ヒ- -> ヒイ, ビ- -> ビイ, ピ- -> ピイ, ミ- -> ミイ, リ- -> リイ,
    ヰ- -> ヰイ, ヸ- -> ヸイ,

    ゥ- -> ゥウ, ウ- -> ウウ, ク- -> クウ, グ- -> グウ, ス- -> スウ, ズ- -> ズウ, ツ- -> ツウ,
    ヅ- -> ヅウ, ヌ- -> ヌウ, フ- -> フウ, ブ- -> ブウ, プ- -> プウ, ム- -> ムウ, ュ- -> ュウ,
    ユ- -> ユウ, ル- -> ルウ, ヱ- -> ヱウ, ヴ- -> ヴウ,

    ェ- -> ェエ, エ- -> エエ, ヶ- -> ヶエ, ケ- -> ケエ, ゲ- -> ゲエ, セ- -> セエ, ゼ- -> ゼエ,
    テ- -> テエ, デ- -> デエ, ネ- -> ネエ, ヘ- -> ヘエ, ベ- -> ベエ, ペ- -> ペエ, メ- -> メエ,
    レ- -> レエ, ヹ- -> ヹエ,

    ォ- -> ォオ, オ- -> オオ, コ- -> コオ, ゴ- -> ゴオ, ソ- -> ソオ, ゾ- -> ゾオ, ト- -> トオ,
    ド- -> ドオ, ノ- -> ノオ, ホ- -> ホオ, ボ- -> ボオ, ポ- -> ポオ, モ- -> モオ, ョ- -> ョオ,
    ヨ- -> ヨオ, ロ- -> ロオ, ヲ- -> ヲオ, ヺ- -> ヺオ,

    ン- -> ンン

    ぁ- -> ぁあ, あ- -> ああ, ゕ- -> ゕあ, か- -> かあ, が- -> があ, さ- -> さあ, ざ- -> ざあ,
    た- -> たあ, だ- -> だあ, な- -> なあ, は- -> はあ, ば- -> ばあ, ぱ- -> ぱあ, ま- -> まあ,
    ゃ- -> ゃあ, や- -> やあ, ら- -> らあ, ゎ- -> ゎあ, わ- -> わあ

    ぃ- -> ぃい, い- -> いい, き- -> きい, ぎ- -> ぎい, し- -> しい, じ- -> じい, ち- -> ちい,
    ぢ- -> ぢい, に- -> にい, ひ- -> ひい, び- -> びい, ぴ- -> ぴい, み- -> みい, り- -> りい,
    ゐ- -> ゐい

    ぅ- -> ぅう, う- -> うう, く- -> くう, ぐ- -> ぐう, す- -> すう, ず- -> ずう, つ- -> つう,
    づ- -> づう, ぬ- -> ぬう, ふ- -> ふう, ぶ- -> ぶう, ぷ- -> ぷう, む- -> むう, ゅ- -> ゅう,
    ゆ- -> ゆう, る- -> るう, ゑ- -> ゑう, ゔ- -> ゔう

    ぇ- -> ぇえ, え- -> ええ, ゖ- -> ゖえ, け- -> けえ, げ- -> げえ, せ- -> せえ, ぜ- -> ぜえ,
    て- -> てえ, で- -> でえ, ね- -> ねえ, へ- -> へえ, べ- -> べえ, ぺ- -> ぺえ, め- -> めえ,
    れ- -> れえ

    ぉ- -> ぉお, お- -> おお, こ- -> こお, ご- -> ごお, そ- -> そお, ぞ- -> ぞお, と- -> とお,
    ど- -> どお, の- -> のお, ほ- -> ほお, ぼ- -> ぼお, ぽ- -> ぽお, も- -> もお, ょ- -> ょお,
    よ- -> よお, ろ- -> ろお, を- -> をお

    ん- -> んん

## 7.7.2.5.5. 参考

- normalize