NAME
Text::Fuzzy - partial or fuzzy string matching using edit distances
SYNOPSIS
use Text::Fuzzy;
my $tf = Text::Fuzzy->new ('boboon');
print "Distance is ", $tf->distance ('babboon'), "\n";
my @words = qw/the quick brown fox jumped over the lazy dog/;
my $nearest = $tf->nearest (\@words);
print "Nearest array entry is ", $words[$nearest], "\n";
DESCRIPTION
This module calculates the edit-distance between words, and edit-distance-based searching of arrays and files. It can handle either byte strings or character strings (strings containing Unicode), treating each Unicode character as a single entity.
METHODS
new
my $tf = Text::Fuzzy->new ('bibbety bobbety boo');
Create a new Text::Fuzzy object from the supplied word.
distance
my $dist = $tf->distance ($word);
Return the edit distance to $word
from the word used to create the object in "new".
nearest
my $index = $tf->nearest (\@words);
Return the index of the nearest element in the array to the argument.
max_distance
# Get the maximum edit distance.
print "The max distance is ", $tf->max_distance (), "\n";
# Set the max distance.
$tf->max_distance (3);
Set or get the maximum edit distance of $tf
. The default is set to 10.
scan_file
$tf->scan_file ('/usr/share/dict/words');
Scan a file to find the nearest match to the word used in "new". This assumes that the file contains lines of text separated by newlines and finds the closest match in the file.
BUGS
No way to turn off the maximum edit distance.
AUTHOR
Ben Bullock, <bkb@cpan.org>
COPYRIGHT & LICENCE
This package and associated files are copyright (C) 2012 Ben Bullock.
You can use, copy, modify and redistribute this package and associated files under the Perl Artistic Licence or the GNU General Public Licence.