class PalladianNer extends TrainableNamedEntityRecognizer implements ClassifyingTagger {

    static Annotation removeDateFragment(Annotation annotation) {
        String newValue = annotation.getValue();
        int newOffset = annotation.getStartPosition();
        for (String dateFragment : RegExp.DATE_FRAGMENTS) {
            String regExp = "(?:" + dateFragment + ")\\.?";
            String beginRegExp = "^" + regExp + " ";
            String endRegExp = " " + regExp + "$";
            int textLength = newValue.length();
            if (StringHelper.countRegexMatches(newValue, beginRegExp) > 0) {
                newValue = newValue.replaceAll(beginRegExp, " ").trim();
                newOffset += textLength - newValue.length();
            }
            if (StringHelper.countRegexMatches(newValue, endRegExp) > 0) {
                newValue = newValue.replaceAll(endRegExp, " ").trim();
            }
        }
        if (annotation.getValue().equals(newValue)) {
            return null;
        }
        LOGGER.debug("Removed date fragment from '{}' gives '{}'", annotation.getValue(), newValue);
        return new ImmutableAnnotation(newOffset, newValue, annotation.getTag());
    }

    public  PalladianNer(PalladianNerTrainingSettings trainingSettings);
    public  PalladianNer(String modelFilePath);

}