2012-07-07 32 views
8

Yazım hataları ve birleşik sözcükleri (örneğin 'Seni seviyorum' vs 'Iloveyou') yazım denetimi yapmam gereken bir TSV (sekmeyle ayrılmış değer) dosyasına sahibim.Otomatik Düzeltme Yazıcısı Denetleyicisi

Aspell'i makinem üzerine yükledim ve aspell() işlevini kullanarak R aracılığıyla çalıştırabilirim.

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

Ancak R çalıştırmaya çıktı yanlış yazılmış kelimeler ve olası önerilerin sadece bir listesidir.

> 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" ... 

otomatik olarak doğru yanlış yazılan sözcükleri aspell (veya başka bir imla kontrolü) sahip olmak yolu vardır mı? aşağıdakileri yapabilirsiniz gibi

cevap

8

görünüyor: dokümantasyon üzerinde

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. 

Sadece hızlı bakış ve bu otomatik önerilen doğru yazım kullanmak için yapmanız ne olurdu gibi görünüyor.

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

Düzenleme: Eğer piton kodları arayan olmayabilir Olmadığını fark, ancak bu soru piton ile etiketlendi olarak piton ile yapmak için en kolay yol olacaktır. Muhtemelen bunu yapmanın daha etkili bir yöntemi var, ama geç oluyor ve bu önce akla ilk geldi.

+0

Python'u etiketledim çünkü NLP için iyi bir kütüphaneye sahip olduğunu biliyorum ve hiçbir şey gelmediğinde iyi bir destek olacağını düşündüm. Teşekkür ederim. – screechOwl

+0

Tamam, bu anlamda yukarıdaki, bunu yapmak için basit bir yöntemdir, muhtemelen ihtiyacınız olan şeyi yapacak belgelerin içinde gizli bir mücevher var. – sean

İlgili konular