Programación de la Diosa
Presentamos un pequeño software desarrollado en Python que puede chatear automáticamente con mujeres hermosas. Lo siguiente es toda información seca, escrita en mi tiempo libre. Después de una optimización continua, ahora lo comparto con todos. ¡Entonces comencemos!
Preparación:
IDE de herramienta de programación: pycharm
Versión de Python: 3.6.0
Primero, cree un archivo llamado ai_chat.py Nuevo archivo py
PD: el código de los siguientes cinco pasos se puede copiar directamente en un único archivo py y ejecutarlo directamente. Para facilitar a los lectores la escritura de código, publiqué todo el código, pero hay un problema con el formato, así que formateé el código en pycharm y tomé capturas de pantalla.
Paso uno: Presentar los paquetes principales del producto
Presente brevemente las funciones de los paquetes anteriores: el paquete pickle se utiliza para serializar y guardar datos, y deserializar y leer archivos. No lo leo, pero las computadoras pueden leerlo súper rápido. (Incluso si lo abres con el Bloc de notas, quedará confuso). El paquete Json es un tipo de serialización de texto, que es legible por humanos y conveniente para modificar (abra el Bloc de notas, puede ver y conocer el contenido que contiene). El paquete Gensim es uno de los paquetes de Python en el procesamiento de lenguaje natural. Es simple y fácil de usar. Es un paquete de Python imprescindible para los algoritmos de PNL de nivel básico. Jieba Bao se utiliza para la segmentación de palabras, que generalmente es eficaz para los expertos en algoritmos, pero es muy rápido y adecuado para principiantes.
Estos paquetes no son críticos. Puedes omitirlo cuando estudies. Después de comprender todo el flujo del programa, podrá leer los documentos uno por uno.
Paso 2: Configuración estática
Aquí, ruta se refiere a la ubicación donde se almacena el corpus de diálogo (datos de entrenamiento) y model_path es la ruta donde se almacena el modelo.
Los siguientes son hábitos de programación personales. Estoy acostumbrado a poner algunas configuraciones, como rutas de archivos, rutas de almacenamiento de modelos y parámetros de modelo, en una clase. Por supuesto, cuando se desarrolla un proyecto real, se almacena en un archivo de configuración y no se escribe directamente en el código. Para facilitar la demostración, están escritos juntos y son fáciles de operar.
Paso 3: escriba una clase para integrar la guía de datos, el entrenamiento de modelos y la predicción de diálogos.
Cuando se ejecuta por primera vez, leerá la ruta de los datos de entrenamiento de la configuración estática, leerá los datos, realizará el entrenamiento y almacenará el modelo entrenado en la ruta del modelo especificada. La operación posterior es importar directamente el modelo sin volver a entrenar.
Para la clase modelo, presentémosla una por una.
La función Initialize() y la función __init__() son la inicialización y creación de instancias de objetos, incluida la asignación de parámetros básicos, la importación de modelos, el entrenamiento de modelos, el guardado de modelos y, finalmente, la devolución de un objeto al usuario.
La función __train_model() divide el problema en segmentos, 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 tienen estas dos funciones para guardar e importar modelos. La diferencia es que este proyecto utiliza almacenamiento de archivos y 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 devuelve la respuesta prevista al usuario.
Paso 4: Escribe tres funciones tipo herramienta para leer y escribir archivos.
Entre ellos, los materiales de diálogo obtenidos se pueden utilizar como datos de entrenamiento para la máquina, que se pueden utilizar para modificar de forma independiente el contenido del diálogo. Aquí solo doy algunos corpus de diálogo simples. Los proyectos en línea en realidad requieren una gran cantidad de corpus para la capacitación, de modo que el contenido del diálogo sea más completo.
Las funciones de estas tres herramientas son relativamente sencillas.
En la función get_data(), los datos se compilan por sí mismos. Puede agregar sus propios datos de diálogo según sus propios hábitos, de modo que el modelo de entrenamiento final y el modo de diálogo se acerquen más a su propio estilo de hablar.
Paso 5: Llama al modelo para predecir el diálogo.
La función principal main() es el punto de partida de todo el programa y controla todos los pasos.
Resultados de la ejecución:
Resultados de la ejecución en segundo plano del programa:
Si tiene alguna pregunta y desea obtener el código fuente (en realidad, todos los códigos están arriba), puedes enviar un mensaje privado en segundo plano. Yo, responde: conversación inteligente de Python. Te enviaré el código fuente. Finalmente, ¡gracias por leer y te deseo un feliz trabajo y vida!