Lingua-EN-NamedEntity
view release on metacpan or search on metacpan
data/mkdb.pl view on Meta::CPAN
#!/usr/bin/perl
use DB_File;
use IO::Zlib;
my %wordlist;
my $dir = './blib/lib/Lingua/EN/NamedEntity';
print "\n";
print "I'm going to write some wordlists as DB_Files into a subdirectory\n";
print "in your home directory, to decrease start-up time.\n";
#my $dir = ((getpwuid $<)[7]). "/.namedentity";
#if (-d $dir) {
# print "Except I see you'd already got some. Carry on, then!\n";
# return 1;
#}
unless (-d $dir) {
mkdir $dir or die "Well, I can't seem to create $dir - $!\n";
}
tie %wordlist, "DB_File", "$dir/wordlist"
or die "Something went wrong with DB_File [$!]\n";
print "Opening wordlist...\n";
$dict = new IO::Zlib;
$dict->open("data/dictionary.gz", "rb") or die("Can not open wordlist dictionary.gz");
my $count = 0;
while (<$dict>) {
chomp;
next if /[A-Z]/;
$wordlist{$_}=1;
if ($count % 10000 == 0) {print "$count words done\n"; }
$count++;
}
print "\n";
print "Converting the forename list\n";
my %forename;
tie %forename, "DB_File", "$dir/forename"
or die "Something went wrong with DB_File";
open IN, "data/givennames-ol" or die "Couldn't open data file: $!";
my $size = -s "data/givennames-ol";
my %said;
while (<IN>) {
chomp;
s/[^a-zA-Z ]//g;
$forename{lc $_}=1;
my $percent = int(100*(tell(IN)/$size));
print $percent, "% " unless $percent %10 or $said{$percent}++;
}
print "\n";
( run in 0.540 second using v1.01-cache-2.11-cpan-6aa56a78535 )