@Override
  public void GenerateFeatures(EntityMention mention) throws SQLException {
    Set<String> words = new HashSet<String>();
    for (Sentence sentence : document) {
      words.addAll(Arrays.asList(sentence.getTokens()));
    }
    // get a histogram of all words in sentences
    Histogram documentHistogram = Histogram.extractFromSentenceArray(document, words);

    Map<Entity, Features> candidateFeatures = mention.candidateFeatures;
    for (Entry<Entity, Features> entry : candidateFeatures.entrySet()) {
      Entity candidate = entry.getKey();
      String[] tokens = Util.tokenizeText(wiki.GetCleanedWikiText(candidate.wikiTitle));
      Histogram hist = Histogram.fromTokens(tokens);
      double dotProduct = Util.computeDotProduct(documentHistogram, hist);
      entry.getValue().setFeature(GetFeatureName(), dotProduct);
    }
  }