3. Chatbot con inteligencia artifical en tensorflow
- Hola a todos.En esta ocasión continuamos con nuestro tutorial para crear y entrenar nuestro propio chatbot que se comportará con inteligencia artificial. Para crear un chatbot, o para hacer cualquier tipo de tarea de aprendizaje automático, el primer trabajo que tenemos que hacer es adquirir datos para el entrenamiento.Después necesitamos estructurarlos y prepararlos para que se formateen para "la entrada" y "la salida"para que un algoritmo de aprendizaje automático puede digerir.
- Una vez que tenemos la base datos preparada,según vimos en la entrada anterior. Podemos generar los ficheros necesarios para el entrenamiento de nuestro modelo. Crearemos dos archivos que tengan preguntas y respuestas. Para ello tomaremos los datos de la base de datos y adjuntarlos en los archivos de entrenamiento respectivos.
- En el siguiente vídeo explico el código necesario para hacer esto:
- Os dejo el código visto en el vídeo:
import sqlite3
import pandas as pd
#En mi caso trabajo con un solo més.En este caso el marzo de 2015
timeframes = ['2015-03']
for timeframe in timeframes:
    connection = sqlite3.connect('{}.db'.format(timeframe))# conectamos a la base de datos
    c = connection.cursor()
    limit = 5000 #numero de registros que obtenemo de la base de datos en la consulta
    last_unix = 0
    cur_length = limit
    counter = 0 # contador para 
    test_done = False # boleano que nos indica cuando hemos  terminado
    while cur_length == limit:
        df = pd.read_sql("SELECT * FROM parent_reply WHERE unix > {} and parent NOT NULL and score > 0 ORDER BY unix ASC LIMIT {}".format(last_unix,limit),connection)
        last_unix = df.tail(1)['unix'].values[0]
        cur_length = len(df)
        if not test_done:
            with open('test.from','a', encoding='utf8') as f:
                for content in df['parent'].values:
                    f.write(content+'\n')
            with open('test.to','a', encoding='utf8') as f:
                for content in df['comment'].values:
                    f.write(str(content)+'\n')
            test_done = True
        else:
            with open('train.from','a', encoding='utf8') as f:
                for content in df['parent'].values:
                    f.write(content+'\n')
            with open('train.to','a', encoding='utf8') as f:
                for content in df['comment'].values:
                    f.write(str(content)+'\n')
        counter += 1
        if counter % 20 == 0:
            print(counter*limit,'rows completed so far')
 
 
No hay comentarios:
Publicar un comentario