File size: 1,162 Bytes
269ce87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import re
import gradio as gr

def analyze_word_freq(text):
    # 1. 文字全部轉為小寫 (lowercase)
    # 2. 用正規表達式擷取 (a-z, A-Z) 字母串
    words = re.findall(r"[a-zA-Z]+", text.lower())
    
    # 建立詞頻字典
    freq = {}
    for w in words:
        freq[w] = freq.get(w, 0) + 1
    
    # 以 (頻率 desc, 單字 asc) 排序
    sorted_freq = sorted(freq.items(), key=lambda x: (-x[1], x[0]))
    
    # 最終輸出格式: 一行一個 "word : count"
    # 您可以改成您想要的其他格式
    results = []
    for word, count in sorted_freq:
        results.append(f"{word} : {count}")
    
    # 回傳字串, 並用換行符號串起來
    return "\n".join(results)

# 建立 Gradio 的介面
iface = gr.Interface(
    fn=analyze_word_freq,          # 主要執行的函式
    inputs="text",                 # 輸入為一段文字
    outputs="text",                # 輸出為一段文字
    title="English Word Frequency Analyzer",
    description="Paste or type your article below, then click 'Submit' to see the word-frequency analysis."
)

# 啟動 Gradio App
if __name__ == "__main__":
    iface.launch()