2009-04-21 13 views
28

Un mio amico stava parlando di un gioco di parole che le piaceva giocare dove si tenta di convertire una parola in un'altra (hanno lo stesso numero di lettere) passando una lettera alla volta, dove ogni iterazione produce una parola reale.Elenco di parole gratuito da utilizzare a livello di programmazione?

Esempio:

MOON -> WOLF
GOON
GOOF
GOLF
WOLF

ho pensato che sarebbe stato un piccolo progetto divertente da scrivere un programma per generare soluzioni e portarlo oltre, dato 2 parole, determinare se esiste una soluzione e il numero di iterazioni nella soluzione ottimale.

Problema è che ho problemi a trovare elenchi di parole gratuiti che posso facilmente accedere a livello di programmazione. Sto anche pensando di usare questo come una scusa per imparare Python, quindi sarebbe bello se qualcuno fosse a conoscenza di elenchi di parole e puntatori gratuiti su come analizzare e accedervi da Python. L'algoritmo per capire come trovare un percorso ottimale lavorerò per conto mio.

+4

Questa * è * una domanda utile, anche se capita di essere un dupe (vedi http://stackoverflow.com/a/772929/284795) –

risposta

54

Verificare this question e this question, che sono essenzialmente ciò che stai cercando.

Opzioni:

  1. Cercare/usr/share/dict/parole sul vostro comune o giardino varietà di Unix installare.
  2. http://www.ibiblio.org/webster/
  3. http://wordlist.sourceforge.net/
  4. http://svnweb.freebsd.org/csrg/share/dict/ (cliccare il tag 'di revisione' del file 'parole')

#4 è quella che ho usato per il mio Python experiment in giochi di parole, e ha funzionato bene .

per i punti bonus, ecco qualcosa per iniziare il vostro programma di parola:

import re 
startwith = "MOON" 
endwith = "GOLF" 
cklength = re.compile('.{' + str(len(startwith)) + '}(\n)?$', re.I) 
filename = "C:/dict.txt" 
words = set(x.strip().upper() for x in open(filename) if x.match(cklength)) 

Le parole saranno quindi un insieme di tutte e 4 le parole della lettera nel dizionario. Puoi fare la tua logica da lì.

+0

Indovina che non ho visto i dupes nella mia ricerca veloce. Grazie :) – Davy8

+0

Grazie per la modifica, darei i punti bonus se potessi, ma aumentare e accettare di tutto quello che posso fare: p – Davy8

+0

freebsd è passato a Subversion per il controllo del codice sorgente in modo che il link non funzioni più - ecco un link aggiornato http://svnweb.freebsd.org/base/head/share/dict/web2?view=co –

22

La maggior parte di unix (che include osx) ha un file /usr/share/dict/words.

4

se si ha accesso ad una installazione di Linux, ci dovrebbero essere alcuni elenchi di parole in

/usr/share/dict/ 
1

Per qualcosa di simile ho usato il mozilla English dictionary. È un file zip (anche se ha un'altra estensione). All'interno troverai en-GB.dic che è il dizionario.

3

Dai un'occhiata ai database in dict.org. Questi sono in realtà database del dizionario, quindi è necessario estrarre le definizioni delle parole da soli. Potresti iniziare da Wordnet.

1

Avevo lo stesso problema e con alcuni scavi in ​​un sito basato su scrabble, ho trovato molti dei loro elenchi di parole in un bel formato di testo. Hanno una versione inglese a https://www.wordgamedictionary.com/english-word-list/

+4

Hai esaminato questa lista? Sto vedendo alcune cose che non mi sembrano parole valide: 'tween, 10000, 1760s, 1st_Earl_Baldwin_of_Bewdley, 365_days, 5-hydroxy-3-metilglutaril-coenzyme_A_reductase, ecc ... –

Problemi correlati