7.8.15. TokenRegexp
¶
7.8.15.1. 概要¶
バージョン 5.0.1 で追加.
ご用心
このトークナイザーは実験的です。仕様が変わる可能性があります。
ご用心
このトークナイザーはUTF-8でしか使えません。EUC-JPやShift_JISなどと一緒には使えません。
TokenRegexp
はインデックスを使った正規表現検索をサポートするトークナイザーです。
7.8.15.3. 使い方¶
一般的に、正規表現検索は逐次検索で実行します。しかし、次のケースはインデックスを使って検索できます。
hello
のようにリテラルしかないケース
\A/home/alice
のようにテキストの最初でのマッチとリテラルのみのケース
\.txt\z
のようにテキストの最後でのマッチとリテラルのみのケース
多くのケースでは、逐次検索よりもインデックスを使った検索の方が高速です。
TokenRegexp
はベースはバイグラムを使います。 TokenRegexp
は、インデックス時に、テキストの先頭にテキストの先頭であるというマーク( U+FFEF
)を入れ、テキストの最後にテキストの最後であるというマーク( U+FFF0
)を入れます。
実行例:
tokenize TokenRegexp "/home/alice/test.txt" NormalizerAuto --mode ADD
# [
# [
# 0,
# 1337566253.89858,
# 0.000355720520019531
# ],
# [
# {
# "position": 0,
# "force_prefix": false,
# "value": ""
# },
# {
# "position": 1,
# "force_prefix": false,
# "value": "/h"
# },
# {
# "position": 2,
# "force_prefix": false,
# "value": "ho"
# },
# {
# "position": 3,
# "force_prefix": false,
# "value": "om"
# },
# {
# "position": 4,
# "force_prefix": false,
# "value": "me"
# },
# {
# "position": 5,
# "force_prefix": false,
# "value": "e/"
# },
# {
# "position": 6,
# "force_prefix": false,
# "value": "/a"
# },
# {
# "position": 7,
# "force_prefix": false,
# "value": "al"
# },
# {
# "position": 8,
# "force_prefix": false,
# "value": "li"
# },
# {
# "position": 9,
# "force_prefix": false,
# "value": "ic"
# },
# {
# "position": 10,
# "force_prefix": false,
# "value": "ce"
# },
# {
# "position": 11,
# "force_prefix": false,
# "value": "e/"
# },
# {
# "position": 12,
# "force_prefix": false,
# "value": "/t"
# },
# {
# "position": 13,
# "force_prefix": false,
# "value": "te"
# },
# {
# "position": 14,
# "force_prefix": false,
# "value": "es"
# },
# {
# "position": 15,
# "force_prefix": false,
# "value": "st"
# },
# {
# "position": 16,
# "force_prefix": false,
# "value": "t."
# },
# {
# "position": 17,
# "force_prefix": false,
# "value": ".t"
# },
# {
# "position": 18,
# "force_prefix": false,
# "value": "tx"
# },
# {
# "position": 19,
# "force_prefix": false,
# "value": "xt"
# },
# {
# "position": 20,
# "force_prefix": false,
# "value": "t"
# },
# {
# "position": 21,
# "force_prefix": false,
# "value": ""
# }
# ]
# ]