namespace util { namespace stream { class Chains; } } | |
namespace lm { | |
class SpecialVocab; | |
namespace builder { | |
struct InitialProbabilitiesConfig { | |
// These should be small buffers to keep the adder from getting too far ahead | |
util::stream::ChainConfig adder_in; | |
util::stream::ChainConfig adder_out; | |
// SRILM doesn't normally interpolate unigrams. | |
bool interpolate_unigrams; | |
}; | |
/* Compute initial (uninterpolated) probabilities | |
* primary: the normal chain of n-grams. Incoming is context sorted adjusted | |
* counts. Outgoing has uninterpolated probabilities for use by Interpolate. | |
* second_in: a second copy of the primary input. Discard the output. | |
* gamma_out: Computed gamma values are output on these chains in suffix order. | |
* The values are bare floats and should be buffered for interpolation to | |
* use. | |
*/ | |
void InitialProbabilities( | |
const InitialProbabilitiesConfig &config, | |
const std::vector<Discount> &discounts, | |
util::stream::Chains &primary, | |
util::stream::Chains &second_in, | |
util::stream::Chains &gamma_out, | |
const std::vector<uint64_t> &prune_thresholds, | |
bool prune_vocab, | |
const SpecialVocab &vocab); | |
} // namespace builder | |
} // namespace lm | |