awacke1's picture
Update app.py
59de104
# Step 1: Install the required libraries
#!pip install streamlit plotly transformers
# Step 2: Load the Huggingface model for sentiment analysis
import transformers
import torch
model_name = "nlptown/bert-base-multilingual-uncased-sentiment"
tokenizer = transformers.AutoTokenizer.from_pretrained(model_name)
model = transformers.AutoModelForSequenceClassification.from_pretrained(model_name)
# Step 3: Create a function to analyze the sentiment of text using the Huggingface model
def analyze_sentiment(text):
inputs = tokenizer(text, return_tensors="pt")
outputs = model(**inputs)
scores = torch.nn.functional.softmax(outputs.logits, dim=1).detach().numpy()[0]
sentiment = scores.argmax()
return sentiment
# Step 4: Define a Python list dictionary of the top five largest hospitals in the state of Minnesota
hospital_data = [
{
"name": "Mayo Clinic",
"beds": 1500,
"latitude": 44.023501,
"longitude": -92.465032,
"url": "https://www.mayoclinic.org/appointments"
},
{
"name": "University of Minnesota Medical Center",
"beds": 1077,
"latitude": 44.969478,
"longitude": -93.236351,
"url": "https://www.mhealth.org/ummc"
},
{
"name": "Abbott Northwestern Hospital",
"beds": 1034,
"latitude": 44.952221,
"longitude": -93.266389,
"url": "https://www.allinahealth.org/locations/abbott-northwestern-hospital"
},
{
"name": "St. Cloud Hospital",
"beds": 489,
"latitude": 45.554935,
"longitude": -94.171829,
"url": "https://www.centracare.com/locations/st-cloud-hospital/"
},
{
"name": "Essentia Health-St. Mary's Medical Center",
"beds": 391,
"latitude": 46.783839,
"longitude": -92.103965,
"url": "https://www.essentiahealth.org/find-facility/profile/st-marys-medical-center-duluth/"
}
]
# Step 5: Save the Python list dictionary as a CSV file
import csv
with open("hospital_data.csv", mode="w", newline="") as file:
writer = csv.DictWriter(file, fieldnames=["name", "beds", "latitude", "longitude", "url"])
writer.writeheader()
for hospital in hospital_data:
writer.writerow(hospital)
# Step 6: Create a Streamlit app that uses Plotly graph objects like treemap to visualize the sentiment analysis results and the hospital data
import streamlit as st
import plotly.express as px
st.title("Sentiment Analysis and Hospital Data Visualization")
# Sentiment analysis section
st.header("Sentiment Analysis")
text = st.text_input("Enter some text:")
if text:
sentiment = analyze_sentiment(text)
st.write("Sentiment:", sentiment)
# Hospital data section
st.header("Hospital Data")
df = px.data.tips()
fig = px.treemap(hospital_data, path=["name"], values="beds", color="beds")
st.plotly_chart(fig)