Die folgenden Optimierungsschemata werden für empfindliche Leistungsprobleme bei der Wortfilterung in Szenarien mit hoher Parallelität empfohlen:
- Auswahl effizienter DatenstrukturenDFA oder Trie-Bäume anstelle von regulären Ausdrücken, mit einer Zeitkomplexität von O(n), unabhängig von der Größe des Lexikons. Die meisten Programmiersprachen (z.B. Python's
pyahocorasick
Bibliotheken), um Standardimplementierungen bereitzustellen. - vorinstallierter ThesaurusSensible Wörter werden beim Start des Dienstes als speicherinterne Trie-Bäume/DFAs erstellt, um das wiederholte Parsen von Dateien pro Anfrage zu vermeiden.
- verteilter CacheFür Hyperscale-Systeme sollten Sie in Erwägung ziehen, die konstruierten Matcher in einem Cache wie Redis zu speichern und sie auf mehrere Knoten zu verteilen.
Den Testdaten zufolge beträgt die Anpassungszeit des DFA-Algorithmus für die Verarbeitung von 100.000 Wörtern in der Regel weniger als 100 ms, was für Anwendungen, die täglich mehrere Millionen Wörter umfassen, geeignet ist.
Diese Antwort stammt aus dem ArtikelSensitiv-Lexikon: ein ständig aktualisierter Thesaurus für chinesische sensible WörterDie