最適な方法は、フィルター処理するノイズ ワードの数、実行する置換の種類、および処理するテキストの量によって異なります。
単語ノイズ
パージ
「http」、「otherword」、および「anotherword」をすべて削除するなどの簡単なことをしている場合は、OR ステートメントを使用して正規表現を作成できます。
\b(http|otherword|anotherword)\b
削除する単一単語の膨大なリストがあり、比較的短い文字列を処理する場合は、ノイズ ワードのハッシュセットを作成し、入力文字列をトークン化して、各トークンがノイズかどうかを確認できます。語。
カスタム交換
ノイズ ワードのハッシュセットを作成する代わりに、単語と置換値を使用してハッシュマップにすることができます。
マルチワード ノイズ
パージ
複数単語のノイズを消去しようとしている場合、最初の方法は引き続き機能します。
\b(phrase one|phrase two|four word noise phrase)\b
リストが非常に大きくなると、これも醜くなる可能性があります。
カスタム交換
複数単語のフレーズでカスタム置換を行いたい場合、事態はさらに複雑になります。String.indexOf(String) のループで遊んで、ノイズ フレーズがそこにあるかどうかを確認したり、複数の正規表現置換を実行したり、大きな醜い結合正規表現の各単語に対して一意のキャプチャ グループを作成したりできます。
\b((phrase one)|(phrase two)|(four word phrase))\b
キャプチャされたグループが 2 の場合、フレーズ 1 が一致しました。3 の場合、フレーズ 2 が一致しました。など...次に、ハッシュマップ/配列/その他から対応する置換値を取得して、プラグインします。
正規表現を使用することになり、パフォーマンスが低下し始めた場合は、通常、より効率的な置換プロセスのために複数の表現を組み合わせることができることに注意してください。
"apple", "apples", "applesauce" -> apple(s(auce)?)?