
ํํธ๋งต ๊ทธ๋ ค๋ฌ๋ผํ๊ธฐ, ์ง์ค์ฝ๋ฉ
๋ก์ง์ ์ง์ ์ข
๋ก๊ตฌ๋ผ๋ฆฌ ๋ฌถ๊ณ
@save ์ด ํ์ผ์ ์๋ก csv ํ์ผ์ ๋ง๋ค์ด์ค ๋๊ฐ ๊ทผ๋ฐ ๊ทธ ์๋ก ๋ง๋ csv ํ์ผ์ crime.csv์์ ์ฃผ์์ ์์น๊ตฌ๊ฐ ์ถ๊ฐ ๋ ์ปฌ๋ผ์ด์ด์ผํด.
๊ด์๋ช
์ด '์์ธ์ค๋ถ๊ฒฝ์ฐฐ์', '์์ธ์ข
๋ก๊ฒฝ์ฐฐ์', '์์ธ๋จ๋๋ฌธ๊ฒฝ์ฐฐ์' ์ด๋ฐ์์ผ๋ก ๋์์ผํด ๋ค์ ๋ง๋ค์ด์ค

๊ณ์ ๋ฐ๊ฟ๋ฌ๋ผ๊ณ ํ๋๊น ๋ฐ๊ฟ์ค! ์๋๋ฉด ๊ป๋ค๊ฐ ์ผ๊ธฐ


ํด๋๋ ํ์ผ ๋ง๋ค๊ธฐ
https://python-visualization.github.io/folium/latest/getting_started.html
Getting started โ Folium 0.20.0 documentation
Make this Notebook Trusted to load map: File -> Trust Notebook
python-visualization.github.io
9๋ฒ๊ฐ์ ธ์ค๊ธฐ

https://python-visualization.github.io/folium/latest/getting_started.html
import pandas
state_geo = requests.get(
"https://raw.githubusercontent.com/python-visualization/folium-example-data/main/us_states.json"
).json()
state_data = pandas.read_csv(
"https://raw.githubusercontent.com/python-visualization/folium-example-data/main/us_unemployment_oct_2012.csv"
)
m = folium.Map(location=[48, -102], zoom_start=3)
folium.Choropleth(
geo_data=state_geo,
name="choropleth",
data=state_data,
columns=["State", "Unemployment"],
key_on="feature.id",
fill_color="YlGn",
fill_opacity=0.7,
line_opacity=0.2,
legend_name="Unemployment Rate (%)",
).add_to(m)
folium.LayerControl().add_to(m)
m
pip install folium
ํฐ๋ฏธ๋์ ์
๋ ฅํด์ ์ค์น
docker compose up ํด์ ๊ฒ์ดํธ์จ์ด๋ mlservice ์ผ์ค๋ค์์
์ด๊ฑฐ ํ๊ธฐ์ ์ ์ปจํ
์ด๋ ๋ค ์ง์์ผํด์
@ai.seoeunjin.com/mlservice/app/us_unemployment/router.py ์ฌ๊ธฐ์ @ai.seoeunjin.com/mlservice/app/main.py ์ด๊ณณ๊ณผ ์ฐ๋ํ์ฌ ์ ์ฒด url ์ด localhost:8080/api/ml/usa ๋ก ๋ผ์ฐํ
ํด์ค
์ฌ์ฉ ๊ฐ๋ฅํ URL
์ด์ ๋ค์ URL๋ก ์ ๊ทผํ ์ ์์ต๋๋ค:
์ปจํ ์ด๋๋ฅผ ์ฌ๋น๋ํ๊ณ ์ฌ์์ํ๋ฉด ์ ์ฉ๋ฉ๋๋ค:
๋๋ ์ ์ฒด ์ฌ์์:
์ฌ์ฉ ๋ฐฉ๋ฒ
Postman์์ ๋ค์ URL๋ก POST ์์ฒญ์ ๋ณด๋ด์ธ์:
๋๋ GET ์์ฒญ๋ ๊ฐ๋ฅํฉ๋๋ค:
ํ์ผ ์ ์ฅ ์์น
ํ์ผ์ ๋ค์ ์์น์ ์ ์ฅ๋ฉ๋๋ค:๋ก์ปฌ ๊ฒฝ๋ก:
์ปจํ ์ด๋ ๋ด๋ถ ๊ฒฝ๋ก:
์ด์ /preprocess ์๋ํฌ์ธํธ๋ก ์์ฒญํ๋ฉด save ํด๋์ ์ฃผ์์ ์์น๊ตฌ ์ปฌ๋ผ์ด ์ถ๊ฐ๋ CSV ํ์ผ์ด ์์ฑ๋ฉ๋๋ค. Postman์์ ๋ค์ ์๋ํด๋ณด์ธ์.
@ai.seoeunjin.com/mlservice/app/seoul_crime/save ์ฌ๊ธฐ์ ์์ธ์ ๊ฒฝ์ฐฐ์, ํ์ถ์ ์ ๋ณด๋ฅผ ์นด์นด์ค๋งต์ผ๋ก ๋ถ๋ฌ์์ csvํ์ผ์ ๋ง๋ค๊ฑด๋ฐ, ์ปฌ๋ผ์ 3๊ฐ์ง๋ก ํ ๊ฑฐ์ผ. ๊ฒฝ์ฐฐ์์ด๋ฆ, ๊ฒฝ์ฐฐ์์ฃผ์, ๊ด์ ์ด 3๊ฐ์ง ์ปฌ๋ผ์ ๋ง๋ค์ด์ csvํ์ผ์ ๋ง๋ค์ด์ค
์์ฐ์ด ์ฒ๋ฆฌ
01. ์์ฐ์ด ์ฒ๋ฆฌ(natural language processing) ์ค๋นํ๊ธฐ - ๋ฅ ๋ฌ๋์ ์ด์ฉํ ์์ฐ์ด ์ฒ๋ฆฌ ์
๋ฌธ
1. ์๋์ฝ๋ค(Anaconda) ์ค์น
๋งํฌ : https://www.anaconda.com/distribution/

์ ์ฌ์ดํธ ๋งํฌ๋ก ์ด๋ํ์ฌ ์ฌ์ดํธ ํ๋จ์ผ๋ก ์ด๋ํ๋ฉด (์ ์๊ฐ ์ด ์ฑ ์ ์์ฑํ ๋น์ ๊ธฐ์ค) ์ข์ธก์ ํ์ด์ฌ 3.7 ๋ฒ์ ๊ณผ ์ฐ์ธก์ ํ์ด์ฌ 2.7 ๋ฒ์ ์ ์๋์ฝ๋ค ์ค์น ํ์ผ์ด ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ํ์ด์ฌ 3.7 ๋ฒ์ 64 ๋นํธ๋ฅผ ์ค์นํฉ๋๋ค.

์ค์น ํ์ผ์ ์คํํ ํ์ ๋ค๋ฅธ ์๋์ฐ ํ๋ก๊ทธ๋จ์ ์ค์นํ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Next > ๋ฅผ ๋๋ฅด๋ฉด์ ์ค์น๋ฅผ ์๋ฃํ๋ฉด ๋ฉ๋๋ค. ์๋์ฝ๋ค๋ฅผ ์ค์นํ๋ฉด ๋จธ์ ๋ฌ๋์ ์ํ ๊ธฐ๋ณธ์ ์ธ ํ์ด์ฌ ํจํค์ง๋ค์ ์๋์ผ๋ก ์ค์น๊ฐ ๋ฉ๋๋ค. ๋ค๋ง ํ
์ํ๋ก์ฐ, ์ผ๋ผ์ค, ์ ์ฌ, ์ฝ์์ํ์ด์ ๊ฐ์ ํจํค์ง๋ค์ ๋ณ๋ ์ค์น๊ฐ ํ์ํ๋ฐ ์ด์ ๋ํด์๋ ๋ค์์ ์ถ๊ฐ์ ์ผ๋ก ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
์๋์ฝ๋ค๋ฅผ ๋ค ์ค์นํ๋ค๋ฉด ์๋์ฝ๋ค ํ๋กฌํํธ๋ฅผ ์คํํ๊ฒ ์ต๋๋ค.

์๋์ฝ๋ค ํ๋กฌํํธ๋ฅผ ์ด์๋ค๋ฉด ์๋์ฝ๋ค ํ๋กฌํํธ์ ์๋์ ์ปค๋งจ๋๋ฅผ ์
๋ ฅํ์ฌ ์๋์ฝ๋ค ํ์ด์ฌ ํจํค์ง๋ฅผ ์ ๋ถ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ ํฉ๋๋ค.
> conda update -n base conda
> conda update --all
์ด ์ฑ
์ด ์์ฑ๋์์ ๋น์์๋ ํ์ด์ฌ 3.7 ๋ฒ์ ์ด ์ต์ ๋ฒ์ ์ด์์ง๋ง, ๋
์๋ถ๋ค์ด ํ์ด์ฌ์ ์ค์นํ๊ธฐ ์ํด์ ์๋์ฝ๋ค ํ์ด์ง์ ์ ์ํ์์ ๋๋ 3.7๋ณด๋ค ๋์ฑ ์ต์ ๋ฒ์ ์ผ๋ก ์
๋ฐ์ดํธ๊ฐ ๋์์ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฌด์์ ํ์ด์ฌ ์ต์ ๋ฒ์ ์ ์ค์นํ๋ ๊ฒ์ ์ข์ ๋ฐฉ๋ฒ์ด ์๋๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์๋์ ๋งํฌ์์ ํ์ด์ฌ ๋ฒ์ ๊ณผ ํธํ๋๋ ํ
์ํ๋ก์ฐ ๋ฒ์ ์ ๋ํ ์๋ด๊ฐ ๋์์์ผ๋ ๋ฐ๋์ ์ค์น ์ ํ์ธ์ด ํ์ํฉ๋๋ค.
๋งํฌ : https://www.tensorflow.org/install/pip?hl=ko
์๋ฅผ ๋ค์ด ์ ํ์ด์ง์์ 'Python 3.9 ์ง์์๋ Tensorflow 2.5 ์ด์์ด ํ์ํฉ๋๋ค.' ๋ผ๊ณ ๊ธฐ์ฌ๋์ด์ ธ ์๋ค๋ฉด, ํ์ด์ฌ 3.9๋ฅผ ์ค์นํ์์ ๋๋ ๋ฐ๋์ Tensorflow๋ 2.5 ์ด์์ ์ค์นํด์ผ๋ง ํฉ๋๋ค.
2. ๊ตฌ๊ธ์ ์ฝ๋ฉ(Colab)
ํ ์ํ๋ก์ฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก 64๋นํธ ํ๋ซํผ๋ง์ ์ง์ํ๋ฏ๋ก 32๋นํธ ํ๊ฒฝ์์๋ ๋ฅ ๋ฌ๋ ์ค์ต ํ๊ฒฝ์ ๊ตฌ์ถํ๊ธฐ์๋ ๋ง์ ์ ๋ก ์ฌํญ์ด ์์ต๋๋ค. ๋๋ ๊ฐ์ธ์ ์ปดํจํฐ ์ฌ์์ด๋ ๋ค๋ฅธ ์ด์ ๋ก ์๋์ฝ๋ค๋ ์ฌ๋ฌ ํจํค์ง ์ค์น๊ฐ ์ด๋ ค์ด ๊ฒฝ์ฐ๋ ์์ ๊ฒ์ ๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ์๋ ์ธํฐ๋ท๋ง ๋๋ค๋ฉด ๋ฐ๋ก ํ์ด์ฌ์ ์ค์ตํ ์ ์๋ ๊ตฌ๊ธ์ ์ฝ๋ฉ(Colab)์ด ์์ต๋๋ค. ๊ตฌ๊ธ์ Colab์ ๋ค์์ ์ค๋ช ํ๊ฒ ๋ '์ฃผํผํฐ ๋ ธํธ๋ถ'๊ณผ ๋งค์ฐ ์ ์ฌํ ์ค์ต ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
- Colab ์ฃผ์ : https://colab.research.google.com/
๊ตฌ๊ธ์ Colab์ ์ ์ํ๋ ๋ฐฉ๋ฒ์ ์์ URL์ ํตํด์ ์ ์ํ๊ฑฐ๋, ๊ตฌ๊ธ(http://www.google.co.kr/)์์ Colab์ด๋ผ๊ณ ๊ฒ์ํด์ ์ ์ํ ์ ์์ต๋๋ค.
1) ํ์ด์ฌ ์ค์ตํ๊ธฐ
Colab ์ฌ์ฉ ์์๋ ๊ตฌ๊ธ ๊ณ์ ์ด ํ์ํ๋ฏ๋ก ๊ตฌ๊ธ ์์ด๋๊ฐ ์์ผ์ ๋ถ๋ค์ ๋จผ์ ํ์๊ฐ์ ํ ๋ก๊ทธ์ธ๋ถํฐ ํด์ฃผ์ธ์.

๋ก๊ทธ์ธ ํ ์ข์ธก ์๋จ์์ ํ์ผ > ์ ๋
ธํธ ๋ฅผ ํด๋ฆญํฉ๋๋ค. ์กฐ๊ธ๋ง ๊ธฐ๋ค๋ฆฌ๋ฉด ํ์ด์ฌ์ ์ค์ตํ ์ ์๋ ์ค์ต ํ๊ฒฝ ์ฐฝ์ด ๋จ๊ฒ ๋ฉ๋๋ค.
์ด๋ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด Colab์์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ถ๋ถ์ ๋จ์๋ฅผ '์
'์ด๋ผ๊ณ ํฉ๋๋ค. ๊ทธ๋ฆผ์์ ๋ณด์ด๋ ์ข์ธก ์๋จ์ '+ ์ฝ๋' ๋ฒํผ์ ํด๋ฆญํ์ฌ ์๋ก์ด ์
์ ์ถ๊ฐํ ์ ์์ผ๋ฉฐ, ์
์์ ์ฝ๋๋ฅผ ์์ฑํ๊ณ Shift + Enterํค๋ฅผ ๋๋ฌ์ ์ฝ๋๋ฅผ ์คํํ ์ ์์ต๋๋ค.

์ ์ 3 + 5๋ผ๋ ์ฝ๋๋ฅผ ์์ฑํ๊ณ , Shift + Enter๋ฅผ ๋๋ฅด๋ฉด 8์ด๋ผ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค๊ฒ ๋ฉ๋๋ค. ์ข์ธก์ [1]์ ํด๋น ์ฝ๋๊ฐ ๋ช ๋ฒ์งธ๋ก ์คํ๋์๋์ง๋ฅผ ์๋ฏธํฉ๋๋ค. ์ ์ ์ถ๊ฐํด๋ณด๋ฉด์ ๋ค๋ฅธ ํ์ด์ฌ ์ฝ๋๋ ์ถ๊ฐ์ ์ผ๋ก ์์ฑํด๋ณด์ธ์.
2) ๋ฌด๋ฃ๋ก GPU ์ฌ์ฉํ๊ธฐ
๋ฅ ๋ฌ๋์์๋ CPU๋ณด๋ค๋ GPU๋ฅผ ์ฌ์ฉํฉ๋๋ค. Colab์์ ์ค์ตํ ๋์ ์ฅ์ ์ GPU๋ฅผ ๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๋ค๋ ์ ์ ๋๋ค. GPU๊ฐ ์ฅ์ฐฉ๋ ์ปดํจํฐ๊ฐ ์๋ ๋ฅ ๋ฌ๋ ์ ๋ฌธ์๋ค์ ํฅํ ์ด ์ฑ ์ ์ค์ต์ ์งํํ ๋ Colab์์ GPU๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋ฅ ๋ฌ๋์ ๊ณต๋ถํ๋ ๊ฒ์ ๊ฐํ๊ฒ ๊ถ์ฅ๋๋ฆฝ๋๋ค. GPU๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ค์ต์ ์งํํ๋ฉด ๋ฅ ๋ฌ๋ ๋ชจ๋ธ์ ํ์ตํ๋ ์๊ฐ์ด ์ง๋์น๊ฒ ์์๋ ์ ์์ต๋๋ค.

Colab์์ GPU๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๋ ธํธ์ ์ง์ ํ์ ๋ ์๋จ์์ ๋ฐํ์ > ๋ฐํ์ ์ ํ ๋ณ๊ฒฝ์ ํด๋ฆญํฉ๋๋ค.

๋ ธํธ ์ค์ ์ ํ๋์จ์ด ๊ฐ์๊ธฐ > GPU ๋ฅผ ์ ํ ํ ์ ์ฅ์ ๋๋ฆ ๋๋ค. ์ดํ ์ค์ต์ ์งํํฉ๋๋ค.
3) ํ์ผ ์ ๋ก๋

๊ตฌ๊ธ์ Colab์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ก๋ํ์ฌ ํด๋น ๋ฐ์ดํฐ๋ก ์ค์ต์ ํ๊ณ ์ ํ๋ค๋ฉด, ์ข์ธก ์๋จ์์ ํด๋ ๋ชจ์์ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค. ๊ทธ ํ ์ ๋ฐฉํฅ์ ํ์ดํ(โ)๊ฐ ๊ทธ๋ ค์ง ๋ฒํผ์ ํด๋ฆญํ์ฌ ํ์ผ์ ์ ๋ก๋ ํ ์ ์์ต๋๋ค. ์ ๊ทธ๋ฆผ์์ ์ซ์ 1๋ฒ ๋ฒํผ๊ณผ ์ซ์ 2๋ฒ ๋ฒํผ์ด ๊ฐ๊ฐ ์ด์ ํด๋นํฉ๋๋ค. ์๋ฅผ ๋ค์ด test.txt ํ์ผ์ ์ ๋ก๋ํ๋ค๊ณ ํด๋ด ์๋ค.

์
๋ก๋ ํ์๋ ํ์ผ ๋ชฉ๋ก์ test.txt ํ์ผ์ด ๋ณด์
๋๋ค.
3. ํ
์ํ๋ก์ฐ
1. NLTK์ NLTK Data ์ค์น
์๋์ฐ+x
์ฅ์น๊ด๋ฆฌ์

์ด๊ฒ ์๋น๋์์ฌ์ผํจ
๋ด๊ฑฐ๋ ์๋ผ์ ๋ค๋ฅธ ์ปดํจํฐ ์จ์ ๋์ค์ ๋ฐ๊ฟ์ผํ ๋ฏ
ํ๋ จ์ ์ํค๊ณ ๋น๋ํ ๋ ํ์ํจ

์๋น๋์ ์ฑ ๋ค์ด๋ก๋

ํ์ด์ฌ/์์ฐ์ด/2020-05-24/ NLTK๋ฅผ ํ์ฉํ ์ ์ธ ์ค์คํด์ ์ ๋ง ๋ถ์
์ด๋ด์ฉ์ ์ ๋งํ์ผ์ ๋ฃ๊ณ
oop ํ์์ผ๋ก ๋ฐ๊ฟ๋ฌ๋ผ๊ณ ํ๊ธฐ
@emma_wordcloud.py oop ํ์์ผ๋ก ๋ฐ๊ฟ์ค
@nlp_router.py ์ฌ๊ธฐ์ @emma_wordcloud.py ์ด ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ localhost:8080/api/ml/nlp/emma์์ ์๋ํ๋๋ก ์ฝ๋ฉํด์ค. ์๋ํด๋ผ์ฐ๋๋ก ์์ฑ๋ ํ์ผ์ @save ํ์ผ์ ์ ์ฅ๋๊ฒ ํด์ค
save ํด๋์ ์ ์ฅํ๊ฒ ํด์ค
ํฐ๋ฏธ๋ ์ด๊ณ ๋์ปค ์ปดํฌ์ฆ์
ํ๊ธฐ ์ ์ base๋ง๊ณ
conda activate torch313 ๋ค์ด๊ฐ์ ํ๊ธฐ

@ai.seoeunjin.com/mlservice/app/nlp/emma/emma_wordcloud.py ์ด๊ฑฐ ์คํํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ค
cd C:\Users\hi\Documents\seoeunjin.com
.\torch313\Scripts\activate
cd ai.seoeunjin.com\mlservice
python -m app.nlp.emma.emma_wordcloud

1) mlservice๋ง ์ฌ๋น๋/์ฌ์์
2) Postman ํธ์ถ (๊ฒ์ดํธ์จ์ด 8080 ๊ฒฝ์ )
GET http://localhost:8080/api/ml/nlp/emma
# ์ ์ฅ ๊ฒฝ๋ก ๊ธฐ๋ณธ๊ฐ: /app/app/nlp/save/emma_wordcloud.png
# ํ์ ์ ์ง์ : ?save=/app/app/nlp/save/emma_wordcloud.png
# ํฐํธ ์ต์
: &font_path=/app/app/nlp/D2Coding.ttf


์์ฒญ๋๊ฒ ์ค๋ฅ๋ฅผ ๊ณ์ ์ก์๋ฌ๋ผ๊ณ ํ๊ณ ๊ฒฐ๊ตญ ํด๋๋ค!!!!!! 8080์ผ๋ก ํด์ค๋ผ๊ณ ๋งํจ

'Project ESG+AI > [์ผ์ KPMG]ESG ๋ฐ์ดํฐ ํ์ฉ ํ์คํ ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 45์ผ์ฐจ. (0) | 2025.12.15 |
|---|---|
| 44์ผ์ฐจ. (0) | 2025.12.15 |
| 42์ผ์ฐจ. (0) | 2025.12.10 |
| 41์ผ์ฐจ. (1) | 2025.12.09 |
| 40์ผ์ฐจ. (0) | 2025.12.08 |