import streamlit as st import pandas as pd from preprocess_data import preprocess_text,get_stopwords from datasets import load_dataset from transformers import pipeline from wordnet import wordnet_pipeline dataset = load_dataset('danielcd99/imdb') dataframes = {} for split in dataset.keys(): # Convert the dataset split to a pandas DataFrame df = dataset[split].to_pandas() dataframes[split] = df MODEL_PATH = 'danielcd99/BERT_imdb' def load_pipeline(): pipe=pipeline( "text-classification", model=MODEL_PATH ) return pipe pipe = load_pipeline() TITLE_TEXT = f"IMDB reviews" DESCRIPTION_TEXT = f"Esta é uma aplicação para o trabalho de NLP. Utilizamos a base de dados de reviews do IMDb com 50.000 comentários entre positivos e negativos (a base está balanceada). Por meio desta interface é possível visualizar como os exemplos da nossa base de teste foram classificados com um BERT treinado para esta task." st.title(TITLE_TEXT) st.write(DESCRIPTION_TEXT) if st.button('Encontre exemplos!'): df = df.sample(5) get_stopwords() df['preprocessed_review'] = df['review'].copy() df['preprocessed_review'] = df['preprocessed_review'].apply(preprocess_text) predictions = [] for review in df['preprocessed_review']: try: label = pipe(review)[0]['label'] except: st.error("Ocorreu um erro de carregamento, tente novamente!") if label == 'LABEL_0': predictions.append('Negative') else: predictions.append('Positive') df['bert_results'] = predictions df['wordnet_results'] = wordnet_pipeline(df, 'preprocessed_review') cols = ['review','sentiment', 'bert_results', 'wordnet_results'] st.table(df[cols])