double ComputeWordError(string* truth_str, string* ocr_str) { using StrMap = std::unordered_map<std::string, int, std::hash<std::string>>; //GenericVector<string> truth_words, ocr_words; truth_str->split(' ', &truth_words); if (truth_words.empty()) return 0.0; ocr_str->split(' ', &ocr_words); StrMap word_counts; for (int i = 0; i < truth_words.size(); ++i) { std::string truth_word(truth_words[i].string()); auto it = word_counts.find(truth_word); if (it == word_counts.end()) word_counts.insert(std::make_pair(truth_word, 1)); else ++it->second; } for (int i = 0; i < ocr_words.size(); ++i) { std::string ocr_word(ocr_words[i].string()); auto it = word_counts.find(ocr_word); if (it == word_counts.end()) word_counts.insert(std::make_pair(ocr_word, -1)); else --it->second; } int word_recall_errs = 0; for (StrMap::const_iterator it = word_counts.begin(); it != word_counts.end(); ++it) { if (it->second > 0) word_recall_errs += it->second; } return static_cast<double>(word_recall_errs) / truth_words.size(); }
I want to understand the above code as I dont have much knowledge of c++ language. Thank You Meet Yogi -- You received this message because you are subscribed to the Google Groups "tesseract-ocr" group. To unsubscribe from this group and stop receiving emails from it, send an email to tesseract-ocr+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/tesseract-ocr/3ae7a2f1-224e-4c72-91e3-37616a7bf970n%40googlegroups.com.