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. 高度な使い方#
TokenFilterNFKC
と TokenMecab
の use_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
の 引数 をご覧ください。