O Jspell é um analisador morfológico derivado do corrector ortográfico ispell. (jspell = ispell++). O seu principal desenvolvimento tem sido com vista à sua utilização para a língua portuguesa. No entanto, existem dicionários para outras línguas.
O método canónico para instalação do Jspell é a instalação do módulo Perl Lingua::Jspell. Em sistemas Unix:
sudo cpan Lingua::Jspell
Em Windows, recomenda-se a instalação do Strawberry Perl e instalação do módulo na linha de comando com
cpan Lingua::Jspell
A instalação de dicionários é feita com o comando
jspell-installdic pt
(precedido de sudo nos sistemas Unix)
Os dicionários jspell:
Vários modos de funcionamento:
Dos seus dicionários são gerados:
#!/usr/bin/perl -s use jspell; jspell_dict("port"); # select portuguese dictionary setmode("+flags"); # show feature "flag" in output while(<>){ chop; if($tag){ print join(" ",featags($_)). "\n"} else { print any2str([fea($_)],1) . "\n"} }
#!/usr/bin/perl use jspell; jspell_dict("port"); setmode("+flags"); while(<>){ chop; print "\n($_)----------\nflags="; for(flags($_)){print "$_!";} print "----------\npossíveis radicais="; for(rad($_)){print "$_!";} print "\n----------\nanálise"; print any2str([fea($_)],1). "\n"; print "----------\n"; }
#!/usr/bin/perl -s use jspell; jspell_dict("port"); %opt=(); $opt{sep}=$sep if $sep; $opt{max}=$max if $max; $opt{radtxt}=$radtxt if $radtxt; my @a= nlgrep({%opt},@ARGV); print join("\n======\n",@a),"\n";
#!/usr/bin/perl use jspell; use Data::Dumper; jspell_dict("port"); print(any2str({onethat({CAT=>"np"},fea("Porto"))}, "compact")); print(any2str({onethat({CAT=>"np"},fea("Suíça"))}, "compact"));