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
BoilerpipeFilter
doc
.process
in interface BoilerpipeFilter
doc
- The TextDocument
that is to be processed.true
if changes have been made to the
TextDocument
.BoilerpipeProcessingException
protected static int getNumFullTextWords(TextBlock tb)
protected static int getNumFullTextWords(TextBlock tb, float minTextDensity)