import gradio as gr import pandas as pd import re from collections import Counter from openpyxl import Workbook def process_excel(file): # 엑셀 파일 읽기 df = pd.read_excel(file, sheet_name=0) # D4부터 D열의 데이터 가져오기 product_names = df.iloc[3:, 3].dropna() # D4부터 데이터 추출 # 키워드 추출 및 정제 all_keywords = [] for name in product_names: # 특수 문자 제거 및 키워드 추출 keywords = re.findall(r'\b\w+\b', name) # 중복 제거 unique_keywords = set(keywords) all_keywords.extend(unique_keywords) # 빈도 계산 keyword_counts = Counter(all_keywords) sorted_keywords = keyword_counts.most_common() # 결과를 엑셀로 저장 wb = Workbook() ws = wb.active ws.title = "Keywords" ws['A4'] = "키워드" ws['B4'] = "빈도" for idx, (keyword, count) in enumerate(sorted_keywords, start=5): ws[f'A{idx}'] = keyword ws[f'B{idx}'] = count result_file = "keyword_counts.xlsx" wb.save(result_file) return result_file # Gradio 인터페이스 설정 iface = gr.Interface( fn=process_excel, inputs=gr.File(label="엑셀 파일을 업로드하세요"), outputs=gr.File(label="결과 엑셀 파일"), title="엑셀 키워드 분석기" ) if __name__ == "__main__": iface.launch()