-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsistema.py
61 lines (49 loc) · 1.94 KB
/
sistema.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#%%
# Autor: Ícaro Gabriel Paiva Bastos
# Última modificação: 10/10/2020
# Sobre: Este script tem o objetivo de ler a frase digitada pelo usuário e fazer a previsão do sentimento
#%% Importando algumas bibliotecas
import nltk
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
import string
import pickle
from tensorflow.keras.preprocessing.sequence import pad_sequences
#%% Declarando algumas funções
# Função responsável por deixar todos os caracteres em minúsculo, remover espaços em braanco e pontuação,
def clean_text(text):
text = text.lower()
text = text.strip(' ')
text = text.translate(str.maketrans('', '', string.punctuation))
return text
# Capturando as stopwords da língua portuguesa e retirando das frases
def remove_stopwords(text):
stop_words = set(stopwords.words('portuguese'))
word_tokens = word_tokenize(text)
filtered_sentence = [w for w in word_tokens if not w in stop_words]
return filtered_sentence
# Removendo o tempo gramatical
def lemmatizer_words(text):
porter = nltk.PorterStemmer()
lemma_text = [porter.stem(t) for t in text]
return lemma_text
#%% Carregando o tokenizer, modelo
with open('./output/tokenizer.pickle', 'rb') as handle:
tok = pickle.load(handle)
with open('./output/arvore.pkl', 'rb') as file:
pickle_model = pickle.load(file)
#%%
frase = input("Olá, seja bem-vindo!\nO nosso sistema é capaz de detectar o sentimento contido em uma frase.\nDigite uma frase:")
frase = clean_text(frase)
frase = remove_stopwords(frase)
frase = lemmatizer_words(frase)
frase = tok.texts_to_sequences(frase)
frase = [list(x) for x in zip(*frase)]
x = pad_sequences(maxlen=6, sequences=frase, value=0, padding='post', truncating='post')
prediction=pickle_model.predict(x)
if(prediction[0][0] == 1):
print("Sentimento -> felicidade")
elif(prediction[0][1] == 1):
print("Sentimento -> raiva")
else:
print("Sentimento -> tristeza")