Dear Greg, Thanks for your suggestions.
On Fri, Jan 2, 2015 at 12:42 AM, Greg Hendershott <[email protected] > wrote: > > 2. The output differs from your repo's output.txt on one item: It > corrects "accesing" to "accusing" rather than "acceding". > The two words have the same frequency in the training set and are the same edit distance away from the test word, so I think this is not a bug. > > Next: > > (append-map edits1 (edits1 s)) > > is very large -- 40,000+ items for "cat". But it looks like Norvig > prunes the edit distance 2 list to known words? Say where `ht` is the > training dict: > > (define (edits2 ht s) > (for*/list ([x (in-list (edits1 s))] > [y (in-list (edits1 x))] > #:when (hash-ref ht y #f)) > y)) > > That yields 2000+ items for "cat". > > When I make that change, my run time decreases from ~16s to ~10s, and > produces the same output (which differs from output.txt in the same > way I mentioned above). > In relative terms this would probably get it close to the Python version? > I merged a pull request from Matthias Felleisen who made the same change. This definitely increases the performance but the Racket program is still about 2x slower than Python. Regards, Jyotirmoy Bhattacharya
____________________ Racket Users list: http://lists.racket-lang.org/users

