Ricerca efficiente di sottostringhe multiple

1

Ho molte sottostringhe (2-5 parole ciascuna) che vorrei cercare in un testo di circa 40-50 parole di lunghezza. Qual è il modo più efficace per contrassegnare le sottostringhe corrispondenti.

Attualmente sto semplicemente usando:

for substring in substrings:
   if substring in fullText:
      return True

sottostringhe: l'elenco delle stringhe da cercare

fullText - testo da cercare.

Il caso peggiore per questa soluzione è la ricerca di tutte le sottostringhe su fullText ripetutamente.

    
posta skadoosh 15.04.2018 - 08:05
fonte

1 risposta

5

Crea un'espressione regolare dal tuo elenco (qualcosa come "word1 | word2 | word3") e usa le funzioni di espressione regolare disponibili per la tua lingua. Si spera che crei una struttura dati ottimizzata per la corrispondenza, forse una macchina a stati finiti o qualcosa di equivalente.

    
risposta data 15.04.2018 - 10:40
fonte

Leggi altre domande sui tag