40 #define PROGRAM_FEATURE_TYPE "cn" 69 BOOL8 WriteInsigProtos);
133 int main(
int argc,
char *argv[]) {
137 const char *PageName;
151 printf(
"Reading %s ...\n", PageName);
152 TrainingPage =
Efopen(PageName,
"rb");
154 TrainingPage, &CharList);
155 fclose(TrainingPage);
158 printf(
"Clustering ...\n");
162 pCharList = CharList;
171 if (Clusterer ==
nullptr) {
172 fprintf(stderr,
"Error: NULL clusterer!\n");
186 printf(
"0 significant protos for %s." 187 " Retrying clustering with MinSamples = %f%%\n",
201 for (
int i = 0; i < freeable_protos.
size(); ++i) {
232 if (Directory !=
nullptr && Directory[0] !=
'\0') {
233 Filename += Directory;
236 Filename +=
"normproto";
237 printf (
"\nWriting %s ...", Filename.
string());
239 fprintf(File,
"%0d\n", feature_desc->
NumParams);
246 printf (
"\nError! Not enough protos for %s: %d protos" 247 " (%d significant protos" 248 ", %d insignificant protos)\n",
249 LabeledProto->
Label, N,
254 fprintf(File,
"\n%s %d\n", LabeledProto->
Label, N);
266 BOOL8 WriteSigProtos,
267 BOOL8 WriteInsigProtos)
void InitFeatureDefs(FEATURE_DEFS_STRUCT *featuredefs)
void AddToNormProtosList(LIST *NormProtoList, LIST ProtoList, char *CharName)
void WriteParamDesc(FILE *File, uinT16 N, const PARAM_DESC ParamDesc[])
#define PROGRAM_FEATURE_TYPE
void WritePrototype(FILE *File, uinT16 N, PROTOTYPE *Proto)
void FreeNormProtoList(LIST CharList)
const PARAM_DESC * ParamDesc
LIST ClusterSamples(CLUSTERER *Clusterer, CLUSTERCONFIG *Config)
const char * string() const
struct LABELEDLISTNODE * LABELEDLIST
void ParseArguments(int *argc, char ***argv)
int main(int argc, char **argv)
void WriteNormProtos(const char *Directory, LIST LabeledProtoList, const FEATURE_DESC_STRUCT *feature_desc)
void WriteProtos(FILE *File, uinT16 N, LIST ProtoList, BOOL8 WriteSigProtos, BOOL8 WriteInsigProtos)
CLUSTERER * SetUpForClustering(const FEATURE_DEFS_STRUCT &FeatureDefs, LABELEDLIST char_sample, const char *program_feature_type)
void FreeProtoList(LIST *ProtoList)
const char * GetNextFilename(int argc, const char *const *argv)
const FEATURE_DESC_STRUCT * FeatureDesc[NUM_FEATURE_TYPES]
int ShortNameToFeatureType(const FEATURE_DEFS_STRUCT &FeatureDefs, const char *ShortName)
void FreeClusterer(CLUSTERER *Clusterer)
FILE * Efopen(const char *Name, const char *Mode)
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)
int NumberOfProtos(LIST ProtoList, BOOL8 CountSigProtos, BOOL8 CountInsigProtos)
void FreeTrainingSamples(LIST CharList)