in reply to Re: String Variables ....
in thread String Variables ....

could not be because of wordnet since when i put the string in getrelatedness it gives me correct answer

Replies are listed 'Best First'.
Re^3: String Variables ....
by gone2015 (Deacon) on Jan 23, 2009 at 16:41 UTC

    So... if:

    my $value = $measure->getRelatedness("cat#n#1", "dog#n#1");
    works, but:
    my $value = $measure->getRelatedness("$words1[$i]#1", "$words2[$j]#1 +");
    does not, then whatever "$words1[$i]#1" and "$words2[$j]#1" yield, it isn't what you think it is. The trick is to check, carefully, looking out for odd things like stray CR or even LF characters... I suggest:
    sub show { my ($s) = @_ ; $s =~ s/([\x00-\x1F\x7F-\xA0])/sprintf("\\x%02X", ord($1))/eg ; return $s ; } ;
    and then add replace your print statement with:
    print "similarity of '", show("$words1[$i]#1"), "' and '", show("$wo +rds2[$j]#1"), "' = $value\n";
    and check whether anything "odd" shows up.

      Flexible alternative:

      use Data::Dumper; sub show { my ($s) = @_ ; local $Data::Dumper::Indent = 0; local $Data::Dumper::Terse = 1; local $Data::Dumper::Useqq = 1; return Dumper($s); }

      And you don't need to add quotes anymore:

      print "similarity of ", show("$words1[$i]#1"), " and ", show("$words2[$j]#1"), " = $value\n";