Petru se vuoi usare un sistema semplice ma abbastanza efficace (ovvio che non e' una soluzione scientifica come quella proposta da Paocavo) potresti fare cosi':
Scarichi l'archivio di Wikipedia, e' gia compresso e libero. Cosi' eviti anche di dover spiderizzare decine di migliaia di pagine per il web.
Poi con un semplice programmino conti per ogni sua pagina (per esempio) tutte le parole che contiene, e prendi per dire quelle che superano il 3%-5% di densita'.
A questo punto ti ritroverai con un file contenente qualcosa del tipo (w1= parola1):
w1 (6,3%) | w2 (5,8%) | w3 (5,7%) etc etc
w24 (7,2%) | w44 (4,6%) | w2424 (3,7%) | w646 (3,5%) etc etc
e cosi' per 320.000 volte se il wiki contiene 320.000 pagine (scarta magari quelle sotto una certa dimensione, per dire 5k)
A questo punto il piu' e' fatto.
Dal mio file estrarro' tutte le righe che contengono w1 e le salvo sul file w1.txt (per dire), basta il classico comando dos: findstr.
Eseguo per tutte le w, usando un file .bat
In una dir pertanto avrai per dire 400.000 file: w1.txt w2.txt etc etc
Ora per ogni file accoperai-unirai le parole ripetute al suo interno, mettendole in ordine di presenza, da quelle che appaiono piu' volte a quelle che appaiono meno, e a parita' di numero di volte (che una parola si ripete) tenerrai conto della media delle %.
Ammettiamo di prendere in considerazione i risultati di musica.txt, avremo:
Cantanti | 1024
canzone | 967
chitarra | 722 (3,2%)
concerto | 722 (3,1%)
etc
Ovviamente le parole che non raggiungono piu' di un tot di valore a tua scelta saranno da te escluse dalla lista (magari prendi solo le prime 50, o quelle che non raggiungono almeno una certa % di presenza rispetto le altre, inutile salvare flauto se appare solo 5 volte rispetto parole che appaiono centinania di volte, come canzone o concerto...).
Con un buon pc e 30k di programma te la dovresti cavare in un weekend, ottenendo cosi' un buon archivio di riferimento, contenente in pratica tutte le parole italiane e relative parole correlate.
Se poi da li vuoi creare delle macrocategorie, allora lavorai su questi risultati finali procedendo con calcoli simili.
Interessante notare come con questo sistema si possa escludere gia' al primo passaggio (con un semplice calcolo intermedio) tutte le stopkey, infatti dal mio primissimo file posso cancellare (prima di effettuare i conteggi) tutte quelle w che si ripetono piu' di una certa % di volte, per dire 0,5% o 2%... come preferiamo.
E' solo un'idea, ma piu' facile a farsi che a spiegarsi.
Personalmente ho usato una tecnica diversa per lo stesso calcolo sulle parole inglesi (ma tiene conto anche delle doppie e triple parole) ma sulle parole singole anche con questo sistema ho verificato che i risultati erano abbastanza correlabili tra i 2 metodi.
Nel caso poi si implementi lo stemmer i risultati migliorano, ma nel tuo caso non dovrebbe servirti.