Sorprendentemente non sono stato in grado di trovare nessun altro in questo modo, ma sicuramente qualcuno lo ha. Sto lavorando a un progetto Python che attualmente richiede il controllo ortografico di circa 16 mila parole. Purtroppo il numero di parole aumenterà. In questo momento sto tirando le parole da Mongo, scorrendo attraverso di loro, e poi ortografandole con pygamhant. Ho rimosso mongo come potenziale collo di bottiglia afferrando prima tutti i miei oggetti da lì. Questo mi lascia con circa 20 minuti per elaborare attraverso 16k parole, che è ovviamente più lungo di quanto voglio spendere. Questo mi lascia con un paio di idee/domande:Controllo ortografico in scala "grande" in Python
Ovviamente potevo sfruttare la filettatura o qualche forma di parallelismo. Anche se lo taglio in 4 pezzi, guardo ancora a circa 5 minuti assumendo un picco di prestazioni.
C'è un modo per dire che cosa biblioteca ortografia Incanta sta usando sotto pyenchant? Il sito Web di Enchant sembra implicare che utilizzerà tutte le librerie/dizionari di ortografia disponibili durante il controllo ortografico. Se è così, allora sono potenzialmente in grado di eseguire ogni parola attraverso tre-quattro dadi di sillabazione. Questo potrebbe essere il mio problema qui, ma sto avendo difficoltà a dimostrare che è il caso. Anche se lo è, la mia opzione è davvero quella di disinstallare altre librerie? Sembra sfortunato.
Quindi, tutte le idee su come posso spremere almeno un po 'più di prestazioni da questo? Sto bene tagliando questo in compiti paralleli, ma mi piacerebbe ancora ottenere il pezzo principale di esso per essere un po 'più veloce prima di me.
Edit: Scusa, il distacco prima di caffè del mattino ... Incanta genera un elenco di suggerimenti per me, se una parola è scritta in modo errato. Sembrerebbe essere dove trascorro la maggior parte del mio tempo in questa porzione di elaborazione.
20 minuti per soli 16 mila parole suona come un tempo terribilmente lungo. Potresti caricare le tue parole in un dizionario Python e fare una ricerca su ciascuna di esse? Questo richiederà certamente meno di 20 minuti. (Probabilmente anche meno di 20 minuti per scrivere.) – ggg
Stai utilizzando tutta la potenza di Enchant, o semplicemente controllando se una parola è scritta correttamente (cioè in un dizionario precedentemente noto)? In quest'ultimo caso, fai ciò che dice 'ggg' e crea il tuo correttore ortografico. – katrielalex
Non pensare nemmeno alla parallelizzazione; Ho appena controllato 100k parole contro un dizionario di 60k in meno tempo di quello che ho impiegato per me per premere invio. Hai bisogno di un algoritmo migliore. – msw