commit 66a6b3de3508b8cd933be24c605506c38088c297 Author: Daniel Swanson Date: Thu Aug 5 17:35:23 2021 -0500 HMM working diff --git a/apertium/apertium_tagger_new.cc b/apertium/apertium_tagger_new.cc index 81642e6..0cd7281 100644 --- a/apertium/apertium_tagger_new.cc +++ b/apertium/apertium_tagger_new.cc @@ -10,10 +10,7 @@ int main(int argc, char** argv) InputFile input; UFILE* output = u_finit(stdout, NULL, NULL); FILE* tg = fopen(argv[1], "rb"); - std::cerr << "about to load\n"; t.load(tg); - std::cerr << "loaded\n"; t.tag_hmm(input, output); - std::cerr << "tagged\n"; return EXIT_SUCCESS; } diff --git a/apertium/tagger_data_exe.cc b/apertium/tagger_data_exe.cc index 2523e9d..3e1dc3e 100644 --- a/apertium/tagger_data_exe.cc +++ b/apertium/tagger_data_exe.cc @@ -333,7 +333,9 @@ TaggerDataExe::read_compressed_hmm_lsw(FILE* in, bool is_hmm) // matrix b hmm_b = new double[N*M]; - memset(hmm_b, 0, N*M*sizeof(double)); + for (uint64_t i = 0; i < N*M; i++) { + hmm_b[i] = 1e-10; + } for (uint64_t count = Compression::multibyte_read(in); count > 0; count--) { uint64_t i = Compression::multibyte_read(in); uint64_t j = Compression::multibyte_read(in); diff --git a/apertium/tagger_data_exe.h b/apertium/tagger_data_exe.h index db36365..5c42d8a 100644 --- a/apertium/tagger_data_exe.h +++ b/apertium/tagger_data_exe.h @@ -144,10 +144,10 @@ public: uint64_t get_ambiguity_class(const std::set& tags); inline double getA(uint64_t i, uint64_t j) const { - return hmm_a[i*M + j]; + return hmm_a[i*N + j]; } inline double getB(uint64_t i, uint64_t j) const { - return hmm_b[i*N + j]; + return hmm_b[i*M + j]; } inline double getD(uint64_t i, uint64_t j, uint64_t k) const { return lsw_d[i*N*N + j*N + k];