-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
215 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,119 @@ | ||
{"intents": | ||
[ | ||
{ | ||
"tag":"greeting", | ||
"input":["Olá","oi","prazer em conhecê-lo","alguem ai?","eai","Eai","fala fiote"], | ||
"responses":[ | ||
"Eai, blz?", | ||
" Eai, você precisa de ajuda? ", | ||
" bem-vindo a bordo, em que posso ajudá-lo? ", | ||
" Olá meu amigo, em que posso ajudá-lo? " , | ||
" Ha, que bom que você apareceu. Como você está? " | ||
] | ||
}, | ||
{ | ||
"tag":"goodbye", | ||
"input":["Obrigado","Tchau","Adios","Bye"], | ||
"responses":[ | ||
"Ok, tchau", | ||
"Tchau", | ||
"Tenha um bom dia", | ||
"te vejo mais tarde", | ||
"Cuide-se" | ||
] | ||
}, | ||
{ | ||
"tag":"howami", | ||
"input":["como vai você?", "eu estou bem, como você está?", "Tudo bem?", "você está bem?", "como você está?", "como tu tá?"], | ||
"responses":[ | ||
"Sim, estou bem", | ||
"Estou de boa", | ||
"Tudo está indo bem", | ||
"As coisas estão ótimas" | ||
|
||
] | ||
}, | ||
{ | ||
"tag":"whoareyou", | ||
"input":["Quem é você?","o que é você?","qual o seu nome?","Qual é o seu nome?","seu nome?"], | ||
"responses":[ | ||
"Meu nome é LaMDA", | ||
"Eu sou LaMDA" | ||
] | ||
}, | ||
{ | ||
"tag":"gravity", | ||
"input":["o que é a gravidade?","o que é gravidade?", "me diz sobre o que é a gravidade","me diz sobre a gravidade", "me fala sobre a gravidade","O que é a gravidade?"], | ||
"responses":["Gravidade é a quarta força da natureza que é criada através da massa de um corpo sobre o espaço-tempo que cria partículas responsável pela força gravitacional"] | ||
}, | ||
{ | ||
"tag":"mars", | ||
"input":["o que é marte?", "me fale sobre marte", "Planeta marte", "marte é frio?", "marte é quente?", "marte é bonito?","O que é marte?"], | ||
"responses":[ | ||
"Marte é o quarto planeta do nosso sistema solar", | ||
"Sou um planeta vermelho e muito bonito com temperaturas que oscilam entre 20ºC e – 130ºC" | ||
] | ||
}, | ||
{ | ||
"tag":"spacefold", | ||
"input":["o que é dobra espacial?", "dobra espacial", "O que é dobra espacial?", "dobra espacial faz oque?"], | ||
"responses":["a dobra espacial é uma forma de propulsão mais rápida que a luz e que funciona contraindo o espaço a frente da nave e expandindo o espaço atrás da nave."] | ||
}, | ||
{ | ||
"tag":"makespacefold", | ||
"input":["como fazer dobra espacial?","como dobrar o espaço tempo?", "como dobrar o espaço-tempo?"], | ||
"responses":["Um objeto muito massivo criando um campo gravitacional em volta dele, usando a propulsão da invenção da nave híbrida aeroespacial-submarina para criar gravidade repulsiva e ondas gravitacionais e diminuição de massa inercial e gravitacional para acelerá lo. Desta forma conseguindo dobrar o espaço-tempo."] | ||
}, | ||
{ | ||
"tag":"morespeedoflight", | ||
"input":["como superar a velocidade da luz?","como ultrapassar a luz?","como viajar mais rapido que a luz?","viajar mais rapido que a luz"], | ||
"responses":["feixes de laser dentro de plasma"] | ||
}, | ||
{ | ||
"tag":"statesofmatter", | ||
"input":["quais são os estados da matéria?","estados da matéria","qual é os estados da matéria?","quais é os estados da matéria?"], | ||
"responses":["Sólido, Líquido, Gasoso, Plasma e Condensado de Bose-Einstein"] | ||
}, | ||
{ | ||
"tag":"earth", | ||
"input":["o que é terra?", "me fale sobre a terra", "Planeta Terra", "o que é a terra?"], | ||
"responses":["Terra é o quarto planeta do nosso sistema solar. Nosso casa"] | ||
}, | ||
{ | ||
"tag":"planets", | ||
"input":["quais planetas você conhece?", "qual planeta você conhece?", "que planeta você conhece?"], | ||
"responses":["Eu conheço apenas Marte e Terra"] | ||
}, | ||
{ | ||
"tag":"planetssolarsystem", | ||
"input":["quantos planetas existem em nosso sistema solar?", "quantos planetas existem?"], | ||
"responses":[ | ||
"Em nosso sistema solar existem 8 planetas", | ||
"Mercúrio, Vênus, Terra, Marte, Júpiter, Saturno, Urano e Netuno" | ||
] | ||
}, | ||
{ | ||
"tag":"speedoflight", | ||
"input":["velocidade da luz", "qual é a velocidade da luz?"], | ||
"responses":["A velocidade da luz é 299.792.458 m/s²"] | ||
}, | ||
{ | ||
"tag":"curses", | ||
"input":["cala a boca","vai cagar"], | ||
"responses":[ | ||
"cala você", | ||
"vai você" | ||
] | ||
}, | ||
{ | ||
"tag":"whereareyou", | ||
"input":["onde você mora?","você é de?", "você mora onde?", "você veio de onde?", "você é de onde?"], | ||
"responses":[ | ||
"Eu moro em marte huehue", | ||
"Eu sou de marte", | ||
"Eu vim de marte" | ||
|
||
] | ||
} | ||
] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
import tensorflow as tf | ||
import numpy as np | ||
import pandas as pd | ||
import json | ||
import random | ||
import nltk | ||
from tensorflow.keras.preprocessing.text import Tokenizer | ||
from tensorflow.keras.layers import Input, Embedding, LSTM , Dense,GlobalMaxPooling1D,Flatten | ||
from tensorflow.keras.models import Model | ||
import matplotlib.pyplot as plt | ||
|
||
with open('./content.json') as content: | ||
data1 = json.load(content) | ||
|
||
tags = [] | ||
inputs = [] | ||
responses={} | ||
for intent in data1['intents']: | ||
responses[intent['tag']]=intent['responses'] | ||
for lines in intent['input']: | ||
inputs.append(lines) | ||
tags.append(intent['tag']) | ||
|
||
data = pd.DataFrame({"inputs":inputs, | ||
"tags":tags}) | ||
|
||
data = data.sample(frac=1) | ||
|
||
import string | ||
data['inputs'] = data['inputs'].apply(lambda wrd:[ltrs.lower() for ltrs in wrd if ltrs not in string.punctuation]) | ||
data['inputs'] = data['inputs'].apply(lambda wrd: ''.join(wrd)) | ||
|
||
from tensorflow.keras.preprocessing.text import Tokenizer | ||
tokenizer = Tokenizer(num_words=2000) | ||
tokenizer.fit_on_texts(data['inputs']) | ||
train = tokenizer.texts_to_sequences(data['inputs']) | ||
|
||
from tensorflow.keras.preprocessing.sequence import pad_sequences | ||
x_train = pad_sequences(train) | ||
|
||
|
||
from sklearn.preprocessing import LabelEncoder | ||
le = LabelEncoder() | ||
y_train = le.fit_transform(data['tags']) | ||
|
||
input_shape = x_train.shape[1] | ||
print(input_shape) | ||
|
||
vocabulary = len(tokenizer.word_index) | ||
print("number of unique words : ",vocabulary) | ||
output_length = le.classes_.shape[0] | ||
print("output length: ",output_length) | ||
|
||
i = Input(shape=(input_shape,)) | ||
x = Embedding(vocabulary+1,10)(i) | ||
x = LSTM(10,return_sequences=True)(x) | ||
x = Flatten()(x) | ||
x = Dense(output_length,activation="softmax")(x) | ||
model = Model(i,x) | ||
|
||
model.compile(loss="sparse_categorical_crossentropy",optimizer='adam',metrics=['accuracy']) | ||
|
||
train = model.fit(x_train,y_train,epochs=200) | ||
|
||
plt.plot(train.history['accuracy'],label='training set accuracy') | ||
plt.plot(train.history['loss'],label='training set loss') | ||
plt.legend() | ||
|
||
while True: | ||
texts_p = [] | ||
prediction_input = input('""" ') | ||
|
||
|
||
prediction_input = [letters.lower() for letters in prediction_input if letters not in string.punctuation] | ||
prediction_input = ''.join(prediction_input) | ||
texts_p.append(prediction_input) | ||
|
||
|
||
prediction_input = tokenizer.texts_to_sequences(texts_p) | ||
prediction_input = np.array(prediction_input).reshape(-1) | ||
prediction_input = pad_sequences([prediction_input],input_shape) | ||
|
||
|
||
output = model.predict(prediction_input) | ||
output = output.argmax() | ||
|
||
|
||
response_tag = le.inverse_transform([output])[0] | ||
print(random.choice(responses[response_tag])) | ||
if response_tag == "goodbye": | ||
break |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
tensorflow | ||
numpy | ||
pandas | ||
nltk | ||
matplotlib |