Ich habe der Ausgabe Stoppwörter und Farbe hinzugefügt.Außerdem wurde dt zu einer unsichtbaren Tabelle gemacht.

cloud_title = "Alice im Wunderland" ;
// Setzen Sie den gesamten Text in eine Variable
txt = Textdatei laden ( "c:\temp\alice.txt" ) ;
aa = [ => 0 ] ; // assoziatives Array mit dem Standardwert Null
// Wörter zählen. JMP hat eine words()-Funktion, die eine Liste von Wörtern zurückgibt, ist es aber nicht
// kann Apostrophe innerhalb von Wörtern von Wörtern am Rand unterscheiden.
// 'wir sind ein Beispiel, um das diese Regex herumarbeitet.wie 'Oh.
// „Oh, da kannst du nichts dafür,“ sagte die Katze, „wir sind alle verrückt hier. Ich bin sauer.Du bist verrückt.'
rc = Pat-Match (
txt ,
Pat wiederholen (
( Pat Regex ( "[\w]+('[\w]+)?" ) >> Wort + Ausdruck (
Wort = Großbuchstaben ( Wort ) ;
äh [ Wort ] ++;
"" ;
)) | ( Pat Regex ( "[^\w]+" )) ,
1 ,
9999999 ,
GIERIG
)
) ;
Schlüssel = äh << getkeys ;
//show(N Items(keys));
Wert = äh << Werte abrufen ;
//show(N Items( vals ));
dt = Neue Tabelle ( "" ,
Neue Spalte ( "Wort" , Charakter , Werte einstellen ( Schlüssel ) ) ,
Neue Spalte ( "zählen" , Numerisch , "kontinuierlich" , Format ( "Am besten" , 12 ) , Werte einstellen ( Wert ) ) ,
unsichtbar
) ;
dt << Sortieren ( durch ( zählen ) , bestellen ( absteigend ) , Tisch ersetzen ) ;
// Zu ignorierende Wörter
stop_words = { "DAS" , "WAR" , "NICHT" , "UND" , "AN" , "EIN" , "MIT" , "AUS" , "DIES" , "VON" , "WAR" , "ZUM" , "ZU" ,
"EIN" , "DURCH" , "ES" , "ODER" , "WIE" , "HATTE" , "0" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "BEI" , "SEIN" , "IN" ,
"TAT" , "DAS" , "NEIN" , "AUCH" , "IST" , "KANN" , "ABER" , "HAT" , "SIE" , "SIE" , "ER" , "SEINE" , "GEWESEN" , "00" ,
"01" , "02" , "03" , "04" , "05" , "06" , "07" , "08" , "09" , "10" , "11" , "12" , "13" , "14" , "fünfzehn" , "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" , "Du" , "V" , "W" , "X" , "Y" , "Z" , "HABEN" , "WIE" , "DE" , "DORT" , "ALLE" , "HABE" ,
"WER" , "NACH" , "IRGENDEIN" , "UM" , "GESELLSCHAFT" , "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" ,
Gliederungsbox ( cloud_title ,
Border-Box ( Links ( 10 ) , Recht ( 10 ) , oben ( 10 ) , Unterseite ( 10 ) , v = V Listenfeld () )
)
) ;
h = H Listenfeld () ;
// Liste "guter" Farben aus Scripting Guide, Seite 341
Farbliste =
[ 0 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , fünfzehn , 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 ] ;
nFarben = näht ( Farbliste ) ;
die Zeile = 1 ;
k = 1 ;
Nr = näht ( dt ) ;
min_words = 8 ;
Größenmultiplikator = 1 ;
wenn ( Nr < 100 ,
min_words = 2 ;
Größenmultiplikator = 2 ;
) ;
Während ( dt : zählen [ die Zeile ] > min_words ,
x = Textfeld ( dt : Wort [ die Zeile ] || " " ) ;
x << setfontsize ( Größenmultiplikator * Protokoll ( dt : zählen [ die Zeile ] ) * 4 ) ;
x << Schriftfarbe ( Farbliste [ k ]) ;
k ++;
wenn ( k > nFarben ,
k = 1 ;
) ;
h << anhängen ( x ) ;
Wenn ( h << Breite bekommen > 700 ,
h = H Listenfeld () ;
v << anhängen ( h ) ;
) ;
die Zeile ++;
Warte ab ( 0 ) ;
) ;
Warten ( 0 ) ;
nah dran ( dt , nicht sparen ) ;
Der Look der NY Times ist schön, weil er einfach umzusetzen ist.

Hier ist etwas JSL
/* die Ladetextdatei unten holt eine Datei aus http://www.gutenberg.org/ was sagt...
Projekt Gutenbergs Alice im Wunderland von Lewis Carroll
Dieses eBook ist für die Verwendung durch jedermann überall kostenlos und mit
fast keine Einschränkungen.Ihr dürft es kopieren, verschenken bzw
unter den Bedingungen der enthaltenen Projekt-Gutenberg-Lizenz wiederverwenden
mit diesem eBook oder online unter www.gutenberg.org
Titel: Alices Abenteuer im Wunderland
Autor: Lewis Caroll
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
// Wörter zählen.JMP hat eine words()-Funktion, die eine Liste von Wörtern zurückgibt, ist es aber nicht
// kann Apostrophe innerhalb von Wörtern von Wörtern am Rand unterscheiden.
// 'wir sind ein Beispiel, um das diese Regex herumarbeitet.wie 'Oh.
// „Oh, da kannst du nichts dafür,“ sagte die Katze, „wir sind alle verrückt hier. Ich bin sauer.Du bist verrückt.'
rc = Pat Match( txt, Pat Repeat( (Pat Regex( "[\w]+('[\w]+)?" ) >> Wort +
Ausdruck( Wort = Großbuchstaben( Wort ); aa[Wort]++; ""; )) |
(Pat Regex( "[^\w]+" )), 1, 9999999, GREEDY ));
Schlüssel = aa << getkeys; N Elemente ( Schlüssel );
vals = aa << getvalues; N Items( vals );
dt = Neue Tabelle( "Ohne Titel",
Neue Spalte( "Wort", Zeichen, Set Values( Tasten ) ),
New Column( "count", Numeric, "Continuous", Format( "Best", 12 ), Set Values( vals ) )
);
dt2 = dt << sortieren (nach (Anzahl), Reihenfolge (absteigend));
Schließen( dt, nosave );
dt = dt2;
Neues Fenster ( "words", Border Box ( Left ( 10 ), Right ( 10 ), top ( 10 ), bottom ( 10 ), v = V List Box () ) );
h = H Listenfeld (); v << anhängen( h );
Zeile = 12; // Durch Inspektion
While( dt:count[row] > 8,
x = Textfeld (dt:word[row] || " " );
x << setfontsize( Log( dt:count[row] ) * 4 );
h << anhängen( x );
If( h << getwidth > 700, h = H List Box(); v << append( h ); );
Reihe++;
Warte( 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 sind standardmäßig auf Null gesetzt, wenn sie noch nicht existieren (siehe =>0), sodass für das erste Vorkommen eines Wortes keine besondere Anstrengung erforderlich ist.Das PatRepeat innerhalb des PatMatch verarbeitet die gesamte Zeichenfolge.Innerhalb der Wiederholung verarbeiten die beiden Regex abwechselnd Wörter und Sachen zwischen den Wörtern.Innerhalb der ersten Regex wird expr verwendet, um JSL für jedes übereinstimmende Wort auszuführen.Das Letzte, was der Ausdruck tut, ist eine leere Zeichenfolge, die immer an der aktuellen Position übereinstimmt.Dieses PatMatch verarbeitet etwa 150.000 Zeichen in etwa zwei Sekunden, einschließlich des Zählens der Wörter in das assoziative Array.
Aus den Schlüssel-Wert-Paaren wird eine Datentabelle erstellt und sortiert, dann 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 Sie jedes Wort hinzugefügt haben, ermöglicht wait(0) dem Fenster, sich zu aktualisieren, 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. Hören Sie auf, wenn die sortierte Zählung unter 8 Instanzen fällt.Verwenden Sie eine Log-Transformation; Alice hat 386 Instanzen.
Wie Xan betont, gibt es Probleme mit Wörtern, die sich nur in Suffixen, Präfixen oder Synonymen unterscheiden.Wahrscheinlich auch einige andere Probleme.
Jabberwocky ist in Hinter den Spiegeln.Slithy Toves sind nicht hier.
Update: Wahrscheinlich sollte nicht jedes Mal Text vom Link abgerufen werden.Richten Sie die Ladetextdatei auf eine Datei auf Ihrem Computer, die möglicherweise heruntergeladen wurde http://www.gutenberg.org/

Hallo Peter,
Hier ist etwas JSL, um die Wörter in einer Textdatei zu zählen und dann eine Baumkarte zu erstellen.
Nicht gerade eine Wortwolke, aber könnte Ihnen den Einstieg in die gewünschte Richtung erleichtern.
Am besten,
Stan
Protokoll löschen () ;
NamesDefaultToHere ( 1 ) ;
// Eingabeaufforderung für Textdatei
Eine Datei bekommen = Datei auswählen () ;
// Textstring in Variable speichern
Text = Textdatei laden ( Eine Datei bekommen ) ;
// Erstellen Sie eine Liste von Wörtern in sortierter Reihenfolge, indem Sie Leerzeichen und andere Trennzeichen entfernen
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 = {} ;
Merkliste = {} ;
// allgemeine Wörter entfernen, dh; diejenigen, die 3 Zeichen oder weniger sind
Zum ( 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 ( Merkliste , Wortlisten [ ich ] )
)
) ;
// Datentabelle erstellen
dt = Neue Tabelle ( "Wortwolken-Datentabelle" ,
Neue Spalte ( "Wörter" , Charakter , Werte einstellen ( Merkliste )) ,
) ;
Tabellieren (
Systemsteuerung anzeigen ( 0 ) ,
Include fehlt zum Gruppieren von Spalten ( 1 ) ,
Sortieren nach Anzahl der Gruppierungsspalten ( 1 ) ,
Tabelle hinzufügen ( Zeilentabelle ( Spalten gruppieren ( : Wörter ) ) )
) << In Datentabelle machen ;
// Baumkarte aller Wörter erstellen
Graph-Generator (
Systemsteuerung anzeigen ( 0 ) ,
Variablen ( X ( : Wörter ) ) ,
Elemente ( Baumkarte ( X , Zusammenfassende Statistik ( "Summe" ) ) ) ,
) ;