File size: 1,963 Bytes
14536de
 
 
 
63de343
1ba6bc3
14536de
63de343
14536de
 
 
 
 
 
 
11533ba
 
 
 
63de343
 
 
11533ba
 
 
 
 
 
 
 
 
c680111
 
14536de
 
 
 
 
 
 
 
 
11533ba
 
bb80e71
8b50086
 
 
c1392df
8b50086
11533ba
 
 
 
 
1ba6bc3
 
11533ba
1ba6bc3
14536de
 
 
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
62
63
import streamlit as st
import pandas as pd
from preprocess_data import preprocess_text,get_stopwords
from datasets import load_dataset
from transformers import AutoTokenizer, pipeline
from wordnet import wordnet_pipeline

dataset = load_dataset('AndreMitri/rotten_tomatos')

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():
    tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH)
    tokenizer.model_max_length = 200

    pipe=pipeline(
    "text-classification",
    model=MODEL_PATH
    )
    return pipe

pipe = load_pipeline()


TITLE_TEXT = f"Movie reviews"
DESCRIPTION_TEXT = f"Esta é uma aplicação para o trabalho de NLP. Nosso modelo foi treinado em uma base de 50.000 reviews de filmes do IMDB, classificados como positivos ou negativos (a base está balanceada). Por meio desta interface é possível visualizar como os exemplos de outra base de reviews, do site Rotten Tomatoes foram classificados com as nossas soluções simbólica e neural."

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])