00001
00005 typedef struct {
00009 char *name;
00013 float *vector;
00017 int vecSize;
00018 } keyword;
00019
00020
00026 typedef struct {
00030 char **words1;
00034 int words1Count;
00038 char **roles1;
00042 int roles1Count;
00046 char **words2;
00050 int words2Count;
00054 char **roles2;
00058 int roles2Count;
00059 } humanOutput;
00060
00061
00066 typedef struct {
00070 humanOutput *humanOut;
00074 int humanOutputCount;
00075 } humanOutputList;
00076
00082 typedef struct {
00086 char **words;
00090 int wordsCount;
00095 char **roles;
00099 int rolesCount;
00100 } testOutput;
00101
00102
00107 typedef struct {
00111 char *inputPhrase;
00115 testOutput *output;
00116 int outputCount;
00117 } testContent;
00118
00119
00130 void extractData(char *line, float **data, int *vecSize, char **name, char del);
00131
00138 int readCodebook(char *filename, keyword **keywords);
00143 int countLines(char *filename);
00144
00151 int extractTokens(char *source,char del, char ***retval);
00152
00153 int getRealMatch(humanOutputList *outList,
00154 testContent *testList,
00155 int count,
00156 char **roles,
00157 int roleCount,
00158 int **retval,
00159 int **retvalCounts,
00160 int **problemIndex);
00161
00162
00163 int getPhraseMatch(humanOutput *human,
00164 int humanCount,
00165 testOutput *test,
00166 int testCount,
00167 char **roles,
00168 int roleCount,
00169 int **retval,
00170 int **retvalCounts);
00171
00172
00182 int compareStringList(char **list1, int list1Count, char **list2, int list2Count);
00183
00189 void printStringList(char **list, int size);
00190
00200 int getFeatureNameByVector(keyword *cb, int cbSize, int *vector, int vectorSize, char ***names);
00201
00210 int getVectorByName(keyword *cb, int cbSize, char *name, float **vector);
00211
00220 int getIntVectorByName(keyword *cb, int cbSize, char *name, int **vector);
00221
00231 int getIntVectorByNames(keyword *cb, int cbSize, char **names, int namesCount, int **vector);
00232
00237 int getFirstOutUnitNr(int unitType);
00238
00243 int getOutUnitCount(int unitType);
00244
00250 float normFloat(float *vec1, int size);
00251
00257 float normInt(int *vec1, int size);
00258
00265 float innerProduct(int *vec1, float *vec2, int size);
00266
00273 float cosDirection(int *vec1, float *vec2, int size);
00274
00284 float* concatFloatVectors(float *vec1, int size1, float *vec2, int size2);
00285
00295 int* concatIntVectors(int *vec1, int size1, int *vec2, int size2);
00296
00304 float meanFromList(float *list, int size, int exclude);
00305
00316 int vectorEqual(int *v1, float *v2, int size, float threshold);
00317
00324 int getIndexByKey(char **list, int size, char *key);
00325
00326
00337 int findStringInList(char **list, int size, char *string, int *relativePos);
00338
00345 char** copyStringList(char **list, int size);
00346
00354 int findIntInList(int *list, int size, int integer);
00355
00356
00357 void emptyStringAtListPos(char **list, int size, int pos);
00358
00359
00360
00361
00362
00363