Ejemplo n.º 1
0
void LccrFeaturizer::FilterFeatureWithCount(trie_t &raw, trie_t &filtered,
                                            int cutoff) {
  namespace signal = boost::signals2::detail;
  size_t from(0), p(0);
  signal::auto_buffer<char, signal::store_n_bytes<LccrFeaturizer::MAXFEATLEN>>
      buffer(LccrFeaturizer::MAXFEATLEN, '\0');
  int featcnt;
  for (featcnt = raw.begin(from, p); featcnt != trie_t::CEDAR_NO_PATH;
       featcnt = raw.next(from, p)) {
    if (featcnt >= cutoff) {
      raw.suffix(buffer.data(), p, from);
      int key = filtered.num_keys();
      filtered.update(buffer.data(), p, 0) = key;
    }
  }
}