Spaces:
Sleeping
Sleeping
| 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]) | |