<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe eine Kolumne, die offene Antworten auf eine Umfrage enthält. Ich möchte eine Häufigkeitstabelle aller benachbarten Wortpaare erstellen, die in der Spalte angezeigt werden.
Ich bin mit der "kategorialen Analyse" vertraut, die eine Häufigkeitstabelle der einzelnen Wörter erstellt. Ich vermute, dass der Prozess bei der Erstellung der Häufigkeitstabelle auch eine Tabelle aller einzelnen Wörter erstellt - ein Wort pro Zeile. Wenn ich diese Tabelle erstellen könnte, könnte ich die Tabelle einfach mit sich selbst verbinden und den Join um 1 Datensatz verschieben. Irgendwelche Ideen, wie man eine Tabelle erstellt, bei der die einzelnen Wörter umgesetzt werden?
Hier ist ein Starter-JSL. Sie möchten es ein wenig nacharbeiten, um Ihre Anforderungen zu erfüllen. Es verwendet ein assoziatives Array, um die Frequenzen der benachbarten Wortpaare zu zählen. Es wird davon ausgegangen, dass Sie kein Paar vom Ende einer Zeile bis zum Anfang der nächsten erstellen möchten (unter anderen Annahmen).
dt = New Table( "survey results",
New Column( "answers", Character, "Nominal",
Set Values(
{"this is a test; a test to see if this is going to see the light of day",
"another time, or another day, or another time-this is a test",
"duplicate. duplicate, double-double double single-this is a test"}
)
)
);
frequency = [=> 0]; // associative array that answers "Zero!" for non-existing key
For Each Row(
listOfWords = Words( Uppercase( dt:answers ), " ,-.;?_" );
For( i = 1, i < N Items( listOfWords ), i++,
frequency[listOfWords || "_" || listOfWords[i + 1]]++;
);
);
show(frequency);
frequency = ["A_TEST" => 4, "ANOTHER_DAY" => 1, "ANOTHER_TIME" => 2, "DAY_OR" => 1, "DOUBLE_DOUBLE" => 2, "DOUBLE_SINGLE" => 1, "DUPLICATE_DOUBLE" => 1, "DUPLICATE_DUPLICATE" => 1, "GOING_TO" => 1, "IF_THIS" => 1, "IS_A" => 3, "IS_GOING" => 1, "LIGHT_OF" => 1, "OF_DAY" => 1 "OR_ANOTHER" => 2, "SEE_IF" => 1, "SEE_THE" => 1, "SINGLE_THIS" => 1, "TEST_A" => 1, "TEST_TO" => 1, "THE_LIGHT" => 1, "THIS_IS" => 4, "TIME_OR" => 1, "TIME_THIS" => 1, "TO_SEE" => 2, => 0];