7.8.2.6. NormalizerNFKC150 — Groonga v16.0.8ドキュメント

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

# 7.8.2.6. `NormalizerNFKC150`

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

`NormalizerNFKC150` は `NormalizerNFKC("version", "15.0.0")` と同じです。

## 7.8.2.6.1. 概要

Added in version 13.0.0.

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

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

## 7.8.2.6.2. 構文

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

オプションなし:

    NormalizerNFKC150

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

オプション指定:

    NormalizerNFKC150("unify_kana", true)

    NormalizerNFKC150("unify_kana_case", true)

    NormalizerNFKC150("unify_kana_voiced_sound_mark", true)

    NormalizerNFKC150("unify_hyphen", true)

    NormalizerNFKC150("unify_prolonged_sound_mark", true)

    NormalizerNFKC150("unify_hyphen_and_prolonged_sound_mark", true)

    NormalizerNFKC150("unify_middle_dot", true)

    NormalizerNFKC150("unify_katakana_v_sounds", true)

    NormalizerNFKC150("unify_katakana_bu_sound", true)

    NormalizerNFKC150("unify_to_katakana", true)

    NormalizerNFKC150("unify_to_romaji", true)

    NormalizerNFKC150("remove_symbol", true)

    NormalizerNFKC150("unify_katakana_gu_small_sounds", true)

    NormalizerNFKC150("unify_katakana_di_sound", true)

    NormalizerNFKC150("unify_katakana_wo_sound", true)

    NormalizerNFKC150("unify_katakana_zu_small_sounds", true)

    NormalizerNFKC150("unify_katakana_du_sound", true)

    NormalizerNFKC150("unify_katakana_trailing_o", true)

    NormalizerNFKC150("unify_katakana_du_small_sounds", true)

    NormalizerNFKC150("unify_kana_prolonged_sound_mark", true)

    NormalizerNFKC150("unify_kana_hyphen", true)

    NormalizerNFKC150("unify_latin_alphabet_with", true)

Added in version 14.0.7: unify_latin_alphabet_with is added.

Added in version 13.0.1: unify_kana_prolonged_sound_mark 追加。

unify_kana_hyphen 追加。

複数のオプション指定:

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

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

## 7.8.2.6.3. 使い方

### 7.8.2.6.3.1. 簡単な使い方

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

Execution example:

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

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

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

Execution example:

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

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

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

Execution example:

    normalize   'NormalizerNFKC150("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": [
    #
    #     ]
    #   }
    # ]

Execution example:

    normalize   'NormalizerNFKC150("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 オプションの使用例です。

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

Execution example:

    normalize   'NormalizerNFKC150("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": [
    #
    #     ]
    #   }
    # ]

Execution example:

    normalize   'NormalizerNFKC150("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)に正規化します。

Execution example:

    normalize   'NormalizerNFKC150("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)に正規化します。

Execution example:

    normalize   'NormalizerNFKC150("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)に正規化します。

Execution example:

    normalize   'NormalizerNFKC150("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)に正規化します。

remove_symbol と一緒に使うと中点のような文字をすべて削除できます。

Execution example:

    normalize   'NormalizerNFKC150("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 オプションの使用例です。このオプションは、以下のように、"ヴァヴィヴヴェヴォ"を"バビブベボ"に正規化します。

Execution example:

    normalize   'NormalizerNFKC150("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 オプションの使用例です。このオプションは、以下のように、"ヴァヴィヴゥヴェヴォ"を"ブ"に正規化します。

Execution example:

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

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

Execution example:

    normalize   'NormalizerNFKC150("unify_to_katakana", true)'   "ゔぁゔぃゔゔぇゔぉ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "ヴァヴィヴヴェヴォ",
    #     "types": [
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "katakana",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

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

Execution example:

    normalize   'NormalizerNFKC150("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 オプションの使用例です。このオプションは、以下のように記号(例えば #, !, ", &, % 等)を削除します 。

Execution example:

    normalize   'NormalizerNFKC150("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 オプションの使用例です。このオプションは、以下のように、"グァグィグェグォ"を"ガギゲゴ"に正規化します。

Execution example:

    normalize   'NormalizerNFKC150("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 オプションの使用例です。このオプションは、以下のように、"ヂ"を"ジ"に正規化します。

Execution example:

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

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

Execution example:

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

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

Execution example:

    normalize   'NormalizerNFKC150("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 オプションの使用例です。このオプションは、以下のように、"ヅ"を"ズ"に正規化します。

Execution example:

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

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

Execution example:

    normalize   'NormalizerNFKC150("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 オプションの使用例です。このオプションは、以下のように、"ヅァヅィヅェヅォ"を"ザジゼゾ"に正規化します。

Execution example:

    normalize   'NormalizerNFKC150("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) を一文字前のひらがな・カタカナの母音に正規化します。

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

Execution example:

    normalize   'NormalizerNFKC150("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) を一文字前のひらがな・カタカナの母音に正規化します。

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

Execution example:

    normalize   'NormalizerNFKC150("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": [
    #
    #     ]
    #   }
    # ]

以下は unify_latin_alphabet_with オプションの使用例です。このオプションは、以下のように発音記号付きの文字と発音記号なしの文字を同じ文字とみなすことができます。

ただし、この機能は LATIN (SMALL|CAPITAL) LETTER X WITH XXX にのみフォーカスしています。 LATIN (SMALL|CAPITAL) LETTER X + COMBINING XXX はサポートしていません。

Execution example:

    normalize   'NormalizerNFKC150("unify_latin_alphabet_with", true)'   "ngoằn"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "ngoan",
    #     "types": [
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

### 7.8.2.6.3.2. 高度な使い方

#### 7.8.2.6.3.2.1. `TokenMecab` と使う

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

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

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

Execution example:

    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   'NormalizerNFKC150("unify_to_romaji", true)'   "カレ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "kare",
    #     "types": [
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]
    normalize   'NormalizerNFKC150("unify_to_romaji", true)'   "ナマエ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "namae",
    #     "types": [
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]
    normalize   'NormalizerNFKC150("unify_to_romaji", true)'   "ヤマダ"   WITH_TYPES
    # [
    #   [
    #     0,
    #     1337566253.89858,
    #     0.000355720520019531
    #   ],
    #   {
    #     "normalized": "yamada",
    #     "types": [
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "alpha",
    #       "null"
    #     ],
    #     "checks": [
    #
    #     ]
    #   }
    # ]

#### 7.8.2.6.3.2.2. `unify_to_katakana` を他のオプションと使う

unify_to_katakana は以下に列挙するオプションと組み合わせることで、特殊なカタカナを一般的なカタカナと同一視します。

- unify_katakana_v_sounds

  - "ゔぁゔぃゔゔぇゔぉ"、"ばびぶべぼ"、"ヴァヴィヴヴェヴォ"、"バビブベボ"を同一視します

- unify_katakana_gu_small_sounds

  - "ぐぁぐぃぐぇぐぉ"、"がぎげご"、"グァグィグェグォ"、"ガギゲゴ"を同一視します

- unify_katakana_zu_small_sounds

  - "ずぁずぃずぇずぉ"、"ざじぜぞ"、"ズァズィズェズォ"、"ザジゼゾ"を同一視します

- unify_katakana_wo_sound

  - "お"、"を"、"オ"、"ヲ"を同一視します

- unify_katakana_di_sound

  - "じ"、"ぢ"、"ジ"、"ヂ"を同一視します

- unify_katakana_du_sound

  - "ず"、"づ"、"ズ"、"ヅ"を同一視します

例えば、 `unify_to_katakana` と `unify_katakana_v_sounds` を使うと、""ばいおりん"で"バイオリン"、"ヴァイオリン"、"ばいおりん"、"ゔぁいおりん"が検索できます。

## 7.8.2.6.4. 引数

### 7.8.2.6.4.1. 省略可能引数

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

#### 7.8.2.6.4.1.1. `unify_kana`

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

#### 7.8.2.6.4.1.2. `unify_kana_case`

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

#### 7.8.2.6.4.1.3. `unify_kana_voiced_sound_mark`

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

#### 7.8.2.6.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.8.2.6.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.8.2.6.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.8.2.6.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)

remove_symbol と一緒に使うと中点のような文字をすべて削除できます。

#### 7.8.2.6.4.1.8. `unify_katakana_v_sounds`

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

#### 7.8.2.6.4.1.9. `unify_katakana_bu_sound`

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

#### 7.8.2.6.4.1.10. `unify_to_katakana`

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

#### 7.8.2.6.4.1.11. `unify_to_romaji`

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

#### 7.8.2.6.4.1.12. `remove_symbol`

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

#### 7.8.2.6.4.1.13. `unify_katakana_gu_small_sounds`

Added in version 13.0.0.

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

#### 7.8.2.6.4.1.14. `unify_katakana_di_sound`

Added in version 13.0.0.

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

#### 7.8.2.6.4.1.15. `unify_katakana_wo_sound`

Added in version 13.0.0.

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

#### 7.8.2.6.4.1.16. `unify_katakana_zu_small_sounds`

Added in version 13.0.0.

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

#### 7.8.2.6.4.1.17. `unify_katakana_du_sound`

Added in version 13.0.0.

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

#### 7.8.2.6.4.1.18. `unify_katakana_trailing_o`

Added in version 13.0.0.

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

- "ォオ" -> "ォウ"

- "オオ" -> "オウ"

- "コオ" -> "コウ"

- "ソオ" -> "ソウ"

- "トオ" -> "トウ"

- "ノオ" -> "ノウ"

- "ホオ" -> "ホウ"

- "モオ" -> "モウ"

- "ョオ" -> "ョオ"

- "ヨオ" -> "ヨウ"

- "ロオ" -> "ロウ"

- "ゴオ" -> "ゴウ"

- "ゾオ" -> "ゾウ"

- "ドオ" -> "ドウ"

- "ボオ" -> "ボウ"

- "ポオ" -> "ポウ"

- "ヺオ" -> "ヺウ"

#### 7.8.2.6.4.1.19. `unify_katakana_du_small_sounds`

Added in version 13.0.0.

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

#### 7.8.2.6.4.1.20. `unify_kana_prolonged_sound_mark`

Added in version 13.0.1.

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

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

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

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

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

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

    ンー -> ンン

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

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

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

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

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

    んー -> んん

#### 7.8.2.6.4.1.21. `unify_kana_hyphen`

Added in version 13.0.1.

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

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

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

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

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

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

    ン- -> ンン

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

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

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

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

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

    ん- -> んん

#### 7.8.2.6.4.1.22. `unify_latin_alphabet_with`

Added in version 14.0.7.

このオプションは、以下のように発音記号付きの文字と発音記号なしの文字を同じ文字とみなすことができます。

ただし、この機能は LATIN (SMALL|CAPITAL) LETTER X WITH XXX にのみフォーカスしています。 LATIN (SMALL|CAPITAL) LETTER X + COMBINING XXX はサポートしていません。

## 7.8.2.6.5. 参考

- normalize