Text::Hunspell - Perl interface to the GNU Hunspell library
# For this example to work, you have to have # the US english dictionary installed! use strict; use warnings; use Data::Dumper (); use Text::Hunspell; # You can use relative or absolute paths. my $speller = Text::Hunspell->new( "/usr/share/hunspell/en_US.aff", # Hunspell affix file "/usr/share/hunspell/en_US.dic" # Hunspell dictionary file ); die unless $speller; # Check a word against the dictionary my $word = 'opera'; print $speller->check($word) ? "'$word' found in the dictionary\n" : "'$word' not found in the dictionary!\n"; # Spell check suggestions my $misspelled = 'programmng'; my @suggestions = $speller->suggest($misspelled); print "\n", "You typed '$misspelled'. Did you mean?\n"; for (@suggestions) { print " - $_\n"; } # Analysis of a word $word = 'automatic'; my $analysis = $speller->analyze($word); print "\n", "Analysis of '$word' returns '$analysis'\n"; # Word stemming $word = 'development'; my @stemming = $speller->stem($word); print "\n", "Stemming of '$word' returns:\n"; for (@stemming) { print " - $_\n"; } #------------------------------------------ # ADVANCED STUFF FROM HERE # NOT SURE HOW IT SHOULD WORK #------------------------------------------ # # Test here generator for morphological modification (NOM->ACC) # $word = 'developer'; my $stem = 'computer'; @suggestions = $speller->analyze($stem); # Modify analyze output for required class (ACC) for (@suggestions) { s/NOM/ACC/g; } # Generate ACC class of stem @suggestions = $speller->generate2($stem, \@suggestions); print "Morphological modification generator...\n"; print Data::Dumper::Dumper(\@suggestions); # # Test generator for morphological modification, # modify $stem like $word # @suggestions = $speller->generate($stem, $word); print "Morphological modification generator...\n"; print Data::Dumper::Dumper(\@suggestions); # Deletes the underlying Hunspell C/C++ object $speller->delete($speller);
This module provides a Perl interface to the OO Hunspell library. This module is to meet the need of looking up many words, one at a time, in a single session, such as spell-checking a document in memory.
The example code describes the interface on http://hunspell.sf.net
You MUST have installed GNU Hunspell library version 1.0 or higher on your system before installing this Text::Hunspell Perl module.
Text::Hunspell
Hunspell location is:
http://hunspell.sf.net
There have been a number of bug reports because people failed to install hunspell before installing this module.
This is an interface to the hunspell library installed on your system, not a replacement for hunspell.
You must also have one hunspell dictionary installed when running the module's test suite.
Also, please see the README and Changes files. README may have specific information about your platform.
The following methods are available:
Creates a new speller object. New takes the parameters full_path_of_affix file and full_path_of_dic file Returns undef if the object could not be created, which is unlikely.
undef
Internally, new() creates the hunspell class.
Check the word. Passes back 1, if the word found, 0 otherwise.
Passes back the list of suggestions for the misspelled word.
Passes back the analyzis list for the word.
Passes back the stem list for the word.
Passes back morphologically modified stem as defined in @suggestions (got by analyzis)
Passes back morphologically modified stem like $word
deletes the speller class.
Probably. Yes, definitely.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Eleonora, E<lt>eleonora46_at_gmx_dot_netE<gt>
Current maintainer is:
Cosimo Streppone, E<lt>cosimo@cpan.orgE<gt>
This module is based on a Text::Aspell written by Bill Moseley moseley at hank dot org.
Hunspell is written as myspell by Kevin B. Hendricks, Hunspell is maintained by Németh László.
Please see:
For the dictionaries:
http://lingucomponent.openoffice.org/spell_dic.html http://magyarispell.sf.net for Hungarian dictionary
1 POD Error
The following errors were encountered while parsing the POD:
Non-ASCII character seen before =encoding in 'Németh'. Assuming CP1252
To install Text::Hunspell, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Text::Hunspell
CPAN shell
perl -MCPAN -e shell install Text::Hunspell
For more information on module installation, please visit the detailed CPAN module installation guide.