# *********************************************** # # !!!! DO NOT EDIT !!!! # # This file was auto-generated by Build.PL. # # *********************************************** # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. =encoding utf8 =head1 NAME Lucy::Analysis::Analyzer - Tokenize/modify/filter text. =head1 SYNOPSIS # Abstract base class. =head1 DESCRIPTION An Analyzer is a filter which processes text, transforming it from one form into another. For instance, an analyzer might break up a long text into smaller pieces (L), or it might perform case folding to facilitate case-insensitive search (L). =head1 CONSTRUCTORS =head2 new package MyAnalyzer; use base qw( Lucy::Analysis::Analyzer ); our %foo; sub new { my $self = shift->SUPER::new; my %args = @_; $foo{$$self} = $args{foo}; return $self; } Abstract constructor. Takes no arguments. =head1 ABSTRACT METHODS =head2 transform my $inversion = $analyzer->transform($inversion); Take a single L as input and returns an Inversion, either the same one (presumably transformed in some way), or a new one. =over =item * B - An inversion. =back =head1 METHODS =head2 transform_text my $inversion = $analyzer->transform_text($text); Kick off an analysis chain, creating an Inversion from string input. The default implementation simply creates an initial Inversion with a single Token, then calls L, but occasionally subclasses will provide an optimized implementation which minimizes string copies. =over =item * B - A string. =back =head2 split my $arrayref = $analyzer->split($text); Analyze text and return an array of token texts. =over =item * B - A string. =back =head2 dump my $obj = $analyzer->dump(); Dump the analyzer as hash. Subclasses should call L on the superclass. The returned object is a hash which should be populated with parameters of the analyzer. Returns: A hash containing a description of the analyzer. =head2 load my $obj = $analyzer->load($dump); Reconstruct an analyzer from a dump. Subclasses should first call L on the superclass. The returned object is an analyzer which should be reconstructed by setting the dumped parameters from the hash contained in C. Note that the invocant analyzer is unused. =over =item * B - A hash. =back Returns: An analyzer. =head1 INHERITANCE Lucy::Analysis::Analyzer isa Clownfish::Obj. =cut