Necesito encontrar un algoritmo o, mejor aún, si hay una implementación en php/java para generar palabras que se sugerirán al usuario para elegir como algunos identificadores, pero quiero que sean algo fáciles de recordar, por ejemplo ' wonifuxa ',' thonqi ',' oqriman ', etc., pero no algo como' nxdFgtqI '¿Cómo generar palabras al azar sin sentido, pero al mismo tiempo fáciles de recordar?
Respuesta
Aquí hay una función que genera palabras aleatorias como las que está describiendo. No usa la letra "Q" porque esa siguió haciendo palabras impronunciables.
<?php
//generate random consonants separated by vowels
function generate_faux_word($letters = 5){
//define arrays of consonants and vowels
//no q, it's tough to remember
$consonants = array('b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z');
$vowels = array('a', 'e', 'i', 'o', 'u');
$ret_word = "";
$consonant_toggle = true;
//randomly choose a consonant then a vowel until the word is as long as the parameter
while(strlen($ret_word) < $letters){
if ($consonant_toggle){
$ret_word .= $consonants[array_rand($consonants)];
$consonant_toggle = false;
}else{
$ret_word .= $vowels[array_rand($vowels)];
$consonant_toggle = true;
}
}
return $ret_word;
}
echo generate_faux_word();
echo "<br />";
echo generate_faux_word();
echo "<br />";
echo generate_faux_word(6);
echo "<br />";
echo generate_faux_word(4);
?>
Un ejemplo del resultado es: muher sucok kozive xaso
¡Gracias! Esto es exactamente lo que necesito! Funciona perfectamente :) –
Podría crear una cadena de caracteres de uno en uno y tener cada carácter un valor aleatorio entre 97-122 (inclusive). Estos son los valores decimales ascii para las letras a-z (sin mayúsculas). Y luego, por supuesto, convertirlos a cadena.
Aunque, si esto funcionaría o no se basa en su definición de "Fácil de recordar". Todos se ven muy difíciles de recordar para mí.
En la época de los telégrafos, cuando se cobraba la comunicación por carta, bastantes compañías idearon códigos para codificar oraciones completas en el menor número de letras posible. La mayoría de ellos tenían el mismo requisito básico: una colección de cartas que era razonablemente fácil de recordar. La regla habitual era algo así como la alternancia entre grupos de una vocal y hasta dos consonantes. Esto permitiría (por ejemplo) "labdon", pero no "aobldn" (mismas letras, diferente orden). Casi cualquier secuencia que produzcas siguiendo una regla como esta resulta razonablemente fácil de pronunciar, así que alguien puede recordarla como una palabra en esencia en lugar de tener que recordar todas las letras individuales.
Usa un diccionario y elige dos palabras. Dividirlos en un punto al azar y unirlos.
Ejemplo:
IDEA -> IDE
WITHOUT -> THOUT
-----------
IDETHOUT
para aún mejores resultados, controlar el punto de división (por ejemplo, primera palabra: Split en una vocal, segunda palabra: split antes de una consonante y de una manera que las sílabas resultantes = 3).
Hay una biblioteca para generar palabras pronunciables. Aquí hay un enlace a la biblioteca: http://www.multicians.org/thvv/gpw.html. Hay un enlace al archivo fuente de Java en esa página. Primero encontré la biblioteca de Python: http://www.preetk.com/node/pygpw-generate-pronouncable-words/
¡Genial! Gracias por esta solución, pero otro tipo me brindó una solución PHP, ¡lo que en realidad me funciona mejor en ese momento! –
generador de palabras sin sentido. Esto fue construido usando varias estructuras diferentes similares a lo que estaba hablando @Jerry Coffin. ¡Diversión, pero no necesariamente útil! http://www.mygengen.com/gengens/view/nonsense-words
C#
private static string RandomWord(int length)
{
var consonants = new[] { "b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t", "v", "w", "x", "y", "z" };
var vowels = new[] { "a", "e", "i", "o", "u" };
var word = "";
var b = true;
for (var i = 0; i < length; i++)
{
word += b ? consonants[Rng.Next(consonants.Length)] : vowels[Rng.Next(vowels.Length)];
b = !b;
}
return word;
}
- 1. Generar identificadores aleatorios fáciles de recordar
- 2. Cómo generar un polígono convexo al azar?
- 3. ¿Huellas dactilares fáciles de recordar para los datos?
- 4. Aleatorizar setInterval (Cómo reescribir el mismo al azar después de un intervalo aleatorio)
- 5. Generar un doble al azar en un intervalo de
- 6. ¿Cómo actualizar varias tablas al mismo tiempo?
- 7. Cómo ACTUALIZAR y SELECCIONAR al mismo tiempo
- 8. ¿cómo puedo actualizar las filas al azar?
- 9. jQuery: ¿objeto y función al mismo tiempo?
- 10. python ordena al azar elementos del mismo valor
- 11. "NSSet allObjects" ¿ordena al azar?
- 12. XNA - Creando muchas partículas al mismo tiempo
- 13. Cómo asignar al azar filas de Excel
- 14. fadeOut() y slideUp() al mismo tiempo?
- 15. Estirable y Patrón UIImage al mismo tiempo
- 16. Reemplazar 2 cadenas al mismo tiempo?
- 17. Conexión USB y depuración al mismo tiempo
- 18. Dos métodos de plegado al mismo tiempo
- 19. ¿Dos simuladores de iPhone al mismo tiempo?
- 20. Implementando un chat al azar entre personas
- 21. ¿Cómo seleccionar uno de n objetos al azar sin saber n al principio?
- 22. ¿Cómo soportan los programas i386 y ppc al mismo tiempo?
- 23. MySQL selecciona dos tablas al mismo tiempo
- 24. Ajax solicitudes múltiples al mismo tiempo
- 25. usando onTouch y onCreateContextMenu al mismo tiempo
- 26. Clave primaria y externa al mismo tiempo
- 27. Reproducir sonido múltiple al mismo tiempo
- 28. ¿Cómo hacer que Compass vea varias carpetas al mismo tiempo?
- 29. jQuery, al azar para div
- 30. ¿Cuántos subprocesos puedo ejecutar al mismo tiempo?
hacerlo por sílabas se peguen entre sí. Construya las sílabas pegando fonemas (o solo letras) en combinaciones pronunciables de consonantes y vocales. Lucro. –
¿No es esto un poco subjetivo? Fácil de recordar para quien? Supongo que el problema se resolverá solo cuando trates de definir lo que es fácil de recordar significa para ti ... –
Pon el software de reconocimiento de voz a un niño pequeño y toca la grabación. – corsiKa