820nam commited on
Commit
8c99ecb
·
verified ·
1 Parent(s): 0d5a75b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -4
app.py CHANGED
@@ -2,6 +2,7 @@ import streamlit as st
2
  import requests
3
  from transformers import pipeline
4
  import pandas as pd
 
5
 
6
  # Step 1: 네이버 뉴스 API 호출 함수
7
  def fetch_naver_news(query, display=10, start=1, sort="date"):
@@ -42,7 +43,6 @@ def classify_political_sentiment(text, classifier):
42
 
43
  sentiment_score = score if label == "POSITIVE" else -score
44
 
45
- # 키워드 기반 분류 (진보/보수)
46
  progressive_keywords = ["복지", "평등", "민주", "환경", "사회적 책임"]
47
  conservative_keywords = ["안보", "전통", "경제", "성장", "질서", "국방"]
48
 
@@ -76,8 +76,7 @@ def analyze_news_political_orientation(news_items, classifier):
76
 
77
  return results, detailed_results
78
 
79
-
80
- # Streamlit 앱 시작
81
  st.title("정치 성향 분석 대시보드")
82
  st.markdown("### 네이버 뉴스 데이터를 실시간으로 수집하고 정치 성향을 분석합니다.")
83
 
@@ -107,10 +106,19 @@ if st.button("분석 시작"):
107
  st.write(f"보수: {results['보수']}건")
108
  st.write(f"중립: {results['중립']}건")
109
 
110
- # 성향 분포 차트
111
  st.subheader("성향 분포 차트")
112
  st.bar_chart(pd.DataFrame.from_dict(results, orient='index', columns=["건수"]))
113
 
 
 
 
 
 
 
 
 
 
114
  # 세부 결과 출력
115
  st.subheader("세부 결과")
116
  df = pd.DataFrame(detailed_results)
 
2
  import requests
3
  from transformers import pipeline
4
  import pandas as pd
5
+ import matplotlib.pyplot as plt
6
 
7
  # Step 1: 네이버 뉴스 API 호출 함수
8
  def fetch_naver_news(query, display=10, start=1, sort="date"):
 
43
 
44
  sentiment_score = score if label == "POSITIVE" else -score
45
 
 
46
  progressive_keywords = ["복지", "평등", "민주", "환경", "사회적 책임"]
47
  conservative_keywords = ["안보", "전통", "경제", "성장", "질서", "국방"]
48
 
 
76
 
77
  return results, detailed_results
78
 
79
+ # Step 5: Streamlit 앱 시작
 
80
  st.title("정치 성향 분석 대시보드")
81
  st.markdown("### 네이버 뉴스 데이터를 실시간으로 수집하고 정치 성향을 분석합니다.")
82
 
 
106
  st.write(f"보수: {results['보수']}건")
107
  st.write(f"중립: {results['중립']}건")
108
 
109
+ # 성향 분포 차트 (막대 차트)
110
  st.subheader("성향 분포 차트")
111
  st.bar_chart(pd.DataFrame.from_dict(results, orient='index', columns=["건수"]))
112
 
113
+ # 성향 분포 차트 (matplotlib로 추가된 시각화)
114
+ st.subheader("성향 분포 (세부 차트)")
115
+ fig, ax = plt.subplots()
116
+ ax.bar(results.keys(), results.values())
117
+ ax.set_xlabel("성향")
118
+ ax.set_ylabel("건수")
119
+ ax.set_title("성향 분포 차트")
120
+ st.pyplot(fig)
121
+
122
  # 세부 결과 출력
123
  st.subheader("세부 결과")
124
  df = pd.DataFrame(detailed_results)