Tesseract  3.02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ratngs.cpp File Reference
#include "mfcpch.h"
#include "ratngs.h"
#include "callcpp.h"
#include "genericvector.h"
#include "unicharset.h"

Go to the source code of this file.

Functions

 ELISTIZE (BLOB_CHOICE) CLISTIZE(BLOB_CHOICE_LIST) CLISTIZE(WERD_CHOICE)
 
bool EqualIgnoringCaseAndTerminalPunct (const WERD_CHOICE &word1, const WERD_CHOICE &word2)
 
void print_ratings_list (const char *msg, BLOB_CHOICE_LIST *ratings, const UNICHARSET &current_unicharset)
 
void print_ratings_list (const char *msg, BLOB_CHOICE_LIST *ratings)
 
void print_ratings_info (FILE *fp, BLOB_CHOICE_LIST *ratings, const UNICHARSET &current_unicharset)
 
void print_char_choices_list (const char *msg, const BLOB_CHOICE_LIST_VECTOR &char_choices, const UNICHARSET &current_unicharset, BOOL8 detailed)
 
void print_word_alternates_list (WERD_CHOICE *word, GenericVector< WERD_CHOICE * > *alternates)
 

Function Documentation

ELISTIZE ( BLOB_CHOICE  )
bool EqualIgnoringCaseAndTerminalPunct ( const WERD_CHOICE word1,
const WERD_CHOICE word2 
)

Definition at line 483 of file ratngs.cpp.

484  {
485  const UNICHARSET *uchset = word1.unicharset();
486  if (word2.unicharset() != uchset) return false;
487  int w1start, w1end;
488  word1.punct_stripped(&w1start, &w1end);
489  int w2start, w2end;
490  word2.punct_stripped(&w2start, &w2end);
491  if (w1end - w1start != w2end - w2start) return false;
492  for (int i = 0; i < w1end - w1start; i++) {
493  if (uchset->to_lower(word1.unichar_id(w1start + i)) !=
494  uchset->to_lower(word2.unichar_id(w2start + i))) {
495  return false;
496  }
497  }
498  return true;
499 }
void punct_stripped(int *start_core, int *end_core) const
Definition: ratngs.cpp:245
UNICHAR_ID to_lower(UNICHAR_ID unichar_id) const
Definition: unicharset.h:593
const UNICHARSET * unicharset() const
Definition: ratngs.h:211
const UNICHAR_ID unichar_id(int index) const
Definition: ratngs.h:220
void print_char_choices_list ( const char *  msg,
const BLOB_CHOICE_LIST_VECTOR char_choices,
const UNICHARSET current_unicharset,
BOOL8  detailed 
)

print_char_choices_list

Definition at line 610 of file ratngs.cpp.

613  {
614  if (*msg != '\0') tprintf("%s\n", msg);
615  for (int x = 0; x < char_choices.length(); ++x) {
616  BLOB_CHOICE_IT c_it;
617  c_it.set_to_list(char_choices.get(x));
618  tprintf("\nchar[%d]: %s\n", x,
619  current_unicharset.debug_str( c_it.data()->unichar_id()).string());
620  if (detailed)
621  print_ratings_list("", char_choices.get(x), current_unicharset);
622  }
623 }
T & get(int index) const
STRING debug_str(UNICHAR_ID id) const
Definition: unicharset.cpp:285
void print_ratings_list(const char *msg, BLOB_CHOICE_LIST *ratings, const UNICHARSET &current_unicharset)
Definition: ratngs.cpp:511
DLLSYM void tprintf(const char *format,...)
Definition: tprintf.cpp:41
int length() const
Definition: genericvector.h:63
void print_ratings_info ( FILE *  fp,
BLOB_CHOICE_LIST *  ratings,
const UNICHARSET current_unicharset 
)

print_ratings_info

Send all the ratings out to the logfile.

Parameters
fpfile to use
ratingslist of results
current_unicharsetunicharset that can be used for id-to-unichar conversion

Definition at line 564 of file ratngs.cpp.

566  {
567  inT32 index; // to list
568  const char* first_char = NULL; // character
569  FLOAT32 first_rat; // rating
570  FLOAT32 first_cert; // certainty
571  const char* sec_char = NULL; // character
572  FLOAT32 sec_rat = 0.0f; // rating
573  FLOAT32 sec_cert = 0.0f; // certainty
574  BLOB_CHOICE_IT c_it = ratings; // iterator
575 
576  index = ratings->length();
577  if (index > 0) {
578  first_char = current_unicharset.id_to_unichar(c_it.data()->unichar_id());
579  first_rat = c_it.data()->rating();
580  first_cert = -c_it.data()->certainty();
581  if (index > 1) {
582  sec_char = current_unicharset.id_to_unichar(
583  c_it.data_relative(1)->unichar_id());
584  sec_rat = c_it.data_relative(1)->rating();
585  sec_cert = -c_it.data_relative(1)->certainty();
586  } else {
587  sec_char = NULL;
588  sec_rat = -1;
589  sec_cert = -1;
590  }
591  } else {
592  first_char = NULL;
593  first_rat = -1;
594  first_cert = -1;
595  }
596  if (first_char != NULL && (*first_char == '\0' || *first_char == ' '))
597  first_char = NULL;
598  if (sec_char != NULL && (*sec_char == '\0' || *sec_char == ' '))
599  sec_char = NULL;
600  tprintf(" " INT32FORMAT " %s %g %g %s %g %g\n",
601  ratings->length(),
602  first_char != NULL ? first_char : "~",
603  first_rat, first_cert, sec_char != NULL ? sec_char : "~",
604  sec_rat, sec_cert);
605 }
const char *const id_to_unichar(UNICHAR_ID id) const
Definition: unicharset.cpp:233
#define NULL
Definition: host.h:144
#define INT32FORMAT
Definition: host.h:115
int inT32
Definition: host.h:102
float FLOAT32
Definition: host.h:111
DLLSYM void tprintf(const char *format,...)
Definition: tprintf.cpp:41
void print_ratings_list ( const char *  msg,
BLOB_CHOICE_LIST *  ratings,
const UNICHARSET current_unicharset 
)

print_ratings_list

Send all the ratings out to the logfile.

Parameters
msgintro message
ratingslist of ratings
current_unicharsetunicharset that can be used for id-to-unichar conversion

Definition at line 511 of file ratngs.cpp.

513  {
514  if (ratings->length() == 0) {
515  tprintf("%s:<none>\n", msg);
516  return;
517  }
518  if (*msg != '\0') {
519  tprintf("%s\n", msg);
520  }
521  BLOB_CHOICE_IT c_it;
522  c_it.set_to_list(ratings);
523  for (c_it.mark_cycle_pt(); !c_it.cycled_list(); c_it.forward()) {
524  c_it.data()->print(&current_unicharset);
525  if (!c_it.at_last()) tprintf("\n");
526  }
527  tprintf("\n");
528  fflush(stdout);
529 }
DLLSYM void tprintf(const char *format,...)
Definition: tprintf.cpp:41
void print_ratings_list ( const char *  msg,
BLOB_CHOICE_LIST *  ratings 
)

print_ratings_list

Print ratings list (unichar ids only).

Definition at line 536 of file ratngs.cpp.

536  {
537  if (ratings->length() == 0) {
538  tprintf("%s:<none>\n", msg);
539  return;
540  }
541  if (*msg != '\0') {
542  tprintf("%s\n", msg);
543  }
544  BLOB_CHOICE_IT c_it;
545  c_it.set_to_list(ratings);
546  for (c_it.mark_cycle_pt(); !c_it.cycled_list(); c_it.forward()) {
547  c_it.data()->print(NULL);
548  if (!c_it.at_last()) tprintf("\n");
549  }
550  tprintf("\n");
551  fflush(stdout);
552 }
#define NULL
Definition: host.h:144
DLLSYM void tprintf(const char *format,...)
Definition: tprintf.cpp:41
void print_word_alternates_list ( WERD_CHOICE word,
GenericVector< WERD_CHOICE * > *  alternates 
)

print_word_alternates_list

Definition at line 628 of file ratngs.cpp.

630  {
631  if (!word || !alternates) return;
632 
633  STRING alternates_str;
634  for (int i = 0; i < alternates->size(); i++) {
635  if (i > 0) alternates_str += "\", \"";
636  alternates_str += alternates->get(i)->unichar_string();
637  }
638  tprintf("Alternates for \"%s\": {\"%s\"}\n",
639  word->unichar_string().string(), alternates_str.string());
640 }
const STRING & unichar_string() const
Definition: ratngs.h:395
T & get(int index) const
const char * string() const
Definition: strngs.cpp:156
DLLSYM void tprintf(const char *format,...)
Definition: tprintf.cpp:41
Definition: strngs.h:40
int size() const
Definition: genericvector.h:59