diff --git a/api/NbEmotionsModel.py b/api/NbEmotionsModel.py index 07c68c3d..4bf58cc2 100644 --- a/api/NbEmotionsModel.py +++ b/api/NbEmotionsModel.py @@ -7,12 +7,16 @@ #tfidf_vectorizer = TfidfVectorizer(use_idf=True) def make_prediction(my_sentence): - with open("./models/nb_emotion.pkl", "rb") as f: - model = pickle.load(f) + model_file = "./models/emotions_pipeline.pkl" + try: + # Carregando o pipeline do arquivo .pkl + with open(model_file, 'rb') as model_file: + pipeline = pickle.load(model_file) - with open("./models/tfidf_vectorizer_em.pkl", 'rb') as f: - tfidf_vectorizer = pickle.load(f) + # Fazendo previsões para os textos + predictions = pipeline.predict([texts]) - new_sentence = tfidf_vectorizer.transform([my_sentence]) - prediction = model.predict(new_sentence) - return prediction[0] \ No newline at end of file + return predictions[0] + + except Exception as e: + return str(e) \ No newline at end of file diff --git a/api/models/emotion_pipeline.pkl b/api/models/emotion_pipeline.pkl new file mode 100644 index 00000000..44ce44ed Binary files /dev/null and b/api/models/emotion_pipeline.pkl differ diff --git a/api/models/linear_reg.pkl b/api/models/linear_reg.pkl deleted file mode 100644 index 8006301d..00000000 Binary files a/api/models/linear_reg.pkl and /dev/null differ diff --git a/api/models/nb_emotion.pkl b/api/models/nb_emotion.pkl deleted file mode 100644 index 0f5c3d5a..00000000 Binary files a/api/models/nb_emotion.pkl and /dev/null differ diff --git a/api/models/text_classification_pipeline.pkl b/api/models/news_classification.pkl similarity index 100% rename from api/models/text_classification_pipeline.pkl rename to api/models/news_classification.pkl diff --git a/api/models/tfidf_vectorizer_em.pkl b/api/models/tfidf_vectorizer_em.pkl deleted file mode 100644 index c299f968..00000000 Binary files a/api/models/tfidf_vectorizer_em.pkl and /dev/null differ diff --git a/api/models/vectorizer_lin.pkl b/api/models/vectorizer_lin.pkl deleted file mode 100644 index bcf495e8..00000000 Binary files a/api/models/vectorizer_lin.pkl and /dev/null differ diff --git a/api/models_code/nb_emotions.py b/api/models_code/nb_emotions.py index 4c861327..6767d644 100644 --- a/api/models_code/nb_emotions.py +++ b/api/models_code/nb_emotions.py @@ -1,5 +1,8 @@ import pandas as pd import pickle +from sklearn.pipeline import make_pipeline +from sklearn.feature_extraction.text import CountVectorizer +from sklearn.feature_extraction.text import TfidfVectorizer # bag of words from sklearn.feature_extraction.text import TfidfVectorizer @@ -10,15 +13,12 @@ df = pd.read_csv('../training_df/tweet_emotions.csv') train_data, test_data, train_target, test_target = train_test_split(df["content"], df["sentiment"], test_size=0.2, shuffle=True) -tfidf_vectorizer = TfidfVectorizer(use_idf=True) -X_train_vectors_tfidf = tfidf_vectorizer.fit_transform(train_data) -X_test_vectors_tfidf = tfidf_vectorizer.transform(test_data) - -nb_tfidf = MultinomialNB(alpha = 0) -nb_tfidf.fit(X_train_vectors_tfidf, train_target) +# Criando um pipeline com o vetorizador TF-IDF e o classificador Multinomial Naive Bayes +pipeline = make_pipeline(TfidfVectorizer(), MultinomialNB()) -with open("../models/nb_emotion.pkl", "wb") as f: - pickle.dump(nb_tfidf, f) +# Ajustando o modelo ao conjunto de treinamento +pipeline.fit(train_data, train_target) -with open("../models/tfidf_vectorizer_em.pkl", "wb") as f: - pickle.dump(tfidf_vectorizer, f) \ No newline at end of file +# Salvando o pipeline em um arquivo .pkl +with open("../models/emotion_pipeline.pkl", "wb") as model_file: + pickle.dump(pipeline, model_file) \ No newline at end of file