NAME
Text::SpellChecker - OO interface for spell-checking a block of text
SYNOPSIS
use Text::SpellChecker;
($Text::SpellChecker::pre_hl_word,
$Text::SpellChecker::post_hl_word) = (qw([ ]));
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.
- $checker->reset
-
Reset the checker to the beginning of the text, and clear the list of ignored words.
- $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->ignore_all
-
Ignore all subsequent occurences of the current word.
- $checker->replace_all(new_word => $new_word)
-
Replace all subsequent occurences of the current word with a new 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
Add word to custom dictionary
SEE ALSO
Text::Aspell
AUTHOR
Brian Duggan <bduggan@matatu.org>