summaryrefslogtreecommitdiff
path: root/klm/lm/enumerate_vocab.hh
blob: 7a2f7d12da27ff644c9a0426b81facb91b56e16f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#ifndef LM_ENUMERATE_VOCAB__
#define LM_ENUMERATE_VOCAB__

#include "lm/word_index.hh"
#include "util/string_piece.hh"

namespace lm {
namespace ngram {

/* If you need the actual strings in the vocabulary, inherit from this class
 * and implement Add.  Then put a pointer in Config.enumerate_vocab.  
 * Add is called once per n-gram.  index starts at 0 and increases by 1 each
 * time.  
 */
class EnumerateVocab {
  public:
    virtual ~EnumerateVocab() {}

    virtual void Add(WordIndex index, const StringPiece &str) = 0;

  protected:
    EnumerateVocab() {}
};

} // namespace ngram
} // namespace lm

#endif // LM_ENUMERATE_VOCAB__