Class GeneratorFactory
- java.lang.Object
-
- opennlp.tools.util.featuregen.GeneratorFactory
-
public class GeneratorFactory extends Object
Creates a set of feature generators based on a provided XML descriptor. Example of an XML descriptor:<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.XmlFeatureGeneratorFactorywhich is responsible to process the element and create the specifiedAdaptiveFeatureGenerator. 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 theGeneratorFactory.XmlFeatureGeneratorFactory.create(Element, FeatureGeneratorResourceProvider)method. In the example above the generators element is mapped to theAggregatedFeatureGeneratorFactorywhich then creates all the aggregatedAdaptiveFeatureGenerators 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 theAggregatedFeatureGeneratorwhich is then returned.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classGeneratorFactory.AbstractXmlFeatureGeneratorFactory
-
Constructor Summary
Constructors Constructor Description GeneratorFactory()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static AdaptiveFeatureGeneratorcreate(InputStream xmlDescriptorIn, FeatureGeneratorResourceProvider resourceManager)Creates anAdaptiveFeatureGeneratorfrom 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.
-
-
-
Method Detail
-
create
public static AdaptiveFeatureGenerator create(InputStream xmlDescriptorIn, FeatureGeneratorResourceProvider resourceManager) throws IOException
Creates anAdaptiveFeatureGeneratorfrom 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.- Parameters:
xmlDescriptorIn- theInputStreamfrom 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 descriptor- Returns:
- created feature generators
- Throws:
IOException- if an error occurs during reading from the descriptorInputStream
-
extractArtifactSerializerMappings
public static Map<String,ArtifactSerializer<?>> extractArtifactSerializerMappings(InputStream xmlDescriptorIn) throws IOException
- Throws:
IOException
-
getDescriptorElements
public static List<Element> getDescriptorElements(InputStream xmlDescriptorIn) throws IOException
Provides a list with all the elements in the xml feature descriptor.- Parameters:
xmlDescriptorIn- the xml feature descriptor- Returns:
- a list containing all elements
- Throws:
IOException- if inputstream cannot be openInvalidFormatException- if xml is not well-formed
-
-