分類したい文字列が1,000,000個あります。私がこれを行う方法は、単語やフレーズのセットが含まれている場合にバケット化することです。単語のセットは約10,000です。正規表現をサポートできるのが理想的ですが、現在は正規表現を高速に実行することに重点を置いています。フレーズ例:
フォード、ポルシェ、マツダ..
各単語を文字列と1つずつ一致させたくないので、正規表現を使用することにしました。残念ながら、正規表現の問題が発生しています。
Regexp.new( "(a)" * 253)=> /(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a )(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)( a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a) (a)(a)(a)(a)(a)(a)(a)(a)(a)..。
Regexp.new( "(a)" * 254)RegexpError:正規表現が大きすぎます:/(a)(a)(a)(a)(a)(a)(a)(a)(a)(a) (a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a )(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)..
ここで、aは私の単語またはフレーズの1つです。今、私は10,000/253試合を実行することを計画しています。正規表現の長さがパフォーマンスに大きく影響することを読みましたが、正規表現の一致は非常に単純で、正規表現は非常に迅速に作成されます。どうにかして制限を回避したいのですが、誰かアイデアがあればもっと良い解決策を使いたいと思います。ありがとう。