import pybase64 as base64 import pandas as pd import streamlit as st import seaborn as sns from data_cleaning import preprocess from transformers import pipeline from data_integration import scrape_all_pages page_bg_img = """ """ st.markdown(page_bg_img, unsafe_allow_html=True) #st.image("logo.png", width=200, height=200) st.image("logo.png", width=80) st.subheader(':violet[NLP HUB®]') st.markdown("") st.markdown("") st.markdown("") st.markdown("") st.subheader('Amazon Sentiment Analysis using FineTuned :red[GPT-2] Pre-Trained Model') @st.cache_resource(experimental_allow_widgets=True) def load_model(): sentiment_model = pipeline(model="ashok2216/gpt2-amazon-sentiment-classifier") return sentiment_model model = load_model() sample_url = 'https://www.amazon.in/Dell-Inspiron-i7-1255U-Processor-Platinum/product-reviews/B0C9F142V6/ref=cm_cr_dp_d_show_all_btm?ie=UTF8&reviewerType=all_reviews' url = st.text_input("Amazon product link", sample_url) st.button("Re-run") st.write("Done") st.subheader('', divider='rainbow') try: all_reviews = scrape_all_pages(url) # Convert to DataFrame for further analysis reviews = pd.DataFrame(all_reviews) reviews['processed_text'] = reviews['content'].apply(preprocess) # st.dataframe(reviews, use_container_width=True) # st.markdown(sentiment_model(['It is Super!'])) sentiments = [] for text in reviews['processed_text']: if list(model(text)[0].values())[0] == 'LABEL_1': output = 'Positive' else: output = 'Negative' sentiments.append(output) reviews['sentiments'] = sentiments st.markdown(':white[Output]') st.dataframe(reviews, use_container_width=True) # sns.countplot(reviews['sentiments']) except KeyError: st.markdown('Please :red[Re-run] the app')