テキストの正規化を目的として、大規模な検索を実行し、ドキュメント間で置換できるようにしたいと考えています。
例えば:
- USA、USAのすべての用途を検索し、 United StatesOfAmericaに置き換えます
- すべてのアンパサンド(&)を検索し、単語とに置き換えます
また、コードを変更せずにシステムに新しいルールを追加できるようにしたいと考えています。したがって、検索置換ペアはデータストアに保存されます。つまり、誰でもルールを追加、更新、削除できます。
私はPythonreモジュールを使用してきましたが、これは非常に優れており、理想的には、タプルのリストをsubコマンドに渡して、それぞれを調べて置換を実行したいと思います。タプルのリストを繰り返し処理してから、それぞれに正規表現を作成する以外に、これを行うためのより良い方法はありますか?特に大きなドキュメントでは、非常に遅く、非効率的です。
replacements = [
r('USA','United States Of America'),
(r'U\.S\.A','United States Of America'),
(r'US of A', 'United States of America')]
for replacement in replacements:
document = re.sub(replacement[0],replacement[1],document