Creazione di un correttore ortograficoCIAO,
Ho alcuni file di testo scaricati da Internet e intendo eseguire alcune analisi del testo su di essi. Tuttavia, sono disseminati di errori di battitura e voglio riordinarli il più possibile prima di inserirli nella piattaforma Text Explorer. Il primo compito più ovvio sarà correggere automaticamente il maggior numero possibile di errori di battitura.
Per fare ciò, ho bisogno di un elenco relativamente completo di parole comuni con cui confrontare i miei file. Il correttore ortografico di MS Word deve avere accesso a tale elenco. Non so se quell'elenco sia parte integrante di MS Word o sia solo un componente standard di Windows, ma in ogni caso qualcuno sa se posso accedere a quell'elenco direttamente da JMP?
Su un punto correlato, come potrei iniziare a calcolare una "corrispondenza migliore" tra qualsiasi parola scritta in modo errato e un elenco di parole inglesi scritte correttamente? Non ho dubbi che ci siano molti modi per farlo, ma ce ne devono essere alcuni abbastanza standard. (Non ho abbastanza familiarità con Regex per sapere se questo è il modo per affrontare un problema del genere, ma se devo impararlo, lo farò.)
Grazie molto.
Ri: Creazione di un correttore ortograficoMolte grazie a tutti coloro che hanno risposto a questo thread: ogni suggerimento è stato Veramente utile. Dedicherò del tempo per esaminare la distanza di Levenshtein per vedere cosa si può fare con esso (per il quale la sceneggiatura sarà preziosa); anche la funzione Shortest Edit Script(), che sembra possa essere molto utile. In accordo con i consigli ricevuti non mi dedicherò alle Regex, ma potrei valutare la possibilità di scrivere una macro Word - vedremo come va. Mi viene anche in mente che qualcuno potrebbe aver affrontato questo problema in R, nel qual caso potrebbe esserci qualcosa là fuori su Internet che potrebbe essere importato tramite le funzioni relative a R di JMP. Un sacco di strade da esplorare, ma contrassegnerò la domanda come risolta.
Ancora una volta, molte grazie a tutti.
Ri: Creazione di un correttore ortograficoSolo un FYI. In allegato c'è uno script che definisce una funzione chiamata computeLevenshteinDistance() e include più esempi e la descrizione del script di modifica più breve() funzione. Include anche esempi per trovare la sequenza comune più lunga.
Questo script è stato scritto come esempio aggiuntivo per ripulire il testo, documentato nel capitolo 9 di JSL Companion, Applicazioni del linguaggio di scripting JMP, 2a edizione, e perché l'abbiamo trovata una funzione interessante.
Quando si puliscono colonne di sondaggi o commenti (non un intero documento), column Ricodifica può essere utile.
Ri: Creazione di un correttore ortograficoPer il confronto delle parole puoi usare la distanza di Levenshtein.https://en.wikipedia.org/wiki/Levenshtein_distance
Ri: Creazione di un correttore ortograficoalcune informazioni sull'elenco di parole in questo blog https://community.jmp.com/t5/Uncharted/WordNet/ba-p/28984
Molto tempo fa è stato utilizzato un algoritmo come questo:
cercare la parola in una serie associativa di buone parole conosciute. Se la ricerca fallisce, prova alcune regole per rimuovere i suffissi s, ing, ed e cerca di nuovo. se ancora fallisce, dai suggerimenti cercando parole simili formate scambiando coppie di lettere, inserendo lettere, cancellando lettere.
Penso che i suggerimenti per utilizzare un programma esterno siano appropriati e penso che regex non sia per lo più la risposta. Potresti essere in grado di utilizzare la ricodifica all'interno di Esplora testo, anche se sarà un processo manuale.
Ecco un'interessante funzione in JMP che potrebbe essere utile se decidi di creare la tua soluzione
shortest edit script("maintainence","maintenance")
{{"Comune", "maint"}, {"Inserisci", "it"}, {"Comune", "a"}, {"Rimuovi", "i"}, {"Comune",
"n"}, {"Rimuovi", "en"}, {"Comune", "ce"}}
Lo script di modifica è una descrizione di dove le due parole differiscono. È possibile creare una metrica da quella utilizzando il numero di caratteri inseriti ed eliminati.
Ri: Creazione di un correttore ortograficoDue cose:
1. La comunità LaTeX ha un numero di elenchi di parole che possono essere utilizzati con i correttori ortografici incorporati nei loro IDE. Potresti essere in grado di usarne uno.
2. Piuttosto che tentare di hackerare il proprio correttore ortografico, si potrebbe provare ad agganciarsi direttamente a GNU Aspell. È piuttosto solido (e credo sia abbastanza intelligente da ignorare il codice). Non sono sicuro di come lo faresti, ma potresti essere in grado di realizzarlo tramite una chiamata Python o qualcosa del genere.
Puoi essere indirizzato agli elenchi di parole e all'app Aspell qui: http://aspell.net .
M
Ri: Creazione di un correttore ortograficoNon so come accedere a un elenco esterno, come quello che potrebbe essere utilizzato dal correttore ortografico in MS Word, da JMP. Inoltre, l'elenco viene utilizzato dal correttore. Il correttore sarebbe difficile da duplicare in uno script JMP.
Potresti cercare di creare una macro di Visual Basic per MS Word per controllare e correggere l'ortografia nei file di testo originali prima di importarli in una tabella di dati JMP per l'analisi.
Le espressioni regolari sono un modo potente per abbinare i modelli, ma tale approccio diventerebbe ingombrante se applicato al compito di trovare tutte le parole errate e restituire la parola corretta.