高同時性シナリオにおける繊細なワードフィルタリング性能の問題に対しては、以下の最適化スキームが推奨される:
- 効率的なデータ構造の選択正規表現の代わりにDFAまたはトライツリーを使用することで、辞書のサイズに依存することなく、O(n)までの時間複雑性を実現します。ほとんどのプログラミング言語(例えばPythonの
pyahocorasick
ライブラリ)を使って、すぐに使える実装を提供している。 - プリロードされた類語辞典サービス起動時に、センシティブワードをメモリ内のTrieツリー/DFAとしてビルドし、リクエストごとにファイルを繰り返しパースするのを防ぎます。
- 分散キャッシュハイパースケールシステムでは、構築したマッチャーをRedisなどのキャッシュに保存し、複数のノードで共有することを検討してください。
テストデータによると、10万語のテキストを処理するDFAアルゴリズムのマッチング時間は通常100ms未満であり、これは毎日数百万件のライブアプリケーションに適している。
この答えは記事から得たものである。Sensitive-lexicon: 継続的に更新される中国語敏感語シソーラスについて