Ich habe der Ausgabe Stoppwörter und Farbe hinzugefügt.Habe dt auch zu einer unsichtbaren Tabelle gemacht.

cloud_title = "Alice im Wunderland" ;
// Den gesamten Text in eine Variable einfügen
txt = Textdatei laden ( „c:\temp\alice.txt“ ) ;
aa = [ => 0 ] ; // assoziatives Array mit dem Standardwert Null
// Zähle die Wörter. JMP verfügt über eine Funktion „words()“, die eine Liste von Wörtern zurückgibt, aber das ist nicht der Fall
// Kann Apostrophe innerhalb von Wörtern von denen an Worträndern unterscheiden.
// 'we're ist ein Beispiel, um das dieser reguläre Ausdruck funktioniert.ebenso wie „Oh.
// „Oh, das kannst du nicht ändern“, sagte die Katze, „wir sind hier alle verrückt.“ Ich bin sauer.Du bist verrückt.'
rc = Pat Match (
txt ,
Pat wiederholen (
( Pat Regex ( „[\w]+('[\w]+)?“ ) >> Wort + Ausdruck (
Wort = Großbuchstaben ( Wort ) ;
aa [ Wort ] ++;
„“ ;
)) | ( Pat Regex ( „[^\w]+“ )) ,
1 ,
9999999 ,
GIERIG
)
) ;
Schlüssel = aa << getkeys ;
//show(N Items(keys));
vals = aa << getvalues ;
//show(N Items( vals ));
dt = Neuer Tisch ( „“ ,
Neue Spalte ( "Wort" , Charakter , Werte festlegen ( Schlüssel ) ) ,
Neue Spalte ( "zählen" , Numerisch , „Kontinuierlich“ , Format ( "Am besten" , 12 ) , Werte festlegen ( vals ) ) ,
unsichtbar
) ;
dt << Sortieren ( von ( zählen ) , Befehl ( absteigend ) , Tisch ersetzen ) ;
// Wörter, die man ignorieren sollte
stop_words = { "DER" , "WAR" , "NICHT" , "UND" , "AN" , "A" , "MIT" , "AUS" , "DAS" , "VON" , "WAR" , "FÜR" , "ZU" ,
"EIN" , "VON" , "ES" , "ODER" , "ALS" , "HATTE" , „0“ , „1“ , „2“ , "3" , „4“ , „5“ , „6“ , „7“ , „8“ , „9“ , "BEI" , "SEI" , "IN" ,
"TAT" , "DAS" , "NEIN" , "AUCH" , "IST" , "DÜRFEN" , "ABER" , "HAT" , "IHR" , "SIE" , "ER" , "SEIN" , "GEWESEN" , „00“ ,
„01“ , „02“ , „03“ , „04“ , „05“ , „06“ , „07“ , „08“ , „09“ , „10“ , „11“ , „12“ , „13“ , „14“ , "15" , „16“ , „17“ ,
„18“ , „19“ , „20“ , „21“ , „22“ , „23“ , „24“ , „25“ , „26“ , „27“ , „28“ , „29“ , „30“ , „31“ , "WO" ,
„IE“ , "B" , "C" , "D" , „E“ , "F" , "G" , "H" , "ICH" , "J" , „K“ , „L“ , "M" , "N" , "Ö" , "P" , "Q" , "R" ,
"S" , "T" , „U“ , „V“ , „W“ , "X" , „Y“ , „Z“ , "HABEN" , "WIE" , „DE“ , "DORT" , "ALLE" , "BEKOMMEN" ,
"WER" , "NACH" , "BELIEBIG" , "UM" , "UNTERNEHMEN" , "NÄCHSTE" , "SIE" , "WENN" , "DIESE" , "DANN" , "JEDOCH" , "MEIN" } ;
del_rows = dt << Holen Sie sich Zeilen wo ( Enthält ( stop_words , : Wort ) ) ;
dt << Zeilen löschen ( del_rows ) ;
Neues Fenster ( „Textwortwolke“ ,
Gliederungsfeld ( cloud_title ,
Grenzfeld ( Links ( 10 ) , Rechts ( 10 ) , Spitze ( 10 ) , Unterseite ( 10 ) , v = V-Listenfeld () )
)
) ;
H = H-Listenfeld () ;
// Liste der „guten“ Farben aus dem Scripting Guide, Seite 341
Farbliste =
[ 0 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 ,
31 , 35 , 36 , 37 , 38 , 39 , 40 , 43 , 44 , 45 , 46 , 47 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 ] ;
ncolors = nrows ( Farbliste ) ;
Reihe = 1 ;
k = 1 ;
Nr = nrows ( dt ) ;
min_words = 8 ;
size_multiplier = 1 ;
Wenn ( Nr < 100 ,
min_words = 2 ;
size_multiplier = 2 ;
) ;
Während ( dt : zählen [ Reihe ] > min_words ,
X = Textfeld ( dt : Wort [ Reihe ] || " " ) ;
X << setfontsize ( size_multiplier * Protokoll ( dt : zählen [ Reihe ] ) * 4 ) ;
X << Schriftfarbe ( Farbliste [ k ]) ;
k ++;
Wenn ( k > ncolors ,
k = 1 ;
) ;
H << anhängen ( X ) ;
Wenn ( H << getwidth > 700 ,
H = H-Listenfeld () ;
v << anhängen ( H ) ;
) ;
Reihe ++;
Warten ( 0 ) ;
) ;
Warten ( 0 ) ;
schließen ( dt , nosave ) ;
Der Look der NY Times ist schön, weil er einfach umzusetzen ist.

Hier ist etwas JSL
/* Die Ladetextdatei unten ruft eine Datei ab http://www.gutenberg.org/ was sagt...
Projekt Gutenbergs „Alice im Wunderland“ von Lewis Carroll
Dieses E-Book kann von jedermann überall und kostenlos genutzt werden
fast keinerlei Einschränkungen.Sie dürfen es kopieren, verschenken oder
Verwenden Sie es gemäß den Bedingungen der darin enthaltenen Project Gutenberg-Lizenz weiter
mit diesem E-Book oder online unter www.gutenberg.org
Titel: Alices Abenteuer im Wunderland
Autor: Lewis Carroll
Veröffentlichungsdatum: 25. Juni 2008 [EBook Nr. 11]
Erscheinungsdatum: März 1994
[Letzte Aktualisierung: 20. Dezember 2011]
Sprache Englisch
*/
txt = Textdatei laden( "c:\path\Alice.txt " ); Länge( txt );
aa = [=> 0]; // assoziatives Array mit dem Standardwert Null
// Zähle die Wörter.JMP verfügt über eine Funktion „words()“, die eine Liste von Wörtern zurückgibt, aber das ist nicht der Fall
// Kann Apostrophe innerhalb von Wörtern von denen an Worträndern unterscheiden.
// 'we're ist ein Beispiel, um das dieser reguläre Ausdruck funktioniert.ebenso wie „Oh.
// „Oh, das kannst du nicht ändern“, sagte die Katze, „wir sind hier alle verrückt.“ Ich bin sauer.Du bist verrückt.'
rc = Pat Match( txt, Pat Repeat( (Pat Regex( "[\w]+('[\w]+)?" ) >> Wort +
Expr( Wort = Großbuchstabe( Wort ); aa[Wort]++; ""; )) |
(Pat Regex( "[^\w]+" )), 1, 9999999, GREEDY ));
Schlüssel = aa << getkeys; N Items(keys);
vals = aa << getvalues; N Items( vals );
dt = New Table( "Untitled",
Neue Spalte („Wort“, Zeichen, Werte festlegen (Schlüssel)),
Neue Spalte( „count“, Numeric, „Continuous“, Format( „Best“, 12 ), Set Values( vals ) )
);
dt2 = dt << sort( by( count ), order( absteigend ) );
Close( dt, nosave );
dt = dt2;
Neues Fenster( "Wörter", Border Box( Left( 10 ), Right( 10 ), top( 10 ), Bottom( 10 , v = V List Box() ) );
h = H List Box(); v << append( h );
Zeile = 12; // Durch Inspektion
While( dt:count[row] > 8,
x = Textfeld( dt:word[row] || " " );
x << setfontsize( Log( dt:count[row] ) * 4 );
h << append( x );
If( h << getwidth > 700, h = H List Box(); v << append( h ); );
Zeile++;
Warten( 0 );
);
Die PatMatch-Anweisung verwendet einige reguläre Ausdrücke, um die Wörter im Text zu identifizieren, sie in Großbuchstaben zu schreiben und sie als Schlüssel für ein assoziatives Array zu verwenden.Die assoziativen Array-Elemente werden standardmäßig auf Null gesetzt, wenn sie nicht bereits vorhanden sind (siehe =>0), sodass für die erste Instanz eines Wortes kein besonderer Aufwand erforderlich ist.Der PatRepeat innerhalb des PatMatch verarbeitet den gesamten String.Innerhalb der Wiederholung verarbeiten die beiden regulären Ausdrücke abwechselnd Wörter und Dinge zwischen Wörtern.Innerhalb der ersten Regex wird expr verwendet, um JSL für jedes übereinstimmende Wort auszuführen.Das letzte, was der Ausdruck ausführt, ist die Auswertung zu einer leeren Zeichenfolge, die immer an der aktuellen Position übereinstimmt.Dieser PatMatch verarbeitet etwa 150.000 Zeichen in etwa zwei Sekunden, einschließlich der Zählung der Wörter im assoziativen Array.
Aus den Schlüssel-Wert-Paaren wird eine Datentabelle erstellt und sortiert. Anschließend wird ein Fenster mit einem vertikalen Listenfeld erstellt, das eine Reihe horizontaler Listenfelder enthält.Die horizontalen Listenfelder werden von links nach rechts mit den Wörtern gefüllt.Nachdem jedes Wort hinzugefügt wurde, ermöglicht die Funktion „wait(0)“, dass das Fenster aktualisiert wird, sodass die Breite des horizontalen Textfelds korrekt ist (und Sie es sehen können). Wenn das Feld 700 Pixel überschreitet, beginnen Sie eine neue Zeile.
Beginnen Sie bei Zeile 12, um THE AND TO A OF IT SHE SAID YOU IN I zu überspringen. Stoppen Sie, wenn die sortierte Anzahl unter 8 Instanzen fällt.Verwenden Sie eine Protokolltransformation. Alice hat 386 Instanzen.
Wie Xan betont, gibt es Probleme mit Wörtern, die sich nur im Suffix, Präfix oder in den Synonymen unterscheiden.Wahrscheinlich auch einige andere Probleme.
Jabberwocky ist in „Through the Looking Glass“ zu sehen.Slithy Toves sind nicht hier.
Update: Der Text sollte wahrscheinlich nicht jedes Mal vom Link abgerufen werden.Verweisen Sie die Ladetextdatei auf eine Datei auf Ihrem Computer, die Sie möglicherweise von heruntergeladen haben http://www.gutenberg.org/

Hallo Peter,
Hier ist eine JSL, um die Wörter in einer Textdatei zu zählen und dann eine Baumkarte zu erstellen.
Nicht gerade eine Wortwolke, könnte Ihnen aber den Einstieg in die gewünschte Richtung erleichtern.
Am besten,
Stan
Protokoll löschen () ;
NamesDefaultToHere ( 1 ) ;
// Aufforderung zur Textdatei
Eine Datei bekommen = Wählen Sie Datei () ;
// Textzeichenfolge in Variable speichern
Text = Textdatei laden ( Eine Datei bekommen ) ;
//Erstelle eine Liste mit Wörtern in sortierter Reihenfolge und entferne Leerzeichen und andere Trennzeichen
Wortlisten = Sortierliste ( Wörter ( Text , ",./\;!?'()\!" " )) ;
// Zähle die Elemente in der Liste
nwds = N Artikel ( Wortlisten ) ;
// zwei Listen erstellen; eine für Löschungen und eine für Einfügungen
Löschliste = {} ;
Keeplist = {} ;
// häufige Wörter entfernen, z. B.; diejenigen, die 3 Zeichen oder weniger lang sind
Für ( ich = 1 , ich <= N Artikel ( Wortlisten ) , ich ++,
Länge = Länge ( Wortlisten [ ich ] ) ;
Wenn ( Länge <= 3 ,
Einfügen in ( Löschliste , Wortlisten [ ich ] , 1 ) ,
Einfügen in ( Keeplist , Wortlisten [ ich ] )
)
) ;
// Datentabelle erstellen
dt = Neuer Tisch ( „Wortwolken-Datentabelle“ ,
Neue Spalte ( "Wörter" , Charakter , Werte festlegen ( Keeplist )) ,
) ;
Tabellieren (
Systemsteuerung anzeigen ( 0 ) ,
Fehlende Spalten zum Gruppieren einschließen ( 1 ) ,
Sortierung nach Anzahl der Gruppierungsspalten ( 1 ) ,
Tabelle hinzufügen ( Zeilentabelle ( Spalten gruppieren ( : Wörter ) ) )
) << In Datentabelle umwandeln ;
// Baumkarte aller Wörter erstellen
Graph Builder (
Systemsteuerung anzeigen ( 0 ) ,
Variablen ( X ( : Wörter ) ) ,
Elemente ( Baumkarte ( X , Zusammenfassende Statistik ( "Summe" ) ) ) ,
) ;