[Cascavel-pm] Comparacao aproximada entre duas strings
Nelson Ferraz
nferraz em gmail.com
Domingo Outubro 16 16:55:16 PDT 2005
> creio que isso não é bom para comparação de frases, mas sim de palavras das
> frases.
>
> Exemplo seria se eu colocasse um NÃO em uma das duas, a resposta deveria ser
> 0%, o que não deve ocorrer..
O objetivo não é dizer se duas frases têm o mesmo significado, mas se
elas tratam do mesmo assunto.
Por exemplo: existe um artigo do Richard Stallman que se chama "Why
Software Should Be Free"; imagine que alguém publique uma réplica
chamada "Why Software Shouldn't Be Free". Nesse caso, teríamos:
Similarity(
"Why Software Should Be Free",
"Why Software Shouldn't Be Free",
); # => 80%
Os artigos podem ser inteiramente diferentes, mas o tema é exatamente o mesmo.
A propósito, aqui vai uma pequena correção na sub Clean:
sub Clean {
my $str = shift;
$str =~ s/[^\w\s]//g;
my @stop_words = qw/a an the for and is are be to what where when why for/;
foreach (@stop_words) {
$str =~ s/^$_ //gi;
$str =~ s/ $_$//gi;
$str =~ s/ $_ / /gi;
}
return $str;
}
[]s
Nelson
--
Nelson Ferraz
GNU BIS - www.gnubis.com.br
Mais detalhes sobre a lista de discussão Cascavel-pm