2012-07-07 13 views
8

Ho un file TSV (valore separato da tabulazione) che ho bisogno di controllare ortograficamente per errori ortografici e parole combinate (ad esempio "Ti amo" vs "Iloveyou").Correttore ortografico Correzione ortografica

Ho installato Aspell sulla mia macchina e posso eseguirlo attraverso R utilizzando la funzione aspell().

files <- "train2.tsv" 
res <- aspell(files) 
str(res) 
summary(res) 

Tuttavia, l'output di esecuzione in R è solo un elenco di parole errate ed eventuali suggerimenti.

> summary(res) 
Possibly mis-spelled words: 
[1] "amant"  "contaneir" "creat"  "ddition"  "EssaySet"  "EssayText" "experiament" "expireiment" "expirement" 
[10] "Fipst"  "infomation" "Inorder"  "measureing" "mintued"  "neccisary" "officialy" "renuminering" "rinsen"  
[19] "sticlenx"  "sucessfully" "tipe"   "vineager"  "vinigar"  "yar" 

> str(res) 
Classes ‘aspell’ and 'data.frame':  27 obs. of 5 variables: 
$ Original : chr "EssaySet" "EssayText" "expirement" "expireiment" ... 
$ File  : chr "train2.tsv" "train2.tsv" "train2.tsv" "train2.tsv" ... 
$ Line  : int 1 1 3 3 3 3 3 3 6 6 ... 
$ Column  : int 4 27 27 108 132 222 226 280 120 156 ... 
$ Suggestions:List of 27 
    ..$ : chr "Essay Set" "Essay-Set" "Essayist" "Essays" ... 
    ..$ : chr "Essay Text" "Essay-Text" "Essayist" "Sedatest" ... 
    ..$ : chr "experiment" "excrement" "excitement" "experiments" ... 
    ..$ : chr "experiment" "experiments" "experimenter" "excrement" ... 
    ..$ : chr "Amandy" "am ant" "am-ant" "Amanda" ... 
    ..$ : chr "year" "ya" "Yard" "yard" ... 

è che ci sono modo per avere aspell (o qualsiasi altro correttore ortografico) correggere automaticamente le parole errate?

risposta

8

Sembra che è possibile effettuare le seguenti operazioni:

s = load_up_users_dictionary() 

for word in text_to_check: 
    if word not in s: 
     new_words = s.suggest(word) 
     replace_incorrect_word(word, new_words[0])#Pick the first word from the returned list. 

Basta una rapida occhiata sopra la documentazione e che assomiglia a quello che avrebbe dovuto fare per utilizzare automaticamente l'ortografia corretta suggerita.

http://0x80.pl/proj/aspell-python/index-c.html

Edit: rendi conto che non puoi essere alla ricerca di codice Python, ma questo sarebbe il modo più semplice per farlo con Python come la questione è stata contrassegnata con il pitone. Probabilmente c'è un metodo più efficiente per farlo, ma si sta facendo tardi e questo mi è venuto in mente prima.

+0

Ho taggato python perché so che ha alcune buone librerie per la PNL e ho pensato che sarebbe stato un buon backup se non fosse successo nulla in R. Grazie. – screechOwl

+0

Ok, in questo senso quanto sopra è un metodo semplice per farlo, probabilmente c'è una gemma nascosta nella documentazione che farebbe esattamente ciò di cui avevi bisogno. – sean

Problemi correlati