seawolf2357 commited on
Commit
89ea00c
·
verified ·
1 Parent(s): 4f8337d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +34 -14
app.py CHANGED
@@ -1,25 +1,45 @@
 
1
  import gradio as gr
2
- from googletrans import Translator
 
 
 
 
3
 
4
- def translate_to_english_keywords(text):
5
- # Translator 객체 생성
6
- translator = Translator()
7
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  # 입력받은 한글 문장을 영어로 번역
9
- translated_text = translator.translate(text, src='ko', dest='en')
10
-
11
- # 번역된 영어 문장에서 키워드 추출(여기서는 간단히 전체 번역된 문장을 반환)
12
- # 실제 활용 시에는 키워드 추출 로직을 추가할 수 있습니다.
13
- return translated_text.text
14
 
15
  # Gradio 인터페이스 정의
16
  interface = gr.Interface(
17
- fn=translate_to_english_keywords,
18
  inputs=gr.Textbox(lines=2, placeholder="한글 문장을 입력하세요..."),
19
  outputs="text",
20
- title="한글 문장을 영어 키워드로 번역",
21
- description="한글 문장을 입력하면, 그 의미가 포함된 간략하고 함축적인 영어로 출력합니다."
22
  )
23
 
24
  # 애플리케이션 실행
25
- interface.launch()
 
1
+ import os
2
  import gradio as gr
3
+ from google.cloud import translate_v2 as translate
4
+ from nltk import download
5
+ from nltk.tokenize import word_tokenize
6
+ from nltk.corpus import stopwords
7
+ from nltk import pos_tag
8
 
9
+ # nltk 데이터 다운로드
10
+ download('punkt')
11
+ download('averaged_perceptron_tagger')
12
+ download('stopwords')
13
+
14
+ # Google Cloud Translation 클라이언트 설정
15
+ translate_client = translate.Client()
16
+
17
+ def extract_keywords(text):
18
+ # 영어 텍스트를 토큰화
19
+ tokens = word_tokenize(text)
20
+ # 불용어 제거 및 중요 단어 추출
21
+ tokens = [word for word in tokens if word.isalnum() and word.lower() not in stopwords.words('english')]
22
+ # 품사 태깅
23
+ tagged = pos_tag(tokens)
24
+ # 명사, 고유명사, 동사 중요 키워드 추출
25
+ keywords = [word for word, tag in tagged if tag in ['NN', 'NNP', 'NNS', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ']]
26
+ return ' '.join(keywords)
27
+
28
+ def translate_and_extract_keywords(text):
29
  # 입력받은 한글 문장을 영어로 번역
30
+ result = translate_client.translate(text, target_language='en')
31
+ translated_text = result['translatedText']
32
+ # 키워드 추출
33
+ return extract_keywords(translated_text)
 
34
 
35
  # Gradio 인터페이스 정의
36
  interface = gr.Interface(
37
+ fn=translate_and_extract_keywords,
38
  inputs=gr.Textbox(lines=2, placeholder="한글 문장을 입력하세요..."),
39
  outputs="text",
40
+ title="한글 문장을 영어 키워드로 번역 및 추출",
41
+ description="한글 문장을 입력하면, 그 의미가 포함된 영어 키워드를 추출하여 출력합니다."
42
  )
43
 
44
  # 애플리케이션 실행
45
+ interface.launch(share=True)