JERNGOC commited on
Commit
43991fd
·
verified ·
1 Parent(s): c2f4b36

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +51 -10
app.py CHANGED
@@ -26,9 +26,6 @@ download_font(font_url, font_path)
26
  # 設置字體
27
  font_prop = FontProperties(fname=font_path)
28
 
29
- # 讀取繁體中文詞典
30
- # jieba.set_dictionary('path_to_your_dict.txt') # 繁體中文詞典的實際路徑,若需要繁體字典請取消註解並設置正確路徑
31
-
32
  # 定義斷詞函數
33
  def jieba_tokenizer(text):
34
  return jieba.lcut(text)
@@ -56,27 +53,71 @@ def plot_keywords(keywords, title):
56
  plt.yticks(fontproperties=font_prop)
57
  st.pyplot(plt)
58
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
59
  # 建立Streamlit網頁應用程式
60
- st.title("中文關鍵詞提取工具")
 
61
 
62
- doc = st.text_area("請輸入文章:")
63
 
64
- if st.button("提取關鍵詞"):
65
  if doc:
66
  keywords = extract_keywords(doc)
67
- st.write("關鍵詞提取結果:")
68
  for keyword in keywords:
69
- st.write(f"{keyword[0]}: {keyword[1]:.4f}")
70
 
71
  plot_keywords(keywords, "關鍵詞提取結果")
72
 
73
  # 使用另一個模型進行關鍵詞提取
74
  kw_model_multilingual = KeyBERT(model='distiluse-base-multilingual-cased-v1')
75
  keywords_multilingual = kw_model_multilingual.extract_keywords(doc, vectorizer=vectorizer)
76
- st.write("多語言模型關鍵詞提取結果:")
77
  for keyword in keywords_multilingual:
78
- st.write(f"{keyword[0]}: {keyword[1]:.4f}")
79
 
80
  plot_keywords(keywords_multilingual, "多語言模型關鍵詞提取結果")
81
  else:
82
  st.write("請輸入文章內容以進行關鍵詞提取。")
 
 
 
26
  # 設置字體
27
  font_prop = FontProperties(fname=font_path)
28
 
 
 
 
29
  # 定義斷詞函數
30
  def jieba_tokenizer(text):
31
  return jieba.lcut(text)
 
53
  plt.yticks(fontproperties=font_prop)
54
  st.pyplot(plt)
55
 
56
+ # 自定義CSS
57
+ st.markdown(
58
+ """
59
+ <style>
60
+ .main {
61
+ background-color: #f0f2f6;
62
+ padding: 2rem;
63
+ border-radius: 10px;
64
+ }
65
+ .title {
66
+ font-size: 2.5rem;
67
+ color: #4b8bbe;
68
+ text-align: center;
69
+ margin-bottom: 1.5rem;
70
+ }
71
+ .textarea {
72
+ font-size: 1.2rem;
73
+ }
74
+ .button {
75
+ background-color: #4b8bbe;
76
+ color: white;
77
+ font-size: 1.2rem;
78
+ padding: 0.5rem 1rem;
79
+ border-radius: 5px;
80
+ margin-top: 1rem;
81
+ margin-bottom: 2rem;
82
+ }
83
+ .keywords {
84
+ font-size: 1.5rem;
85
+ color: #333;
86
+ margin-top: 2rem;
87
+ }
88
+ .keyword-item {
89
+ font-size: 1.2rem;
90
+ margin: 0.5rem 0;
91
+ }
92
+ </style>
93
+ """,
94
+ unsafe_allow_html=True
95
+ )
96
+
97
  # 建立Streamlit網頁應用程式
98
+ st.markdown('<div class="main">', unsafe_allow_html=True)
99
+ st.markdown('<div class="title">中文關鍵詞提取工具</div>', unsafe_allow_html=True)
100
 
101
+ doc = st.text_area("請輸入文章:", height=200, key="input_text")
102
 
103
+ if st.button("提取關鍵詞", key="extract_button"):
104
  if doc:
105
  keywords = extract_keywords(doc)
106
+ st.markdown('<div class="keywords">關鍵詞提取結果:</div>', unsafe_allow_html=True)
107
  for keyword in keywords:
108
+ st.markdown(f'<div class="keyword-item">{keyword[0]}: {keyword[1]:.4f}</div>', unsafe_allow_html=True)
109
 
110
  plot_keywords(keywords, "關鍵詞提取結果")
111
 
112
  # 使用另一個模型進行關鍵詞提取
113
  kw_model_multilingual = KeyBERT(model='distiluse-base-multilingual-cased-v1')
114
  keywords_multilingual = kw_model_multilingual.extract_keywords(doc, vectorizer=vectorizer)
115
+ st.markdown('<div class="keywords">多語言模型關鍵詞提取結果:</div>', unsafe_allow_html=True)
116
  for keyword in keywords_multilingual:
117
+ st.markdown(f'<div class="keyword-item">{keyword[0]}: {keyword[1]:.4f}</div>', unsafe_allow_html=True)
118
 
119
  plot_keywords(keywords_multilingual, "多語言模型關鍵詞提取結果")
120
  else:
121
  st.write("請輸入文章內容以進行關鍵詞提取。")
122
+
123
+ st.markdown('</div>', unsafe_allow_html=True)