Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

76 lines (52 sloc) 2.329 kB
NAME
Text::Levenshtein::Damerau::XS - XS Damerau Levenshtein edit distance.
SYNOPSIS
use Text::Levenshtein::Damerau::XS qw/xs_edistance/;
print xs_edistance('Neil','Niel');
# prints 1
DESCRIPTION
Returns the true Damerau Levenshtein edit distance of strings with
adjacent transpositions. XS implementation (requires a C compiler).
Works correctly with utf8.
use utf8;
xs_edistance('ⓕⓞⓤⓡ','ⓕⓤⓞⓡ'),
# prints 1
Speed improvements over Text::Levenshtein::Damerau::PP:
# Text::Levenshtein::Damerau::PP::pp_edistance("four","fuor")
timethis 1000000: 381 wallclock secs (380.45 usr + 0.01 sys =
380.46 CPU) @ 2628.40/s (n=1000000)
# Text::Levenshtein::Damerau::XS::xs_edistance("four","fuor")
timethis 1000000: 19 wallclock secs (19.43 usr + 0.00 sys =
19.43 CPU) @ 51466.80/s (n=1000000)
METHODS
xs_edistance
Arguments: source string and target string.
* *OPTIONAL 3rd argument* int (max distance; only return results with
$int distance or less). 0 = unlimited. Default = 0.
Returns: int that represents the edit distance between the two argument.
Stops calculations and returns -1 if max distance is set and reached.
Wrapper function to take the edit distance between a source and target
string using XS algorithm implementation.
use Text::Levenshtein::Damerau::XS qw/xs_edistance/;
print xs_edistance('Neil','Niel');
# prints 1
# Max edit distance of 1
print xs_edistance('Neil','Niely',1); # distance is 2
# prints -1
TODO
* Handle very large strings of text. Can be accomplished by reworking
the scoring matrix or writing to disk.
* Add from_file methods.
* Add binary/byte string support.
SEE ALSO
* Text::Levenshtein::Damerau
* Text::Levenshtein::Damerau::PP
BUGS
Please report bugs to:
<https://rt.cpan.org/Public/Dist/Display.html?Name=Text-Levenshtein-Dame
rau-XS>
AUTHOR
Nick Logan <ug@skunkds.com>
LICENSE AND COPYRIGHT
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
Jump to Line
Something went wrong with that request. Please try again.