import os import gradio as gr from google.cloud import translate_v2 as translate from nltk import download from nltk.tokenize import word_tokenize from nltk.corpus import stopwords from nltk import pos_tag # nltk 데이터 다운로드 download('punkt') download('averaged_perceptron_tagger') download('stopwords') def extract_keywords(text): # 영어 텍스트를 토큰화 tokens = word_tokenize(text) # 불용어 제거 및 중요 단어 추출 tokens = [word for word in tokens if word.isalnum() and word.lower() not in stopwords.words('english')] # 품사 태깅 tagged = pos_tag(tokens) # 명사, 고유명사, 동사 중요 키워드 추출 keywords = [word for word, tag in tagged if tag in ['NN', 'NNP', 'NNS', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ']] return ' '.join(keywords) def translate_and_extract_keywords(text, api_key): # 클라이언트 설정 translate_client = translate.Client(credentials=translate.Credentials(api_key)) # 입력받은 한글 문장을 영어로 번역 result = translate_client.translate(text, target_language='en') translated_text = result['translatedText'] # 키워드 추출 return extract_keywords(translated_text) # Gradio 인터페이스 정의 interface = gr.Interface( fn=translate_and_extract_keywords, inputs=[ gr.Textbox(lines=2, placeholder="한글 문장을 입력하세요..."), gr.Textbox(label="Google Cloud API 키") ], outputs="text", title="한글 문장을 영어 키워드로 번역 및 추출", description="한글 문장과 Google Cloud API 키를 입력하면, 그 의미가 포함된 영어 키워드를 추출하여 출력합니다." ) # 애플리케이션 실행 interface.launch(share=True)