Utilicé 100 líneas de código Python para charlar con la diosa en WeChat (código adjunto)
Muchas personas en el círculo de amigos quieren aprender Python. Una razón muy importante es que es muy adecuado para comenzar. Para el desarrollo de algoritmos de inteligencia artificial, Python tiene ventajas únicas que otros lenguajes de programación no tienen. La cantidad de código es pequeña y los desarrolladores solo necesitan centrarse en la investigación de algoritmos.
Este artículo presenta un pequeño software desarrollado en Python para chatear automáticamente con mujeres hermosas. Lo siguiente está lleno de información útil, que escribí en mi tiempo libre después de una optimización continua, ahora la comparto con ustedes. ¡Así que apurémonos y comencemos ahora!
Preparación:
Herramienta de programación IDE: pycharm
Versión de Python: 3.6.0
Primero cree un nuevo archivo py y asígnele un nombre : ai_chat.py
PD: Los siguientes cinco pasos de código se pueden copiar directamente en un solo archivo py y ejecutar directamente. Para que a los lectores les resulte más fácil escribir código, publiqué el código, pero hubo un problema con el formato, así que tomé una captura de pantalla del formato del código en pycharm.
Paso uno: Introducir paquetes clave
Presentemos brevemente las funciones de los paquetes anteriores: El paquete pickle se utiliza para serializar datos, guardar archivos y deserializar y leer archivos. por humanos, pero es súper rápido cuando las computadoras lo leen. (Está confuso cuando se abre con el Bloc de notas). El paquete json es un tipo de serialización de texto, que es legible por humanos y conveniente para modificarlo (abra el Bloc de notas, puede ver todo el contenido que contiene y conocerlo todo). El paquete gensim es uno de los paquetes de Python para procesamiento de lenguaje natural, simple y fácil de usar, es un paquete de Python imprescindible para comenzar con los algoritmos de PNL. El paquete jieba se utiliza para la segmentación de palabras y el efecto es normal para los expertos en algoritmos, pero es muy rápido y adecuado para el uso básico.
Los paquetes anteriores no son críticos y se pueden omitir al aprender. Después de comprender todo el flujo del programa, podrá leer la documentación de manera específica, un paquete a la vez.
Paso 2: Configuración estática
Aquí, ruta se refiere a la ubicación donde se almacena el material de diálogo (datos de entrenamiento), y model_path es la ruta donde se almacena el modelo.
Este es un hábito de programación personal. Estoy acostumbrado a poner algunas configuraciones, como rutas de archivos, rutas de almacenamiento de modelos y parámetros de modelos en una clase. Por supuesto, cuando se desarrolla el proyecto real, se almacena en el archivo de configuración y no se escribe directamente en el código. Aquí, para facilitar la demostración, se escriben juntos y también es conveniente ejecutarlos.
Paso 3: escriba una clase para integrar la importación de datos, el entrenamiento de modelos y la predicción de diálogos
Cuando se ejecuta por primera vez, la ruta a los datos de entrenamiento se leerá desde el estado estático. configuración Lea los datos, realice el entrenamiento y almacene el modelo entrenado en la ruta del modelo especificada. Para ejecuciones posteriores, el modelo se importa directamente, por lo que no es necesario volver a entrenarlo.
Para la clase modelo, las presentaremos una por una.
La función inicializar() y la función __init__() son inicialización y creación de instancias de objetos, que incluyen la asignación de parámetros básicos, la importación del modelo, el entrenamiento del modelo, el guardado del modelo y finalmente devolver un objeto al usuario.
La función __train_model() segmenta la pregunta, usa gesim para implementar el modelo de bolsa de palabras, cuenta el tf-idf de cada característica, crea una matriz dispersa y luego crea un índice.
La función __save_model() y la función __load_model() aparecen en pares. Muchos proyectos tendrán estas dos funciones para guardar e importar modelos.
La diferencia es que este proyecto utiliza almacenamiento de archivos, pero en realidad utiliza una base de datos en línea
La función get_answer() utiliza el modelo entrenado para analizar la pregunta y finalmente envía el contenido de la respuesta prevista al usuario.
Paso 4: Escriba tres funciones de tipo herramienta como archivos de lectura y escritura.
Entre ellos, puede obtener materiales de diálogo y modificar el contenido del diálogo de forma independiente como datos para el entrenamiento de la máquina. Aquí solo he proporcionado algunos materiales de diálogo simples. De hecho, los proyectos en línea requieren una gran cantidad de corpus para la capacitación, por lo que el contenido del diálogo está completo.
Estas tres funciones de la herramienta son relativamente simples. Entre ellos, la función get_data (), los datos que contiene los compilé yo mismo. Puede agregar sus propios datos de diálogo de acuerdo con sus propios hábitos, de modo que el método de diálogo del modelo entrenado final se acerque más a su propia forma de hablar.
Paso 5: Llame al modelo para la predicción del diálogo
La función principal main() es el punto de partida para la ejecución de todo el programa y controla todos los pasos.
Resultados de ejecución:
Resultados de ejecución en segundo plano del programa:
Si tiene alguna pregunta y desea obtener el código fuente (de hecho, los códigos están todo lo anterior), puedes enviarme un mensaje privado en segundo plano y responder: conversación inteligente de Python. Te enviaré el código fuente. Finalmente, ¡gracias a todos por leer y les deseo a todos un feliz trabajo y vida!