Heray-Was-Here
Server : Apache
System : Linux vps103298.mylogin.co 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64
User : calvet ( 273824)
PHP Version : 7.4.33
Disable Function : NONE
Directory :  /usr/share/doc/perl-Text-Fuzzy/examples/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //usr/share/doc/perl-Text-Fuzzy/examples/kanji-search.pl
#!/usr/bin/perl
use warnings;
use strict;
use Lingua::JA::Moji ':all';
use Text::Fuzzy;
use Time::HiRes 'time';
use utf8;
binmode STDOUT, ":utf8";
my $infile = '/home/ben/data/edrdg/edict';
open my $in, "<:encoding(EUC-JP)", $infile or die $!;
my @kanji;
while (<$in>) {
    my $kanji;
    if (/^(\p{InCJKUnifiedIdeographs}+)/) {
	$kanji = $1;
    }
    if ($kanji) {
	push @kanji, $kanji;
    }
}
printf "Starting fuzzy searches over %d lines.\n", scalar @kanji;
search ('幾何学校');
search ('阿部総理大臣');
search ('何校');
exit;

sub search
{
    my ($silly) = @_;
    my $start = time ();
    my $search = Text::Fuzzy->new ($silly);
    my $n = $search->nearest (\@kanji);
    my $max = 3;
    $search->set_max_distance ($max);
    if (defined $n) {
	printf "The nearest to \"$silly\" is $kanji[$n] (distance %d)\n",
	    $search->last_distance ();
    }
    else {
	print "Nothing like '$silly' was found within $max edits.\n";
    }
    my $end = time ();
    printf "Fuzzy search took %g seconds.\n", ($end - $start);
}


Hry