ReneeHWT's picture
Update app.py
269ce87 verified
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()