#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "glob_typ.h"
#include "krui_typ.h"
#include "util.h"
Funktionen | |
int | getPhraseMatch (humanOutput *human, int humanCount, testOutput *test, int testCount, char **roles, int roleCount, int **retval, int **retvalCounts) |
int | getRealMatch (humanOutputList *outList, testContent *testList, int count, char **roles, int roleCount, int **retval, int **retvalCounts, int **problemIndex) |
int | getIndexByKey (char **list, int size, char *key) |
void | printStringList (char **list, int size) |
int | compareStringList (char **list1, int list1Count, char **list2, int list2Count) |
void | extractData (char *line, float **data, int *vecSize, char **name, char del) |
int | readCodebook (char *filename, keyword **keywords) |
int | countLines (char *filename) |
int | getFirstUnitNr (int unitType) |
int | getUnitCount (int unitType) |
int | getFeatureNameByVector (keyword *cb, int cbSize, int *vector, int vectorSize, char ***names) |
int | extractTokens (char *source, char del, char ***retval) |
int | getVectorByName (keyword *cb, int cbSize, char *name, float **vector) |
int | getIntVectorByName (keyword *cb, int cbSize, char *name, int **vector) |
int | getIntVectorByNames (keyword *cb, int cbSize, char **names, int namesCount, int **vector) |
float | normFloat (float *vec1, int size) |
float | normInt (int *vec1, int size) |
float | innerProduct (int *vec1, float *vec2, int size) |
float | cosDirection (int *vec1, float *vec2, int size) |
float * | concatFloatVectors (float *vec1, int size1, float *vec2, int size2) |
int * | concatIntVectors (int *vec1, int size1, int *vec2, int size2) |
float | meanFromList (float *list, int size, int exclude) |
int | vectorEqual (int *v1, float *v2, int size, float threshold) |
char ** | copyStringList (char **list, int size) |
int | findStringInList (char **list, int size, char *string, int *relativePos) |
void | emptyStringAtListPos (char **list, int size, int pos) |
int | findIntInList (int *list, int size, int integer) |
int compareStringList | ( | char ** | list1, | |
int | list1Count, | |||
char ** | list2, | |||
int | list2Count | |||
) |
Vergleich zwei Listen aus Strings. Wenn alle Strings aus list1 in list2 vorkommen und alle Strings aus list2 in list1 vorkommen, dann liefert die Funktion 1, ansonsten 0.
list1 | erste Stringliste | |
list1Count | Groesse der ersten Stringliste | |
list2 | zweite Stringliste | |
list2Count | Groesse der zweiten Stringliste |
float* concatFloatVectors | ( | float * | vec1, | |
int | size1, | |||
float * | vec2, | |||
int | size2 | |||
) |
Verbindet zwei Flieskomma-Vektoren miteinander. Die Dimension (Groesse) des resultierenden Vektors ist die Dimension (Groesse) des ersten Vektors + Dimension (Groesse) des zweiten Vektors. Der Rueckgabewert ist ein Zeiger auf den resultierenden Vektor.
vec1 | erster Vektor | |
size1 | Groesse des ersten Vektors | |
vec2 | zweiter Vektor | |
size2 | Groesse des zweiten Vektors |
int* concatIntVectors | ( | int * | vec1, | |
int | size1, | |||
int * | vec2, | |||
int | size2 | |||
) |
Verbindet zwei Ganzzahl-Vektoren miteinander. Die Dimension (Groesse) des resultierenden Vektors ist die Dimension (Groesse) des ersten Vektors + Dimension (Groesse) des zweiten Vektors. Der Rueckgabewert ist ein Zeiger auf den resultierenden Vektor.
vec1 | erster Vektor | |
size1 | Groesse des ersten Vektors | |
vec2 | zweiter Vektor | |
size2 | Groesse des zweiten Vektors |
char** copyStringList | ( | char ** | list, | |
int | size | |||
) |
Kopiert eine String-Liste (Vektor aus Strings). Es wird der Zeiger auf den neuen Vektor aus Strings zurueckgegeben.
list | der zu kopierende Vektor aus Strings. | |
size | die Groesse des zu kopierenden Vektors. |
float cosDirection | ( | int * | vec1, | |
float * | vec2, | |||
int | size | |||
) |
Berechnet den Richtungskosinus aus einem Fliesskomma-Vektor und einem ganzahligen Vektor.
vec1 | erster Vektor (int) | |
vec2 | zweiter Vektor (float) | |
size | Groesse des ersten und zweiten Vektors |
int countLines | ( | char * | filename | ) |
Zaehlt die Anzahl der Zeilen einer Datei
filename | Pfad zur Datei, dessen Zeilen gezaehlt werden sollen. |
void emptyStringAtListPos | ( | char ** | list, | |
int | size, | |||
int | pos | |||
) |
void extractData | ( | char * | line, | |
float ** | data, | |||
int * | vecSize, | |||
char ** | name, | |||
char | del | |||
) |
Diese Funktion extrahiert aus einer Zeile aus dem Wort- oder Rollenbuch, die numerischen kodierten Features in Form eines Vektors und der dazu passende Name des Features.
line | Ist eine Zeile aus dem Woerter- oder Rollenbuch. Zum Beispiel 00000010000:max | |
data | Rueckgabewert. Der Vektor aus den kodierten Zahlenwerten. | |
vecSize | Rueckgabewert. Die Groesse des Vektors der Zahlenwerte | |
name | Rueckgabewert. Der Name des Features. | |
del | Das Trennzeichen zwischen kodierten Werten und Feature-Name |
int extractTokens | ( | char * | source, | |
char | del, | |||
char *** | retval | |||
) |
Zerteilt einen String in mehrere Teilzeichenketten an einem Trennzeichen.
source | String der zerteilt werden soll. | |
del | Trennzeichen, an dem der String geteilt werden soll. | |
retval | Rueckgabewert. Der Vektor aus den Teilzeichenketten. |
int findIntInList | ( | int * | list, | |
int | size, | |||
int | integer | |||
) |
Ermittelt die Position eines ganzzahligen Wertes innerhalb eines ganzzahligen Vektors. Der Rueckgabewert ist der Index des Wertes oder -1, wenn der Wert nicht gefunden wurde.
list | Vektor aus ganzzahligen Werten, welcher durchsucht werden soll. | |
size | Groesse des Vektors | |
integer | Wert, nachdem im Vektor gesucht werden soll. |
int findStringInList | ( | char ** | list, | |
int | size, | |||
char * | string, | |||
int * | relativePos | |||
) |
Liefert die relative Position einer Zeichenkette innerhalb eines Vektors (dabei werden mit NULL belegte Elemente nicht beachtet) und die absolute Position der Zeichenkette (dabei werden NULL-Elemente beachtet und mitgezählt). Der unmittelbare Rueckgabewert ist die absolute Position.
list | Vektor aus Zeichenketten | |
size | Groesse des Vektors aus Zeichenketten | |
string | Zeichenkette, dessen Position zurueckgegeben werden soll. | |
relativePos | zweiter Rueckgabewert. Die relative Position der Zeichenkette |
int getFeatureNameByVector | ( | keyword * | cb, | |
int | cbSize, | |||
int * | vector, | |||
int | vectorSize, | |||
char *** | names | |||
) |
Ermittelt die Namen von Features anhand ihres kodierten orthonormalen numerischen Vektors (float). Diese Funktion liefert 1, wenn ein oder mehrere Namen gefunden wurden, ansonsten 0.
cb | Das Woerter- oder Rollenbuch, welches uebergeben wird. | |
cbSize | Die Groesse des Woerter- oder Rollenbuches | |
vector | Der numerische Vektor, fuer den die Feature-Namen ermittelt werden sollen. | |
vectorSize | Die Groesse des numerischen Vektors. | |
names | Rueckgabewert. Die Feature-Namen, welche auf den Vektor passen. |
int getFirstUnitNr | ( | int | unitType | ) |
int getIndexByKey | ( | char ** | list, | |
int | size, | |||
char * | key | |||
) |
Liefert die Position einer Zeichenkette innerhalb eines Vektors
list | Vektor aus Zeichenketten | |
size | Groesse des Vektors aus Zeichenketten | |
key | Zeichenkette, dessen Position zurueckgegeben werden soll. |
int getIntVectorByName | ( | keyword * | cb, | |
int | cbSize, | |||
char * | name, | |||
int ** | vector | |||
) |
Ermittelt den kodierten orthonormalen numerischen Vektor (int) anhand des Feature-Namens. Diese Funktion liefert 1, wenn ein Vektor gefunden wurde, ansonsten 0.
cb | Das Woerter- oder Rollenbuch, welches uebergeben wird. | |
cbSize | Die Groesse des Woerter- oder Rollenbuches | |
name | Der Name, dessen numerischer Vektor zurueckgegeben werden soll. | |
vector | Rueckgabewert. Hier wird der numerische Vektor geschrieben. |
int getIntVectorByNames | ( | keyword * | cb, | |
int | cbSize, | |||
char ** | names, | |||
int | namesCount, | |||
int ** | vector | |||
) |
Ermittelt den kodierten orthonormalen numerischen Vektor (int) anhand mehrerer Feature-Namen. Diese Funktion liefert 1, wenn ein Vektor gefunden wurde, ansonsten 0.
cb | Das Woerter- oder Rollenbuch, welches uebergeben wird. | |
cbSize | Die Groesse des Woerter- oder Rollenbuches | |
names | Die Namen, dessen numerischer Vektor zurueckgegeben werden soll. | |
namesCount | Die Groesse des Vektors names | |
vector | Rueckgabewert. Hier wird der numerische Vektor geschrieben. |
int getPhraseMatch | ( | humanOutput * | human, | |
int | humanCount, | |||
testOutput * | test, | |||
int | testCount, | |||
char ** | roles, | |||
int | roleCount, | |||
int ** | retval, | |||
int ** | retvalCounts | |||
) |
int getRealMatch | ( | humanOutputList * | outList, | |
testContent * | testList, | |||
int | count, | |||
char ** | roles, | |||
int | roleCount, | |||
int ** | retval, | |||
int ** | retvalCounts, | |||
int ** | problemIndex | |||
) |
int getUnitCount | ( | int | unitType | ) |
int getVectorByName | ( | keyword * | cb, | |
int | cbSize, | |||
char * | name, | |||
float ** | vector | |||
) |
Ermittelt den kodierten orthonormalen numerischen Vektor (float) anhand des Feature-Namens. Diese Funktion liefert 1, wenn ein Vektor gefunden wurde, ansonsten 0.
cb | Das Woerter- oder Rollenbuch, welches uebergeben wird. | |
cbSize | Die Groesse des Woerter- oder Rollenbuches | |
name | Der Name, dessen numerischer Vektor zurueckgegeben werden soll. | |
vector | Rueckgabewert. Hier wird der numerische Vektor geschrieben. |
float innerProduct | ( | int * | vec1, | |
float * | vec2, | |||
int | size | |||
) |
Berechnet das Skalarprodukt aus einem Flieskomma-Vektor und einem ganzzahligen Vektor
vec1 | erster Vektor (int) | |
vec2 | zweiter Vektor (float) | |
size | Groesse des ersten und zweiten Vektors. |
float meanFromList | ( | float * | list, | |
int | size, | |||
int | exclude | |||
) |
Berechnet den Mittelwert aus einer Menge (Vektor) an Fliesskommawerten. Dabei kann ein Element des Vektors bei der Berechnung ausgeschlossen werden.
list | Der Vektor, dessen Elemente gemittelt werden sollen. | |
size | Groesse des Vektors | |
exclude | Indes des Vektors, welche Komponente bei der Berechnung des Mittelwertes. |
float normFloat | ( | float * | vec1, | |
int | size | |||
) |
Normiert einen Vektor aus Fliesskommawerten.
vec1 | Der Vektor aus Fliesskommawerten. | |
size | Die Groesse des Vektors. |
float normInt | ( | int * | vec1, | |
int | size | |||
) |
Normiert einen Vektor aus ganzzahligen Werden
vec1 | Der Vektor aus ganzzahligen Werden | |
size | Die Groesse des Vektors. |
void printStringList | ( | char ** | list, | |
int | size | |||
) |
Gibt eine Liste aus Strings auf einer Zeile aus.
list | Liste aus Strings, die ausgegeben werden sollen. | |
size | Groesse der Liste aus Strings. |
int readCodebook | ( | char * | filename, | |
keyword ** | keywords | |||
) |
Liest ein Woerter- oder Rollenbuch und fuellt die Datenstruktur keywords mit den Eintraegen.
filename | der Pfad zum Woerter- oder Rollenbuch. | |
keywords | Rueckgabewert. Wird mit den Features befuellt. |
int vectorEqual | ( | int * | v1, | |
float * | v2, | |||
int | size, | |||
float | threshold | |||
) |
Prüft, ob ein ganzzahliger Vektor ähnlich zu einem Fliesskomma-Vektor ist. Dabei dürfen die Komponenten der Vektoren um einen Bereich threshold abweichen. Wenn alle Komponenten der Vektoren (unter Beachtung des unscharfen Bereiches) gleich sind, dann liefer die Funktion 1, ansonsten 0.
v1 | ein ganzzahliger Vektor | |
v2 | ein Vektor aus Fliesskommawerten | |
size | Die jeweilige Groesse der beiden Vektoren. | |
threshold | Der Grenzbereich |