public Set<Feature> extract(JCas aView, TextClassificationUnit unit)
      throws TextClassificationException {
    super.extract(aView, unit);
    Integer idx = unitBegin2Idx.get(unit.getBegin());

    String featureVal = nextToken(idx);
    return new Feature(FEATURE_NAME, featureVal).asSet();
  }
  public List<Feature> extract(JCas aJcas, TextClassificationUnit aClassificationUnit)
      throws TextClassificationException {
    init();

    String unit = aClassificationUnit.getCoveredText();

    unit = substituteHashtags(unit);
    unit = substituteUrl(unit);
    unit = substituteAtMentions(unit);

    List<Feature> features = createFeatures(unit);

    return features;
  }