summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Heafield <kheafiel@cluster01.lti.ece.cmu.local>2012-07-16 10:50:56 -0400
committerKenneth Heafield <kheafiel@cluster01.lti.ece.cmu.local>2012-07-16 10:50:56 -0400
commitdfebe92df6e09b8950c93e08fadccd95763186f8 (patch)
tree8b40bf1154a373c5bbcfc330f983c399b0228144
parent1b6f3ecd054ed0c5a810d0311984829b8719a9ff (diff)
Fix slow backoff lookup
-rw-r--r--klm/lm/model.cc5
1 files changed, 1 insertions, 4 deletions
diff --git a/klm/lm/model.cc b/klm/lm/model.cc
index c081788c..a2d31ce0 100644
--- a/klm/lm/model.cc
+++ b/klm/lm/model.cc
@@ -53,9 +53,6 @@ template <class Search, class VocabularyT> void GenericModel<Search, VocabularyT
search_.LoadedBinary();
}
-namespace {
-} // namespace
-
template <class Search, class VocabularyT> void GenericModel<Search, VocabularyT>::InitializeFromARPA(const char *file, const Config &config) {
// Backing file is the ARPA. Steal it so we can make the backing file the mmap output if any.
util::FilePiece f(backing_.file.release(), file, config.messages);
@@ -126,7 +123,7 @@ template <class Search, class VocabularyT> FullScoreReturn GenericModel<Search,
return ret;
}
// i is the order of the backoff we're looking for.
- unsigned char order_minus_2 = 0;
+ unsigned char order_minus_2 = start - 2;
for (const WordIndex *i = context_rbegin + start - 1; i < context_rend; ++i, ++order_minus_2) {
typename Search::MiddlePointer p(search_.LookupMiddle(order_minus_2, *i, node, independent_left, extend_left));
if (!p.Found()) break;