public final class KeepLargestFulltextBlockFilter extends java.lang.Object implements BoilerpipeFilter
TextBlock only (by the number of words). In case of
more than one block with the same number of words, the first block is chosen.
All discarded blocks are marked "not content" and flagged as
DefaultLabels.MIGHT_BE_CONTENT.
As opposed to KeepLargestBlockFilter, the number of words are
computed using HeuristicFilterBase.getNumFullTextWords(TextBlock), which only counts
words that occur in text elements with at least 9 words and are thus believed to be full text.
NOTE: Without language-specific fine-tuning (i.e., running the default instance), this filter
may lead to suboptimal results. You better use KeepLargestBlockFilter instead, which
works at the level of number-of-words instead of text densities.| Modifier and Type | Field and Description |
|---|---|
static KeepLargestFulltextBlockFilter |
INSTANCE |
| Constructor and Description |
|---|
KeepLargestFulltextBlockFilter() |
| Modifier and Type | Method and Description |
|---|---|
protected static int |
getNumFullTextWords(TextBlock tb) |
protected static int |
getNumFullTextWords(TextBlock tb,
float minTextDensity) |
boolean |
process(TextDocument doc)
Processes the given document
doc. |
public static final KeepLargestFulltextBlockFilter INSTANCE
public boolean process(TextDocument doc) throws BoilerpipeProcessingException
BoilerpipeFilterdoc.process in interface BoilerpipeFilterdoc - The TextDocument that is to be processed.true if changes have been made to the
TextDocument.BoilerpipeProcessingExceptionprotected static int getNumFullTextWords(TextBlock tb)
protected static int getNumFullTextWords(TextBlock tb, float minTextDensity)