2009-02-27 19 views
8

¿Cuál sería la mejor manera de conseguir una función que devuelva una palabra aleatoria en inglés (preferiblemente un sustantivo), sin mantener una lista de todas las palabras posibles en un archivo antes de la mano ?Cómo elegir una palabra aleatoria en inglés de una lista

+0

Esta no es una pregunta sensata. ¿Podría proporcionar algún contexto adicional o pista sobre lo que está tratando de hacer? Generar palabras en inglés sin un diccionario de inglés es una contradicción lógica. Por favor aclara esto. –

+0

buscando una palabra de cualquier recurso en línea diseñado para proporcionar palabras aleatorias parece una buena idea.:-) –

+0

@joshhunt: ¿Qué constituye "masivo"? Los diccionarios Spellcheck para inglés cuestan unos 400K. Ver http://aspell.net/ para uno bueno. –

Respuesta

20

Las listas de palabras no necesitan ocupar tanto espacio.

Aquí hay un JSON wordlist with over 5000 words, all nouns. Registra en menos de 50 K, el tamaño de una imagen jpeg de tamaño mediano.

Dejaré de elegir uno al azar como ejercicio para el lector.

+3

Esta es realmente la mejor opción. Podría mantener fácilmente toda la lista en la memoria y tendrá un control total sobre la fuente, sin cambios inesperados, sin problemas de conexión, sin problemas de seguridad y, en general, debería ser mucho más fácil de implementar. – Whatsit

+0

Y ni siquiera necesita mantener todo en la memoria. – Triptych

0

Bueno, usted tiene tres opciones:

  • difícil que el código de la lista de palabras e inicializar una matriz con él.
  • Obtenga la lista de una ubicación de Internet en lugar de un archivo.
  • Mantenga una lista de posibles palabras en un archivo.

La única manera de evitar lo anterior es si no le preocupa si la palabra es real: solo puede generar series de caracteres de longitud aleatoria. (No hay forma de generar palabras mediante programación sin una lista de diccionario desde).

10

No puede. No hay algoritmo para generar palabras significativas. Solo puedes generar palabras que suenan como inglés, pero no tendrán ningún significado.

+6

Mientras que hobaratically trice, todavía puede grat a fin. – dkamins

3

Otro enfoque teórico: puede raspar la página random wikipedia article y devolver la palabra N-ésima del artículo.

+0

Es una buena idea, pero es posible que deba filtrar las fechas y los números y las palabras que no son Engilsh. – Ben

+0

Los resultados no serían muy aleatorios, tendería a obtener muchas veces las mismas palabras y todo tipo de otros problemas. – Whatsit

+1

@Whatsit Supongo que tienes razón. Por otro lado, ¿qué significa des random word en inglés? Si le preguntas a alguien por una palabra al azar, será una distribución estadística similar – splattne

1

Hay un generador de palabras aleatorio here - no es inglés pero es inglés-ish, es decir, las palabras son lo suficientemente similares al lenguaje que un usuario puede leer las palabras y almacenarlas en la memoria a corto plazo.

El código fuente está en C# y un poco kludged, pero podría usar un enfoque similar en Python para generar muchas palabras sin tener que almacenar una lista masiva.

Como alternativa, puede llamar directamente al servicio web en la página de demostración, pero alojado en GoDaddy, ¡no hay garantías de que funcione en producción!

1

Puede descargar las "palabras comunes a SOWPODS y TWL" listas de http://www.math.toronto.edu/jjchew/scrabble/lists/. Puse todas las palabras en esos archivos juntos y la lista pesaba aproximadamente 642k. No es enorme de ninguna manera. Sin embargo, las listas contienen un montón de palabras oscuras, ya que están destinadas para el uso de Scrabble en torneos. Lo bueno es que las listas forman un subconjunto sustancial del idioma inglés.

2

Simplemente use la palabra aleatoria de setgetgo api. Es gratis, es fácil y es genial.

http://randomword.setgetgo.com/

+0

Responde devolver palabras reales, pero y devolver palabras no reales –

Cuestiones relacionadas