Alvis-QueryFilter
view release on metacpan or search on metacpan
lib/Alvis/QueryFilter.pm view on Meta::CPAN
$dict{$form}=$type;
}
close(F);
return \%dict;
}
sub _read_onto_nodes
{
my $self=shift;
my $f=shift;
my %dict=();
if (!defined(open(F,"<:utf8",$f)))
{
return undef;
}
while (my $l=<F>)
{
chomp $l;
my ($form,$onto_node)=split(/\t/,$l,-1);
$form = &cleanspaces($form);
$onto_node = &cleanspaces($onto_node);
$dict{$form}=$onto_node;
}
close(F);
return \%dict;
}
sub _read_onto_mapping
{
my $self=shift;
my $f=shift;
my %dict=();
if (!defined(open(F,"<:utf8",$f)))
{
return undef;
}
while (my $l=<F>)
{
chomp $l;
my ($node,$path)=split(/\t/,$l,-1);
$node = &cleanspaces($node);
$path = &cleanspaces($path);
$dict{$node}=$path;
}
close(F);
return \%dict;
}
sub transform # just for testing and debugging
{
my $self=shift;
my $query=shift; # list of word forms
my $expanded_query_struct=$self->_expand_qword_list($query);
$self->{queryForm} = $query;
$self->{finalForm} = "";
my $query_XML=$self->_data_struct2XML($expanded_query_struct);
return $query_XML;
}
#
# Given a list of word forms, expand
#
sub _expand_qword_list
{
my $self=shift;
my $query=shift; # list of word forms
# print STDERR "Q: " . Dumper($query) . "\n";
my $lemmatized_by_tagger=$self->_apply_treetagger($query);
if (!defined($lemmatized_by_tagger))
{
$self->_set_err_state($ERR_TREETAGGER);
return undef;
}
# print STDERR "LEM: " . Dumper($lemmatized_by_tagger) . "\n";
my $lemmatized=
$self->_apply_lemma_dict($lemmatized_by_tagger); # if one exists
if (!defined($lemmatized))
{
$self->_set_err_state($ERR_LEMMA_DICT);
return undef;
}
# print STDERR "LEMTAG: " . Dumper($lemmatized) . "\n";
my $term_NE_expanded=$self->_apply_terms_and_NEs($lemmatized);
if (!defined($term_NE_expanded))
{
$self->_set_err_state($ERR_APPLYING_TERM_NE);
return undef;
}
# print STDERR "TERM: " . Dumper($term_NE_expanded) . "\n";
my $typing_expanded=$self->_apply_typing_rules($term_NE_expanded);
if (!defined($typing_expanded))
{
$self->_set_err_state($ERR_APPLYING_TYPING);
return undef;
}
my $onto_expanded=$self->_apply_onto($typing_expanded);
( run in 3.153 seconds using v1.01-cache-2.11-cpan-02777c243ea )