Spaces:
Sleeping
Sleeping
File size: 2,122 Bytes
657d704 6dc20d1 657d704 6dc20d1 657d704 7aff10e 657d704 6dc20d1 657d704 |
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 |
import streamlit as st
import pandas as pd
from transformers import pipeline
# 1) κ°μ±λΆμ λͺ¨λΈ λΆλ¬μ€κΈ°
sentiment_analyzer = pipeline(
"sentiment-analysis",
model="monologg/koelectra-base-finetuned-nsmc",
truncation=True
)
st.title("μ΅λͺ
κ²μν κ°μ±λΆμ")
st.write("""
- CSV λλ Excel νμΌμ μ
λ‘λν΄μ£ΌμΈμ.
- 'λ΄μ©' μ΄(λλ μνλ μ΄)μ κ²μκΈ ν
μ€νΈκ° μλ€κ³ κ°μ ν©λλ€.
- μ
λ‘λ ν 'κ°μ±λΆμ μ€ν' λ²νΌμ λλ₯΄λ©΄, κ° κΈμ λν κΈμ /λΆμ λ μ΄λΈκ³Ό μ μκ° νμλ©λλ€.
""")
# 2) νμΌ μ
λ‘λ μμ ―
uploaded_file = st.file_uploader("κ²μκΈ νμΌ μ
λ‘λ (CSV λλ XLSX)", type=["csv", "xlsx"])
if uploaded_file is not None:
# 3) CSV/XLSX νλ³ ν DataFrame λ‘λ
if uploaded_file.name.endswith(".csv"):
df = pd.read_csv(uploaded_file)
else: # xlsx
df = pd.read_excel(uploaded_file)
st.write("미리보기:")
st.dataframe(df.head()) # μ
λ‘λν λ°μ΄ν° μΌλΆ νμΈ
# 4) κ°μ±λΆμ μ€ν
if st.button("κ°μ±λΆμ μ€ν"):
results_label = []
results_score = []
for text in df["λ΄μ©"]:
# κ°μ±λΆμ
result = sentiment_analyzer(text, truncation=True)
label = result[0]['label'] # positive/negative
score = result[0]['score'] # μ λ’°λ(0~1)
results_label.append(label)
results_score.append(score)
df["sentiment_label"] = results_label
df["sentiment_score"] = results_score
# 5) κ²°κ³Ό νμ
st.write("κ°μ±λΆμ κ²°κ³Ό:")
st.dataframe(df)
st.write("μλ λ²νΌμ λλ¬ κ²°κ³Όλ₯Ό CSVλ‘ λ€μ΄λ‘λν μλ μμ΅λλ€.")
# 6) CSV λ€μ΄λ‘λ λ²νΌ
csv_data = df.to_csv(index=False).encode('utf-8-sig')
st.download_button(
label="κ²°κ³Ό CSV λ€μ΄λ‘λ",
data=csv_data,
file_name="sentiment_analysis_result.csv",
mime="text/csv"
)
|