No sé si la generación de broma / juego de palabras se puede hacer correctamente usando GA. Permítanme explicar brevemente los fundamentos de cómo funcionan los algoritmos genéticos. Los GA funcionan comenzando con una población inicial de posibles soluciones, codificadas de alguna manera. Estas soluciones codificadas se denominan genes / cromosomas .
Luego, en cada iteración, la bondad de cada solución se evalúa utilizando una función de aptitud . Luego, se mantienen las soluciones que están más en forma, mientras que se eliminan las soluciones con menor ajuste. Esto se conoce como selección . Luego, algunos de los cromosomas supervivientes sufren crossover y mutación.
El crossover , también conocido como reproducción, combina dos cromosomas (padres) para obtener un nuevo cromosoma (niño). El niño codifica una nueva solución que es diferente de los padres. La motivación del crossover es que el niño puede combinar las buenas características de ambos padres y, por lo tanto, ser mejor que ambos padres.
- Cómo aumentar el rendimiento de mi computadora manualmente
- ¿Por qué muchos graduados de Carnegie Mellon CS tienen un complejo de inferioridad? ¿Los hace mejores ingenieros?
- ¿Qué libros de texto básicos deberían tener todos los ingenieros de aprendizaje automático y aprendizaje profundo en su estantería?
- ¿Cuáles son algunos buenos usos para el análisis predictivo, en particular prediction.io?
- ¿Puedo usar el mismo conjunto de validación para ajustar múltiples parámetros, uno a la vez?
La mutación , por otro lado, es un cambio aleatorio realizado en un cromosoma (solución). Se sabe que la mutación introduce mejores características, tanto en la evolución biológica como en los AG.
El alcance de la mutación y el crossover realizado en cada iteración depende de las probabilidades de crossover y mutación utilizadas por el algoritmo. Un buen diseño de probabilidades de cruce y mutación depende del problema particular. Algunos problemas pueden beneficiarse más del crossover, y algunos pueden favorecer la mutación.
Los cromosomas después del cruce y la mutación forman la población para la próxima iteración. El GA puede terminar después de un número fijo de iteraciones, o después de que se haya encontrado una solución de aptitud> umbral, etc.
Dados estos hechos básicos, las preguntas que tendría sobre un sistema de generación de bromas / juegos de palabras son.
1) Sembrando la población inicial. Esto podría hacerse comenzando con varias oraciones con diferentes grados de “punniness”.
2) ¿Cómo se determina la “aptitud” de una oración como una broma / juego de palabras? Es decir, ¿qué función física se puede usar? ¿Cómo se determina si una oración es más divertida que otra? ¿Qué pasa con las preferencias personales? Esto podría ser un problema muy no trivial.
3) Si aplicamos el crossover a las soluciones, es decir, de alguna manera combinamos los elementos de dos oraciones “punny”, ¿la oración resultante sería un buen chiste / juego de palabras? Creo que es muy poco probable que puedas encontrar una buena manera.
4) Si en su lugar aplicamos mutaciones y cambiamos las letras / palabras de las oraciones de broma / juego de palabras, ¿el resultado sería mejor? No creo que ese sea el caso.
Tenga en cuenta que no estoy diciendo que dicho sistema no se pueda construir. Simplemente siento que este problema no es muy adecuado para las AG. Otros enfoques de ML ciertamente se pueden aplicar aquí. He visto muchos artículos sobre sistemas de detección de emociones que analizan texto. Quizás tales enfoques podrían adaptarse a su caso.
Mi única calificación para expresar esta opinión es que he estudiado los conceptos de Algoritmos genéticos, he leído documentos sobre algunos Algoritmos genéticos prácticos y cómo se usan para resolver problemas, implementaciones de juguetes, etc. Sería bueno buscar opiniones de expertos.