Spaces:
Sleeping
Sleeping
File size: 2,489 Bytes
885aabb 89edd24 96b6fc1 885aabb 96b6fc1 885aabb 86f6523 96b6fc1 885aabb 96b6fc1 885aabb 96b6fc1 3f152b0 96b6fc1 885aabb 96b6fc1 885aabb 96b6fc1 885aabb 96b6fc1 3f152b0 885aabb |
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 64 65 66 |
import streamlit as st
from transformers import pipeline
from translate import Translator
import time
# Load models
def load_models():
sentiment_analyzer = pipeline("text-classification", model="miltonc/distilbert-base-uncased_ft_5")
summarizer = pipeline("summarization", model="FelixChao/T5-Chinese-Summarization")
return sentiment_analyzer, summarizer
def sentiment_analysis(text, sentiment_analyzer):
try:
result = sentiment_analyzer(text)[0]["generated_text"] #Adjusted max and min lengths.
return result
except Exception as e:
print(f"sentiment_analysis error for '{text}': {e}. Returning 'sentiment_analysis Failed'")
return "sentiment_analysis Failed"
# Generate a narrative story using the GPT-2 genre-based story generator
def summarize_news(text, summarizer):
try:
summary = summarizer(text, max_length=30, min_length=10)[0]['summary_text']
return summary
except Exception as e:
print(f"Summarization error for '{text}': {e}. Returning 'Summarization Failed'")
return "Summarization Failed"
def translate_text(text_to_translate, target_language='en', source_language='zh-TW', delay=1):
translator = Translator()
try:
translation = translator.translate(text_to_translate, dest=target_language, src=source_language)
time.sleep(delay) # Add a delay to avoid rate limiting.
return translation.text
except Exception as e:
print(f"Translation error for '{text_to_translate}': {e}. Returning 'Translation Failed'")
time.sleep(delay)
return "Translation Failed"
# Main Streamlit app
def main():
st.title("AI-Powered Sentiment Analysis and Summarization")
sentiment_analyzer, summarizer = load_models()
text = st.text_area("Enter the Chinese text here.....", height=200) # Changed from file_uploader to text_area
if text: # check if text is not empty
# google translate package
with st.spinner("Analyzing sentiment..."):
text_en = translate_text(text, target_language='en', source_language='zh-TW', delay=1)
sentiment_output = sentiment_analysis(text_en, sentiment_analyzer)
st.write("### Sentiment:")
st.write(sentiment_output)
with st.spinner("Summarizing News..."):
story = summarize_news(text, summarizer)
st.write("### Summarized News:")
st.write(story)
if __name__ == "__main__":
main()
|