OpenNLP Sentence Detection Engine
The OpenNLP Sentence Detection Engine adds Sentences to the AnalyzedText content part. If the AnalyzedText content part is not yet present it is created by this engine.
Consumed information
- Language (required): The language of the text needs to be available. It is read as specified by STANBOL-613 from the metadata of the ContentItem. Effectively this means that any Stanbol Language Detection engine will need to be executed before the OpenNLP POS Tagging Engine.
Configuration
The OpenNLP Sentence Detector Engine provides a default service instance (configuration policy is optional). This instance processes all languages and adds Sentences for all languages where a OpenNLP sentence detection model is available. This Engine instance uses the name 'opennlp-sentence' and has a service ranking of '-100'.
This engine supports the default configuration for Enhancement Engines including the name (stanbol.enhancer.engine.name) and the ranking (service.ranking) In addition it is possible to configure the processed languages (org.apache.stanbol.enhancer.sentence.languages) and an parameter to specify the name of the sentence detection model used for a language.
1. Processed Language Configuraiton:
For the configuration of the processed languages the following syntax is used:
de en
This would configure the Engine to only process German and English texts. It is also possible to explicitly exclude languages
!fr !it *
This specifies that all Languages other than French and Italien are processed.
Values can be parsed as Array or Vector. This is done by using the ["elem1","elem2",...] syntax as defined by OSGI ".config" files. As fallback also ',' separated Strings are supported.
The following example shows the two above examples combined to a single configuration.
org.apache.stanbol.enhancer.sentence.languages=["!fr","!it","de","en","*"]
NOTE that the "processed language" configuration only specifies what languages are considered for processing. If "de" is enabled, but there is no sentence detection model available for that language, than German text will still not be processed. However if there is a POS model for "it" but the "processed language" configuration does not include Italian, than Italian text will NOT be processed.
2. Sentnece detection model parameter
The OpenNLP Sentence Detection engine supports the 'model' parameter to explicitly parse the name of the sentence detection model used for an language. Models are loaded via the Stanbol DataFile provider infrastructure. That means that models can be loaded from the {stanbol-working-dir}/stanbol/datafiles folder.
The syntax for parameters is as follows
{language};{param-name}={param-value}
So to use the "my-de-sentence-model.zip" for detecting sentences in German texts one can use a configuration like follows
de;model=my-de-sentence-model.zip *
By default OpenNLP sentence detection models are loaded from '{lang}-sent.bin'. To use models with other names users need to use the 'model' parameter as described above.