29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
# streamlit run analysis/viz/prototype_streamlit.py
|
|
from datetime import datetime
|
|
import pandas as pd
|
|
import plotly.graph_objects as go
|
|
import plotly.express as px
|
|
import streamlit as st
|
|
|
|
df = pd.read_csv(r"analysis/jobs/f452-1/review.csv")
|
|
st.set_page_config(layout="wide")
|
|
|
|
stance = st.multiselect("Filter stance", sorted(df["stance"].dropna().unique()), default=sorted(df["stance"].dropna().unique()))
|
|
q = st.text_input("Search comment text")
|
|
dff = df[df["stance"].isin(stance)]
|
|
if q:
|
|
dff = dff[dff["text"].fillna("").str.contains(q, case=False, regex=False)]
|
|
|
|
st.dataframe(dff[["comment_id", "title", "stance", "stance_confidence", "tone"]], width="stretch")
|
|
st.write("Showing " + str(len(dff))+ " comments")
|
|
|
|
cid = st.selectbox("comment", dff["comment_id"].astype(str))
|
|
row = dff[dff["comment_id"].astype(str) == cid].iloc[0]
|
|
|
|
st.subheader(row["title"])
|
|
st.write(row["text"])
|
|
st.write(row["author"] + ", " + row["date"][:10])
|
|
st.write("**model:** " + str(row["model"]))
|
|
st.markdown("**stance:** " + str(row["stance"]) + " \n**confidence:** " + str(row["stance_confidence"]) + " \n**tone:** " + str(row["tone"]))
|
|
st.write("**analysis:** "+ row["stance_rationale"])
|