[REBOL] Re: Newbie: Spell-Check
From: mattymattkim:hot:mail at: 27-Oct-2002 23:51
Hehe... didn't you write the spell check program Andrew?
Perhaps my view is overly simplistic, but doesn't it just scan through the
dictionary.txt file and determine a best matching word?
Matt
>From: "Andrew Martin" <[Al--Bri--xtra--co--nz]>
>Reply-To: [rebol-list--rebol--com]
>To: <[rebol-list--rebol--com]>
>Subject: [REBOL] Re: Newbie: Spell-Check
>Date: Mon, 28 Oct 2002 17:22:58 +1300
>
>Matt wrote:
> > I would like to use the spell check (without the GUI) for simple spell
>checking functionality in my scripts. However, after trying to understand
>the code, I can't figure out how to use it!
>
>I couldn't figure it out either. :(
>
>A spell checker really has to ask the user/writer, "is this [gobeleegook]
>really a word or is it a mistake?" and then change it's store of right
>words
>appropriately, and then repeat the above for the next suspicious word (if
>necessary).
>
>Andrew Martin
>ICQ: 26227169 http://valley.150m.com/
>-><-
>
>----- Original Message -----
>From: "Matthew Kim" <[mattymattkim--hotmail--com]>
>To: <[rebol-list--rebol--com]>
>Sent: Monday, October 28, 2002 4:06 PM
>Subject: [REBOL] Newbie: Spell-Check
>
> > Hi,
> >
> > I've stumbled upon the Spell-Check algorithm put together wonderfully by
> > Andrew Martin (and edited by a few others).
> >
> > I would like to use the spell check (without the GUI) for simple spell
> > checking functionality in my scripts. However, after trying to
>understand
> > the code, I can't figure out how to use it!
> >
> > I've stripped the part involving the GUI and this is what I'm left with
>(i
> > hope).
> >
> > To use it, would I write:
> >
> > Output: spell "Helo, this is a test."
> >
> > Secondly, how would I use the "Spell-HTML" function to ignore any email
> > address posted in the sentance?
> >
> > Ex. "Helo, I'm writing from [joe--example--com]".
> >
> > Thanks!!!
> > Matt
> >
> > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> > Rebol [
> > Name: 'Spell
> > Title: "Spell Checker and Corrector"
> > File: %Spell.r
> > ]
> >
> > wd: %./ ;insert your Spell directory path here
> >
> > Spell!: make object! [
> > Directory: join wd %Spell/
> > if not exists? Directory [make-dir Directory]
> > File: %Dictionary.txt
> > Dictionary: make block! 0
> > Ignored: make block! 0
> > Additions: make block! 0
> > error? try [Dictionary: make hash! sort/case load Directory/:File]
> > Lower: charset [#"a" - #"z"]
> > Upper: charset [#"A" - #"Z"]
> > Alpha: union Upper Lower
> > WordMatch: [some Alpha opt [[{'} | {-}] some Alpha]]
> >
> > WordStart: WordEnd: Original: Correction: Before: After: Cancelled:
>None
> >
> > set 'Spell func [
> > {Spell checks and corrects (with user interaction) the text
> > supplied.}
> > Text [string!]
> > /extra {Extra rule to match before matching words.
> > The rule may of course include actions.}
> > rule [block!]
> > ][
> > Cancelled: no
> > if not extra [rule: " "]
> > parse/case/all Text [
> > some [rule |
> > WordStart: WordMatch WordEnd: (
> > Before: copy/part WordStart -29
> > Original: copy/part WordStart WordEnd
> > After: copy/part WordEnd +29
> > Correction: copy Original
> > if not Cancelled [
> > if not found? any [
> > find/case Ignored Original
> > find/case Additions Original
> > find/case Dictionary Original
> > ][
> > ;Show-GUI
> > ]
> > ]
> > ) :WordEnd
> > | skip
> > ]
> > ]
> > if not any [
> > Cancelled
> > empty? Additions
> > ][
> > append Dictionary Additions
> > clear Additions
> > save Directory/:File make block! sort/case Dictionary
> > ]
> > Text
> > ]
> > ]
> >
> > Spell-HTML!: make object! [
> >
> > alpha: copy Spell!/Alpha
> > non-space: complement charset " ^-^/"
> > to-space: [some non-space | end]
> > tag: ["<" thru ">"]
> > url: [some alpha ":/" to-space]
> > email: [some [alpha | integer! | "."] "@" to-space]
> > rule: [tag | url | email]
> >
> > set 'Spell-HTML func [
> > {Spell checks and corrects (with user interaction) the HTML
> > supplied.}
> > Text [string!]
> > ][
> > Spell/extra Text rule
> > ]
> > ]
> >
> >
> > _________________________________________________________________
> > Broadband? Dial-up? Get reliable MSN Internet Access.
> > http://resourcecenter.msn.com/access/plans/default.asp
> >
> > --
> > To unsubscribe from this list, please send an email to
> > [rebol-request--rebol--com] with "unsubscribe" in the
> > subject, without the quotes.
> >
>
>-- Attached file included as plaintext by Listar --
>-- File: Spell.r
>
>[
>Rebol [
> Name: 'Spell
> Title: "Spell Checker and Corrector"
> File: %Spell.r
> Home: http://members.nbci.com/AndrewMartin/Rebol/Units/Spell.r
> Author: "Andrew Martin"
> eMail: [Al--Bri--xtra--co--nz]
> Date: 22/Jan/2001
> ]
>
>Spell!: make object! [
> Directory: join wd %Spell/
> File: %Dictionary.txt
> Dictionary: make block! 0
> Ignored: make block! 0
> Additions: make block! 0
> error? try [Dictionary: make hash! sort/case load Directory/:File]
> Lower: charset [#"a" - #"z"]
> Upper: charset [#"A" - #"Z"]
> Alpha: union Upper Lower
> set 'Spell function [
> {Spell checks and corrects (with user interaction) the text supplied.}
> Text [string!]
> ][
> WordStart WordEnd Original Correction Before After Cancelled
> ][
> parse/case/all Text [
> some [
> WordStart: [some Alpha opt [[{'} | {-}] some Alpha]] WordEnd: (
> Before: copy/part WordStart -29
> Original: copy/part WordStart WordEnd
> After: copy/part WordEnd +29
> Correction: copy Original
> if not Cancelled [
> if not found? any [
> find/case Ignored Original
> find/case Additions Original
> find/case Dictionary Original
> ][
> view layout [
> across
> label "Not in Dictionary:" return
> text Before field Correction text After return
> button "Ignore" [
> unview/all
> ]
> button "Ignore All" [
> append Ignored Original
> unview/all
> ]
> return
> button "Add" [
> append Additions Original
> unview/all
> ]
> button "Change" [
> WordEnd: change/part WordStart Correction WordEnd
> unview/all
> ]
> button "Change All" [
> replace/case/all WordStart Original Correction
> unview/all
> ]
> button "Cancel" [
> Cancelled: yes
> unview/all
> ]
> return
> button "Quit" [
> quit
> ]
> ]
> ]
> ]
> ) :WordEnd
> | skip
> ]
> ]
> if not any [
> Cancelled
> empty? Additions
> ][
> append Dictionary Additions
> clear Additions
> save Directory/:File make block! sort/case Dictionary
> ]
> Text
> ]
> ]
>
>]
>
>--
>To unsubscribe from this list, please send an email to
>[rebol-request--rebol--com] with "unsubscribe" in the
>subject, without the quotes.
Matt Kim
If everything is under control, you are going too slow
-Mario Andretti
_________________________________________________________________
Unlimited Internet access for only $21.95/month. Try MSN!
http://resourcecenter.msn.com/access/plans/2monthsfree.asp