820nam commited on
Commit
82d33ff
ยท
verified ยท
1 Parent(s): 4f7bc9c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +8 -8
app.py CHANGED
@@ -9,6 +9,7 @@ from sklearn.metrics import classification_report, accuracy_score
9
  import joblib
10
  import matplotlib.pyplot as plt
11
  import seaborn as sns
 
12
 
13
  # Streamlit ํŽ˜์ด์ง€ ์„ค์ •
14
  st.set_page_config(page_title="์ •์น˜์  ์„ฑํ–ฅ ๋ถ„์„ ๋ฐ ๋ฐ˜๋Œ€ ๊ด€์  ์ƒ์„ฑ", page_icon="๐Ÿ“ฐ", layout="wide")
@@ -34,9 +35,9 @@ def fetch_naver_news(query, display=15):
34
  }
35
  params = {
36
  "query": query,
37
- "display": display,
38
  "start": 1,
39
- "sort": "date",
40
  }
41
 
42
  response = requests.get(url, headers=headers, params=params)
@@ -75,7 +76,6 @@ def incremental_training(texts, labels, model, vectorizer):
75
  joblib.dump(vectorizer, "tfidf_vectorizer.pkl")
76
  return model, vectorizer
77
 
78
-
79
  # GPT-4๋ฅผ ์ด์šฉํ•ด ๋ฐ˜๋Œ€ ๊ด€์  ๊ธฐ์‚ฌ ์ƒ์„ฑ
80
  def generate_article_gpt4(prompt):
81
  try:
@@ -100,12 +100,12 @@ st.markdown("๋„ค์ด๋ฒ„ ๋‰ด์Šค์™€ ํ—ˆ๊น…ํŽ˜์ด์Šค ๋ฐ์ดํ„ฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‰ด
100
  huggingface_data = load_huggingface_data()
101
  query = st.text_input("๋„ค์ด๋ฒ„ ๋‰ด์Šค์—์„œ ๊ฒ€์ƒ‰ํ•  ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", value="์ •์น˜")
102
 
 
103
  if st.button("๋ฐ์ดํ„ฐ ๊ฒฐํ•ฉ ๋ฐ ํ•™์Šต"):
104
  texts, labels = combine_datasets(huggingface_data, fetch_naver_news(query))
105
  model, vectorizer = initialize_model()
106
  model, vectorizer = incremental_training(texts, labels, model, vectorizer)
107
- st.success("๋ชจ๋ธ์ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋กœ ์ถ”๊ฐ€ ํ•™์Šต๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
108
-
109
  # ์„ฑ๋Šฅ ํ‰๊ฐ€
110
  X_test = vectorizer.transform(texts)
111
  y_test = [0 if label == "Democrat" else 1 if label == "Republican" else 2 for label in labels]
@@ -114,11 +114,11 @@ if st.button("๋ฐ์ดํ„ฐ ๊ฒฐํ•ฉ ๋ฐ ํ•™์Šต"):
114
  st.write(f"๋ชจ๋ธ ์ •ํ™•๋„: {accuracy:.2f}")
115
  st.text("๋ถ„๋ฅ˜ ๋ฆฌํฌํŠธ:")
116
  st.text(classification_report(y_test, y_pred, target_names=["Democrat", "Republican", "NEUTRAL"]))
 
117
 
118
  # ๋‰ด์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ๋ฐ˜๋Œ€ ๊ด€์  ๊ธฐ์‚ฌ ์ƒ์„ฑ
119
  if st.button("๋‰ด์Šค ์„ฑํ–ฅ ๋ถ„์„"):
120
- # Hugging Face ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ชจ๋ธ ๋กœ๋“œ
121
- model, vectorizer = load_model_from_huggingface(directory="huggingface_model")
122
  news_items = fetch_naver_news(query, display=15) # ๋‰ด์Šค 15๊ฐœ ๊ฐ€์ ธ์˜ค๊ธฐ
123
 
124
  if news_items:
@@ -144,4 +144,4 @@ if st.button("๋‰ด์Šค ์„ฑํ–ฅ ๋ถ„์„"):
144
  st.write(f"**์„ฑํ–ฅ:** {sentiment}")
145
  st.write(f"**๋ฐ˜๋Œ€ ๊ด€์  ๊ธฐ์‚ฌ:** {opposite_article}")
146
  st.write(f"**๋งํฌ:** [๊ธฐ์‚ฌ ๋งํฌ]({link})")
147
- st.markdown("---")
 
9
  import joblib
10
  import matplotlib.pyplot as plt
11
  import seaborn as sns
12
+ from pathlib import Path
13
 
14
  # Streamlit ํŽ˜์ด์ง€ ์„ค์ •
15
  st.set_page_config(page_title="์ •์น˜์  ์„ฑํ–ฅ ๋ถ„์„ ๋ฐ ๋ฐ˜๋Œ€ ๊ด€์  ์ƒ์„ฑ", page_icon="๐Ÿ“ฐ", layout="wide")
 
35
  }
36
  params = {
37
  "query": query,
38
+ "display": display, # ๋‰ด์Šค 15๊ฐœ ๊ฐ€์ ธ์˜ค๊ธฐ
39
  "start": 1,
40
+ "sort": "date", # ์ตœ์‹ ์ˆœ์œผ๋กœ ์ •๋ ฌ
41
  }
42
 
43
  response = requests.get(url, headers=headers, params=params)
 
76
  joblib.dump(vectorizer, "tfidf_vectorizer.pkl")
77
  return model, vectorizer
78
 
 
79
  # GPT-4๋ฅผ ์ด์šฉํ•ด ๋ฐ˜๋Œ€ ๊ด€์  ๊ธฐ์‚ฌ ์ƒ์„ฑ
80
  def generate_article_gpt4(prompt):
81
  try:
 
100
  huggingface_data = load_huggingface_data()
101
  query = st.text_input("๋„ค์ด๋ฒ„ ๋‰ด์Šค์—์„œ ๊ฒ€์ƒ‰ํ•  ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", value="์ •์น˜")
102
 
103
+ # ๋ฐ์ดํ„ฐ ๊ฒฐํ•ฉ ๋ฐ ํ•™์Šต
104
  if st.button("๋ฐ์ดํ„ฐ ๊ฒฐํ•ฉ ๋ฐ ํ•™์Šต"):
105
  texts, labels = combine_datasets(huggingface_data, fetch_naver_news(query))
106
  model, vectorizer = initialize_model()
107
  model, vectorizer = incremental_training(texts, labels, model, vectorizer)
108
+
 
109
  # ์„ฑ๋Šฅ ํ‰๊ฐ€
110
  X_test = vectorizer.transform(texts)
111
  y_test = [0 if label == "Democrat" else 1 if label == "Republican" else 2 for label in labels]
 
114
  st.write(f"๋ชจ๋ธ ์ •ํ™•๋„: {accuracy:.2f}")
115
  st.text("๋ถ„๋ฅ˜ ๋ฆฌํฌํŠธ:")
116
  st.text(classification_report(y_test, y_pred, target_names=["Democrat", "Republican", "NEUTRAL"]))
117
+ st.success("๋ชจ๋ธ์ด ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋กœ ์ถ”๊ฐ€ ํ•™์Šต๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
118
 
119
  # ๋‰ด์Šค ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ๋ฐ˜๋Œ€ ๊ด€์  ๊ธฐ์‚ฌ ์ƒ์„ฑ
120
  if st.button("๋‰ด์Šค ์„ฑํ–ฅ ๋ถ„์„"):
121
+ model, vectorizer = initialize_model()
 
122
  news_items = fetch_naver_news(query, display=15) # ๋‰ด์Šค 15๊ฐœ ๊ฐ€์ ธ์˜ค๊ธฐ
123
 
124
  if news_items:
 
144
  st.write(f"**์„ฑํ–ฅ:** {sentiment}")
145
  st.write(f"**๋ฐ˜๋Œ€ ๊ด€์  ๊ธฐ์‚ฌ:** {opposite_article}")
146
  st.write(f"**๋งํฌ:** [๊ธฐ์‚ฌ ๋งํฌ]({link})")
147
+ st.markdown("---")