2009-04-21 15 views
28

Una amiga mía estaba hablando de un juego de palabras que le gustaba jugar donde intentas convertir una palabra a otra (tienen el mismo número de letras) cambiando una letra a la vez, donde cada iteración produce una palabra real.¿Lista de palabras gratis para usar programáticamente?

Ejemplo:

LUNA -> WOLF
GOON
GOOF
GOLF
WOLF

que pensé que sería un poco más divertido proyecto para escribir un programa para generar soluciones, y llevarlo más allá, dadas 2 palabras, determinar si existe una solución y el número de iteraciones en la solución óptima.

Problema es que tengo problemas para encontrar listas de palabras libres que puedo acceder fácilmente mediante programación. También estoy pensando en utilizar esto como una excusa para aprender Python, por lo que sería genial si alguien sabe de listas de palabras libres y consejos sobre cómo analizar y acceder a él desde Python. El algoritmo para descubrir cómo encontrar una ruta óptima trabajaré solo.

+4

Esta * es * una pregunta útil, aunque resulta ser un engaño (ver http://stackoverflow.com/a/772929/284795) –

Respuesta

54

Echa un vistazo a this question y this question, que son esencialmente lo que estás buscando.

Opciones:

  1. Busque/usr/share/dict/palabras en su variedad común o jardín Unix instalar.
  2. http://www.ibiblio.org/webster/
  3. http://wordlist.sourceforge.net/
  4. http://svnweb.freebsd.org/csrg/share/dict/ (haga clic en la etiqueta de 'revisión' del archivo 'palabras')

#4 es el que yo utilicé para mi propia Python experiment en juegos de palabras, y funcionó muy bien .

de puntos de bonificación, aquí hay algo para empezar en su programa de palabra:

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)) 

palabras serán entonces un conjunto de todas las 4 palabras de la letra en el diccionario. Puedes hacer tu lógica desde allí.

+0

Supongo que no vi a los incautos en mi búsqueda rápida. Gracias :) – Davy8

+0

Gracias por la edición, daría puntos de bonificación si pudiera, pero voto y acepto lo único que puedo hacer: p – Davy8

+0

freebsd ha cambiado a Subversion para el control de código fuente para que ese enlace ya no funcione - aquí hay un enlace actualizado http://svnweb.freebsd.org/base/head/share/dict/web2?view=co –

22

La mayor parte de unix (que incluye osx) tiene un archivo /usr/share/dict/words.

4

si tiene acceso a una instalación de Linux, debe haber algunas listas de palabras en

/usr/share/dict/ 
1

Para algo similar He utilizado el mozilla English dictionary. Es un archivo zip (aunque tiene otra extensión). Dentro encontrarás en-GB.dic que es el diccionario.

3

Eche un vistazo a las bases de datos en dict.org. En realidad, se trata de bases de datos de diccionarios, por lo que deberá extraer las definiciones de palabras usted mismo. Puede comenzar desde Wordnet.

1

Estaba teniendo el mismo problema y con algunas búsquedas en un sitio basado en scrabble, encontré varias de sus listas de palabras en un buen formato de texto. Tienen una versión en inglés en https://www.wordgamedictionary.com/english-word-list/

+4

¿Revisó esta lista? Estoy viendo algunas cosas que no me parecen válidas: 'tween, 10000, 1760s, 1st_Earl_Baldwin_of_Bewdley, 365_days, 5-hydroxy-3-methylglutaryl-coenzyme_A_reductase, etc ... –

Cuestiones relacionadas