public class GeneratorFactory extends Object
<featureGenerators name="namefind"> <generator class="opennlp.tools.util.featuregen.CachedFeatureGeneratorFactory"> <generator class="opennlp.tools.util.featuregen.WindowFeatureGeneratorFactory"> <int name="prevLength">2</int> <int name="nextLength">2</int> <generator class="opennlp.tools.util.featuregen.TokenClassFeatureGeneratorFactory"/> </generator> <generator class="opennlp.tools.util.featuregen.WindowFeatureGeneratorFactory"> <int name="prevLength">2</int> <int name="nextLength">2</int> <generator class="opennlp.tools.util.featuregen.TokenFeatureGeneratorFactory"/> </generator> <generator class="opennlp.tools.util.featuregen.DefinitionFeatureGeneratorFactory"/> <generator class="opennlp.tools.util.featuregen.PreviousMapFeatureGeneratorFactory"/> <generator class="opennlp.tools.util.featuregen.BigramNameFeatureGeneratorFactory"/> <generator class="opennlp.tools.util.featuregen.SentenceFeatureGeneratorFactory"> <bool name="begin">true</bool> <bool name="end">false</bool> </generator> </generator> </featureGenerators>
Each XML element is mapped to aGeneratorFactory.XmlFeatureGeneratorFactory
which
is responsible to process the element and create the specified
AdaptiveFeatureGenerator
. Elements can contain other
elements in this case it is the responsibility of the mapped factory to process
the child elements correctly. In some factories this leads to recursive
calls the
GeneratorFactory.XmlFeatureGeneratorFactory.create(Element, FeatureGeneratorResourceProvider)
method.
In the example above the generators element is mapped to the
AggregatedFeatureGeneratorFactory
which then
creates all the aggregated AdaptiveFeatureGenerator
s to
accomplish this it evaluates the mapping with the same mechanism
and gives the child element to the corresponding factories. All
created generators are added to a new instance of the
AggregatedFeatureGenerator
which is then returned.Modifier and Type | Class and Description |
---|---|
static class |
GeneratorFactory.AbstractXmlFeatureGeneratorFactory |
Constructor and Description |
---|
GeneratorFactory() |
Modifier and Type | Method and Description |
---|---|
static AdaptiveFeatureGenerator |
create(InputStream xmlDescriptorIn,
FeatureGeneratorResourceProvider resourceManager)
Creates an
AdaptiveFeatureGenerator from an provided XML descriptor. |
static Map<String,ArtifactSerializer<?>> |
extractArtifactSerializerMappings(InputStream xmlDescriptorIn) |
static List<Element> |
getDescriptorElements(InputStream xmlDescriptorIn)
Provides a list with all the elements in the xml feature descriptor.
|
public static AdaptiveFeatureGenerator create(InputStream xmlDescriptorIn, FeatureGeneratorResourceProvider resourceManager) throws IOException
AdaptiveFeatureGenerator
from an provided XML descriptor.
Usually this XML descriptor contains a set of nested feature generators
which are then used to generate the features by one of the opennlp
components.xmlDescriptorIn
- the InputStream
from which the descriptor
is read, the stream remains open and must be closed by the caller.resourceManager
- the resource manager which is used to resolve resources
referenced by a key in the descriptorIOException
- if an error occurs during reading from the descriptor
InputStream
public static Map<String,ArtifactSerializer<?>> extractArtifactSerializerMappings(InputStream xmlDescriptorIn) throws IOException
IOException
public static List<Element> getDescriptorElements(InputStream xmlDescriptorIn) throws IOException
xmlDescriptorIn
- the xml feature descriptorIOException
- if inputstream cannot be openInvalidFormatException
- if xml is not well-formedCopyright © 2020 The Apache Software Foundation. All rights reserved.