内の単語を見つけるために高速正規表現...(5000個の単語の周り)Javaの - 私は、殺人、犯罪、役員、強盗、犯人、事故、事故、クラッシュ、殺害され、のような言葉の定義済みのセットを持っているテキスト
私はこの記事をニュース記事(およそ1kb〜5kbのテキスト)にマッチさせたいと思っていれば、それらの言葉をそれに応じて分類します。言葉が
if(article.contains(" "+word+" ")) { \*do something*\ }
しかし、これは言葉がフルストップ、コンマまたはその他の記号が続いているときは動作しませんすなわち後、同じ単語の先頭のために行く前に、当初、私はちょうど
だから私は、スイッチのスペースを使用しますワード境界で正規表現することができますが、コードの実行速度が20倍遅くなり、CPU使用量が5スレッドで100%になります。
誰もがJavaでより良いソリューションを持っていますか?すべてのヘルプが喜ばれています:)
それはまた、 'con'と 'constable'が異なる単語 'con'がテキストの 'constable'と一致してはならないという意味でcontainin wordと一致します。 –
まず、アルゴリズムを決定し、次に** Javaで実装を探す。 [ここ](http://stackoverflow.com/questions/3260962/algorithm-to-find-multiple-string-matches)を参照してください –
この質問の回答http://stackoverflow.com/questions/225337/how-do -i-split-a-string-with-any-whitespace-chars-as-delimitersは便利かもしれません。 –