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)