Text::SpellChecker.3pm

Langue: en

Autres versions - même langue

Version: 2010-10-04 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

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 a thin layer above either Text::Aspell or Text::Hunspell (preferring the latter if available), and allows one to spellcheck a body of text.

Whereas Text::(Hu|A)spell deals with words, Text::Spellchecker deals with blocks of text. 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, lang => $lang)
Send either the text or a serialized object to the constructor. Optionally, the language of the text can also be passed.
$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 in a scalar context, or the list directly in a list context.
$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.

CONFIGURATION OPTIONS

$Text::SpellChecker::pre_hl_word
Set this to control the highlighting of a misspelled word.
$Text::SpellChecker::post_hl_word
Set this to control the highlighting of a misspelled word.
$Text::SpellCheckerDictionaryPath{Hunspell}
Set this to the hunspell dictionary path. By default /usr/share/myspell.

This directory should have $lang.dic and $lang.aff files.

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

TODO

Add word to custom dictionary

SEE ALSO

Text::Aspell, Text::Hunspell

AUTHOR

Brian Duggan <bduggan@matatu.org>

POD ERRORS

Hey! The above document had some coding errors, which are explained below:
Around line 129:
You forgot a '=back' before '=head1'
Around line 131:
'=item' outside of any '=over'