blazingbunny's picture
Update app.py
a70e249 verified
raw
history blame
1.79 kB
import streamlit as st
from google.cloud import language_v1
from google.oauth2 import service_account
import json
# Load credentials from Hugging Face Secrets
def load_credentials():
credentials_info = json.loads(st.secrets["GOOGLE_APPLICATION_CREDENTIALS"])
return service_account.Credentials.from_service_account_info(credentials_info)
# Create a Language Service client with the provided credentials
def get_language_client():
credentials = load_credentials()
return language_v1.LanguageServiceClient(credentials=credentials)
# Perform sentiment analysis on the input text
def analyze_sentiment(texts):
client = get_language_client()
document = language_v1.Document(content=texts, type_=language_v1.Document.Type.PLAIN_TEXT)
return client.analyze_sentiment(request={"document": document})
# Display sentiment analysis results
def display_sentiment_results(annotations):
score = annotations.document_sentiment.score
magnitude = annotations.document_sentiment.magnitude
for index, sentence in enumerate(annotations.sentences):
sentence_sentiment = sentence.sentiment.score
st.write(f"Sentence {index} has a sentiment score of {sentence_sentiment}")
st.write(f"Overall Sentiment: score of {score} with magnitude of {magnitude}")
# Main function to run the app
def main():
st.title("Sentiment Analysis App")
st.write("Enter some text to analyze its sentiment:")
text_input = st.text_area("Text to analyze", height=200)
if st.button("Analyze Sentiment"):
if text_input:
annotations = analyze_sentiment(text_input)
display_sentiment_results(annotations)
else:
st.warning("Please enter some text.")
# Run the app
if __name__ == "__main__":
main()