import pandas as pd from langdetect import detect, DetectorFactory from langdetect.lang_detect_exception import LangDetectException import streamlit as st from transformers import pipeline # Load the text summarization model pipeline summarizer = pipeline("summarization", model="Falconsai/text_summarization") # Load the text classification model pipeline classifier = pipeline("text-classification", model='Rainess/Finturned-Music-Sentiment') def summary_song(text): input_length = len(text) if input_length < 200: return text # Return original text if length is less than 200 else: max_length = 200 min_length = 50 summary = summarizer(text, max_length=max_length, min_length=min_length, truncation=True) summarized_text = summary[0]['summary_text'] return summarized_text # Streamlit application title st.title("Text Summarization and Sentiment Classification for Music Lyrics") st.write("Classify the sentiment of summarized lyrics as Positive or Negative") # Text input for user to enter the lyrics text = st.text_area("Enter the lyrics to summarize and classify", "") # Perform text summarization and classification when the user clicks the "Summarize and Classify" button if st.button("Summarize and Classify"): if text.strip(): try: # Perform text summarization on the input lyrics summarized_text = summary_song(text) # Perform text classification on the summarized text result = classifier(summarized_text)[0] # Extract the classification label and score max_label = result['label'] max_score = result['score'] # Map label to sentiment sentiment = "Positive" if max_label == "POSITIVE" else "Negative" # Display the summarized text and classification result st.write("Original Lyrics:", text) st.write("Summarized Text:", summarized_text) st.write("Sentiment:", sentiment) st.write("Score:", max_score) except Exception as e: st.write("Error processing the text:", str(e)) else: st.write("Please enter some lyrics to summarize and classify.")