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