blob: 711a8e939341113cc7688cc38abf278b6ef62688 [file] [log] [blame]
/* -*-C-*-
********************************************************************************
*
* File: permute.h (Formerly permute.h)
* Description: Permute choices together
* Author: Mark Seaman, OCR Technology
* Created: Fri Sep 22 14:05:51 1989
* Modified: Mon May 20 16:32:04 1991 (Mark Seaman) marks@hpgrlt
* Language: C
* Package: N/A
* Status: Experimental (Do Not Distribute)
*
* (c) Copyright 1989, Hewlett-Packard Company.
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
** http://www.apache.org/licenses/LICENSE-2.0
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*
********************************************************************************/
#ifndef PERMUTE_H
#define PERMUTE_H
/*----------------------------------------------------------------------
I n c l u d e s
----------------------------------------------------------------------*/
#include "choicearr.h"
#include "choices.h"
#include "ratngs.h"
#include "varable.h"
/*----------------------------------------------------------------------
T y p e s
----------------------------------------------------------------------*/
#define RATING_PAD 4.0
/*----------------------------------------------------------------------
V a r i a b l e s
----------------------------------------------------------------------*/
extern INT_VAR_H(fragments_debug, 0, "Debug character fragments");
extern BOOL_VAR_H(segment_debug, 0, "Debug the whole segmentation process");
extern BOOL_VAR_H(permute_debug, 0, "char permutation debug");
extern BOOL_VAR_H(permute_script_word, 0,
"Turn on word script consistency permuter");
extern BOOL_VAR_H(segment_segcost_rating, 0,
"incorporate segmentation cost in word rating?");
extern double_VAR_H(segment_reward_script, 0.95,
"Score multipler for script consistency within a word. "
"Being a 'reward' factor, it should be <= 1. "
"Smaller value implies bigger reward.");
extern double_VAR_H(segment_penalty_garbage, 1.5,
"Score multiplier for poorly cased strings that are not "
"in the dictionary and generally look like garbage "
"(lower is better).");
extern double_VAR_H(segment_penalty_dict_nonword, 1.25,
"Score multiplier for glyph fragment segmentations which "
"do not match a dictionary word (lower is better).");
extern int permute_only_top;
extern float wordseg_rating_adjust_factor;
/*----------------------------------------------------------------------
F u n c t i o n s
----------------------------------------------------------------------*/
void adjust_non_word(const char *word, const char *word_lengths,
float rating, float *new_rating, float *adjust_factor);
const char* choose_il1(const char *first_char, //first choice
const char *second_char, //second choice
const char *third_char, //third choice
const char *prev_char, //prev in word
const char *next_char, //next in word
const char *next_next_char);
#endif