diff --git a/src/wordrec/language_model.cpp b/src/wordrec/language_model.cpp index 50747607fc..1c96703c63 100644 --- a/src/wordrec/language_model.cpp +++ b/src/wordrec/language_model.cpp @@ -1375,7 +1375,12 @@ void LanguageModel::ExtractFeaturesFromPath(const ViterbiStateEntry &vse, float // features[PTRAIN_NUM_BAD_FONT] = vse.consistency_info.inconsistent_font; // Classifier-related features. - features[PTRAIN_RATING_PER_CHAR] = vse.ratings_sum / static_cast(vse.outline_length); + if (vse.outline_length > 0.0f) { + features[PTRAIN_RATING_PER_CHAR] = vse.ratings_sum / vse.outline_length; + } else { + // Avoid FP division by 0. + features[PTRAIN_RATING_PER_CHAR] = 0.0f; + } } WERD_CHOICE *LanguageModel::ConstructWord(ViterbiStateEntry *vse, WERD_RES *word_res,