7.9.3. TokenFilterNFKC150

7.9.3.1. 概要

バージョン 13.0.0 で追加.

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

7.9.3.2. 構文

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

オプションなし:

TokenFilterNFKC150

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

オプション指定:

TokenFilterNFKC150("unify_kana", true)

TokenFilterNFKC150("unify_kana_case", true)

TokenFilterNFKC150("unify_kana_voiced_sound_mark", true)

TokenFilterNFKC150("unify_hyphen", true)

TokenFilterNFKC150("unify_prolonged_sound_mark", true)

TokenFilterNFKC150("unify_hyphen_and_prolonged_sound_mark", true)

TokenFilterNFKC150("unify_middle_dot", true)

TokenFilterNFKC150("unify_katakana_v_sounds", true)

TokenFilterNFKC150("unify_katakana_bu_sound", true)

TokenFilterNFKC150("unify_to_romaji", true)

7.9.3.3. 使い方

7.9.3.4. 簡単な使い方

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

Execution example:

tokenize TokenDelimit "㎡" --token_filters 'TokenFilterNFKC150'
# [
#   [
#     0,
#     1546906509.304568,
#     0.0002825260162353516
#   ],
#   [
#     {
#       "value": "m2",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

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

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

Execution example:

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

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

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

Execution example:

tokenize TokenDelimit "ぁあぃいぅうぇえぉおゃやゅゆょよゎわゕかゖけ" --token_filters 'TokenFilterNFKC150("unify_kana_case", true)'
# [
#   [
#     0,
#     1546906658.116119,
#     0.0003299713134765625
#   ],
#   [
#     {
#       "value": "ああいいううええおおややゆゆよよわわかかけけ",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

Execution example:

tokenize TokenDelimit "ァアィイゥウェエォオャヤュユョヨヮワヵカヶケ" --token_filters 'TokenFilterNFKC150("unify_kana_case", true)'
# [
#   [
#     0,
#     1546906730.305962,
#     0.0003023147583007812
#   ],
#   [
#     {
#       "value": "アアイイウウエエオオヤヤユユヨヨワワカカケケ",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

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

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

Execution example:

tokenize TokenDelimit "かがきぎくぐけげこごさざしじすずせぜそぞただちぢつづてでとどはばぱひびぴふぶぷへべぺほぼぽ" --token_filters 'TokenFilterNFKC150("unify_kana_voiced_sound_mark", true)'
# [
#   [
#     0,
#     1546906812.423493,
#     0.0003724098205566406
#   ],
#   [
#     {
#       "value": "かかききくくけけここささししすすせせそそたたちちつつててととはははひひひふふふへへへほほほ",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

Execution example:

tokenize TokenDelimit "カガキギクグケゲコゴサザシジスズセゼソゾタダチヂツヅテデトドハバパヒビピフブプヘベペホボポ" --token_filters 'TokenFilterNFKC150("unify_kana_voiced_sound_mark", true)'
# [
#   [
#     0,
#     1546906950.51529,
#     0.0003533363342285156
#   ],
#   [
#     {
#       "value": "カカキキククケケココササシシススセセソソタタチチツツテテトトハハハヒヒヒフフフヘヘヘホホホ",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

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

Execution example:

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

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

Execution example:

tokenize TokenDelimit "ー—―─━ー" --token_filters 'TokenFilterNFKC150("unify_prolonged_sound_mark", true)'
# [
#   [
#     0,
#     1546907076.575454,
#     0.0003325939178466797
#   ],
#   [
#     {
#       "value": "ーーーーーー",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

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

Execution example:

tokenize TokenDelimit "-˗֊‐‑‒–⁃⁻₋− ﹣- ー—―─━ー" --token_filters 'TokenFilterNFKC150("unify_hyphen_and_prolonged_sound_mark", true)'
# [
#   [
#     0,
#     1546907138.989727,
#     0.0003240108489990234
#   ],
#   [
#     {
#       "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
#     }
#   ]
# ]

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

Execution example:

tokenize TokenDelimit "·ᐧ•∙⋅⸱・・" --token_filters 'TokenFilterNFKC150("unify_middle_dot", true)'
# [
#   [
#     0,
#     1546907221.227195,
#     0.0003573894500732422
#   ],
#   [
#     {
#       "value": "········",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

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

Execution example:

tokenize TokenDelimit "ヴァヴィヴヴェヴォヴ" --token_filters 'TokenFilterNFKC150("unify_katakana_v_sounds", true)'
# [
#   [
#     0,
#     1546907295.776949,
#     0.0003447532653808594
#   ],
#   [
#     {
#       "value": "バビブベボブ",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

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

Execution example:

tokenize TokenDelimit "ヴァヴィヴヴェヴォヴ" --token_filters 'TokenFilterNFKC150("unify_katakana_bu_sound", true)'
# [
#   [
#     0,
#     1546907361.518968,
#     0.0002958774566650391
#   ],
#   [
#     {
#       "value": "ブブブブブブ",
#       "position": 0,
#       "force_prefix": false,
#       "force_prefix_search": false
#     }
#   ]
# ]

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

Execution example:

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

7.9.3.5. 高度な使い方

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

Execution example:

tokenize   'TokenMecab("use_reading", true)'   "私は林檎を食べます。"   --token_filters 'TokenFilterNFKC150("unify_kana", true)'
# [
#   [
#     0,
#     1545901819.377275,
#     0.0003833770751953125
#   ],
#   [
#     {
#       "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.3.6. 引数

7.9.3.6.1. 省略可能引数

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

7.9.3.6.1.1. unify_kana

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

7.9.3.6.1.2. unify_kana_case

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

7.9.3.6.1.3. unify_kana_voiced_sound_mark

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

7.9.3.6.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.9.3.6.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.9.3.6.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.9.3.6.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.9.3.6.1.8. unify_katakana_v_sounds

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

7.9.3.6.1.9. unify_katakana_bu_sound

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

7.9.3.6.1.10. unify_to_romaji

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