22 #include <fst/flags.h> 24 #include <fst/mutable-fst.h> 25 #include <fst/vector-fst.h> 41 std::string usage =
"Make n-gram model from input count file.\n\n Usage: ";
43 usage +=
" [--options] [in.fst [out.fst]]\n";
44 SET_FLAGS(usage.c_str(), &argc, &argv,
true);
46 if (argc < 1 || argc > 3) {
52 (argc > 1 && (strcmp(argv[1],
"-") != 0)) ? argv[1] :
"";
53 std::unique_ptr<fst::StdFst> ccfst;
54 if (!FST_FLAGS_count_of_counts.empty()) {
55 ccfst.reset(fst::StdFst::Read(FST_FLAGS_count_of_counts));
59 bool model_made =
false;
60 std::unique_ptr<fst::StdMutableFst>
fst;
61 if (FST_FLAGS_method ==
"katz_frac") {
62 std::unique_ptr<fst::VectorFst<ngram::HistogramArc>> hist_fst(
63 fst::VectorFst<ngram::HistogramArc>::Read(in_name));
65 fst = std::make_unique<fst::StdVectorFst>();
67 hist_fst.get(), fst.get(), FST_FLAGS_method, ccfst.get(),
68 FST_FLAGS_interpolate, FST_FLAGS_bins,
69 FST_FLAGS_backoff_label, FST_FLAGS_norm_eps,
70 FST_FLAGS_check_consistency);
73 fst.reset(fst::StdMutableFst::Read(in_name,
true));
76 fst.get(), FST_FLAGS_method, ccfst.get(),
77 FST_FLAGS_backoff, FST_FLAGS_interpolate,
78 FST_FLAGS_bins, FST_FLAGS_witten_bell_k,
79 FST_FLAGS_discount_D, FST_FLAGS_backoff_label,
81 FST_FLAGS_check_consistency);
85 std::string out_name =
86 (argc > 2 && (strcmp(argv[2],
"-") != 0)) ? argv[2] :
"";
bool NGramMakeHistModel(fst::MutableFst< ngram::HistogramArc > *hist_fst, fst::StdMutableFst *fst, const std::string &method, const fst::StdFst *ccfst=nullptr, bool interpolate=false, int64_t bins=-1, int64_t backoff_label=0, double norm_eps=kNormEps, bool check_consistency=false)
bool NGramMakeModel(fst::StdMutableFst *fst, const std::string &method, const fst::StdFst *ccfst=nullptr, bool backoff=false, bool interpolate=false, int64_t bins=-1, double witten_bell_k=1, double discount_D=-1.0, int64_t backoff_label=0, double norm_eps=kNormEps, bool check_consistency=false)
int ngrammake_main(int argc, char **argv)
DECLARE_double(witten_bell_k)