Raul, thanks for sharing. It's seems to work similarly, if not the same, as what's in the article. I particularly like your use of C. which I rarely see in the wild.
note: It does't seem like the regex require or RX_OPTIONS_UTF8=: 0 is needed... I would guess that was leftover from your previous message on rx and utf8 On Fri, Nov 20, 2015 at 2:55 PM, Raul Miller <[email protected]> wrote: > If I have read his implementation properly, it works something like this: > > require'regex' > RX_OPTIONS_UTF8=: 0 > > alphabet=: (#~ ] ~: toupper) a. > > countbigwords=:3 :0 > NB. handle persistent data explicitly > big=. tolower fread '~user/temp/big.txt' > they=. ;:(' ' (I.-.big e. alphabet)} big) > words=: ~.they > count=: (#/.~ they),0 > i.0 0 > ) > > alt=:4 :0 > c=. x{y > (alphabet-.c) x}each<y > ) > dubin=:4 :0 > (x{.y)&,each ,&(x}.y)each alphabet > ) > > edits=:3 :0 > del=. 1 <\. y > trn=. ((<-1 2)&C.each }.<\y),each 2}.(<\.y),a: > rpl=. ;alt&y each i.#y > ins=. ~.;dubin&y each i.1+#y > del,trn,rpl,ins > ) > > best=:3 :0 > n=. words i. y > y{~(i. >./)n{count > ) > > correct=:3 :0 > w=. <y > if. w e. words do. w return. end. > e=. edits y > if. 1 e. e e. words do. best e return. end. > e2=. ;edits each e > if. 1 e. e2 e. words do. best e2 return. end. > w > ) > > countbigwords'' > > Seems plausible enough on a few simple tests. > > Example use: > > correct 'thatl' > +----+ > |that| > +----+ > > Thanks, > > -- > Raul > > On Thu, Nov 19, 2015 at 12:06 PM, Dan Bron <[email protected]> wrote: > > Peter Norvig has a blog entry on how to write a fairly effective > spelling corrector (75-90%) in very little code, using some Bayesian > analysis: > > > > http://norvig.com/spell-correct.html < > http://norvig.com/spell-correct.html> > > > > A worthwhile read. > > > > I’m using this program as an exercise in learning Perl6 (which, believe > it or not, now has an official release date). I wonder though, how would it > look in J? > > > > -Dan > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
