@Override
  public FeatureVector extract(Data t) {
    HashMap<Character, Integer> pCounts = new HashMap<Character, Integer>();
    FeatureVector fVector = new FeatureVector();

    String text = t.getValue(DataType.BODY);
    char[] characters = text.toCharArray();

    for (Character c : characters) {
      for (Character p : puncts) {
        if (c == p) {
          if (!pCounts.containsKey(p)) {
            pCounts.put(p, 0);
          }

          pCounts.put(p, pCounts.get(p) + 1);
        }
      }
    }

    for (Character c : pCounts.keySet()) {
      int count = pCounts.get(c);
      DataVariable var =
          new DataVariable(c.toString(), Long.valueOf(t.getValue(DataType.RECORD_IDENTIFIER)));
      Attributes attrs = var.getVariableAttributes();
      attrs.put(AttributeType.PUNCTCOUNT, String.valueOf(count));
      fVector.addVariable(var);
    }

    return fVector;
  }