mirror of
https://github.com/moses-smt/mosesdecoder.git
synced 2024-12-28 06:22:14 +03:00
43 lines
1.4 KiB
C++
43 lines
1.4 KiB
C++
#ifndef LM_BUILDER_INITIAL_PROBABILITIES_H
|
|
#define LM_BUILDER_INITIAL_PROBABILITIES_H
|
|
|
|
#include "lm/builder/discount.hh"
|
|
#include "util/stream/config.hh"
|
|
|
|
#include <vector>
|
|
|
|
namespace util { namespace stream { class Chains; } }
|
|
|
|
namespace lm {
|
|
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);
|
|
|
|
} // namespace builder
|
|
} // namespace lm
|
|
|
|
#endif // LM_BUILDER_INITIAL_PROBABILITIES_H
|