7.9.2. TokenFilterNFKC#

7.9.2.1. Summary#

Added in version 14.1.3.

このトークンフィルターは、 NormalizerNFKC と同じオプションを使えます。 TokenMecab を使ってトークナイズする前にノーマライズをすると、トークンの意味が失われることがあるため、このトークンフィルターは、トークナイズ後にノーマライズするために使用します。

7.9.2.2. 構文#

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

オプションなし:

TokenFilterNFKC

TokenFilterNFKC はUnicode NFKC(Normalization Form Compatibility Composition)を使ってテキストを正規化します。

オプション指定例:

TokenFilterNFKC("version", "16.0.0")

TokenFilterNFKC("unify_kana", true)

TokenFilterNFKC("unify_hyphen", true)

TokenFilterNFKC("unify_to_romaji", true)

他にも NormalizerNFKC と同じオプションが利用できます。

7.9.2.3. 使い方#

7.9.2.3.1. 簡単な使い方#

正規化自体は NormalizerNFKC と同じなので、いくつかオプションの使い方を紹介します。

以下は、 TokenFilterNFKC の使用例です。 TokenFilterNFKC はUnicode NFKC(Normalization Form Compatibility Composition)を使ってテキストを正規化します。

Execution example:

tokenize TokenDelimit "©" --token_filters TokenFilterNFKC
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     {
#       "value": "©",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

以下は version オプションの使用例です。Unicodeのバージョンを指定できます。

Execution example:

tokenize TokenDelimit "©" --token_filters 'TokenFilterNFKC("version", "16.0.0")'
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     {
#       "value": "©",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

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

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

Execution example:

tokenize TokenDelimit "あイウェおヽヾ" --token_filters 'TokenFilterNFKC("unify_kana", true)'
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     {
#       "value": "あいうぇおゝゞ",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

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

Execution example:

tokenize TokenDelimit "-˗֊‐‑‒–⁃⁻₋−" --token_filters 'TokenFilterNFKC("unify_hyphen", true)'
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     {
#       "value": "-----------",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

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

Execution example:

tokenize TokenDelimit "アァイィウゥエェオォ" --token_filters  'TokenFilterNFKC("unify_to_romaji", true)'
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     {
#       "value": "axaixiuxuexeoxo",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

7.9.2.3.2. 高度な使い方#

TokenFilterNFKCTokenMecabuse_reading オプションを組み合わせることで、入力文字列を全てひらがなとして出力できます。

Execution example:

tokenize   'TokenMecab("use_reading", true)'   "私は林檎を食べます。"   --token_filters 'TokenFilterNFKC("unify_kana", true)'
# [
#   [
#     0,
#     1337566253.89858,
#     0.000355720520019531
#   ],
#   [
#     {
#       "value": "わたし",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     },
#     {
#       "value": "は",
#       "position": 1,
#       "force_prefix": false,
#       "force_prefix_search": false
#     },
#     {
#       "value": "りんご",
#       "position": 2,
#       "force_prefix": false,
#       "force_prefix_search": false
#     },
#     {
#       "value": "を",
#       "position": 3,
#       "force_prefix": false,
#       "force_prefix_search": false
#     },
#     {
#       "value": "たべ",
#       "position": 4,
#       "force_prefix": false,
#       "force_prefix_search": false
#     },
#     {
#       "value": "ます",
#       "position": 5,
#       "force_prefix": false,
#       "force_prefix_search": false
#     },
#     {
#       "value": "。",
#       "position": 6,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

7.9.2.4. 引数#

NormalizerNFKC引数 をご覧ください。