1 つの大きなテキスト (~4GB) の場合、~100 万のフレーズを検索し、それらを補完的なフレーズに置き換える必要があります。生のテキストと置換の両方が簡単にメモリに収まります。単純な解決策は、1 回の交換に約 1 分かかるため、完了するまでに文字通り何年もかかります。
単純な解決策:
for search, replace in replacements.iteritems():
text = text.replace(search, replace)
使用する正規表現方法re.sub
は x10 遅いです。
for search, replace in replacements.iteritems():
text = re.sub(search, replace, text)
いずれにせよ、これはボイヤー・ムーア弦、またはアホ・コラシックを使用するのに最適な場所のようです。ただし、これらのメソッドは一般に実装されているため、文字列の検索のみに機能し、文字列の置換には機能しません。
または、これをすばやく実行できるツール (Python 以外) も歓迎します。
ありがとう!