cychristophercyc's picture
Update app.py
33d6c6d verified
import streamlit as st
import pandas as pd
from io import StringIO
import csv
from transformers import pipeline
# Load the text classification model pipeline
classifier = pipeline("text-classification", model="cychristophercyc/Group12_CustomModel_victory", return_all_scores=True)
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
# Streamlit application title
st.title("News Categorization")
st.write("Upload a CVS file containing content in 'content' column")
list_of_dictionaries = []
genre = st.radio(
"What's your Chosen Category",
[":rainbow[Business and Finance]",
":rainbow[Health and Wellness]",
":rainbow[Sports]",
":rainbow[Arts, Culture, and Entertainment]",
":rainbow[Politics]",
":rainbow[Science and Technology]",
],
)
if genre == ':rainbow[Business and Finance]':
st.write('You selected Business and Finance.')
select = "Business and Finance"
if genre == ':rainbow[Health and Wellness]':
st.write('You selected Health and Wellness.')
select = "Health and Wellness"
if genre == ':rainbow[Sports]':
st.write('You selected Sports.')
select = "Sports"
if genre == ':rainbow[Arts, Culture, and Entertainment]':
st.write('You selected Arts, Culture, and Entertainment.')
select = "Arts, Culture, and Entertainment"
if genre == ':rainbow[Politics]':
st.write('You selected Politics.')
select = "Politics"
if genre == ':rainbow[Science and Technology]':
st.write('You selected Science and Technology.')
select = "Science and Technology"
# upload file
uploaded_file = st.file_uploader("Choose a file")
if uploaded_file is not None:
dataframe = pd.read_csv(uploaded_file)
# Continue with your Streamlit app logic, e.g., displaying the DataFrame
st.write(dataframe)
# rest of your code to process the dataframe
else:
# You can choose to write an error message or just do nothing
st.write("Please upload a CSV file to proceed.")
if st.button("Classify"):
# Perform text classification on the input text
for n in range(len(dataframe)):
results = classifier(dataframe['content'].iloc[n])[0]
# Display the classification result
max_score = float('-inf')
max_label = ''
for result in results:
if result['score'] > max_score:
max_score = result['score']
max_label = result['label']
new_dictionary = {
"Text":dataframe['content'].iloc[n],
"Label" : max_label
}
list_of_dictionaries.append(new_dictionary)
filtered_list = [d for d in list_of_dictionaries if d['Label'].strip() == select]
st.write("Total number of Summary generated :" , len(filtered_list))
for m in range(len(filtered_list)):
summarize = summarizer(filtered_list[m]['Text'])[0]
st.write(f"Summary No.{m}:", summarize)