Konvertieren von Sparse Matrix in ARFF mit awk

Ich arbeite mit einem extrem großen Datensatz in einem spärlichen Matrixformat.

Die Daten haben das Ablageformat (3 durch Tabulatoren getrennte Spalten, wobei die Zeichenfolge in der ersten Spalte einer Zeile entspricht, die Zeichenfolge in der zweiten Spalte dem Attribut entspricht und der Wert in der dritten Spalte eine gewichtete Punktzahl ist).

church place 3
church institution 6
man place 86
man food 63
woman book 37

Ich möchte dies mit awk (falls möglich) in das arff-Format konvertieren, damit ich unter Verwendung des oben genannten als Eingabe die folgende Ausgabe erhalten kann:

@relation 'filename'
@attribute "place" string
@attribute "institution" string
@attribute "food" string
@attribute "book" string


@data
3,6,0,0,church
86,0,63,0,man
0,0,0,37,woman

Ich habe diese awk-Datei gesehenHIERDies führt zu einem Ergebnis, das dem sehr ähnlich ist, was ich brauche. Die Eingabe ist jedoch etwas anders. Ich habe versucht, den bereitgestellten Code zu manipulieren, indem ich FS = "|" auf "\ t", aber es werden nicht die gewünschten Ergebnisse erzielt. Hat jemand einen Vorschlag, wie ich diesen awk-Code manipulieren kann, um meine Eingabe in meine gewünschte Ausgabe umzuwandeln?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage