ecellll / app.py
kijeoung's picture
Update app.py
8c9d8cd verified
import pandas as pd
import re
from collections import Counter
import gradio as gr
def process_excel(file):
# μ—‘μ…€ 파일 읽기
df = pd.read_excel(file, engine="openpyxl")
# Dμ—΄ 데이터 κ°€μ Έμ˜€κΈ°
data = df.iloc[:, 3].dropna().tolist() # D열은 index 3
# ν‚€μ›Œλ“œ μΆ”μΆœ 및 μ •μ œ
keywords = []
for text in data:
clean_text = re.sub(r"[^a-zA-Z0-9κ°€-힣\s]", "", text) # 특수문자 제거
keywords.extend(clean_text.split())
# ν‚€μ›Œλ“œ λΉˆλ„ 계산
keyword_counts = Counter(keywords)
# λ°μ΄ν„°ν”„λ ˆμž„ 생성
result_df = pd.DataFrame(keyword_counts.items(), columns=["ν‚€μ›Œλ“œ", "λΉˆλ„"])
result_df = result_df.sort_values(by="λΉˆλ„", ascending=False)
# μ—‘μ…€ 파일둜 μ €μž₯
output_file = "result.xlsx"
result_df.to_excel(output_file, index=False, engine="openpyxl")
return output_file
# Gradio μΈν„°νŽ˜μ΄μŠ€
def gradio_interface(file):
output_file = process_excel(file)
return output_file
# Gradio μ•± μ •μ˜
with gr.Interface(
fn=gradio_interface,
inputs=gr.File(label="μ—‘μ…€ 파일 μ—…λ‘œλ“œ (.xlsx)"),
outputs=gr.File(label="κ²°κ³Ό 파일 λ‹€μš΄λ‘œλ“œ (.xlsx)"),
title="ν‚€μ›Œλ“œ μΆ”μΆœ 및 λΉˆλ„ 뢄석"
) as app:
app.launch()