41 #define PROGRAM_FEATURE_TYPE "cn"
57 const char *Directory,
58 LIST LabeledProtoList,
72 BOOL8 WriteInsigProtos);
89 int main(
int argc,
char* argv[])
146 const char *PageName;
160 printf(
"Reading %s ...\n", PageName);
161 TrainingPage =
Efopen(PageName,
"rb");
163 100,
NULL, TrainingPage, &CharList);
164 fclose(TrainingPage);
167 printf(
"Clustering ...\n");
171 pCharList = CharList;
188 printf(
"0 significant protos for %s."
189 " Retrying clustering with MinSamples = %f%%\n",
197 if (Clusterer ==
NULL) {
198 fprintf(stderr,
"Error: NULL clusterer!\n");
216 const char *Directory,
217 LIST LabeledProtoList,
239 if (Directory !=
NULL && Directory[0] !=
'\0')
241 Filename += Directory;
244 Filename +=
"normproto";
245 printf (
"\nWriting %s ...", Filename.
string());
254 printf (
"\nError! Not enough protos for %s: %d protos"
255 " (%d significant protos"
256 ", %d insignificant protos)\n",
257 LabeledProto->
Label, N,
262 fprintf(File,
"\n%s %d\n", LabeledProto->
Label, N);
274 BOOL8 WriteSigProtos,
275 BOOL8 WriteInsigProtos)
void WritePrototype(FILE *File, uinT16 N, PROTOTYPE *Proto)
void WriteNormProtos(const char *Directory, LIST LabeledProtoList, CLUSTERER *Clusterer)
CLUSTERER * SetUpForClustering(const FEATURE_DEFS_STRUCT &FeatureDefs, LABELEDLIST char_sample, const char *program_feature_type)
int main(int argc, char **argv)
void InitFeatureDefs(FEATURE_DEFS_STRUCT *featuredefs)
struct LABELEDLISTNODE * LABELEDLIST
void ParseArguments(int *argc, char ***argv)
DECLARE_STRING_PARAM_FLAG(D)
void ReadTrainingSamples(const FEATURE_DEFS_STRUCT &feature_defs, const char *feature_name, int max_samples, UNICHARSET *unicharset, FILE *file, LIST *training_samples)
void FreeNormProtoList(LIST CharList)
void FreeTrainingSamples(LIST CharList)
void WriteProtos(FILE *File, uinT16 N, LIST ProtoList, BOOL8 WriteSigProtos, BOOL8 WriteInsigProtos)
#define PROGRAM_FEATURE_TYPE
LIST ClusterSamples(CLUSTERER *Clusterer, CLUSTERCONFIG *Config)
FILE * Efopen(const char *Name, const char *Mode)
void FreeProtoList(LIST *ProtoList)
void AddToNormProtosList(LIST *NormProtoList, LIST ProtoList, char *CharName)
void FreeClusterer(CLUSTERER *Clusterer)
const char * string() const
int NumberOfProtos(LIST ProtoList, BOOL8 CountSigProtos, BOOL8 CountInsigProtos)
void WriteParamDesc(FILE *File, uinT16 N, PARAM_DESC ParamDesc[])
const char * GetNextFilename(int argc, const char *const *argv)