Hyeonseo commited on
Commit
863ee52
โ€ข
0 Parent(s):

Duplicate from SRankChatGpt/Presentation-Assistant

Browse files
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
35
+ pandoc-2.14.2/bin/pandoc filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: PA(Presentation Assistant)
3
+ emoji: ๐Ÿง‘โ€๐Ÿซ
4
+ colorFrom: indigo
5
+ colorTo: green
6
+ sdk: streamlit
7
+ sdk_version: 1.17.0
8
+ app_file: app.py
9
+ pinned: false
10
+ license: apache-2.0
11
+ duplicated_from: SRankChatGpt/Presentation-Assistant
12
+ ---
13
+
14
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,127 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import presentation_assistant.env_set as env
3
+ env.env_set()
4
+ print(os.getcwd())
5
+
6
+ import streamlit as st
7
+ import PyPDF2
8
+ import openai
9
+ import subprocess
10
+ from io import BytesIO
11
+ from pptx import Presentation
12
+
13
+
14
+ import presentation_assistant.presentation_assistant as pa
15
+
16
+ tab1, tab2, tab3 = st.tabs(['What is PA!?', 'Text2PPT', 'PPT2Script'])
17
+
18
+ with tab1:
19
+ st.header('Introduction')
20
+ st.title('PA!(Presentation Assistant):sparkles:')
21
+ contents = """
22
+ โ–ถ Based on the content entered by the user, it :blue[automatically creates] PPT and
23
+ provides a presentation :red[script] to improve presentation skills!"""
24
+ st.markdown(contents)
25
+ st.markdown('-------------------------')
26
+ st.header('How to use')
27
+ st.subheader('Text2PPT')
28
+ contents = """
29
+ โ–ถ If the user provides a link or file, we will :blue[create a presentation material] for you!
30
+ The user only needs to select the desired theme (template) type and number of pages!"""
31
+ st.markdown(contents)
32
+ st.subheader('PPT2Script')
33
+ contents = """
34
+ โ–ถ If the user provides PPT or PDF presentation materials, we will automatically create a :blue[presentation script] for you!"""
35
+ st.markdown(contents)
36
+
37
+ # Test
38
+ # test_ppt_theme = "--reference-doc="+"/home/user/app/template/blue"+".pptx"
39
+ # subprocess.run(["/home/user/app/pandoc-2.14.2/bin/pandoc", "text2ppt_test.md", "-t", "pptx", test_ppt_theme, "-o", "output.pptx"], capture_output=True)
40
+ # print(os.listdir(os.getcwd()))
41
+ # prs = Presentation("output.pptx")
42
+ # binary_output = BytesIO()
43
+ # prs.save(binary_output)
44
+ # st.download_button(label="Download PPT",
45
+ # data = binary_output.getvalue(),
46
+ # file_name="export_output.pptx",
47
+ # mime='application/octet-stream', key = "<Text2PPT_test_download>")
48
+
49
+
50
+ with tab2:
51
+ st.header('Text2PPT')
52
+ gpt_token = st.text_input('Please enter your ChatGPT API token.', key="<Text2PPT_token>")
53
+ st.markdown('-------------------------')
54
+
55
+ st.subheader(':computer: PPT Auto Generator :computer:')
56
+
57
+ thema_select = st.selectbox(
58
+ 'Please select the template you want.',
59
+ ['default', 'yellow', 'gradation_green', 'blue', 'green', 'custom'])
60
+
61
+ if thema_select == "custom":
62
+ uploaded_template_file = st.file_uploader('Choose File!', type='pptx', key="<template_uploader>")
63
+
64
+ st.markdown('-------------------------')
65
+
66
+ page_choice = st.slider('Number of PPT pages', min_value=2, max_value=10, step=1, value=5)
67
+
68
+ st.markdown('-------------------------')
69
+
70
+ my_order = ['Text', 'Link', 'PDF']
71
+ status = st.radio('Please select the file type and enter the content! :smile: ', my_order)
72
+
73
+ # First method
74
+ if status == my_order[0]:
75
+ input_text = st.text_area('Enter TEXT', height=5)
76
+
77
+ elif status == my_order[1]:
78
+ input_text = st.text_area('Enter URL', height=5)
79
+
80
+ elif status == my_order[2]:
81
+ input_text = st.file_uploader('Upload PDF', type=['pdf'])
82
+
83
+ input_text_check = st.button('Confirm', key="<Text2PPT_start>")
84
+
85
+ st.markdown('-------------------------')
86
+
87
+ if input_text_check == True:
88
+ with st.spinner('Wait for it...'):
89
+ pa.text2ppt(gpt_token, pa.generate_text2ppt_input_prompt(status, input_text, page_choice), thema_select)
90
+ prs = Presentation("text2ppt_output.pptx")
91
+ binary_output = BytesIO()
92
+ prs.save(binary_output)
93
+ st.success('Done!')
94
+ st.download_button(label="Download PPT",
95
+ data = binary_output.getvalue(),
96
+ file_name="export_output.pptx",
97
+ mime='application/octet-stream', key = "<Text2PPT_download>")
98
+
99
+ with tab3:
100
+ st.header('PPT2Script')
101
+ st.subheader(':computer: Script Auto Generator :computer:')
102
+ gpt_token = st.text_input('Please enter your ChatGPT API token.', key="<PPT2Script_token>")
103
+ st.markdown('-------------------------')
104
+
105
+ st.subheader(':bookmark_tabs:Presentation Script Generator')
106
+
107
+ file_order = ['PDF', 'PPT']
108
+ choose = st.radio('Please select the file format of the presentation material', file_order)
109
+
110
+ if choose == file_order[0]:
111
+ uploaded_file = st.file_uploader('Choose File!', type='pdf', key="<PPT2Script_pdf_uploader>")
112
+ elif choose == file_order[1]:
113
+ uploaded_file = st.file_uploader('Choose File!', type='pptx', key="<PPT2Script_ppt_uploader>")
114
+
115
+ input_file_check = st.button('Confirm', key="<PPT2Script_start>") # When this button is pressed, the input file should be passed
116
+ st.markdown('-------------------------')
117
+
118
+ if input_file_check == True:
119
+ with st.spinner('Wait for it...'):
120
+ with open(uploaded_file.name, mode='wb') as w:
121
+ w.write(uploaded_file.getvalue())
122
+
123
+ script = pa.ppt2script(gpt_token, uploaded_file.name, choose)
124
+
125
+ st.success('Done!')
126
+ st.download_button('Download Script',
127
+ data=script, file_name="script_output.txt", key="<PPT2Script_download>")
pandoc-2.14.2/bin/pandoc ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1a2cb859c04eddd0f36e18dca1466d2957e9686bdbe113bc96e5476b59aa87af
3
+ size 76884208
pandoc-2.14.2/share/man/man1/pandoc.1.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:67bd56ab5fa90753f6af440b6cf29e39525f517c2d9a55183e3c7f89d0540b9c
3
+ size 70192
presentation_assistant/__init__.py ADDED
File without changes
presentation_assistant/env_set.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import subprocess
2
+ import os
3
+ import sys
4
+
5
+ sys.path.append("/home/user/app")
6
+
7
+ def env_set():
8
+ # ํŒจํ‚ค์ง€๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
9
+ installed_packages = subprocess.check_output("pip list", shell=True).decode()
10
+
11
+ if "PyPDF2" not in installed_packages:
12
+ subprocess.run(f"pip install PyPDF2", shell=True)
13
+
14
+ if "openai" not in installed_packages:
15
+ subprocess.run(f"pip install -q openai", shell=True)
16
+
17
+ if "python-pptx" not in installed_packages:
18
+ subprocess.run(f"pip install python-pptx", shell=True)
19
+
20
+ # pandoc ์‹คํ–‰ ๊ถŒํ•œ ์„ค์ •
21
+ if not os.access("./pandoc-2.14.2/bin/pandoc", os.X_OK):
22
+ subprocess.run(f"chmod +x ./pandoc-2.14.2/bin/pandoc", shell=True)
23
+
24
+ # ๋””๋ ‰ํ† ๋ฆฌ ๊ถŒํ•œ ์„ค์ •
25
+ if not os.access(".", os.W_OK):
26
+ subprocess.run(f"chmod -R 777 .", shell=True)
27
+
28
+ # subprocess.run(f"wget https://github.com/jgm/pandoc/releases/download/2.14.2/pandoc-2.14.2-linux-amd64.tar.gz", shell=True)
29
+ # subprocess.run(f"tar -xvf pandoc-2.14.2-linux-amd64.tar.gz", shell=True)
30
+ # subprocess.run(f"wget https://nodejs.org/dist/v17.0.1/node-v17.0.1-linux-x64.tar.xz", shell=True)
31
+ # subprocess.run(f"tar -xf node-v17.0.1-linux-x64.tar.xz", shell=True)
32
+ # subprocess.run(f"mv node-v17.0.1-linux-x64 node", shell=True)
33
+ # subprocess.run(f"export PATH=/home/user/app/node/bin:$PATH", shell=True)
34
+ # subprocess.run(f"/home/user/app/node/ install -g npm", shell=True)
35
+ # subprocess.run(f"apt-get install -f", shell=True)
36
+ # subprocess.run(f"apt-get install -y fonts-nanum", shell=True)
37
+ # subprocess.run(f"fc-cache -fv", shell=True)
38
+ # subprocess.run(f"rm ~/.cache/matplotlib -rf", shell=True)
39
+
presentation_assistant/presentation_assistant.py ADDED
@@ -0,0 +1,159 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import PyPDF2
3
+ from pptx import Presentation
4
+ import openai
5
+ import subprocess
6
+ from io import BytesIO
7
+ import sys
8
+
9
+ sys.path.append("/home/user/app")
10
+
11
+ # Function to generate text2ppt input prompt
12
+ def generate_text2ppt_input_prompt(input_type, input_value, input_pages):
13
+ header = """
14
+ Assume you are a designer creating a PPT using markdown syntax, and write a PPT of %s pages.
15
+ +++ Summarize the content or link below in markdown language, adhering to the rules in ===, and refer to the slide examples in ~~~.
16
+ +++
17
+ """ % input_pages
18
+
19
+ summary_value = ""
20
+
21
+ if input_type == "Link":
22
+ summary_value += input_value
23
+ summary_value += "\n"
24
+ elif input_type == "Text":
25
+ summary_value += input_value
26
+ summary_value += "\n"
27
+ elif input_type == "PDF":
28
+ with open(input_value, 'rb') as pdf_file:
29
+ pdf_reader = PyPDF2.PdfReader(pdf_file)
30
+ num_pages = len(pdf_reader.pages)
31
+
32
+ # Convert the content of each page to a string.
33
+ text = ""
34
+ for page_num in range(num_pages):
35
+ page = pdf_reader.pages[page_num]
36
+ text += page.extract_text()
37
+ summary_value += text
38
+ summary_value += "\n"
39
+ else:
40
+ print("ERROR: Invalid input")
41
+
42
+ rule_value = """
43
+ ===
44
+ - Write factually only about the content or link provided.
45
+ - Always use --- as a slide divider.
46
+ - Design and arrange the slides diversely with appropriate shapes, images(![Image](Image link), https://unsplash.com/ko/images/stock/non-copyrighted for actual use), tables(|-|), quotes(>), emphasis(bold, ``), emojis(https://kr.piliapp.com/twitter-symbols/), icons (https://kr.piliapp.com/symbol/#popular).
47
+ - Use emojis only once in every two pages, and use various other designs.
48
+ - When using images and tables, specify the size considering the page size so that all the text content appears.
49
+ - Make Slide 1 the title, for a total of %s pages.
50
+ - Write the content of the PPT richly in markdown.
51
+ - Don't explain slide by slide, just write the code.
52
+ - Don't write using the content of the example, just refer to the format.
53
+ ~~~
54
+ <!-- Slide 0. Slide Topic -->
55
+ # Slide Title
56
+ ![Image link](https://huggingface.co/datasets/huggingface/brand-assets/resolve/main/hf-logo-with-title.png)
57
+ - This is ๐Ÿค—**TEXT2PPT service PA!** using ChatGPT.
58
+ - Converts `link`,`text`, `PDF` input or upload into PPT.
59
+ """ % input_pages
60
+
61
+ return header + summary_value + rule_value
62
+
63
+
64
+ # Function to execute text2ppt
65
+ def text2ppt(token_key, input_prompt, input_theme):
66
+ openai.api_key = token_key
67
+
68
+ messages = [
69
+ {"role": "system", "content": "You are a kind helpful PPT designer."},
70
+ ]
71
+
72
+ message = input_prompt
73
+
74
+ if message:
75
+ messages.append(
76
+ {"role": "user", "content": message},
77
+ )
78
+ chat = openai.ChatCompletion.create(
79
+ model="gpt-3.5-turbo-0301", messages=messages
80
+ )
81
+
82
+ reply = chat.choices[0].message.content
83
+ messages.append({"role": "assistant", "content": reply})
84
+
85
+ md_text = reply[4:] if reply[:3] == "---" else reply
86
+ md_text_list = md_text.split('\n')
87
+
88
+ f = open("text2ppt_input.md", 'w')
89
+ for i in range(0, len(md_text_list)):
90
+ data = md_text_list[i] + "\n"
91
+ f.write(data)
92
+ f.close()
93
+
94
+ if input_theme == 'default':
95
+ subprocess.run(["/home/user/app/pandoc-2.14.2/bin/pandoc", "/home/user/app/text2ppt_input.md", "-t", "pptx", "-o", "/home/user/app/text2ppt_output.pptx"], capture_output=True)
96
+ else:
97
+ ppt_theme = "--reference-doc=/home/user/app/template/"+input_theme+".pptx"
98
+ subprocess.run(["/home/user/app/pandoc-2.14.2/bin/pandoc", "/home/user/app/text2ppt_input.md", "-t", "pptx", ppt_theme, "-o", "/home/user/app/text2ppt_output.pptx"], capture_output=True)
99
+
100
+
101
+ def ppt2script(token_key, input_file, input_type):
102
+ openai.api_key = token_key
103
+
104
+ if input_type=="PDF":
105
+ with open(input_file, 'rb') as pdf_file:
106
+ pdf_reader = PyPDF2.PdfReader(pdf_file)
107
+ num_pages = len(pdf_reader.pages)
108
+
109
+ # Convert the content of each page to a string.
110
+ text = ""
111
+ for page_num in range(num_pages):
112
+ page = pdf_reader.pages[page_num]
113
+ text += "[PAGE_NUM " + str(page_num + 1) + "]"
114
+ text += page.extract_text()
115
+ else:
116
+ prs = Presentation(input_file)
117
+
118
+ text = ""
119
+ page_num = 0
120
+ for slide in prs.slides:
121
+ text += "[PAGE_NUM " + str(page_num + 1) + "]"
122
+ page_num += 1
123
+ for shape in slide.shapes:
124
+ if not shape.has_text_frame:
125
+ continue
126
+ for paragraph in shape.text_frame.paragraphs:
127
+ for run in paragraph.runs:
128
+ text += run.text
129
+
130
+ header = """
131
+ You are an assistant helping with PPT presentations.
132
+ ~~~Follow the rules below and write a presentation script for the PPT content below.
133
+ ~~~
134
+ - When [PAGE_NUM 1], where 1 is the page number, write a presentation script for each page number.
135
+ - Write only in text without using markdown language.
136
+ - Add additional explanations or examples to the PPT content.
137
+ ---
138
+ """
139
+
140
+ input_prompt = header + text
141
+
142
+ messages = [
143
+ {"role": "system", "content": "You are a kind helpful PPT Assistant."},
144
+ ]
145
+
146
+ message = input_prompt
147
+
148
+ if message:
149
+ messages.append(
150
+ {"role": "user", "content": message},
151
+ )
152
+ chat = openai.ChatCompletion.create(
153
+ model="gpt-3.5-turbo-0301", messages=messages
154
+ )
155
+
156
+ reply = chat.choices[0].message.content
157
+ messages.append({"role": "assistant", "content": reply})
158
+
159
+ return reply
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ streamlit==0.88.0
2
+ altair==4.1.0
template/blue.pptx ADDED
Binary file (54.9 kB). View file
 
template/gradation_green.pptx ADDED
Binary file (54 kB). View file
 
template/green.pptx ADDED
Binary file (39.2 kB). View file
 
template/yellow.pptx ADDED
Binary file (40.8 kB). View file
 
text2ppt_test.md ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!-- Slide 1. ์ธ๊ณต์ง€๋Šฅ ๊ฐœ์š” -->
2
+ # ์ธ๊ณต์ง€๋Šฅ ๊ฐœ์š”
3
+ > ์ธ๊ณต์ง€๋Šฅ(Artificial Intelligence)์€ ์ธ๊ฐ„์˜ ์ง€๋Šฅ์„ ๋ชจ๋ฐฉํ•˜์—ฌ ๋งŒ๋“  ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.
4
+
5
+ ---
6
+
7
+ <!-- Slide 2. ์ธ๊ณต์ง€๋Šฅ ๋ถ„๋ฅ˜ -->
8
+ # ์ธ๊ณต์ง€๋Šฅ ๋ถ„๋ฅ˜
9
+ <table>
10
+ <thead>
11
+ <tr>
12
+ <th>๋ถ„๋ฅ˜</th>
13
+ <th>์„ค๋ช…</th>
14
+ </tr>
15
+ </thead>
16
+ <tbody>
17
+ <tr>
18
+ <td>๊ฐ•ํ•œ ์ธ๊ณต์ง€๋Šฅ</td>
19
+ <td>์‚ฌ๋žŒ๊ณผ ๊ฐ™์ด ๋ชจ๋“  ์ธ๊ฐ„์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰</td>
20
+ </tr>
21
+ <tr>
22
+ <td>์•ฝํ•œ ์ธ๊ณต์ง€๋Šฅ</td>
23
+ <td>์ผ๋ถ€๋ถ„์˜ ์ž‘์—…๋งŒ ์ˆ˜ํ–‰</td>
24
+ </tr>
25
+ </tbody>
26
+ </table>
27
+
28
+ ---
29
+
30
+ <!-- Slide 3. ์ธ๊ณต์ง€๋Šฅ ์ ์šฉ ๋ถ„์•ผ -->
31
+ # ์ธ๊ณต์ง€๋Šฅ ์ ์šฉ ๋ถ„์•ผ
32
+ - ์ž์œจ์ฃผํ–‰ ์ž๋™์ฐจ
33
+ - ์Œ์„ฑ์ธ์‹ ๊ธฐ์ˆ 
34
+ - ์ธ๊ณต์ง€๋Šฅ ์˜์ƒ ์ธ์‹ ๊ธฐ์ˆ 
35
+ - ์ž๋™ ๋ฒˆ์—ญ
36
+ ---
37
+
38
+ <!-- Slide 4. ์ธ๊ณต์‹ ๊ฒฝ๋ง -->
39
+ # ์ธ๊ณต์‹ ๊ฒฝ๋ง
40
+ - ์ƒ๋ฌผํ•™์  ํผ์…‰ํŠธ๋ก  ๊ตฌ์กฐ ์ฐธ๊ณ 
41
+ - ์ž…๋ ฅ ๊ณ„์ธต, ์ถœ๋ ฅ ๊ณ„์ธต, ์€๋‹‰ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ
42
+ ![์ธ๊ณต์‹ ๊ฒฝ๋ง ์ด๋ฏธ์ง€](https://upload.wikimedia.org/wikipedia/commons/4/46/Colored_neural_network.svg)
43
+
44
+ ---
45
+
46
+ <!-- Slide 5. ์‹ฌ์ธตํ•™์Šต -->
47
+ # ์‹ฌ์ธตํ•™์Šต
48
+ - ๋‹ค์ธตํผ์…‰ํŠธ๋ก (MLP)๊ณผ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ์œ„์— ๋‹ค์–‘ํ•œ ๋ ˆ์ด์–ด๋ฅผ ์Œ“์•„ ์˜ฌ๋ฆผ
49
+ - ์ด๋ฏธ์ง€/์Œ์„ฑ/ํ…์ŠคํŠธ ๋ถ„์„ ๋ถ„์•ผ์—์„œ ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ ํ™œ์šฉ
50
+
51
+ ---
52
+
53
+ <!-- Slide 6. ๊ฐ•ํ™”ํ•™์Šต -->
54
+ # ๊ฐ•ํ™”ํ•™์Šต
55
+ - ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ์ฃผ์–ด์ง„ ํ™˜๊ฒฝ์„ ํ•™์Šตํ•˜๋Š” ๋ฐฉ์‹
56
+ - ์—์ด์ „ํŠธ๊ฐ€ ์ตœ์ ์˜ ํ–‰๋™์„ ์ทจํ•˜๋„๋ก ๋ณด์ƒํ•˜๋Š” ๋ฐฉ์‹
57
+ - ์Šˆํผ๋งˆ๋ฆฌ์˜ค ๊ฒŒ์ž„/๋ฐ”๋‘‘/์žฅ๊ธฐ/์•ŒํŒŒ๊ณ  ๋“ฑ์—์„œ ํ™œ์šฉ
58
+
59
+ ---
60
+
61
+ <!-- Slide 7. ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ -->
62
+ # ์ž์—ฐ์–ด ์ฒ˜๋ฆฌ(NLP)
63
+ - ์ธ๊ฐ„์˜ ์–ธ์–ด(์Œ์„ฑ ๋˜๋Š” ๋ฌธ์ž)๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์ฒ˜๋ฆฌ
64
+ - ๋”ฅ๋Ÿฌ๋‹ ์ด์šฉํ•œ ์ž๋™๋ฒˆ์—ญ, ์ฑ—๋ด‡, ํ…์ŠคํŠธ ๊ฐ์ •๋ถ„์„ ๋“ฑ
65
+
66
+ ---
67
+
68
+ <!-- Slide 8. ๋”ฅ๋Ÿฌ๋‹ -->
69
+ # ๋”ฅ๋Ÿฌ๋‹
70
+ - ์‹ฌ์ธต์‹ ๊ฒฝ๋ง์„ ์ด์šฉํ•œ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ฐฉ๋ฒ•๋ก 
71
+ - ์ปดํ“จํ„ฐ๊ฐ€ ์ธ๊ฐ„์˜ ํ•™์Šต ๋Šฅ๋ ฅ์„ ๋ชจ๋ฐฉํ•˜์—ฌ ์ž๋™์œผ๋กœ ํŒจํ„ด ์ธ์‹ ๋‹ฌ์„ฑ
72
+ - ์ด๋ฏธ์ง€/์Œ์„ฑ/์ž์—ฐ์–ด ์ฒ˜๋ฆฌ ๋“ฑ์—์„œ ํ™œ์šฉ
73
+
74
+ ---
75
+
76
+ <!-- Slide 9. ์ธ๊ณต์ง€๋Šฅ์˜ ๋ฏธ๋ž˜ -->
77
+ # ์ธ๊ณต์ง€๋Šฅ์˜ ๋ฏธ๋ž˜
78
+ - ๊ธฐ์ˆ ์˜ ๋ฐœ์ „๊ณผ ํ•จ๊ป˜ ์ธ๊ฐ„์˜ ์—ฌ๋Ÿฌ ๋ถ„์•ผ์—์„œ ๊ณ ๋„ํ™”
79
+ - ๋”์šฑ ํŽธ๋ฆฌํ•˜๊ณ  ํšจ์œจ์ ์ธ ์ธ๊ฐ„์˜ ์ผ์ƒ์ƒํ™œ์— ๋ณด๋‹ค ๋งŽ์€ ๊ธฐ์—ฌ
80
+
81
+ ---
82
+
83
+ <!-- Slide 10. # PA! -->
84
+ # PA! ๐ŸŽ‰
85
+ - ๐Ÿค—**TEXT2PPT** ์„œ๋น„์Šค PA!๋ฅผ ์ด์šฉํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
86
+ - ๋ฆฌ๋ทฐ๋‚˜ ๊ฑด์˜์‚ฌํ•ญ์€ ์–ธ์ œ๋“ ์ง€ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!
87
+ - ๐Ÿ“ง๋ฌธ์˜: pa@pa.com