NAME

Text::SpellChecker - OO interface for spell-checking a block of text

SYNOPSIS

use Text::SpellChecker;

my $checker = Text::SpellChecker->new(text => "Foor score and seven yeers ago");

while (my $word = $checker->next_word) { print $checker->highlighted_text, "\n", "$word : ", (join "\t", @{$checker->suggestions}), "\nChoose a new word : "; chomp (my $new_word = <STDIN>); $checker->replace(new_word => $new_word) if $new_word; }

print "New text : ".$checker->text."\n";

--or--

use CGI; use Text::SpellChecker; my $q = new CGI; print $q->header, $q->start_html, $q->start_form(-method=>'POST',-action=>$ENV{SCRIPT_NAME});

my $checker = Text::SpellChecker->new( text => "Foor score and seven yeers ago", from_frozen => $q->param('frozen') # will be false the first time. );

$checker->replace(new_word => $q->param('replacement')) if $q->param('replace');

if (my $word = $checker->next_word) { print $q->p($checker->highlighted_text), $q->br, qq|Next word : "$word"|, $q->br, $q->submit(-name=>'replace',-value=>'replace with:'), $q->popup_menu(-name=>'replacement',-values=>$checker->suggestions), $q->submit(-name=>'skip'); } else { print "Done. New text : ".$checker->text; }

print $q->hidden(-name => 'frozen', -value => $checker->serialize, -override => 1), $q->end_form, $q->end_html;

DESCRIPTION

This module is built on Text::Aspell, but adds some of the functionality provided by the internal gnu aspell API. This allows one to deal with blocks of text, rather than just words. For instance, we provide methods for iterating through the text, serializing the object (thus remembering where we left off), and highlighting the current misspelled word within the text.

METHODS

$checker = Text::SpellChecker->new(text => $text, from_frozen => $serialized_data)

Send either the text or a serialized object to the constructor.

$checker = new_from_frozen($serialized_data)

This is provided separately, so that it may be overridden for alternative serialization techniques.

$str=$checker->serialize

Represent the object in its current state.

$word = $checker->next_word

Returns the next misspelled word.

$checker->current_word

Returns the most recently returned word.

$checker->replace(new_word => $word)

Replace the current word with $word.

$checker->suggestions

Returns a reference to a list of alternatives to the current word.

$checker->text

Returns the current text (with corrections that have been applied).

$checker->highlighted_text

Returns the text, but with the current word surrounded by $Text::SpellChecker::pre_hl_word and $Text::SpellChecker::post_hl_word.

TODO

Ignore all occurrences of a word, replace all occurrences, add to dictionary

SEE ALSO

Text::Aspell

AUTHOR

Brian Duggan <bduggan@matatu.org>